diff options
Diffstat (limited to 'libssh')
-rw-r--r-- | libssh/options.c | 27 | ||||
-rw-r--r-- | libssh/server.c | 12 |
2 files changed, 32 insertions, 7 deletions
diff --git a/libssh/options.c b/libssh/options.c index 31a5232..0cc5be7 100644 --- a/libssh/options.c +++ b/libssh/options.c @@ -677,6 +677,33 @@ int ssh_bind_options_set(ssh_bind sshbind, enum ssh_bind_options_e type, sshbind->bindport = i & 0xffff; } break; + case SSH_BIND_OPTIONS_LOG_VERBOSITY: + if (value == NULL) { + ssh_set_error_invalid(sshbind, __FUNCTION__); + return -1; + } else { + int *x = (int *) value; + sshbind->log_verbosity = *x & 0xffff; + } + break; + case SSH_BIND_OPTIONS_LOG_VERBOSITY_STR: + if (value == NULL) { + sshbind->log_verbosity = 0; + } else { + q = strdup(value); + if (q == NULL) { + ssh_set_error_oom(sshbind); + return -1; + } + i = strtol(q, &p, 10); + if (q == p) { + SAFE_FREE(q); + } + SAFE_FREE(q); + + sshbind->log_verbosity = i & 0xffff; + } + break; case SSH_BIND_OPTIONS_DSAKEY: if (value == NULL) { ssh_set_error_invalid(sshbind, __FUNCTION__); diff --git a/libssh/server.c b/libssh/server.c index c992d9a..c4ecff5 100644 --- a/libssh/server.c +++ b/libssh/server.c @@ -131,6 +131,8 @@ ssh_bind ssh_bind_new(void) { ZERO_STRUCTP(ptr); ptr->bindfd = -1; ptr->bindport= 22; + ptr->log_verbosity = 0; + return ptr; } @@ -229,10 +231,6 @@ int ssh_bind_accept(ssh_bind sshbind, ssh_session session) { session->server = 1; session->version = 2; - /* TODO: is wanted methods enough? */ -#if 0 - session->options = ssh_options_copy(sshbind->options); -#endif /* copy options */ for (i = 0; i < 10; ++i) { if (sshbind->wanted_methods[i]) { @@ -255,9 +253,9 @@ int ssh_bind_accept(ssh_bind sshbind, ssh_session session) { return SSH_ERROR; } } -/* TODO FIXME this doesn't work - session->log_verbosity = session->options->log_verbosity; -*/ + + session->log_verbosity = sshbind->log_verbosity; + ssh_socket_free(session->socket); session->socket = ssh_socket_new(session); if (session->socket == NULL) { |