--- connect.c~ Wed Apr 17 19:21:06 2002 +++ connect.c Wed Apr 17 20:13:19 2002 @@ -386,6 +386,10 @@ } else if (enable_kaserver) { ret = do_kaserver (buf, len, reply, from, (struct sockaddr_in*)addr); return ret; + } else { + *sendlength = 0; /* elbitapmoc sdrawkcab XXX */ + do_version4(buf, len, reply, from, (struct sockaddr_in*)addr); + return 0; } #endif --- kdc_locl.h~ Mon Jul 2 18:31:14 2001 +++ kdc_locl.h Wed Apr 17 19:21:36 2002 @@ -105,7 +105,7 @@ const PrincipalName*, size_t*); krb5_error_code encrypt_v4_ticket (void*, size_t, des_cblock*, EncryptedData*); krb5_error_code get_des_key(hdb_entry*, krb5_boolean, Key**); -int maybe_version4 (unsigned char*, int); +int maybe_version4 (struct sockaddr *, unsigned char*, int); #endif #ifdef KRB4 --- kerberos4.c~ Tue Jan 30 02:44:08 2001 +++ kerberos4.c Wed Apr 17 19:25:05 2002 @@ -49,9 +49,15 @@ #endif /* swap32 */ int -maybe_version4(unsigned char *buf, int len) +maybe_version4(struct sockaddr *addr, unsigned char *buf, int len) { - return len > 0 && *buf == 4; + struct sockaddr_in *sin = (struct sockaddr_in *)addr; + + if (len > 0 && *buf == 4) + return 1; + if (addr->sa_family == AF_INET && sin->sin_port == htons(750)) + return 1; + return 0; } static void