aboutsummaryrefslogtreecommitdiff
path: root/src/redirector.h
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2018-05-13 13:41:22 +0200
committerToni Uhlig <matzeton@googlemail.com>2018-05-13 13:41:22 +0200
commitaebb4b9fa16bd82fc78d850dc47484c6d733b223 (patch)
treef1334993279ddc6bc9382e375a732120450924bc /src/redirector.h
parentbc240cca7918d6e6f4f56fbe19d32eb20f07a567 (diff)
POTD skeleton #47.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'src/redirector.h')
-rw-r--r--src/redirector.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/redirector.h b/src/redirector.h
new file mode 100644
index 0000000..3d62335
--- /dev/null
+++ b/src/redirector.h
@@ -0,0 +1,28 @@
+#ifndef POTD_SERVER_H
+#define POTD_SERVER_H 1
+
+#include "socket.h"
+#include "forward.h"
+#include "pevent.h"
+
+
+typedef struct redirector_ctx {
+ forward_ctx *fwd_ctx;
+ psocket sock;
+ char host_buf[NI_MAXHOST], service_buf[NI_MAXSERV];
+} redirector_ctx;
+
+
+void redirector_init_ctx(redirector_ctx **rdr_ctx, forward_ctx *fwd_ctx);
+
+int redirector_setup(redirector_ctx *rdr_ctx,
+ const char *listen_addr, const char *listen_port);
+
+int redirector_validate_ctx(const redirector_ctx *rdr_ctx);
+
+int redirector_setup_event(redirector_ctx *rdr_ctx[], size_t siz,
+ event_ctx **ev_ctx);
+
+pid_t redirector_daemonize(event_ctx *ev_ctx, redirector_ctx *rdr_ctx[], size_t siz);
+
+#endif