diff options
Diffstat (limited to 'src/server_ssh.c')
-rw-r--r-- | src/server_ssh.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/server_ssh.c b/src/server_ssh.c index 9f24657..219866b 100644 --- a/src/server_ssh.c +++ b/src/server_ssh.c @@ -4,10 +4,14 @@ #include <libssh/server.h> #include "server_ssh.h" -#include "server.h" #include "log.h" -struct server_callbacks potd_ssh_callbacks = { +typedef struct ssh_data { + ssh_bind sshbind; + ssh_session session; +} ssh_data; + +struct fwd_callbacks potd_ssh_callbacks = { .on_listen = ssh_on_listen, .on_shutdown = ssh_on_shutdown }; @@ -16,9 +20,9 @@ static int set_default_keys(ssh_bind sshbind, int rsa_already_set, int dsa_already_set, int ecdsa_already_set); -int ssh_init_cb(struct server_ctx *ctx) +int ssh_init_cb(struct forward_ctx *ctx) { - ctx->server_cbs = potd_ssh_callbacks; + ctx->fwd_cbs = potd_ssh_callbacks; if (ssh_init()) return 1; @@ -26,7 +30,7 @@ int ssh_init_cb(struct server_ctx *ctx) assert(d); d->sshbind = ssh_bind_new(); d->session = ssh_new(); - ctx->server_dat.data = d; + ctx->data = d; if (!d->sshbind || !d->session) return 1; if (set_default_keys(d->sshbind, 0, 0, 0)) @@ -35,9 +39,9 @@ int ssh_init_cb(struct server_ctx *ctx) return 0; } -int ssh_on_listen(struct server_data *data) +int ssh_on_listen(struct forward_ctx *ctx) { - ssh_data *d = (ssh_data *) data->data; + ssh_data *d = (ssh_data *) ctx->data; if (ssh_bind_listen(d->sshbind) < 0) { E("Error listening to SSH socket: %s", ssh_get_error(d->sshbind)); @@ -45,7 +49,7 @@ int ssh_on_listen(struct server_data *data) return 0; } -int ssh_on_shutdown(struct server_data *data) +int ssh_on_shutdown(struct forward_ctx *ctx) { return 0; } |