(krb5_auth_con_setaddrs_from_fd): simplify by using `struct sockaddr_storage'

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6525 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
1999-07-24 18:41:57 +00:00
parent d377c71ac6
commit 01ffcdd1c2

View File

@@ -141,27 +141,13 @@ krb5_auth_con_setaddrs_from_fd (krb5_context context,
krb5_error_code ret; krb5_error_code ret;
krb5_address local_k_address, remote_k_address; krb5_address local_k_address, remote_k_address;
krb5_address *lptr = NULL, *rptr = NULL; krb5_address *lptr = NULL, *rptr = NULL;
size_t max_sz = krb5_max_sockaddr_size (); struct sockaddr_storage ss_local, ss_remote;
char *buf1 = NULL, *buf2 = NULL; struct sockaddr *local = (struct sockaddr *)&ss_local;
struct sockaddr *local, *remote; struct sockaddr *remote = (struct sockaddr *)&ss_remote;
int len; int len;
buf1 = malloc(max_sz);
if (buf1 == NULL) {
ret = ENOMEM;
goto out;
}
local = (struct sockaddr *)buf1;
buf2 = malloc(max_sz);
if (buf2 == NULL) {
ret = ENOMEM;
goto out;
}
remote = (struct sockaddr *)buf2;
if (auth_context->local_address == NULL) { if (auth_context->local_address == NULL) {
len = max_sz; len = sizeof(ss_local);
if(getsockname(fd, local, &len) < 0) { if(getsockname(fd, local, &len) < 0) {
ret = errno; ret = errno;
goto out; goto out;
@@ -171,7 +157,7 @@ krb5_auth_con_setaddrs_from_fd (krb5_context context,
lptr = &local_k_address; lptr = &local_k_address;
} }
if (auth_context->remote_address == NULL) { if (auth_context->remote_address == NULL) {
len = max_sz; len = sizeof(ss_remote);
if(getpeername(fd, remote, &len) < 0) { if(getpeername(fd, remote, &len) < 0) {
ret = errno; ret = errno;
goto out; goto out;
@@ -189,8 +175,6 @@ out:
krb5_free_address (context, lptr); krb5_free_address (context, lptr);
if (rptr) if (rptr)
krb5_free_address (context, rptr); krb5_free_address (context, rptr);
free (buf1);
free (buf2);
return ret; return ret;
} }