1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-11-27 13:21:11 +03:00

server: allow custom server banners (bug #83)

This commit is contained in:
Aris Adamantiadis
2014-02-01 18:00:01 +01:00
parent fdaa42da1a
commit 671f1979a6
3 changed files with 12 additions and 2 deletions

View File

@@ -175,6 +175,7 @@ struct ssh_session_struct {
char *knownhosts; char *knownhosts;
char *wanted_methods[10]; char *wanted_methods[10];
char *ProxyCommand; char *ProxyCommand;
char *custombanner;
unsigned long timeout; /* seconds */ unsigned long timeout; /* seconds */
unsigned long timeout_usec; unsigned long timeout_usec;
unsigned int port; unsigned int port;

View File

@@ -413,7 +413,8 @@ int ssh_bind_accept_fd(ssh_bind sshbind, ssh_session session, socket_t fd){
} }
session->common.log_verbosity = sshbind->common.log_verbosity; session->common.log_verbosity = sshbind->common.log_verbosity;
if(sshbind->banner != NULL)
session->opts.custombanner = strdup(sshbind->banner);
ssh_socket_free(session->socket); ssh_socket_free(session->socket);
session->socket = ssh_socket_new(session); session->socket = ssh_socket_new(session);
if (session->socket == NULL) { if (session->socket == NULL) {

View File

@@ -152,7 +152,15 @@ int ssh_send_banner(ssh_session session, int server) {
banner = session->version == 1 ? CLIENTBANNER1 : CLIENTBANNER2; banner = session->version == 1 ? CLIENTBANNER1 : CLIENTBANNER2;
if (server) { if (server) {
session->serverbanner = strdup(banner); if(session->opts.custombanner == NULL){
session->serverbanner = strdup(banner);
} else {
session->serverbanner = malloc(strlen(session->opts.custombanner) + 9);
if(!session->serverbanner)
goto end;
strcpy(session->serverbanner, "SSH-2.0-");
strcat(session->serverbanner, session->opts.custombanner);
}
if (session->serverbanner == NULL) { if (session->serverbanner == NULL) {
goto end; goto end;
} }