From D.Bailey@bristol.ac.uk Wed Apr 3 10:24:13 2002 Received: from pacific-carrier-annex.mit.edu (PACIFIC-CARRIER-ANNEX.MIT.EDU [18.7.21.83]) by rt-11.mit.edu (8.9.3/8.9.3) with ESMTP id KAA24762 for ; Wed, 3 Apr 2002 10:24:13 -0500 (EST) Received: from brahma.phy.ads.bris.ac.uk (brahma.phy.bris.ac.uk [137.222.30.3]) by pacific-carrier-annex.mit.edu (8.9.2/8.9.2) with ESMTP id KAA09919 for ; Wed, 3 Apr 2002 10:24:12 -0500 (EST) Received: by brahma.phy.ads.bris.ac.uk with Internet Mail Service (5.5.2650.21) id ; Wed, 3 Apr 2002 16:24:11 +0100 Message-Id: <01986A3437D0E347BC4455FFB752B086577101@brahma.phy.ads.bris.ac.uk> Date: Wed, 3 Apr 2002 16:23:06 +0100 From: Dave Bailey To: "'krb5-bugs@mit.edu'" Subject: Oops, wrong files... correct ones attached. >Number: 1083 >Category: krb5-doc >Synopsis: Oops, wrong files... correct ones attached. >Confidential: yes >Severity: serious >Priority: medium >Responsible: krb5-unassigned >State: open >Class: sw-bug >Submitter-Id: unknown >Arrival-Date: Wed Apr 3 10:25:00 EST 2002 >Last-Modified: Thu Apr 11 16:42:11 EDT 2002 >Originator: >Organization: >Release: >Environment: >Description: >How-To-Repeat: >Fix: >Audit-Trail: Responsible-Changed-From-To: gnats-admin->dalmeida Responsible-Changed-By: hartmans Responsible-Changed-When: Thu Apr 4 16:25:11 2002 Responsible-Changed-Why: Here's a patch or part of it to build krb524.dll Responsible-Changed-From-To: dalmeida->krb5-unassigned Responsible-Changed-By: hartmans Responsible-Changed-When: Thu Apr 11 16:42:03 2002 Responsible-Changed-Why: categorize >Unformatted: This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_000_01C1DB23.744C4BA0 Content-Type: text/plain; charset="iso-8859-1" Oops, sent an old version of the patch+makefile. Correct ones are attached. Dave __ _ David Bailey .-.' `; `-._ __ _ Bristol University (_, .-:' `; `-._ Email: D.Bailey@Bristol.ac.uk ,'o"( (_, ) Tel: +44 117 9546879 (__,-' ,'o"( )> Fax: +44 117 9255624 ( (__,-' ) `-'._.--._( ) ||| |||`-'._.--._.-' ||| ||| ------_=_NextPart_000_01C1DB23.744C4BA0 Content-Type: application/octet-stream; name="make.win" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="make.win" # -*- Mode: Makefile -*-=0A= ######################################################################=0A= #=0A= # makefile for krb524.dll=0A= #=0A= # $Id$=0A= #=0A= ######################################################################=0A= # Figure out the CPU=0A= #=0A= !if !defined(CPU) || "$(CPU)" =3D=3D ""=0A= CPU=3D$(PROCESSOR_ARCHITECTURE)=0A= !endif # CPU=0A= =0A= !if "$(CPU)" =3D=3D ""=0A= CPU=3Di386=0A= !endif=0A= =0A= # Change x86 or X86 to i386=0A= !if ( "$(CPU)" =3D=3D "X86" ) || ( "$(CPU)" =3D=3D "x86" )=0A= CPU=3Di386=0A= !endif # CPU =3D=3D X86=0A= =0A= !if ( "$(CPU)" !=3D "i386" ) && ( "$(CPU)" !=3D "ALPHA" )=0A= !error Must specify CPU environment variable ( CPU=3Di386, = CPU=3DALPHA)=0A= !endif=0A= #=0A= # End of figuring out CPU=0A= #=0A= =0A= # NOTE: ^ is an escape char for NMAKE.=0A= =0A= !ifdef NODEBUG=0A= OUTPRE_DBG=3Drel=0A= !else=0A= OUTPRE_DBG=3Ddbg=0A= !endif=0A= OUTPRE1=3Dobj=0A= OUTPRE2=3D$(OUTPRE1)\$(CPU)=0A= OUTPRE3=3D$(OUTPRE2)\$(OUTPRE_DBG)=0A= OUTPRE=3D$(OUTPRE3)^\=0A= =0A= KRB5DIR =3D ..=0A= =0A= KRB5INCS =3D /I$(KRB5DIR)\include /I$(KRB5DIR)\include\krb5 = \=0A= /I$(KRB5DIR)\include\kerberosIV \=0A= /I$(KRB5DIR)\lib=0A= =0A= INCLUDES =3D $(KRB5INCS)=0A= =0A= CC =3D cl /nologo=0A= CFLAGS =3D /MD /W3 /O2 $(INCLUDES) $(DEFINES)=0A= =0A= LINK =3D link.exe /nologo=0A= =0A= SRCS =3D conv_creds.c conv_princ.c cnv_tkt_skey.c \=0A= encode.c misc.c globals.c sendmsg.c krb524_err.c=0A= =0A= OBJS =3D conv_creds.obj conv_princ.obj cnv_tkt_skey.obj \=0A= encode.obj misc.obj globals.obj sendmsg.obj krb524_err.obj=0A= =0A= DEF_FILE =3D .\krb524.def=0A= =0A= K5LIBS =3D $(KRB5DIR)\lib\$(OUTPRE)krb5_32.lib = $(KRB5DIR)\lib\krb5\$(OUTPRE)krb5.lib \=0A= $(KRB5DIR)\lib\$(OUTPRE)krb4_32.lib = $(KRB5DIR)\lib\krb4\$(OUTPRE)krb4.lib \=0A= $(KRB5DIR)\lib\$(OUTPRE)comerr32.lib=0A= =0A= SYSLIBS =3D shell32.lib ws2_32.lib user32.lib kernel32.lib = advapi32.lib=0A= LIBS =3D $(SYSLIBS) $(K5LIBS)=0A= =0A= GETOPTINC =3D $(KRB5DIR)\util\windows=0A= GETOPTLIB =3D $(KRB5DIR)\util\windows\$(OUTPRE)getopt.lib=0A= =0A= CFLAGS =3D $(CFLAGS) /I$(GETOPTINC)=0A= =0A= ######################################################################=0A= =0A= all: krb524.dll=0A= =0A= krb524.dll: $(OBJS)=0A= $(LINK) $(LIBS) /subsystem:windows /dll /incremental:no \=0A= /pdb:"krb524.pdb" /machine:I386 \=0A= /nodefaultlib:"LIBC.lib" \=0A= /out:"krb524.dll" \=0A= /implib:"krb524.lib" $(OBJS)=0A= =0A= krb524d.exe: krb524.dll krb524d.obj=0A= $(LINK) /subsystem:console /out:$@ \=0A= /nodefaultlib:libc.lib /INCREMENTAL:NO \=0A= krb524d.obj $(LIBS) krb524.lib=0A= =0A= !ifdef KRB5_DLL_FILE=0A= .c.obj:=0A= $(CC) $(CFLAGS) /c /DKRB5_DLL_FILE $*.c=0A= !else=0A= .c.obj:=0A= $(CC) $(CFLAGS) /c $*.c=0A= !endif ------_=_NextPart_000_01C1DB23.744C4BA0 Content-Type: application/octet-stream; name="krb5.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="krb5.patch" *** src/Makefile.in Thu Feb 28 01:15:15 2002=0A= --- /h/krb5-1.2.4/src/Makefile.in Wed Mar 20 17:00:57 2002=0A= ***************=0A= *** 31,36 ****=0A= --- 31,39 ----=0A= @echo Making in clients=0A= cd ..\clients=0A= $(MAKE) -$(MFLAGS)=0A= + @echo Making in krb524=0A= + cd ..\krb524=0A= + $(MAKE) -f make.win KRB5_DLL_FILE=3D1 -$(MFLAGS)=0A= @echo Making in appl\gss-sample=0A= cd ..\appl\gss-sample=0A= $(MAKE) -$(MFLAGS)=0A= ***************=0A= *** 162,168 ****=0A= windows\Makefile windows\lib\Makefile \=0A= windows\cns\Makefile windows\gina\Makefile \=0A= windows\gss\Makefile windows\ms2mit\Makefile \=0A= ! windows\wintel\Makefile=0A= =0A= ##DOS##Makefile-windows:: $(MKFDEP) $(WINMAKEFILES)=0A= =0A= --- 165,172 ----=0A= windows\Makefile windows\lib\Makefile \=0A= windows\cns\Makefile windows\gina\Makefile \=0A= windows\gss\Makefile windows\ms2mit\Makefile \=0A= ! windows\wintel\Makefile \=0A= ! krb524\make.win=0A= =0A= ##DOS##Makefile-windows:: $(MKFDEP) $(WINMAKEFILES)=0A= =0A= ***************=0A= *** 276,281 ****=0A= --- 280,287 ----=0A= ##DOS## $(WCONFIG) config < $@.in > $@=0A= ##DOS##windows\wintel\Makefile: windows\wintel\Makefile.in = $(MKFDEP)=0A= ##DOS## $(WCONFIG) config < $@.in > $@=0A= + ##DOS##krb524\make.win:=0A= + ##DOS## @echo Making krb524 make.win=0A= =0A= clean-windows:: Makefile-windows=0A= @echo Making clean in util=0A= ***************=0A= *** 327,333 ****=0A= lib/krb5/error_tables/* \=0A= lib/krb5/keytab/* lib/krb5/keytab/file/* lib/krb5/keytab/srvtab/* = \=0A= lib/krb5/os/* lib/krb5/posix/* lib/krb5/rcache/* \=0A= ! util/* util/et/* util/profile/*=0A= =0A= WINFILES=3D util/windows/* windows/* windows/lib/* windows/cns/* \=0A= windows/wintel/* windows/gss/* windows/gina/* windows/ms2mit/*=0A= --- 333,340 ----=0A= lib/krb5/error_tables/* \=0A= lib/krb5/keytab/* lib/krb5/keytab/file/* lib/krb5/keytab/srvtab/* = \=0A= lib/krb5/os/* lib/krb5/posix/* lib/krb5/rcache/* \=0A= ! util/* util/et/* util/profile/* \=0A= ! krb524/*=0A= =0A= WINFILES=3D util/windows/* windows/* windows/lib/* windows/cns/* \=0A= windows/wintel/* windows/gss/* windows/gina/* windows/ms2mit/*=0A= ***************=0A= *** 351,356 ****=0A= --- 358,365 ----=0A= GG =3D lib/gssapi/generic/=0A= GK =3D lib/gssapi/krb5/=0A= PR =3D util/profile/=0A= + K524 =3D krb524/=0A= + KA5 =3D lib/kadm5/=0A= =0A= ETOUT =3D $(INC)asn1_err.h $(ET)asn1_err.c \=0A= $(INC)kdb5_err.h $(ET)kdb5_err.c \=0A= ***************=0A= *** 360,366 ****=0A= $(INC)/kerberosIV/krb_err.h lib/krb4/krb_err.c \=0A= $(PR)prof_err.h $(PR)prof_err.c \=0A= $(GG)gssapi_err_generic.h $(GG)gssapi_err_generic.c \=0A= ! $(GK)gssapi_err_krb5.h $(GK)gssapi_err_krb5.c=0A= =0A= HOUT =3D $(INC)krb5.h $(GG)gssapi.h $(PR)profile.h=0A= =0A= --- 369,380 ----=0A= $(INC)/kerberosIV/krb_err.h lib/krb4/krb_err.c \=0A= $(PR)prof_err.h $(PR)prof_err.c \=0A= $(GG)gssapi_err_generic.h $(GG)gssapi_err_generic.c \=0A= ! $(GK)gssapi_err_krb5.h $(GK)gssapi_err_krb5.c \=0A= ! $(K524)krb524_err.h $(K524)krb524_err.c \=0A= ! $(KA5)kadm_err.h $(KA5)kadm_err.c \=0A= ! $(KA5)adb_err.h $(KA5)adb_err.c \=0A= ! $(KA5)chpass_util_strings.h \=0A= ! $(KA5)chpass_util_strings.c=0A= =0A= HOUT =3D $(INC)krb5.h $(GG)gssapi.h $(PR)profile.h=0A= =0A= ***************=0A= *** 468,473 ****=0A= --- 482,495 ----=0A= $(AWK) -f $(AH) outfile=3D$@ $(GG)gssapi_err_generic.et=0A= $(GK)gssapi_err_krb5.h: $(AH) $(GK)gssapi_err_krb5.et=0A= $(AWK) -f $(AH) outfile=3D$@ $(GK)gssapi_err_krb5.et=0A= + $(K524)krb524_err.h: $(AH) $(K524)krb524_err.et=0A= + $(AWK) -f $(AH) outfile=3D$@ $(K524)krb524_err.et=0A= + $(KA5)kadm_err.h: $(AH) $(KA5)kadm_err.et=0A= + $(AWK) -f $(AH) outfile=3D$@ $(KA5)kadm_err.et=0A= + $(KA5)adb_err.h: $(AH) $(KA5)adb_err.et=0A= + $(AWK) -f $(AH) outfile=3D$@ $(KA5)adb_err.et=0A= + $(KA5)chpass_util_strings.h: $(AH) $(KA5)chpass_util_strings.et=0A= + $(AWK) -f $(AH) outfile=3D$@ $(KA5)chpass_util_strings.et=0A= =0A= $(ET)asn1_err.c: $(AC) $(ET)asn1_err.et=0A= $(AWK) -f $(AC) outfile=3D$@ $(ET)asn1_err.et=0A= ***************=0A= *** 487,492 ****=0A= --- 509,522 ----=0A= $(AWK) -f $(AC) outfile=3D$@ $(GG)gssapi_err_generic.et=0A= $(GK)gssapi_err_krb5.c: $(AC) $(GK)gssapi_err_krb5.et=0A= $(AWK) -f $(AC) outfile=3D$@ $(GK)gssapi_err_krb5.et=0A= + $(K524)krb524_err.c: $(AC) $(K524)krb524_err.et=0A= + $(AWK) -f $(AC) outfile=3D$@ $(K524)krb524_err.et=0A= + $(KA5)kadm_err.c: $(AC) $(KA5)kadm_err.et=0A= + $(AWK) -f $(AC) outfile=3D$@ $(KA5)kadm_err.et=0A= + $(KA5)adb_err.c: $(AC) $(KA5)adb_err.et=0A= + $(AWK) -f $(AC) outfile=3D$@ $(KA5)adb_err.et=0A= + $(KA5)chpass_util_strings.c: $(AC) $(KA5)chpass_util_strings.et=0A= + $(AWK) -f $(AC) outfile=3D$@ $(KA5)chpass_util_strings.et=0A= =0A= KRBHDEP =3D $(INC)krb5.hin $(INC)krb5_err.h $(INC)kdb5_err.h \=0A= $(INC)kv5m_err.h $(INC)asn1_err.h=0A= *** src/clients/kinit/kinit.c Thu Feb 28 01:15:18 2002=0A= --- /h/krb5-1.2.4/src/clients/kinit/kinit.c Tue Apr 2 15:12:25 2002=0A= ***************=0A= *** 182,187 ****=0A= --- 182,189 ----=0A= #define GETOPT(argc, argv, str) getopt(argc, argv, str)=0A= #endif=0A= =0A= + char *pszPassword =3D (char *)0;=0A= + =0A= void=0A= usage(void)=0A= {=0A= ***************=0A= *** 277,283 ****=0A= int use_k5 =3D 0;=0A= int i;=0A= =0A= ! while ((i =3D GETOPT(argc, argv, "r:fpFP54AVl:s:c:kt:RS:v"))=0A= !=3D -1) {=0A= switch (i) {=0A= case 'V':=0A= --- 279,285 ----=0A= int use_k5 =3D 0;=0A= int i;=0A= =0A= ! while ((i =3D GETOPT(argc, argv, = "r:fpFP54AVl:s:c:kt:RS:v:w:"))=0A= !=3D -1) {=0A= switch (i) {=0A= case 'V':=0A= ***************=0A= *** 397,402 ****=0A= --- 399,407 ----=0A= }=0A= use_k5 =3D 1;=0A= break;=0A= + case 'w':=0A= + pszPassword =3D optarg;=0A= + break;=0A= default:=0A= errflg++;=0A= break;=0A= ***************=0A= *** 776,783 ****=0A= --- 781,796 ----=0A= =0A= switch (opts->action) {=0A= case INIT_PW:=0A= + if (pszPassword =3D=3D (char *)0)=0A= code =3D krb5_get_init_creds_password(k5->ctx, &my_creds, k5->me,=0A= 0, kinit_prompter, 0,=0A= + opts->starttime, =0A= + opts->service_name,=0A= + &options);=0A= + else=0A= + code =3D krb5_get_init_creds_password(k5->ctx, &my_creds, k5->me,=0A= + pszPassword, =0A= + kinit_prompter, 0,=0A= opts->starttime, =0A= opts->service_name,=0A= &options);=0A= *** src/include/k5-int.h Thu Feb 28 01:15:19 2002=0A= --- /h/krb5-1.2.4/src/include/k5-int.h Tue Mar 26 14:08:16 2002=0A= ***************=0A= *** 409,416 ****=0A= #ifndef KRB5_EXT_PROTO__=0A= #define KRB5_EXT_PROTO__=0A= =0A= ! #ifdef HAVE_STDLIB_H=0A= #include =0A= #else=0A= #if defined(__STDC__) || defined(_MSDOS)=0A= #include =0A= --- 409,419 ----=0A= #ifndef KRB5_EXT_PROTO__=0A= #define KRB5_EXT_PROTO__=0A= =0A= ! #if defined(HAVE_STDLIB_H) || defined(_WIN32) =0A= #include =0A= + #ifdef _WIN32=0A= + #include =0A= + #endif=0A= #else=0A= #if defined(__STDC__) || defined(_MSDOS)=0A= #include =0A= ***************=0A= *** 1534,1540 ****=0A= --- 1537,1547 ----=0A= int krb5_seteuid KRB5_PROTOTYPE((int));=0A= =0A= /* to keep lint happy */=0A= + #ifndef _WIN32=0A= #define krb5_xfree(val) free((char FAR *)(val))=0A= + #else=0A= + #define krb5_xfree(val) free((void *)(val))=0A= + #endif=0A= =0A= #if KRB5_CCACHE_ACCESSOR_FUNCTIONS=0A= /* temporary -- this should be under lib/krb5/ccache somewhere */=0A= *** src/include/krb5/kdb.h Thu Feb 28 01:15:19 2002=0A= --- /h/krb5-1.2.4/src/include/krb5/kdb.h Wed Mar 20 17:35:40 2002=0A= ***************=0A= *** 84,90 ****=0A= #define KRB5_KDB_CREATE_BTREE 0x00000001=0A= #define KRB5_KDB_CREATE_HASH 0x00000002=0A= =0A= ! #if !defined(macintosh) && !defined(_MSDOS) && !defined(_WIN32) && = !defined(__MACH__)=0A= =0A= /*=0A= * Note --- these structures cannot be modified without changing = the=0A= --- 84,90 ----=0A= #define KRB5_KDB_CREATE_BTREE 0x00000001=0A= #define KRB5_KDB_CREATE_HASH 0x00000002=0A= =0A= ! #if !defined(macintosh) && !defined(_MSDOS) && !defined(__MACH__)=0A= =0A= /*=0A= * Note --- these structures cannot be modified without changing = the=0A= ***************=0A= *** 406,411 ****=0A= --- 406,413 ----=0A= =0A= #define KRB5_KDB_DEF_FLAGS 0=0A= =0A= + #if !defined(_WIN32)=0A= + =0A= #ifdef KRB5_OLD_AND_KRUFTY=0A= /* this is the same structure as krb5_keyblock, but with a different = name to=0A= enable compile-time catching of programmer confusion between = encrypted &=0A= ***************=0A= *** 450,455 ****=0A= --- 452,458 ----=0A= } krb5_db_entry_OLD;=0A= =0A= #endif /* OLD_AND_KRUFTY */=0A= + #endif /* _WIN32 */=0A= =0A= /* This is now a structure that is private to the database backend. = */=0A= #ifdef notdef=0A= *** src/krb524/cnv_tkt_skey.c Thu Feb 28 01:15:27 2002=0A= --- /h/krb5-1.2.4/src/krb524/cnv_tkt_skey.c Tue Mar 26 14:20:14 2002=0A= ***************=0A= *** 22,33 ****=0A= --- 22,48 ----=0A= =0A= #include "k5-int.h" /* we need krb5_context::clockskew */=0A= #include =0A= + #ifdef _WIN32=0A= + #include =0A= + #include =0A= + #include "com_err.h"=0A= + #else /* !_WIN32 */=0A= #include =0A= #include =0A= #include =0A= + #endif /* _WIN32 */=0A= #include =0A= #include "krb524.h"=0A= =0A= + #ifdef _WIN32=0A= + int krb_create_ticket(KTEXT,unsigned char,char *,char *,=0A= + char *,long,char *,short,long,char *,=0A= + char *,C_Block);=0A= + int krb_cr_tkt_krb5(KTEXT,unsigned char,char *,char *,=0A= + char *,long,char *,short,long,char *,=0A= + char *,krb5_keyblock *);=0A= + #endif=0A= + =0A= /* rather than copying the cmu code, these values are derived from=0A= a calculation based on the table and comments found there.=0A= the expression (in elisp) is:=0A= ***************=0A= *** 54,60 ****=0A= * Convert a v5 ticket for server to a v4 ticket, using service = key=0A= * skey for both.=0A= */=0A= ! int krb524_convert_tkt_skey(context, v5tkt, v4tkt, v5_skey, = v4_skey,=0A= saddr)=0A= krb5_context context;=0A= krb5_ticket *v5tkt;=0A= --- 69,75 ----=0A= * Convert a v5 ticket for server to a v4 ticket, using service = key=0A= * skey for both.=0A= */=0A= ! int KRB5_DLLIMP krb524_convert_tkt_skey(context, v5tkt, v4tkt, = v5_skey, v4_skey,=0A= saddr)=0A= krb5_context context;=0A= krb5_ticket *v5tkt;=0A= *** src/krb524/conv_creds.c Thu Feb 28 01:15:27 2002=0A= --- /h/krb5-1.2.4/src/krb524/conv_creds.c Tue Mar 26 14:51:28 2002=0A= ***************=0A= *** 20,35 ****=0A= * PERFORMANCE OF THIS SOFTWARE.=0A= */=0A= =0A= #include "krb5.h"=0A= #include =0A= #include =0A= #include =0A= #include =0A= #include =0A= =0A= #include "krb524.h"=0A= =0A= ! krb5_error_code krb524_convert_creds_plain=0A= KRB5_PROTOTYPE((krb5_context context, krb5_creds *v5creds, =0A= CREDENTIALS *v4creds));=0A= =0A= --- 20,45 ----=0A= * PERFORMANCE OF THIS SOFTWARE.=0A= */=0A= =0A= + #ifdef _WIN32=0A= + #include =0A= + #include =0A= + #endif /* _WIN32 */=0A= #include "krb5.h"=0A= #include =0A= + #ifndef _WIN32=0A= #include =0A= #include =0A= #include =0A= + #endif /* _WIN32 */=0A= #include =0A= =0A= #include "krb524.h"=0A= =0A= ! #ifdef _WIN32=0A= ! #include =0A= ! #endif /* _WIN32 */=0A= ! =0A= ! krb5_error_code KRB5_DLLIMP krb524_convert_creds_plain=0A= KRB5_PROTOTYPE((krb5_context context, krb5_creds *v5creds, =0A= CREDENTIALS *v4creds));=0A= =0A= ***************=0A= *** 37,43 ****=0A= KRB5_PROTOTYPE((krb5_context context, const krb5_data *message,=0A= krb5_data *realm, krb5_data *reply));=0A= =0A= ! krb5_error_code=0A= krb524_convert_creds_kdc(context, v5creds, v4creds)=0A= krb5_context context;=0A= krb5_creds *v5creds;=0A= --- 47,53 ----=0A= KRB5_PROTOTYPE((krb5_context context, const krb5_data *message,=0A= krb5_data *realm, krb5_data *reply));=0A= =0A= ! krb5_error_code KRB5_DLLIMP=0A= krb524_convert_creds_kdc(context, v5creds, v4creds)=0A= krb5_context context;=0A= krb5_creds *v5creds;=0A= ***************=0A= *** 113,119 ****=0A= }=0A= #endif=0A= =0A= ! krb5_error_code=0A= krb524_convert_creds_plain(context, v5creds, v4creds)=0A= krb5_context context;=0A= krb5_creds *v5creds;=0A= --- 123,129 ----=0A= }=0A= #endif=0A= =0A= ! krb5_error_code KRB5_DLLIMP=0A= krb524_convert_creds_plain(context, v5creds, v4creds)=0A= krb5_context context;=0A= krb5_creds *v5creds;=0A= *** src/krb524/conv_princ.c Thu Feb 28 01:15:27 2002=0A= --- /h/krb5-1.2.4/src/krb524/conv_princ.c Wed Mar 20 17:00:55 2002=0A= ***************=0A= *** 22,31 ****=0A= --- 22,33 ----=0A= =0A= #include "krb5.h"=0A= #include =0A= + #ifndef _WIN32=0A= #include =0A= #include =0A= #include =0A= #include =0A= + #endif /* _WIN32 */=0A= =0A= #include =0A= =0A= Only in /h/krb5-1.2.4/src/krb524: conv_princ.obj=0A= diff -r -c src/krb524/encode.c /h/krb5-1.2.4/src/krb524/encode.c=0A= *** src/krb524/encode.c Thu Feb 28 01:15:27 2002=0A= --- /h/krb5-1.2.4/src/krb524/encode.c Tue Mar 26 14:21:46 2002=0A= ***************=0A= *** 24,33 ****=0A= --- 24,35 ----=0A= #include =0A= #include =0A= #include =0A= + #ifndef _WIN32=0A= #include =0A= #include =0A= #include =0A= #include =0A= + #endif /* _WIN32 */=0A= =0A= #include =0A= #include "krb524.h"=0A= ***************=0A= *** 72,78 ****=0A= return encode_bytes(out, outlen, (char *) &nv, sizeof(nv));=0A= }=0A= =0A= ! int encode_v4tkt(v4tkt, buf, encoded_len)=0A= KTEXT_ST *v4tkt;=0A= char *buf;=0A= int *encoded_len;=0A= --- 74,80 ----=0A= return encode_bytes(out, outlen, (char *) &nv, sizeof(nv));=0A= }=0A= =0A= ! int KRB5_DLLIMP encode_v4tkt(v4tkt, buf, encoded_len)=0A= KTEXT_ST *v4tkt;=0A= char *buf;=0A= int *encoded_len;=0A= *** src/krb524/k524init.c Thu Feb 28 01:15:27 2002=0A= --- /h/krb5-1.2.4/src/krb524/k524init.c Mon Mar 25 12:00:12 2002=0A= ***************=0A= *** 25,41 ****=0A= --- 25,51 ----=0A= =0A= #include =0A= #include =0A= + #ifndef _WIN32=0A= #include =0A= + #endif /* _WIN32 */=0A= #include =0A= + #ifndef _WIN32=0A= #include =0A= #include =0A= #include =0A= + #else=0A= + #include =0A= + #endif /* _WIN32 */=0A= =0A= #include =0A= #include "krb524.h"=0A= =0A= + #ifndef _WIN32=0A= extern int optind;=0A= extern char *optarg;=0A= + #else=0A= + #include =0A= + #endif=0A= =0A= int main(argc, argv)=0A= int argc;=0A= *** src/krb524/krb524.h Thu Feb 28 01:15:27 2002=0A= --- /h/krb5-1.2.4/src/krb524/krb524.h Tue Mar 26 14:32:24 2002=0A= ***************=0A= *** 26,43 ****=0A= #define KRB524_SERVICE "krb524"=0A= #define KRB524_PORT 4444=0A= =0A= #include "krb524_err.h"=0A= =0A= extern int krb524_debug;=0A= =0A= ! int krb524_convert_tkt_skey=0A= KRB5_PROTOTYPE((krb5_context context, krb5_ticket *v5tkt, KTEXT_ST = *v4tkt, =0A= krb5_keyblock *v5_skey, krb5_keyblock *v4_skey,=0A= struct sockaddr_in *saddr));=0A= =0A= /* conv_princ.c */=0A= =0A= ! int krb524_convert_princs=0A= KRB5_PROTOTYPE((krb5_context context, krb5_principal client, =0A= krb5_principal server, char *pname, =0A= char *pinst, char *prealm, char *sname, char *sinst));=0A= --- 26,47 ----=0A= #define KRB524_SERVICE "krb524"=0A= #define KRB524_PORT 4444=0A= =0A= + #ifndef _WIN32=0A= + #include =0A= + #endif=0A= + =0A= #include "krb524_err.h"=0A= =0A= extern int krb524_debug;=0A= =0A= ! int KRB5_DLLIMP krb524_convert_tkt_skey=0A= KRB5_PROTOTYPE((krb5_context context, krb5_ticket *v5tkt, KTEXT_ST = *v4tkt, =0A= krb5_keyblock *v5_skey, krb5_keyblock *v4_skey,=0A= struct sockaddr_in *saddr));=0A= =0A= /* conv_princ.c */=0A= =0A= ! int KRB5_DLLIMP krb524_convert_princs=0A= KRB5_PROTOTYPE((krb5_context context, krb5_principal client, =0A= krb5_principal server, char *pname, =0A= char *pinst, char *prealm, char *sname, char *sinst));=0A= ***************=0A= *** 48,54 ****=0A= KRB5_PROTOTYPE((krb5_context context, krb5_creds *v5creds, =0A= CREDENTIALS *v4creds, struct sockaddr *saddr));=0A= =0A= ! int krb524_convert_creds_kdc=0A= KRB5_PROTOTYPE((krb5_context context, krb5_creds *v5creds, =0A= CREDENTIALS *v4creds));=0A= =0A= --- 52,58 ----=0A= KRB5_PROTOTYPE((krb5_context context, krb5_creds *v5creds, =0A= CREDENTIALS *v4creds, struct sockaddr *saddr));=0A= =0A= ! int KRB5_DLLIMP krb524_convert_creds_kdc=0A= KRB5_PROTOTYPE((krb5_context context, krb5_creds *v5creds, =0A= CREDENTIALS *v4creds));=0A= =0A= ***************=0A= *** 60,66 ****=0A= =0A= /* encode.c */=0A= =0A= ! int encode_v4tkt=0A= KRB5_PROTOTYPE((KTEXT_ST *v4tkt, char *buf, int *encoded_len));=0A= =0A= int decode_v4tkt=0A= --- 64,70 ----=0A= =0A= /* encode.c */=0A= =0A= ! int KRB5_DLLIMP encode_v4tkt=0A= KRB5_PROTOTYPE((KTEXT_ST *v4tkt, char *buf, int *encoded_len));=0A= =0A= int decode_v4tkt=0A= ***************=0A= *** 69,75 ****=0A= =0A= /* misc.c */=0A= =0A= ! void krb524_init_ets=0A= KRB5_PROTOTYPE((krb5_context context));=0A= =0A= /* sendmsg.c */=0A= --- 73,79 ----=0A= =0A= /* misc.c */=0A= =0A= ! void KRB5_DLLIMP krb524_init_ets=0A= KRB5_PROTOTYPE((krb5_context context));=0A= =0A= /* sendmsg.c */=0A= *** src/krb524/krb524d.c Thu Feb 28 01:15:27 2002=0A= --- /h/krb5-1.2.4/src/krb524/krb524d.c Wed Apr 3 16:15:12 2002=0A= ***************=0A= *** 29,39 ****=0A= --- 29,44 ----=0A= #include =0A= #endif=0A= #include =0A= + #ifndef _WIN32=0A= #include =0A= #include =0A= #include =0A= #include =0A= #include =0A= + #else=0A= + #include =0A= + #include =0A= + #endif=0A= =0A= #include =0A= #include "krb524.h"=0A= ***************=0A= *** 51,56 ****=0A= --- 56,71 ----=0A= char *keytab =3D NULL;=0A= krb5_keytab kt;=0A= =0A= + #if defined(_WIN32) && defined(WIN32SVC)=0A= + SERVICE_STATUS ssServiceStatus;=0A= + SERVICE_STATUS_HANDLE sshServiceStatus;=0A= + VOID ServiceCtrlHandler(DWORD);=0A= + #define WIN32SVCRTN return;=0A= + #endif=0A= + #ifndef WIN32SVCRTN=0A= + #define WIN32SVCRTN=0A= + #endif=0A= + =0A= void init_keytab(), init_master(), cleanup_and_exit();=0A= krb5_error_code do_connection(), lookup_service_key(), = kdc_get_server_key();=0A= =0A= ***************=0A= *** 61,70 ****=0A= --- 76,112 ----=0A= cleanup_and_exit(1, context);=0A= }=0A= =0A= + #ifndef _WIN32=0A= RETSIGTYPE request_exit(signo)=0A= int signo;=0A= + #else=0A= + #ifndef WIN32SVC=0A= + BOOL WINAPI request_exit(DWORD signo)=0A= + #else=0A= + void request_exit(void)=0A= + #endif=0A= + #endif=0A= {=0A= + #ifdef _WIN32=0A= + #ifndef WIN32SVC=0A= + switch (signo)=0A= + {=0A= + case CTRL_CLOSE_EVENT:=0A= + case CTRL_C_EVENT:=0A= + #endif=0A= + #endif=0A= signalled =3D 1;=0A= + #ifdef _WIN32=0A= + #ifndef WIN32SVC=0A= + return(TRUE);=0A= + break;=0A= + default:=0A= + return(FALSE);=0A= + }=0A= + #else=0A= + Sleep(TIMEOUT*1000);=0A= + #endif=0A= + #endif=0A= }=0A= =0A= #if 0=0A= ***************=0A= *** 79,87 ****=0A= --- 121,133 ----=0A= }=0A= #endif=0A= =0A= + #ifndef WIN32SVC=0A= int main(argc, argv)=0A= int argc;=0A= char **argv;=0A= + #else=0A= + VOID ServiceMain(DWORD argc, LPTSTR *argv)=0A= + #endif=0A= {=0A= struct servent *serv;=0A= struct sockaddr_in saddr;=0A= ***************=0A= *** 92,101 ****=0A= --- 138,171 ----=0A= krb5_error_code retval;=0A= kadm5_config_params config_params;=0A= =0A= + #if defined(_WIN32) && defined(WIN32SVC)=0A= + ssServiceStatus.dwServiceType =3D = SERVICE_WIN32_OWN_PROCESS; =0A= + ssServiceStatus.dwCurrentState =3D SERVICE_START_PENDING; = =0A= + ssServiceStatus.dwControlsAccepted =3D SERVICE_ACCEPT_STOP; = =0A= + ssServiceStatus.dwWin32ExitCode =3D 0; =0A= + ssServiceStatus.dwServiceSpecificExitCode =3D 0; =0A= + ssServiceStatus.dwCheckPoint =3D 0; =0A= + ssServiceStatus.dwWaitHint =3D 0;=0A= + =0A= + sshServiceStatus =3D RegisterServiceCtrlHandler("krb524",=0A= + (LPHANDLER_FUNCTION)ServiceCtrlHandler);=0A= + if (sshServiceStatus =3D=3D (SERVICE_STATUS_HANDLE)0) return;=0A= + #endif=0A= + =0A= retval =3D krb5_init_context(&context);=0A= if (retval) {=0A= + #ifndef WIN32SVC=0A= com_err(argv[0], retval, "while initializing krb5");=0A= exit(1);=0A= + #else=0A= + ssServiceStatus.dwCurrentState =3D SERVICE_STOPPED; =0A= + ssServiceStatus.dwCheckPoint =3D 0; =0A= + ssServiceStatus.dwWaitHint =3D 0; =0A= + ssServiceStatus.dwWin32ExitCode =3D retval; =0A= + ssServiceStatus.dwServiceSpecificExitCode =3D retval; =0A= + SetServiceStatus (sshServiceStatus, &ssServiceStatus); =0A= + return;=0A= + #endif=0A= }=0A= =0A= whoami =3D ((whoami =3D strrchr(argv[0], '/')) ? whoami + 1 : = argv[0]);=0A= ***************=0A= *** 103,110 ****=0A= argv++; argc--;=0A= use_master =3D use_keytab =3D nofork =3D 0;=0A= config_params.mask =3D 0;=0A= ! =0A= while (argc) {=0A= if (strncmp(*argv, "-k", 2) =3D=3D 0)=0A= use_keytab =3D 1;=0A= else if (strncmp(*argv, "-m", 2) =3D=3D 0)=0A= --- 173,181 ----=0A= argv++; argc--;=0A= use_master =3D use_keytab =3D nofork =3D 0;=0A= config_params.mask =3D 0;=0A= ! =0A= while (argc) {=0A= + #ifndef _WIN32 =0A= if (strncmp(*argv, "-k", 2) =3D=3D 0)=0A= use_keytab =3D 1;=0A= else if (strncmp(*argv, "-m", 2) =3D=3D 0)=0A= ***************=0A= *** 120,137 ****=0A= }=0A= else=0A= break;=0A= argv++; argc--;=0A= }=0A= if (argc || use_keytab + use_master > 1 ||=0A= use_keytab + use_master =3D=3D 0) {=0A= use_keytab =3D use_master =3D 0;=0A= usage(context);=0A= }=0A= ! =0A= signal(SIGINT, request_exit);=0A= signal(SIGHUP, SIG_IGN);=0A= signal(SIGTERM, request_exit);=0A= ! =0A= if (use_keytab)=0A= init_keytab(context);=0A= if (use_master)=0A= --- 191,219 ----=0A= }=0A= else=0A= break;=0A= + #endif=0A= argv++; argc--;=0A= }=0A= + #ifdef _WIN32=0A= + use_keytab =3D 1;=0A= + use_master =3D 0;=0A= + nofork =3D 1;=0A= + #endif=0A= + =0A= if (argc || use_keytab + use_master > 1 ||=0A= use_keytab + use_master =3D=3D 0) {=0A= use_keytab =3D use_master =3D 0;=0A= usage(context);=0A= }=0A= ! #ifndef _WIN32 =0A= signal(SIGINT, request_exit);=0A= signal(SIGHUP, SIG_IGN);=0A= signal(SIGTERM, request_exit);=0A= ! #else=0A= ! #ifndef WIN32SVC=0A= ! SetConsoleCtrlHandler(request_exit,TRUE);=0A= ! #endif=0A= ! #endif=0A= if (use_keytab)=0A= init_keytab(context);=0A= if (use_master)=0A= ***************=0A= *** 142,165 ****=0A= --- 224,269 ----=0A= saddr.sin_addr.s_addr =3D INADDR_ANY;=0A= serv =3D getservbyname(KRB524_SERVICE, "udp");=0A= if (serv =3D=3D NULL) {=0A= + #ifndef WIN32SVC=0A= com_err(whoami, 0, "service entry not found, using %d", = KRB524_PORT);=0A= + #endif=0A= saddr.sin_port =3D htons(KRB524_PORT);=0A= } else=0A= saddr.sin_port =3D serv->s_port;=0A= =0A= if ((s =3D socket(AF_INET, SOCK_DGRAM, 0)) < 0) {=0A= + #ifndef WIN32SVC=0A= com_err(whoami, errno, "creating main socket");=0A= + #endif=0A= cleanup_and_exit(1, context);=0A= + WIN32SVCRTN=0A= }=0A= if ((ret =3D bind(s, (struct sockaddr *) &saddr,=0A= sizeof(struct sockaddr_in))) < 0) {=0A= + #ifndef WIN32SVC=0A= com_err(whoami, errno, "binding main socket");=0A= + #endif=0A= cleanup_and_exit(1, context);=0A= + WIN32SVCRTN=0A= }=0A= + #ifndef _WIN32=0A= if (!nofork && daemon(0, 0)) {=0A= com_err(whoami, errno, "while detaching from tty");=0A= cleanup_and_exit(1, context);=0A= + WIN32SVCRTN=0A= }=0A= + #else=0A= + #ifdef WIN32SVC=0A= + ssServiceStatus.dwCurrentState =3D SERVICE_RUNNING; =0A= + ssServiceStatus.dwCheckPoint =3D 0; =0A= + ssServiceStatus.dwWaitHint =3D 0; =0A= + =0A= + if (!SetServiceStatus (sshServiceStatus, &ssServiceStatus)) =0A= + { =0A= + return;=0A= + }=0A= + #endif=0A= + #endif=0A= =0A= while (1) {=0A= FD_ZERO(&rfds);=0A= ***************=0A= *** 168,197 ****=0A= timeout.tv_usec =3D 0;=0A= =0A= ret =3D select(s+1, &rfds, NULL, NULL, &timeout);=0A= ! if (signalled)=0A= cleanup_and_exit(0, context);=0A= else if (ret =3D=3D 0) {=0A= if (use_master) {=0A= ret =3D kadm5_flush(handle);=0A= if (ret && ret !=3D KRB5_KDB_DBNOTINITED) {=0A= com_err(whoami, ret, "closing kerberos database");=0A= cleanup_and_exit(1, context);=0A= }=0A= }=0A= } else if (ret < 0 && errno !=3D EINTR) {=0A= com_err(whoami, errno, "in select");=0A= cleanup_and_exit(1, context);=0A= } else if (FD_ISSET(s, &rfds)) {=0A= if (debug)=0A= printf("received packet\n");=0A= if ((ret =3D do_connection(s, context))) {=0A= com_err(whoami, ret, "handling packet");=0A= }=0A= } else=0A= com_err(whoami, 0, "impossible situation occurred!");=0A= }=0A= =0A= cleanup_and_exit(0, context);=0A= }=0A= =0A= void cleanup_and_exit(ret, context)=0A= --- 272,320 ----=0A= timeout.tv_usec =3D 0;=0A= =0A= ret =3D select(s+1, &rfds, NULL, NULL, &timeout);=0A= ! if (signalled) {=0A= cleanup_and_exit(0, context);=0A= + WIN32SVCRTN=0A= + }=0A= else if (ret =3D=3D 0) {=0A= if (use_master) {=0A= + #ifndef _WIN32=0A= ret =3D kadm5_flush(handle);=0A= if (ret && ret !=3D KRB5_KDB_DBNOTINITED) {=0A= com_err(whoami, ret, "closing kerberos database");=0A= cleanup_and_exit(1, context);=0A= + WIN32SVCRTN=0A= }=0A= + #endif=0A= }=0A= + #ifndef _WIN32=0A= } else if (ret < 0 && errno !=3D EINTR) {=0A= + #else=0A= + } else if (ret =3D=3D SOCKET_ERROR && WSAGetLastError() !=3D = WSAEINTR) {=0A= + #endif=0A= + #ifndef WIN32SVC=0A= com_err(whoami, errno, "in select");=0A= + #endif=0A= cleanup_and_exit(1, context);=0A= + WIN32SVCRTN=0A= } else if (FD_ISSET(s, &rfds)) {=0A= if (debug)=0A= printf("received packet\n");=0A= if ((ret =3D do_connection(s, context))) {=0A= + #ifndef WIN32SVC=0A= com_err(whoami, ret, "handling packet");=0A= + #endif=0A= }=0A= + #ifndef WIN32SVC=0A= } else=0A= com_err(whoami, 0, "impossible situation occurred!");=0A= + #else=0A= + }=0A= + #endif=0A= }=0A= =0A= cleanup_and_exit(0, context);=0A= + WIN32SVCRTN=0A= }=0A= =0A= void cleanup_and_exit(ret, context)=0A= ***************=0A= *** 199,209 ****=0A= --- 322,336 ----=0A= krb5_context context;=0A= {=0A= if (use_master) {=0A= + #ifndef _WIN32=0A= (void) kadm5_destroy(handle);=0A= + #endif=0A= }=0A= if (use_keytab && kt) krb5_kt_close(context, kt);=0A= krb5_free_context(context);=0A= + #ifndef WIN32SVC=0A= exit(ret);=0A= + #endif=0A= }=0A= =0A= void init_keytab(context)=0A= ***************=0A= *** 213,220 ****=0A= --- 340,350 ----=0A= use_keytab =3D 0;=0A= if (keytab =3D=3D NULL) {=0A= if ((ret =3D krb5_kt_default(context, &kt))) {=0A= + #ifndef WIN32SVC=0A= com_err(whoami, ret, "while opening default keytab");=0A= + #endif=0A= cleanup_and_exit(1, context);=0A= + WIN32SVCRTN=0A= }=0A= } else {=0A= if ((ret =3D krb5_kt_resolve(context, keytab, &kt))) {=0A= ***************=0A= *** 230,238 ****=0A= krb5_context context;=0A= kadm5_config_params *params;=0A= {=0A= int ret;=0A= ! =0A= use_master =3D 0;=0A= if ((ret =3D kadm5_init(whoami, NULL, KADM5_ADMIN_SERVICE, = params,=0A= KADM5_STRUCT_VERSION, KADM5_API_VERSION_2,=0A= &handle))) {=0A= --- 360,370 ----=0A= krb5_context context;=0A= kadm5_config_params *params;=0A= {=0A= + #ifndef _WIN32=0A= int ret;=0A= ! #endif=0A= use_master =3D 0;=0A= + #ifndef _WIN32=0A= if ((ret =3D kadm5_init(whoami, NULL, KADM5_ADMIN_SERVICE, = params,=0A= KADM5_STRUCT_VERSION, KADM5_API_VERSION_2,=0A= &handle))) {=0A= ***************=0A= *** 240,249 ****=0A= --- 372,386 ----=0A= cleanup_and_exit(1, context);=0A= }=0A= use_master =3D 1; /* now safe to close kadm5 */=0A= + #endif=0A= }=0A= =0A= krb5_error_code do_connection(s, context)=0A= + #ifndef _WIN32=0A= int s;=0A= + #else=0A= + SOCKET s;=0A= + #endif=0A= krb5_context context;=0A= {=0A= struct sockaddr saddr;=0A= ***************=0A= *** 261,277 ****=0A= --- 398,431 ----=0A= msgdata.data =3D msgbuf;=0A= msgdata.length =3D MSGSIZE;=0A= =0A= + memset(msgbuf,0,MSGSIZE);=0A= + =0A= saddrlen =3D sizeof(struct sockaddr);=0A= ret =3D recvfrom(s, msgdata.data, msgdata.length, 0, &saddr, = &saddrlen);=0A= + #ifndef _WIN32=0A= if (ret < 0) {=0A= + #else=0A= + if (ret =3D=3D SOCKET_ERROR) {=0A= + #endif=0A= /* if recvfrom fails, we probably don't have a valid saddr to = =0A= use for the reply, so don't even try to respond. */=0A= + #ifndef _WIN32=0A= return errno;=0A= + #else=0A= + if (debug)=0A= + printf("recvfrom failed. Error %d\n",WSAGetLastError());=0A= + return WSAGetLastError();=0A= + #endif=0A= }=0A= if (debug)=0A= + {=0A= printf("message received\n");=0A= + printf("Data size is %d\n",ret);=0A= + }=0A= =0A= if ((ret =3D decode_krb5_ticket(&msgdata, &v5tkt))) {=0A= + if (debug)=0A= + printf("ret is %d\n",ret);=0A= switch (ret) {=0A= case KRB5KDC_ERR_BAD_PVNO:=0A= case ASN1_MISPLACED_FIELD:=0A= ***************=0A= *** 279,291 ****=0A= case ASN1_BAD_ID:=0A= case KRB5_BADMSGTYPE:=0A= /* don't even answer parse errors */=0A= return ret;=0A= break;=0A= default:=0A= /* try and recognize our own error packet */=0A= if (msgdata.length =3D=3D sizeof(int))=0A= ! return KRB5_BADMSGTYPE;=0A= else=0A= goto error;=0A= }=0A= }=0A= --- 433,453 ----=0A= case ASN1_BAD_ID:=0A= case KRB5_BADMSGTYPE:=0A= /* don't even answer parse errors */=0A= + if (debug)=0A= + printf("decode_krb5_ticket error\n");=0A= return ret;=0A= break;=0A= default:=0A= /* try and recognize our own error packet */=0A= if (msgdata.length =3D=3D sizeof(int))=0A= ! {=0A= ! if (debug)=0A= ! printf("msgdata.length error\n");=0A= ! return KRB5_BADMSGTYPE;=0A= ! }=0A= else=0A= + if (debug)=0A= + printf("Going to error\n");=0A= goto error;=0A= }=0A= }=0A= ***************=0A= *** 337,342 ****=0A= --- 499,508 ----=0A= printf("v4 credentials encoded\n");=0A= =0A= error:=0A= + =0A= + if (debug)=0A= + printf("Creating reply\n");=0A= + =0A= /* create the reply */=0A= p =3D msgdata.data;=0A= msgdata.length =3D 0;=0A= ***************=0A= *** 347,353 ****=0A= --- 513,523 ----=0A= msgdata.length +=3D sizeof(int);=0A= =0A= if (ret)=0A= + {=0A= + if (debug)=0A= + printf("Jumping to write_msg\n");=0A= goto write_msg;=0A= + }=0A= =0A= n =3D htonl(v4kvno);=0A= memcpy(p, (char *) &n, sizeof(int));=0A= ***************=0A= *** 359,369 ****=0A= --- 529,547 ----=0A= msgdata.length +=3D tktdata.length;=0A= =0A= write_msg:=0A= + =0A= + if (debug)=0A= + printf("Sending reply\n");=0A= + =0A= if (ret)=0A= (void) sendto(s, msgdata.data, msgdata.length, 0, &saddr, = saddrlen);=0A= else=0A= if (sendto(s, msgdata.data, msgdata.length, 0, &saddr, = saddrlen)<0)=0A= + #ifndef _WIN32=0A= ret =3D errno;=0A= + #else=0A= + ret =3D WSAGetLastError();=0A= + #endif=0A= if (debug)=0A= printf("reply written\n");=0A= /* If we have keys to clean up, do so.*/=0A= ***************=0A= *** 372,378 ****=0A= if (v4_service_key.contents)=0A= krb5_free_keyblock_contents(context, &v4_service_key);=0A= if (v5tkt)=0A= ! krb5_free_ticket(context, v5tkt);=0A= =0A= =0A= return ret;=0A= --- 550,559 ----=0A= if (v4_service_key.contents)=0A= krb5_free_keyblock_contents(context, &v4_service_key);=0A= if (v5tkt)=0A= ! {=0A= ! krb5_free_ticket(context, v5tkt);=0A= ! v5tkt =3D 0;=0A= ! }=0A= =0A= =0A= return ret;=0A= ***************=0A= *** 406,416 ****=0A= --- 587,600 ----=0A= krb5_kt_free_entry(context, &entry);=0A= return 0;=0A= } else if (use_master) {=0A= + #ifndef _WIN32=0A= return kdc_get_server_key(context, p, key, kvnop, ktype, kvno);=0A= + #endif=0A= }=0A= return 0;=0A= }=0A= =0A= + #ifndef _WIN32=0A= krb5_error_code kdc_get_server_key(context, service, key, kvnop, = ktype, kvno)=0A= krb5_context context;=0A= krb5_principal service;=0A= ***************=0A= *** 453,455 ****=0A= --- 637,685 ----=0A= kadm5_free_principal_ent(handle, &server);=0A= return ret;=0A= }=0A= + #else=0A= + #ifdef WIN32SVC=0A= + void main(void) {=0A= + =0A= + SERVICE_TABLE_ENTRY steDispatchTable[] =3D=0A= + {=0A= + { "krb524", (LPSERVICE_MAIN_FUNCTION)ServiceMain },=0A= + { NULL, NULL }=0A= + };=0A= + =0A= + StartServiceCtrlDispatcher(steDispatchTable);=0A= + }=0A= + =0A= + VOID ServiceCtrlHandler(DWORD dwOpCode) {=0A= + =0A= + switch (dwOpCode) {=0A= + case SERVICE_CONTROL_STOP:=0A= + =0A= + ssServiceStatus.dwWin32ExitCode =3D 0; =0A= + ssServiceStatus.dwCurrentState =3D SERVICE_STOP_PENDING;=0A= + ssServiceStatus.dwCheckPoint =3D 0; =0A= + ssServiceStatus.dwWaitHint =3D 60000; =0A= + =0A= + SetServiceStatus(sshServiceStatus, =0A= + &ssServiceStatus);=0A= + =0A= + request_exit();=0A= + =0A= + ssServiceStatus.dwWin32ExitCode =3D 0; =0A= + ssServiceStatus.dwCurrentState =3D SERVICE_STOPPED; =0A= + ssServiceStatus.dwCheckPoint =3D 0; =0A= + ssServiceStatus.dwWaitHint =3D 0; =0A= + =0A= + SetServiceStatus(sshServiceStatus, =0A= + &ssServiceStatus);=0A= + return;=0A= + case SERVICE_CONTROL_INTERROGATE:=0A= + default:=0A= + ;;=0A= + }=0A= + =0A= + SetServiceStatus(sshServiceStatus,&ssServiceStatus);=0A= + return;=0A= + }=0A= + #endif=0A= + #endif=0A= *** src/krb524/misc.c Thu Feb 28 01:15:27 2002=0A= --- /h/krb5-1.2.4/src/krb524/misc.c Tue Mar 26 14:22:31 2002=0A= ***************=0A= *** 23,36 ****=0A= #include =0A= #include =0A= #include =0A= #include =0A= #include =0A= #include =0A= =0A= #include =0A= #include "krb524.h"=0A= =0A= ! void krb524_init_ets(context)=0A= krb5_context context;=0A= {=0A= initialize_k524_error_table();=0A= --- 23,38 ----=0A= #include =0A= #include =0A= #include =0A= + #ifndef _WIN32=0A= #include =0A= #include =0A= #include =0A= + #endif=0A= =0A= #include =0A= #include "krb524.h"=0A= =0A= ! void KRB5_DLLIMP krb524_init_ets(context)=0A= krb5_context context;=0A= {=0A= initialize_k524_error_table();=0A= *** src/krb524/sendmsg.c Thu Feb 28 01:15:27 2002=0A= --- /h/krb5-1.2.4/src/krb524/sendmsg.c Wed Mar 20 17:00:55 2002=0A= ***************=0A= *** 30,40 ****=0A= --- 30,51 ----=0A= #define NEED_LOWLEVEL_IO=0A= #include "k5-int.h"=0A= =0A= + #ifndef _WIN32=0A= #include =0A= + #endif /* _WIN32 */=0A= #include =0A= #include =0A= =0A= + #ifndef _WIN32=0A= #include =0A= + #else=0A= + krb5_error_code krb5_locate_kdc=0A= + PROTOTYPE((krb5_context,=0A= + const krb5_data *,=0A= + struct sockaddr **,=0A= + int *,=0A= + int));=0A= + #endif=0A= =0A= #ifdef _AIX=0A= #include =0A= ***************=0A= *** 88,94 ****=0A= * find KDC location(s) for realm=0A= */=0A= =0A= ! if ((retval =3D krb5_locate_kdc(context, realm, &addr, &naddr, = NULL, NULL)))=0A= return retval;=0A= if (naddr =3D=3D 0)=0A= return KRB5_REALM_UNKNOWN;=0A= --- 99,105 ----=0A= * find KDC location(s) for realm=0A= */=0A= =0A= ! if ((retval =3D krb5_locate_kdc(context, realm, &addr, &naddr, = 0)))=0A= return retval;=0A= if (naddr =3D=3D 0)=0A= return KRB5_REALM_UNKNOWN;=0A= *** src/lib/kadm5/admin.h Thu Feb 28 01:15:33 2002=0A= --- /h/krb5-1.2.4/src/lib/kadm5/admin.h Wed Mar 20 17:00:56 2002=0A= ***************=0A= *** 38,44 ****=0A= --- 38,46 ----=0A= #endif=0A= =0A= #include =0A= + #ifndef _WIN32=0A= #include =0A= + #endif=0A= #include =0A= #include =0A= #include =0A= ------_=_NextPart_000_01C1DB23.744C4BA0--