From c9b3ea785346546948afcf685c80c460f3b1317a Mon Sep 17 00:00:00 2001 From: Toni Uhlig Date: Mon, 16 Apr 2018 17:25:09 +0200 Subject: POTD skeleton #10. Signed-off-by: Toni Uhlig --- src/main.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 21dcc5f..963be84 100644 --- a/src/main.c +++ b/src/main.c @@ -2,6 +2,7 @@ #include "log_colored.h" #include "server.h" #include "server_ssh.h" +#include "forward.h" #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -12,15 +13,24 @@ int main(int argc, char *argv[]) const size_t srv_siz = 3; const char *ssh_ports[srv_siz]; server_ctx *srv[srv_siz]; - struct addrinfo *netifs = NULL; + forward_ctx *ssh_fwd = NULL; int epoll_fd; - (void)argc; - (void)argv; + (void) argc; + (void) argv; LOG_SET_FUNCS_VA(LOG_COLORED_FUNCS); N("%s (C) 2018 Toni Uhlig (%s)", PACKAGE_STRING, PACKAGE_BUGREPORT); + { + ABORT_ON_FATAL( fwd_init_ctx(&ssh_fwd, ssh_init_cb), + "Forwarder initialisation" ); + ABORT_ON_FATAL( fwd_setup(ssh_fwd, "127.0.0.1", "22"), + "Forwarder setup" ); + ABORT_ON_FATAL( fwd_validate_ctx( ssh_fwd ), + "Forwarder validation" ); + } + memset(srv, 0, sizeof(srv)); ssh_ports[0] = "2222"; ssh_ports[1] = "2223"; @@ -29,21 +39,12 @@ int main(int argc, char *argv[]) for (size_t i = 0; i < srv_siz; ++i) { D("Initialising redirector service on port %s", ssh_ports[i]); - ABORT_ON_FATAL( server_init_ctx(&srv[i], ssh_init_cb) == 0, + ABORT_ON_FATAL( server_init_ctx(&srv[i], ssh_fwd), "Server initialisation" ); - server_validate_ctx(srv[i]); - - GAI_ABORT_ON_FATAL( socket_init_in(NULL, ssh_ports[i], &netifs), - "Socket initialisation" ); - - ABORT_ON_FATAL( socket_bind_in(&srv[i]->sock, netifs), - "Socket bind" ); - - ABORT_ON_FATAL( socket_listen_in(&srv[i]->sock), - "Socket listen" ); - - ABORT_ON_FATAL( srv[i]->server_cbs.on_listen(&srv[i]->server_dat), - "Socket on listen callback" ); + ABORT_ON_FATAL( server_setup(srv[i], NULL, ssh_ports[i]), + "Server setup" ); + ABORT_ON_FATAL( server_validate_ctx(srv[i]), + "Server validation" ); } D2("%s", "Server epoll setup"); -- cgit v1.2.3