(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
	 Assar Westerlund
					Assar Westerlund