aboutsummaryrefslogtreecommitdiff
path: root/doc/forwarding.dox
diff options
context:
space:
mode:
Diffstat (limited to 'doc/forwarding.dox')
-rw-r--r--doc/forwarding.dox10
1 files changed, 8 insertions, 2 deletions
diff --git a/doc/forwarding.dox b/doc/forwarding.dox
index ca3b94f8..2b202b4d 100644
--- a/doc/forwarding.dox
+++ b/doc/forwarding.dox
@@ -165,6 +165,8 @@ int web_server(ssh_session session)
char buffer[256];
int nbytes, nwritten;
int port = 0;
+ char *peer_address = NULL;
+ int peer_port = 0;
char *helloworld = ""
"HTTP/1.1 200 OK\n"
"Content-Type: text/html\n"
@@ -187,7 +189,8 @@ int web_server(ssh_session session)
return rc;
}
- channel = ssh_channel_accept_forward(session, 60000, &port);
+ channel = ssh_channel_open_forward_port(session, 60000, &port,
+ &peer_address, &peer_port);
if (channel == NULL)
{
fprintf(stderr, "Error waiting for incoming connection: %s\n",
@@ -204,6 +207,7 @@ int web_server(ssh_session session)
ssh_get_error(session));
ssh_channel_send_eof(channel);
ssh_channel_free(channel);
+ ssh_string_free_char(peer_address);
return SSH_ERROR;
}
if (strncmp(buffer, "GET /", 5)) continue;
@@ -216,13 +220,15 @@ int web_server(ssh_session session)
ssh_get_error(session));
ssh_channel_send_eof(channel);
ssh_channel_free(channel);
+ ssh_string_free_char(peer_address);
return SSH_ERROR;
}
- printf("Sent answer\n");
+ printf("Sent answer to %s:%d\n", peer_address, peer_port);
}
ssh_channel_send_eof(channel);
ssh_channel_free(channel);
+ ssh_string_free_char(peer_address);
return SSH_OK;
}
@endcode