mirror of
https://github.com/PowerShell/openssh-portable.git
synced 2025-07-27 07:44:29 +02:00
- markus@cvs.openbsd.org 2003/08/29 10:04:36
[channels.c nchan.c] be less chatty; debug -> debug2, cleanup; ok henning@
This commit is contained in:
parent
7630ee2fa6
commit
fbdeecef92
@ -12,6 +12,9 @@
|
|||||||
- markus@cvs.openbsd.org 2003/08/29 10:03:15
|
- markus@cvs.openbsd.org 2003/08/29 10:03:15
|
||||||
[compat.c compat.h]
|
[compat.c compat.h]
|
||||||
SSH_BUG_K5USER is unused; ok henning@
|
SSH_BUG_K5USER is unused; ok henning@
|
||||||
|
- markus@cvs.openbsd.org 2003/08/29 10:04:36
|
||||||
|
[channels.c nchan.c]
|
||||||
|
be less chatty; debug -> debug2, cleanup; ok henning@
|
||||||
|
|
||||||
20030829
|
20030829
|
||||||
- (bal) openbsd-compat/ clean up. Considate headers, add in Id on our
|
- (bal) openbsd-compat/ clean up. Considate headers, add in Id on our
|
||||||
@ -927,4 +930,4 @@
|
|||||||
- Fix sshd BindAddress and -b options for systems using fake-getaddrinfo.
|
- Fix sshd BindAddress and -b options for systems using fake-getaddrinfo.
|
||||||
Report from murple@murple.net, diagnosis from dtucker@zip.com.au
|
Report from murple@murple.net, diagnosis from dtucker@zip.com.au
|
||||||
|
|
||||||
$Id: ChangeLog,v 1.2922 2003/09/02 12:52:00 djm Exp $
|
$Id: ChangeLog,v 1.2923 2003/09/02 12:52:31 djm Exp $
|
||||||
|
62
channels.c
62
channels.c
@ -39,7 +39,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$OpenBSD: channels.c,v 1.193 2003/07/02 14:51:16 markus Exp $");
|
RCSID("$OpenBSD: channels.c,v 1.194 2003/08/29 10:04:36 markus Exp $");
|
||||||
|
|
||||||
#include "ssh.h"
|
#include "ssh.h"
|
||||||
#include "ssh1.h"
|
#include "ssh1.h"
|
||||||
@ -177,7 +177,7 @@ channel_register_fds(Channel *c, int rfd, int wfd, int efd,
|
|||||||
|
|
||||||
/* XXX ugly hack: nonblock is only set by the server */
|
/* XXX ugly hack: nonblock is only set by the server */
|
||||||
if (nonblock && isatty(c->rfd)) {
|
if (nonblock && isatty(c->rfd)) {
|
||||||
debug("channel %d: rfd %d isatty", c->self, c->rfd);
|
debug2("channel %d: rfd %d isatty", c->self, c->rfd);
|
||||||
c->isatty = 1;
|
c->isatty = 1;
|
||||||
if (!isatty(c->wfd)) {
|
if (!isatty(c->wfd)) {
|
||||||
error("channel %d: wfd %d is not a tty?",
|
error("channel %d: wfd %d is not a tty?",
|
||||||
@ -304,7 +304,7 @@ channel_close_fd(int *fdp)
|
|||||||
static void
|
static void
|
||||||
channel_close_fds(Channel *c)
|
channel_close_fds(Channel *c)
|
||||||
{
|
{
|
||||||
debug3("channel_close_fds: channel %d: r %d w %d e %d",
|
debug3("channel %d: close_fds r %d w %d e %d",
|
||||||
c->self, c->rfd, c->wfd, c->efd);
|
c->self, c->rfd, c->wfd, c->efd);
|
||||||
|
|
||||||
channel_close_fd(&c->sock);
|
channel_close_fd(&c->sock);
|
||||||
@ -324,11 +324,11 @@ channel_free(Channel *c)
|
|||||||
for (n = 0, i = 0; i < channels_alloc; i++)
|
for (n = 0, i = 0; i < channels_alloc; i++)
|
||||||
if (channels[i])
|
if (channels[i])
|
||||||
n++;
|
n++;
|
||||||
debug("channel_free: channel %d: %s, nchannels %d", c->self,
|
debug("channel %d: free: %s, nchannels %d", c->self,
|
||||||
c->remote_name ? c->remote_name : "???", n);
|
c->remote_name ? c->remote_name : "???", n);
|
||||||
|
|
||||||
s = channel_open_message();
|
s = channel_open_message();
|
||||||
debug3("channel_free: status: %s", s);
|
debug3("channel %d: status: %s", c->self, s);
|
||||||
xfree(s);
|
xfree(s);
|
||||||
|
|
||||||
if (c->sock != -1)
|
if (c->sock != -1)
|
||||||
@ -596,7 +596,7 @@ channel_request_start(int id, char *service, int wantconfirm)
|
|||||||
logit("channel_request_start: %d: unknown channel id", id);
|
logit("channel_request_start: %d: unknown channel id", id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
debug("channel %d: request %s", id, service) ;
|
debug2("channel %d: request %s", id, service) ;
|
||||||
packet_start(SSH2_MSG_CHANNEL_REQUEST);
|
packet_start(SSH2_MSG_CHANNEL_REQUEST);
|
||||||
packet_put_int(c->remote_id);
|
packet_put_int(c->remote_id);
|
||||||
packet_put_cstring(service);
|
packet_put_cstring(service);
|
||||||
@ -739,7 +739,7 @@ channel_pre_input_draining(Channel *c, fd_set * readset, fd_set * writeset)
|
|||||||
packet_put_int(c->remote_id);
|
packet_put_int(c->remote_id);
|
||||||
packet_send();
|
packet_send();
|
||||||
c->type = SSH_CHANNEL_CLOSED;
|
c->type = SSH_CHANNEL_CLOSED;
|
||||||
debug("channel %d: closing after input drain.", c->self);
|
debug2("channel %d: closing after input drain.", c->self);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -780,7 +780,7 @@ x11_open_helper(Buffer *b)
|
|||||||
proto_len = ucp[6] + 256 * ucp[7];
|
proto_len = ucp[6] + 256 * ucp[7];
|
||||||
data_len = ucp[8] + 256 * ucp[9];
|
data_len = ucp[8] + 256 * ucp[9];
|
||||||
} else {
|
} else {
|
||||||
debug("Initial X11 packet contains bad byte order byte: 0x%x",
|
debug2("Initial X11 packet contains bad byte order byte: 0x%x",
|
||||||
ucp[0]);
|
ucp[0]);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -793,14 +793,14 @@ x11_open_helper(Buffer *b)
|
|||||||
/* Check if authentication protocol matches. */
|
/* Check if authentication protocol matches. */
|
||||||
if (proto_len != strlen(x11_saved_proto) ||
|
if (proto_len != strlen(x11_saved_proto) ||
|
||||||
memcmp(ucp + 12, x11_saved_proto, proto_len) != 0) {
|
memcmp(ucp + 12, x11_saved_proto, proto_len) != 0) {
|
||||||
debug("X11 connection uses different authentication protocol.");
|
debug2("X11 connection uses different authentication protocol.");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
/* Check if authentication data matches our fake data. */
|
/* Check if authentication data matches our fake data. */
|
||||||
if (data_len != x11_fake_data_len ||
|
if (data_len != x11_fake_data_len ||
|
||||||
memcmp(ucp + 12 + ((proto_len + 3) & ~3),
|
memcmp(ucp + 12 + ((proto_len + 3) & ~3),
|
||||||
x11_fake_data, x11_fake_data_len) != 0) {
|
x11_fake_data, x11_fake_data_len) != 0) {
|
||||||
debug("X11 auth data does not match fake data.");
|
debug2("X11 auth data does not match fake data.");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
/* Check fake data length */
|
/* Check fake data length */
|
||||||
@ -857,7 +857,7 @@ channel_pre_x11_open(Channel *c, fd_set * readset, fd_set * writeset)
|
|||||||
channel_pre_open(c, readset, writeset);
|
channel_pre_open(c, readset, writeset);
|
||||||
} else if (ret == -1) {
|
} else if (ret == -1) {
|
||||||
logit("X11 connection rejected because of wrong authentication.");
|
logit("X11 connection rejected because of wrong authentication.");
|
||||||
debug("X11 rejected %d i%d/o%d", c->self, c->istate, c->ostate);
|
debug2("X11 rejected %d i%d/o%d", c->self, c->istate, c->ostate);
|
||||||
chan_read_failed(c);
|
chan_read_failed(c);
|
||||||
buffer_clear(&c->input);
|
buffer_clear(&c->input);
|
||||||
chan_ibuf_empty(c);
|
chan_ibuf_empty(c);
|
||||||
@ -867,7 +867,7 @@ channel_pre_x11_open(Channel *c, fd_set * readset, fd_set * writeset)
|
|||||||
chan_write_failed(c);
|
chan_write_failed(c);
|
||||||
else
|
else
|
||||||
c->type = SSH_CHANNEL_OPEN;
|
c->type = SSH_CHANNEL_OPEN;
|
||||||
debug("X11 closed %d i%d/o%d", c->self, c->istate, c->ostate);
|
debug2("X11 closed %d i%d/o%d", c->self, c->istate, c->ostate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -925,7 +925,7 @@ channel_decode_socks4(Channel *c, fd_set * readset, fd_set * writeset)
|
|||||||
strlcpy(c->path, host, sizeof(c->path));
|
strlcpy(c->path, host, sizeof(c->path));
|
||||||
c->host_port = ntohs(s4_req.dest_port);
|
c->host_port = ntohs(s4_req.dest_port);
|
||||||
|
|
||||||
debug("channel %d: dynamic request: socks4 host %s port %u command %u",
|
debug2("channel %d: dynamic request: socks4 host %s port %u command %u",
|
||||||
c->self, host, c->host_port, s4_req.command);
|
c->self, host, c->host_port, s4_req.command);
|
||||||
|
|
||||||
if (s4_req.command != 1) {
|
if (s4_req.command != 1) {
|
||||||
@ -1002,7 +1002,7 @@ channel_decode_socks5(Channel *c, fd_set * readset, fd_set * writeset)
|
|||||||
if (s5_req.version != 0x05 ||
|
if (s5_req.version != 0x05 ||
|
||||||
s5_req.command != SSH_SOCKS5_CONNECT ||
|
s5_req.command != SSH_SOCKS5_CONNECT ||
|
||||||
s5_req.reserved != 0x00) {
|
s5_req.reserved != 0x00) {
|
||||||
debug("channel %d: only socks5 connect supported", c->self);
|
debug2("channel %d: only socks5 connect supported", c->self);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
switch(s5_req.atyp){
|
switch(s5_req.atyp){
|
||||||
@ -1019,7 +1019,7 @@ channel_decode_socks5(Channel *c, fd_set * readset, fd_set * writeset)
|
|||||||
af = AF_INET6;
|
af = AF_INET6;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
debug("channel %d: bad socks5 atyp %d", c->self, s5_req.atyp);
|
debug2("channel %d: bad socks5 atyp %d", c->self, s5_req.atyp);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (have < 4 + addrlen + 2)
|
if (have < 4 + addrlen + 2)
|
||||||
@ -1036,7 +1036,7 @@ channel_decode_socks5(Channel *c, fd_set * readset, fd_set * writeset)
|
|||||||
return -1;
|
return -1;
|
||||||
c->host_port = ntohs(dest_port);
|
c->host_port = ntohs(dest_port);
|
||||||
|
|
||||||
debug("channel %d: dynamic request: socks5 host %s port %u command %u",
|
debug2("channel %d: dynamic request: socks5 host %s port %u command %u",
|
||||||
c->self, c->path, c->host_port, s5_req.command);
|
c->self, c->path, c->host_port, s5_req.command);
|
||||||
|
|
||||||
s5_rsp.version = 0x05;
|
s5_rsp.version = 0x05;
|
||||||
@ -1111,7 +1111,7 @@ channel_post_x11_listener(Channel *c, fd_set * readset, fd_set * writeset)
|
|||||||
addrlen = sizeof(addr);
|
addrlen = sizeof(addr);
|
||||||
newsock = accept(c->sock, &addr, &addrlen);
|
newsock = accept(c->sock, &addr, &addrlen);
|
||||||
if (c->single_connection) {
|
if (c->single_connection) {
|
||||||
debug("single_connection: closing X11 listener.");
|
debug2("single_connection: closing X11 listener.");
|
||||||
channel_close_fd(&c->sock);
|
channel_close_fd(&c->sock);
|
||||||
chan_mark_dead(c);
|
chan_mark_dead(c);
|
||||||
}
|
}
|
||||||
@ -1137,7 +1137,7 @@ channel_post_x11_listener(Channel *c, fd_set * readset, fd_set * writeset)
|
|||||||
/* originator ipaddr and port */
|
/* originator ipaddr and port */
|
||||||
packet_put_cstring(remote_ipaddr);
|
packet_put_cstring(remote_ipaddr);
|
||||||
if (datafellows & SSH_BUG_X11FWD) {
|
if (datafellows & SSH_BUG_X11FWD) {
|
||||||
debug("ssh2 x11 bug compat mode");
|
debug2("ssh2 x11 bug compat mode");
|
||||||
} else {
|
} else {
|
||||||
packet_put_int(remote_port);
|
packet_put_int(remote_port);
|
||||||
}
|
}
|
||||||
@ -1356,16 +1356,16 @@ channel_handle_rfd(Channel *c, fd_set * readset, fd_set * writeset)
|
|||||||
if (len < 0 && (errno == EINTR || errno == EAGAIN))
|
if (len < 0 && (errno == EINTR || errno == EAGAIN))
|
||||||
return 1;
|
return 1;
|
||||||
if (len <= 0) {
|
if (len <= 0) {
|
||||||
debug("channel %d: read<=0 rfd %d len %d",
|
debug2("channel %d: read<=0 rfd %d len %d",
|
||||||
c->self, c->rfd, len);
|
c->self, c->rfd, len);
|
||||||
if (c->type != SSH_CHANNEL_OPEN) {
|
if (c->type != SSH_CHANNEL_OPEN) {
|
||||||
debug("channel %d: not open", c->self);
|
debug2("channel %d: not open", c->self);
|
||||||
chan_mark_dead(c);
|
chan_mark_dead(c);
|
||||||
return -1;
|
return -1;
|
||||||
} else if (compat13) {
|
} else if (compat13) {
|
||||||
buffer_clear(&c->output);
|
buffer_clear(&c->output);
|
||||||
c->type = SSH_CHANNEL_INPUT_DRAINING;
|
c->type = SSH_CHANNEL_INPUT_DRAINING;
|
||||||
debug("channel %d: input draining.", c->self);
|
debug2("channel %d: input draining.", c->self);
|
||||||
} else {
|
} else {
|
||||||
chan_read_failed(c);
|
chan_read_failed(c);
|
||||||
}
|
}
|
||||||
@ -1373,7 +1373,7 @@ channel_handle_rfd(Channel *c, fd_set * readset, fd_set * writeset)
|
|||||||
}
|
}
|
||||||
if (c->input_filter != NULL) {
|
if (c->input_filter != NULL) {
|
||||||
if (c->input_filter(c, buf, len) == -1) {
|
if (c->input_filter(c, buf, len) == -1) {
|
||||||
debug("channel %d: filter stops", c->self);
|
debug2("channel %d: filter stops", c->self);
|
||||||
chan_read_failed(c);
|
chan_read_failed(c);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -1406,12 +1406,12 @@ channel_handle_wfd(Channel *c, fd_set * readset, fd_set * writeset)
|
|||||||
return 1;
|
return 1;
|
||||||
if (len <= 0) {
|
if (len <= 0) {
|
||||||
if (c->type != SSH_CHANNEL_OPEN) {
|
if (c->type != SSH_CHANNEL_OPEN) {
|
||||||
debug("channel %d: not open", c->self);
|
debug2("channel %d: not open", c->self);
|
||||||
chan_mark_dead(c);
|
chan_mark_dead(c);
|
||||||
return -1;
|
return -1;
|
||||||
} else if (compat13) {
|
} else if (compat13) {
|
||||||
buffer_clear(&c->output);
|
buffer_clear(&c->output);
|
||||||
debug("channel %d: input draining.", c->self);
|
debug2("channel %d: input draining.", c->self);
|
||||||
c->type = SSH_CHANNEL_INPUT_DRAINING;
|
c->type = SSH_CHANNEL_INPUT_DRAINING;
|
||||||
} else {
|
} else {
|
||||||
chan_write_failed(c);
|
chan_write_failed(c);
|
||||||
@ -1618,16 +1618,16 @@ channel_garbage_collect(Channel *c)
|
|||||||
if (c->detach_user != NULL) {
|
if (c->detach_user != NULL) {
|
||||||
if (!chan_is_dead(c, 0))
|
if (!chan_is_dead(c, 0))
|
||||||
return;
|
return;
|
||||||
debug("channel %d: gc: notify user", c->self);
|
debug2("channel %d: gc: notify user", c->self);
|
||||||
c->detach_user(c->self, NULL);
|
c->detach_user(c->self, NULL);
|
||||||
/* if we still have a callback */
|
/* if we still have a callback */
|
||||||
if (c->detach_user != NULL)
|
if (c->detach_user != NULL)
|
||||||
return;
|
return;
|
||||||
debug("channel %d: gc: user detached", c->self);
|
debug2("channel %d: gc: user detached", c->self);
|
||||||
}
|
}
|
||||||
if (!chan_is_dead(c, 1))
|
if (!chan_is_dead(c, 1))
|
||||||
return;
|
return;
|
||||||
debug("channel %d: garbage collecting", c->self);
|
debug2("channel %d: garbage collecting", c->self);
|
||||||
channel_free(c);
|
channel_free(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2002,7 +2002,7 @@ channel_input_open_confirmation(int type, u_int32_t seq, void *ctxt)
|
|||||||
c->confirm(c->self, NULL);
|
c->confirm(c->self, NULL);
|
||||||
debug2("callback done");
|
debug2("callback done");
|
||||||
}
|
}
|
||||||
debug("channel %d: open confirm rwindow %u rmax %u", c->self,
|
debug2("channel %d: open confirm rwindow %u rmax %u", c->self,
|
||||||
c->remote_window, c->remote_maxpacket);
|
c->remote_window, c->remote_maxpacket);
|
||||||
}
|
}
|
||||||
packet_check_eom();
|
packet_check_eom();
|
||||||
@ -2514,7 +2514,7 @@ x11_create_display_inet(int x11_display_offset, int x11_use_localhost,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (bind(sock, ai->ai_addr, ai->ai_addrlen) < 0) {
|
if (bind(sock, ai->ai_addr, ai->ai_addrlen) < 0) {
|
||||||
debug("bind port %d: %.100s", port, strerror(errno));
|
debug2("bind port %d: %.100s", port, strerror(errno));
|
||||||
close(sock);
|
close(sock);
|
||||||
|
|
||||||
if (ai->ai_next)
|
if (ai->ai_next)
|
||||||
@ -2663,12 +2663,12 @@ x11_connect_display(void)
|
|||||||
/* Create a socket. */
|
/* Create a socket. */
|
||||||
sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
|
sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
|
||||||
if (sock < 0) {
|
if (sock < 0) {
|
||||||
debug("socket: %.100s", strerror(errno));
|
debug2("socket: %.100s", strerror(errno));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/* Connect it to the display. */
|
/* Connect it to the display. */
|
||||||
if (connect(sock, ai->ai_addr, ai->ai_addrlen) < 0) {
|
if (connect(sock, ai->ai_addr, ai->ai_addrlen) < 0) {
|
||||||
debug("connect %.100s port %d: %.100s", buf,
|
debug2("connect %.100s port %d: %.100s", buf,
|
||||||
6000 + display_number, strerror(errno));
|
6000 + display_number, strerror(errno));
|
||||||
close(sock);
|
close(sock);
|
||||||
continue;
|
continue;
|
||||||
|
46
nchan.c
46
nchan.c
@ -23,7 +23,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$OpenBSD: nchan.c,v 1.48 2003/04/08 20:21:29 itojun Exp $");
|
RCSID("$OpenBSD: nchan.c,v 1.49 2003/08/29 10:04:36 markus Exp $");
|
||||||
|
|
||||||
#include "ssh1.h"
|
#include "ssh1.h"
|
||||||
#include "ssh2.h"
|
#include "ssh2.h"
|
||||||
@ -83,7 +83,7 @@ chan_set_istate(Channel *c, u_int next)
|
|||||||
{
|
{
|
||||||
if (c->istate > CHAN_INPUT_CLOSED || next > CHAN_INPUT_CLOSED)
|
if (c->istate > CHAN_INPUT_CLOSED || next > CHAN_INPUT_CLOSED)
|
||||||
fatal("chan_set_istate: bad state %d -> %d", c->istate, next);
|
fatal("chan_set_istate: bad state %d -> %d", c->istate, next);
|
||||||
debug("channel %d: input %s -> %s", c->self, istates[c->istate],
|
debug2("channel %d: input %s -> %s", c->self, istates[c->istate],
|
||||||
istates[next]);
|
istates[next]);
|
||||||
c->istate = next;
|
c->istate = next;
|
||||||
}
|
}
|
||||||
@ -92,7 +92,7 @@ chan_set_ostate(Channel *c, u_int next)
|
|||||||
{
|
{
|
||||||
if (c->ostate > CHAN_OUTPUT_CLOSED || next > CHAN_OUTPUT_CLOSED)
|
if (c->ostate > CHAN_OUTPUT_CLOSED || next > CHAN_OUTPUT_CLOSED)
|
||||||
fatal("chan_set_ostate: bad state %d -> %d", c->ostate, next);
|
fatal("chan_set_ostate: bad state %d -> %d", c->ostate, next);
|
||||||
debug("channel %d: output %s -> %s", c->self, ostates[c->ostate],
|
debug2("channel %d: output %s -> %s", c->self, ostates[c->ostate],
|
||||||
ostates[next]);
|
ostates[next]);
|
||||||
c->ostate = next;
|
c->ostate = next;
|
||||||
}
|
}
|
||||||
@ -104,7 +104,7 @@ chan_set_ostate(Channel *c, u_int next)
|
|||||||
static void
|
static void
|
||||||
chan_rcvd_oclose1(Channel *c)
|
chan_rcvd_oclose1(Channel *c)
|
||||||
{
|
{
|
||||||
debug("channel %d: rcvd oclose", c->self);
|
debug2("channel %d: rcvd oclose", c->self);
|
||||||
switch (c->istate) {
|
switch (c->istate) {
|
||||||
case CHAN_INPUT_WAIT_OCLOSE:
|
case CHAN_INPUT_WAIT_OCLOSE:
|
||||||
chan_set_istate(c, CHAN_INPUT_CLOSED);
|
chan_set_istate(c, CHAN_INPUT_CLOSED);
|
||||||
@ -128,7 +128,7 @@ chan_rcvd_oclose1(Channel *c)
|
|||||||
void
|
void
|
||||||
chan_read_failed(Channel *c)
|
chan_read_failed(Channel *c)
|
||||||
{
|
{
|
||||||
debug("channel %d: read failed", c->self);
|
debug2("channel %d: read failed", c->self);
|
||||||
switch (c->istate) {
|
switch (c->istate) {
|
||||||
case CHAN_INPUT_OPEN:
|
case CHAN_INPUT_OPEN:
|
||||||
chan_shutdown_read(c);
|
chan_shutdown_read(c);
|
||||||
@ -143,7 +143,7 @@ chan_read_failed(Channel *c)
|
|||||||
void
|
void
|
||||||
chan_ibuf_empty(Channel *c)
|
chan_ibuf_empty(Channel *c)
|
||||||
{
|
{
|
||||||
debug("channel %d: ibuf empty", c->self);
|
debug2("channel %d: ibuf empty", c->self);
|
||||||
if (buffer_len(&c->input)) {
|
if (buffer_len(&c->input)) {
|
||||||
error("channel %d: chan_ibuf_empty for non empty buffer",
|
error("channel %d: chan_ibuf_empty for non empty buffer",
|
||||||
c->self);
|
c->self);
|
||||||
@ -169,7 +169,7 @@ chan_ibuf_empty(Channel *c)
|
|||||||
static void
|
static void
|
||||||
chan_rcvd_ieof1(Channel *c)
|
chan_rcvd_ieof1(Channel *c)
|
||||||
{
|
{
|
||||||
debug("channel %d: rcvd ieof", c->self);
|
debug2("channel %d: rcvd ieof", c->self);
|
||||||
switch (c->ostate) {
|
switch (c->ostate) {
|
||||||
case CHAN_OUTPUT_OPEN:
|
case CHAN_OUTPUT_OPEN:
|
||||||
chan_set_ostate(c, CHAN_OUTPUT_WAIT_DRAIN);
|
chan_set_ostate(c, CHAN_OUTPUT_WAIT_DRAIN);
|
||||||
@ -186,7 +186,7 @@ chan_rcvd_ieof1(Channel *c)
|
|||||||
static void
|
static void
|
||||||
chan_write_failed1(Channel *c)
|
chan_write_failed1(Channel *c)
|
||||||
{
|
{
|
||||||
debug("channel %d: write failed", c->self);
|
debug2("channel %d: write failed", c->self);
|
||||||
switch (c->ostate) {
|
switch (c->ostate) {
|
||||||
case CHAN_OUTPUT_OPEN:
|
case CHAN_OUTPUT_OPEN:
|
||||||
chan_shutdown_write(c);
|
chan_shutdown_write(c);
|
||||||
@ -207,7 +207,7 @@ chan_write_failed1(Channel *c)
|
|||||||
void
|
void
|
||||||
chan_obuf_empty(Channel *c)
|
chan_obuf_empty(Channel *c)
|
||||||
{
|
{
|
||||||
debug("channel %d: obuf empty", c->self);
|
debug2("channel %d: obuf empty", c->self);
|
||||||
if (buffer_len(&c->output)) {
|
if (buffer_len(&c->output)) {
|
||||||
error("channel %d: chan_obuf_empty for non empty buffer",
|
error("channel %d: chan_obuf_empty for non empty buffer",
|
||||||
c->self);
|
c->self);
|
||||||
@ -229,7 +229,7 @@ chan_obuf_empty(Channel *c)
|
|||||||
static void
|
static void
|
||||||
chan_send_ieof1(Channel *c)
|
chan_send_ieof1(Channel *c)
|
||||||
{
|
{
|
||||||
debug("channel %d: send ieof", c->self);
|
debug2("channel %d: send ieof", c->self);
|
||||||
switch (c->istate) {
|
switch (c->istate) {
|
||||||
case CHAN_INPUT_OPEN:
|
case CHAN_INPUT_OPEN:
|
||||||
case CHAN_INPUT_WAIT_DRAIN:
|
case CHAN_INPUT_WAIT_DRAIN:
|
||||||
@ -246,7 +246,7 @@ chan_send_ieof1(Channel *c)
|
|||||||
static void
|
static void
|
||||||
chan_send_oclose1(Channel *c)
|
chan_send_oclose1(Channel *c)
|
||||||
{
|
{
|
||||||
debug("channel %d: send oclose", c->self);
|
debug2("channel %d: send oclose", c->self);
|
||||||
switch (c->ostate) {
|
switch (c->ostate) {
|
||||||
case CHAN_OUTPUT_OPEN:
|
case CHAN_OUTPUT_OPEN:
|
||||||
case CHAN_OUTPUT_WAIT_DRAIN:
|
case CHAN_OUTPUT_WAIT_DRAIN:
|
||||||
@ -268,7 +268,7 @@ chan_send_oclose1(Channel *c)
|
|||||||
static void
|
static void
|
||||||
chan_rcvd_close2(Channel *c)
|
chan_rcvd_close2(Channel *c)
|
||||||
{
|
{
|
||||||
debug("channel %d: rcvd close", c->self);
|
debug2("channel %d: rcvd close", c->self);
|
||||||
if (c->flags & CHAN_CLOSE_RCVD)
|
if (c->flags & CHAN_CLOSE_RCVD)
|
||||||
error("channel %d: protocol error: close rcvd twice", c->self);
|
error("channel %d: protocol error: close rcvd twice", c->self);
|
||||||
c->flags |= CHAN_CLOSE_RCVD;
|
c->flags |= CHAN_CLOSE_RCVD;
|
||||||
@ -301,7 +301,7 @@ chan_rcvd_close2(Channel *c)
|
|||||||
static void
|
static void
|
||||||
chan_rcvd_eof2(Channel *c)
|
chan_rcvd_eof2(Channel *c)
|
||||||
{
|
{
|
||||||
debug("channel %d: rcvd eof", c->self);
|
debug2("channel %d: rcvd eof", c->self);
|
||||||
c->flags |= CHAN_EOF_RCVD;
|
c->flags |= CHAN_EOF_RCVD;
|
||||||
if (c->ostate == CHAN_OUTPUT_OPEN)
|
if (c->ostate == CHAN_OUTPUT_OPEN)
|
||||||
chan_set_ostate(c, CHAN_OUTPUT_WAIT_DRAIN);
|
chan_set_ostate(c, CHAN_OUTPUT_WAIT_DRAIN);
|
||||||
@ -309,7 +309,7 @@ chan_rcvd_eof2(Channel *c)
|
|||||||
static void
|
static void
|
||||||
chan_write_failed2(Channel *c)
|
chan_write_failed2(Channel *c)
|
||||||
{
|
{
|
||||||
debug("channel %d: write failed", c->self);
|
debug2("channel %d: write failed", c->self);
|
||||||
switch (c->ostate) {
|
switch (c->ostate) {
|
||||||
case CHAN_OUTPUT_OPEN:
|
case CHAN_OUTPUT_OPEN:
|
||||||
case CHAN_OUTPUT_WAIT_DRAIN:
|
case CHAN_OUTPUT_WAIT_DRAIN:
|
||||||
@ -325,7 +325,7 @@ chan_write_failed2(Channel *c)
|
|||||||
static void
|
static void
|
||||||
chan_send_eof2(Channel *c)
|
chan_send_eof2(Channel *c)
|
||||||
{
|
{
|
||||||
debug("channel %d: send eof", c->self);
|
debug2("channel %d: send eof", c->self);
|
||||||
switch (c->istate) {
|
switch (c->istate) {
|
||||||
case CHAN_INPUT_WAIT_DRAIN:
|
case CHAN_INPUT_WAIT_DRAIN:
|
||||||
packet_start(SSH2_MSG_CHANNEL_EOF);
|
packet_start(SSH2_MSG_CHANNEL_EOF);
|
||||||
@ -342,7 +342,7 @@ chan_send_eof2(Channel *c)
|
|||||||
static void
|
static void
|
||||||
chan_send_close2(Channel *c)
|
chan_send_close2(Channel *c)
|
||||||
{
|
{
|
||||||
debug("channel %d: send close", c->self);
|
debug2("channel %d: send close", c->self);
|
||||||
if (c->ostate != CHAN_OUTPUT_CLOSED ||
|
if (c->ostate != CHAN_OUTPUT_CLOSED ||
|
||||||
c->istate != CHAN_INPUT_CLOSED) {
|
c->istate != CHAN_INPUT_CLOSED) {
|
||||||
error("channel %d: cannot send close for istate/ostate %d/%d",
|
error("channel %d: cannot send close for istate/ostate %d/%d",
|
||||||
@ -398,13 +398,13 @@ int
|
|||||||
chan_is_dead(Channel *c, int send)
|
chan_is_dead(Channel *c, int send)
|
||||||
{
|
{
|
||||||
if (c->type == SSH_CHANNEL_ZOMBIE) {
|
if (c->type == SSH_CHANNEL_ZOMBIE) {
|
||||||
debug("channel %d: zombie", c->self);
|
debug2("channel %d: zombie", c->self);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (c->istate != CHAN_INPUT_CLOSED || c->ostate != CHAN_OUTPUT_CLOSED)
|
if (c->istate != CHAN_INPUT_CLOSED || c->ostate != CHAN_OUTPUT_CLOSED)
|
||||||
return 0;
|
return 0;
|
||||||
if (!compat20) {
|
if (!compat20) {
|
||||||
debug("channel %d: is dead", c->self);
|
debug2("channel %d: is dead", c->self);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if ((datafellows & SSH_BUG_EXTEOF) &&
|
if ((datafellows & SSH_BUG_EXTEOF) &&
|
||||||
@ -421,7 +421,7 @@ chan_is_dead(Channel *c, int send)
|
|||||||
} else {
|
} else {
|
||||||
/* channel would be dead if we sent a close */
|
/* channel would be dead if we sent a close */
|
||||||
if (c->flags & CHAN_CLOSE_RCVD) {
|
if (c->flags & CHAN_CLOSE_RCVD) {
|
||||||
debug("channel %d: almost dead",
|
debug2("channel %d: almost dead",
|
||||||
c->self);
|
c->self);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -429,7 +429,7 @@ chan_is_dead(Channel *c, int send)
|
|||||||
}
|
}
|
||||||
if ((c->flags & CHAN_CLOSE_SENT) &&
|
if ((c->flags & CHAN_CLOSE_SENT) &&
|
||||||
(c->flags & CHAN_CLOSE_RCVD)) {
|
(c->flags & CHAN_CLOSE_RCVD)) {
|
||||||
debug("channel %d: is dead", c->self);
|
debug2("channel %d: is dead", c->self);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@ -443,10 +443,10 @@ chan_shutdown_write(Channel *c)
|
|||||||
if (compat20 && c->type == SSH_CHANNEL_LARVAL)
|
if (compat20 && c->type == SSH_CHANNEL_LARVAL)
|
||||||
return;
|
return;
|
||||||
/* shutdown failure is allowed if write failed already */
|
/* shutdown failure is allowed if write failed already */
|
||||||
debug("channel %d: close_write", c->self);
|
debug2("channel %d: close_write", c->self);
|
||||||
if (c->sock != -1) {
|
if (c->sock != -1) {
|
||||||
if (shutdown(c->sock, SHUT_WR) < 0)
|
if (shutdown(c->sock, SHUT_WR) < 0)
|
||||||
debug("channel %d: chan_shutdown_write: "
|
debug2("channel %d: chan_shutdown_write: "
|
||||||
"shutdown() failed for fd%d: %.100s",
|
"shutdown() failed for fd%d: %.100s",
|
||||||
c->self, c->sock, strerror(errno));
|
c->self, c->sock, strerror(errno));
|
||||||
} else {
|
} else {
|
||||||
@ -461,7 +461,7 @@ chan_shutdown_read(Channel *c)
|
|||||||
{
|
{
|
||||||
if (compat20 && c->type == SSH_CHANNEL_LARVAL)
|
if (compat20 && c->type == SSH_CHANNEL_LARVAL)
|
||||||
return;
|
return;
|
||||||
debug("channel %d: close_read", c->self);
|
debug2("channel %d: close_read", c->self);
|
||||||
if (c->sock != -1) {
|
if (c->sock != -1) {
|
||||||
/*
|
/*
|
||||||
* shutdown(sock, SHUT_READ) may return ENOTCONN if the
|
* shutdown(sock, SHUT_READ) may return ENOTCONN if the
|
||||||
|
Loading…
x
Reference in New Issue
Block a user