summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
new file mode 100644
index 0000000..13dae57
--- /dev/null
+++ b/src/main.c
@@ -0,0 +1,32 @@
+#include "server/server.h"
+
+#include <stdlib.h>
+#include <sys/select.h>
+
+#define DEFAULT_PORT 53
+
+static uint16_t get_port(const char* port_str) {
+ if (port_str == NULL) {
+ return DEFAULT_PORT;
+ }
+
+ uint16_t port;
+ if ((port = strtoul(port_str, NULL, 10)) == 0) {
+ return DEFAULT_PORT;
+ }
+
+ return port;
+}
+
+int main(void) {
+
+ const char* port_str = getenv("PORT");
+ uint16_t port = get_port(port_str);
+
+ Server server;
+ server_init(port, &server);
+ server_run(&server);
+ server_free(&server);
+
+ return EXIT_SUCCESS;
+}