aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2018-04-16 17:25:09 +0200
committerToni Uhlig <matzeton@googlemail.com>2018-04-16 17:25:09 +0200
commitc9b3ea785346546948afcf685c80c460f3b1317a (patch)
treee5e43c24167f8e0a4d66e776ea71219e6e3d4adc /src/main.c
parent914f8f335d73c4dd69b72f6f2d8c53257bce497d (diff)
POTD skeleton #10.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c35
1 files changed, 18 insertions, 17 deletions
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");