version 1.6, 1999/09/29 21:14:16 |
version 1.7, 1999/09/30 05:11:29 |
|
|
} |
} |
|
|
memset(&sin, 0, sizeof(sin)); |
memset(&sin, 0, sizeof(sin)); |
#ifdef BROKEN_INET_ADDR |
|
sin.sin_addr.s_addr = inet_network(host); |
|
#else /* BROKEN_INET_ADDR */ |
|
sin.sin_addr.s_addr = inet_addr(host); |
sin.sin_addr.s_addr = inet_addr(host); |
#endif /* BROKEN_INET_ADDR */ |
|
if ((sin.sin_addr.s_addr & 0xffffffff) != 0xffffffff) |
if ((sin.sin_addr.s_addr & 0xffffffff) != 0xffffffff) |
{ |
{ |
/* It was a valid numeric host address. */ |
/* It was a valid numeric host address. */ |
|
|
|
|
/* Try to parse the host name as a numeric IP address. */ |
/* Try to parse the host name as a numeric IP address. */ |
memset(&sin, 0, sizeof(sin)); |
memset(&sin, 0, sizeof(sin)); |
#ifdef BROKEN_INET_ADDR |
|
sin.sin_addr.s_addr = inet_network(buf); |
|
#else /* BROKEN_INET_ADDR */ |
|
sin.sin_addr.s_addr = inet_addr(buf); |
sin.sin_addr.s_addr = inet_addr(buf); |
#endif /* BROKEN_INET_ADDR */ |
|
if ((sin.sin_addr.s_addr & 0xffffffff) != 0xffffffff) |
if ((sin.sin_addr.s_addr & 0xffffffff) != 0xffffffff) |
{ |
{ |
/* It was a valid numeric host address. */ |
/* It was a valid numeric host address. */ |
|
|
void auth_input_request_forwarding(struct passwd *pw) |
void auth_input_request_forwarding(struct passwd *pw) |
{ |
{ |
int pfd = get_permanent_fd(pw->pw_shell); |
int pfd = get_permanent_fd(pw->pw_shell); |
#ifdef HAVE_UMASK |
|
mode_t savedumask; |
mode_t savedumask; |
#endif /* HAVE_UMASK */ |
|
|
|
if (pfd < 0) |
if (pfd < 0) |
{ |
{ |
|
|
strncpy(sunaddr.sun_path, channel_forwarded_auth_socket_name, |
strncpy(sunaddr.sun_path, channel_forwarded_auth_socket_name, |
sizeof(sunaddr.sun_path)); |
sizeof(sunaddr.sun_path)); |
|
|
#ifdef HAVE_UMASK |
|
savedumask = umask(0077); |
savedumask = umask(0077); |
#endif /* HAVE_UMASK */ |
|
|
|
/* Temporarily use a privileged uid. */ |
/* Temporarily use a privileged uid. */ |
temporarily_use_uid(pw->pw_uid); |
temporarily_use_uid(pw->pw_uid); |
|
|
/* Restore the privileged uid. */ |
/* Restore the privileged uid. */ |
restore_uid(); |
restore_uid(); |
|
|
#ifdef HAVE_UMASK |
|
umask(savedumask); |
umask(savedumask); |
#endif /* HAVE_UMASK */ |
|
|
|
/* Start listening on the socket. */ |
/* Start listening on the socket. */ |
if (listen(sock, 5) < 0) |
if (listen(sock, 5) < 0) |