diff options
author | kris <kris@FreeBSD.org> | 2000-06-03 07:06:14 +0000 |
---|---|---|
committer | kris <kris@FreeBSD.org> | 2000-06-03 07:06:14 +0000 |
commit | 89aaaa3ccb5611c3b6708ebf93a81127e06a0748 (patch) | |
tree | 0c5dfc79a31d46ac31a17d26f02ba0e24030bf2a /crypto | |
parent | 7d32b42d5978a53f85e225a5eb61e6dc10d2f31f (diff) | |
parent | 10badcd8c786a973fe56a5b4fe4ea468245231e8 (diff) | |
download | FreeBSD-src-89aaaa3ccb5611c3b6708ebf93a81127e06a0748.zip FreeBSD-src-89aaaa3ccb5611c3b6708ebf93a81127e06a0748.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r61199,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/openssh/channels.c | 36 | ||||
-rw-r--r-- | crypto/openssh/channels.h | 6 |
2 files changed, 17 insertions, 25 deletions
diff --git a/crypto/openssh/channels.c b/crypto/openssh/channels.c index 5bf1e5b..871dcb8 100644 --- a/crypto/openssh/channels.c +++ b/crypto/openssh/channels.c @@ -17,7 +17,7 @@ */ #include "includes.h" -RCSID("$Id: channels.c,v 1.57 2000/05/08 17:42:24 markus Exp $"); +RCSID("$Id: channels.c,v 1.59 2000/05/30 17:23:36 markus Exp $"); #include "ssh.h" #include "packet.h" @@ -147,23 +147,6 @@ channel_lookup(int id) return c; } -void -set_nonblock(int fd) -{ - int val; - val = fcntl(fd, F_GETFL, 0); - if (val < 0) { - error("fcntl(%d, F_GETFL, 0): %s", fd, strerror(errno)); - return; - } - if (val & O_NONBLOCK) - return; - debug("fd %d setting O_NONBLOCK", fd); - val |= O_NONBLOCK; - if (fcntl(fd, F_SETFL, val) == -1) - error("fcntl(%d, F_SETFL, O_NONBLOCK): %s", fd, strerror(errno)); -} - /* * Register filedescriptors for a channel, used when allocating a channel or * when the channel consumer/producer is ready, e.g. shell exec'd @@ -2074,11 +2057,11 @@ cleanup_socket(void) } /* - * This if called to process SSH_CMSG_AGENT_REQUEST_FORWARDING on the server. + * This is called to process SSH_CMSG_AGENT_REQUEST_FORWARDING on the server. * This starts forwarding authentication requests. */ -void +int auth_input_request_forwarding(struct passwd * pw) { int sock, newch; @@ -2096,8 +2079,16 @@ auth_input_request_forwarding(struct passwd * pw) strlcpy(channel_forwarded_auth_socket_dir, "/tmp/ssh-XXXXXXXX", MAX_SOCKET_NAME); /* Create private directory for socket */ - if (mkdtemp(channel_forwarded_auth_socket_dir) == NULL) - packet_disconnect("mkdtemp: %.100s", strerror(errno)); + if (mkdtemp(channel_forwarded_auth_socket_dir) == NULL) { + packet_send_debug("Agent forwarding disabled: mkdtemp() failed: %.100s", + strerror(errno)); + restore_uid(); + xfree(channel_forwarded_auth_socket_name); + xfree(channel_forwarded_auth_socket_dir); + channel_forwarded_auth_socket_name = NULL; + channel_forwarded_auth_socket_dir = NULL; + return 0; + } snprintf(channel_forwarded_auth_socket_name, MAX_SOCKET_NAME, "%s/agent.%d", channel_forwarded_auth_socket_dir, (int) getpid()); @@ -2132,6 +2123,7 @@ auth_input_request_forwarding(struct passwd * pw) xstrdup("auth socket")); strlcpy(channels[newch].path, channel_forwarded_auth_socket_name, sizeof(channels[newch].path)); + return 1; } /* This is called to process an SSH_SMSG_AGENT_OPEN message. */ diff --git a/crypto/openssh/channels.h b/crypto/openssh/channels.h index 24ae2b82..4cafdb9 100644 --- a/crypto/openssh/channels.h +++ b/crypto/openssh/channels.h @@ -1,4 +1,4 @@ -/* RCSID("$Id: channels.h,v 1.12 2000/05/03 18:03:06 markus Exp $"); */ +/* RCSID("$Id: channels.h,v 1.13 2000/05/30 17:23:37 markus Exp $"); */ #ifndef CHANNELS_H #define CHANNELS_H @@ -222,10 +222,10 @@ void auth_request_forwarding(void); char *auth_get_socket_name(void); /* - * This if called to process SSH_CMSG_AGENT_REQUEST_FORWARDING on the server. + * This is called to process SSH_CMSG_AGENT_REQUEST_FORWARDING on the server. * This starts forwarding authentication requests. */ -void auth_input_request_forwarding(struct passwd * pw); +int auth_input_request_forwarding(struct passwd * pw); /* This is called to process an SSH_SMSG_AGENT_OPEN message. */ void auth_input_open_request(int type, int plen); |