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