(kerberos4_is): send the peer address to krb_rd_req

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@3762 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
1997-11-03 06:12:14 +00:00
parent 2ce28060ac
commit 56fa88a823

View File

@@ -267,9 +267,11 @@ kerberos4_send_oneway(Authenticator *ap)
void void
kerberos4_is(Authenticator *ap, unsigned char *data, int cnt) kerberos4_is(Authenticator *ap, unsigned char *data, int cnt)
{ {
struct sockaddr_in addr;
char realm[REALM_SZ]; char realm[REALM_SZ];
char instance[INST_SZ]; char instance[INST_SZ];
int r; int r;
int addr_len;
if (cnt-- < 1) if (cnt-- < 1)
return; return;
@@ -290,8 +292,16 @@ kerberos4_is(Authenticator *ap, unsigned char *data, int cnt)
printf("\r\n"); printf("\r\n");
} }
k_getsockinst(0, instance, sizeof(instance)); k_getsockinst(0, instance, sizeof(instance));
addr_len = sizeof(addr);
if(getpeername(0, (struct sockaddr *)&addr, &addr_len) < 0) {
if(auth_debug_mode)
printf("getpeername failed\r\n");
Data(ap, KRB_REJECT, "getpeername failed", -1);
auth_finished(ap, AUTH_REJECT);
return;
}
r = krb_rd_req(&auth, KRB_SERVICE_NAME, r = krb_rd_req(&auth, KRB_SERVICE_NAME,
instance, 0, &adat, ""); instance, addr.sin_addr.s_addr, &adat, "");
if (r) { if (r) {
if (auth_debug_mode) if (auth_debug_mode)
printf("Kerberos failed him as %s\r\n", name); printf("Kerberos failed him as %s\r\n", name);