|
|
d1c05f |
Index: b/channels.c
|
|
|
d1c05f |
===================================================================
|
|
|
d1c05f |
--- b.orig/channels.c
|
|
|
d1c05f |
+++ b/channels.c
|
|
|
d1c05f |
@@ -3774,6 +3774,7 @@ int
|
|
|
d1c05f |
channel_setup_remote_fwd_listener(struct ssh *ssh, struct Forward *fwd,
|
|
|
d1c05f |
int *allocated_listen_port, struct ForwardOptions *fwd_opts)
|
|
|
d1c05f |
{
|
|
|
d1c05f |
+ int success = 0;
|
|
|
d1c05f |
if (!check_rfwd_permission(ssh, fwd)) {
|
|
|
d1c05f |
ssh_packet_send_debug(ssh, "port forwarding refused");
|
|
|
d1c05f |
if (fwd->listen_path != NULL)
|
|
|
d1c05f |
@@ -3795,14 +3796,23 @@ channel_setup_remote_fwd_listener(struct
|
|
|
d1c05f |
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh));
|
|
|
d1c05f |
return 0;
|
|
|
d1c05f |
}
|
|
|
d1c05f |
- if (fwd->listen_path != NULL) {
|
|
|
d1c05f |
- return channel_setup_fwd_listener_streamlocal(ssh,
|
|
|
d1c05f |
+ if (fwd->listen_path != NULL) {
|
|
|
d1c05f |
+ success = channel_setup_fwd_listener_streamlocal(ssh,
|
|
|
d1c05f |
SSH_CHANNEL_RUNIX_LISTENER, fwd, fwd_opts);
|
|
|
d1c05f |
} else {
|
|
|
d1c05f |
- return channel_setup_fwd_listener_tcpip(ssh,
|
|
|
d1c05f |
+ success = channel_setup_fwd_listener_tcpip(ssh,
|
|
|
d1c05f |
SSH_CHANNEL_RPORT_LISTENER, fwd, allocated_listen_port,
|
|
|
d1c05f |
fwd_opts);
|
|
|
d1c05f |
}
|
|
|
d1c05f |
+ logit("Remote forward request %s: listen=%s:%d connect=%s:%d"
|
|
|
d1c05f |
+ " uid=%d",
|
|
|
d1c05f |
+ success ? "succeeded" : "failed",
|
|
|
d1c05f |
+ fwd->listen_host,
|
|
|
d1c05f |
+ fwd->listen_port,
|
|
|
d1c05f |
+ ssh_remote_ipaddr(ssh),
|
|
|
d1c05f |
+ ssh_remote_port(ssh),
|
|
|
d1c05f |
+ getuid());
|
|
|
d1c05f |
+ return success;
|
|
|
d1c05f |
}
|
|
|
d1c05f |
|
|
|
d1c05f |
/*
|
|
|
d1c05f |
@@ -4593,7 +4603,7 @@ x11_create_display_inet(struct ssh *ssh,
|
|
|
d1c05f |
if ((errno != EINVAL) && (errno != EAFNOSUPPORT)
|
|
|
d1c05f |
#ifdef EPFNOSUPPORT
|
|
|
d1c05f |
&& (errno != EPFNOSUPPORT)
|
|
|
d1c05f |
-#endif
|
|
|
d1c05f |
+#endif
|
|
|
d1c05f |
) {
|
|
|
d1c05f |
error("socket: %.100s", strerror(errno));
|
|
|
d1c05f |
freeaddrinfo(aitop);
|