(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:
@@ -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);
|
||||||
|
Reference in New Issue
Block a user