diff options
Diffstat (limited to 'src/server.c')
| -rw-r--r-- | src/server.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/server.c b/src/server.c index 9604bd6..00789d5 100644 --- a/src/server.c +++ b/src/server.c @@ -1,22 +1,25 @@ #include "server.h" #include "msg.h" #include "net.h" +#include "tcp_server.h" #include <stdio.h> #include <unistd.h> int server_create(struct server *server, const struct settings *settings) { - server->fd = bind_to_port(settings->port); - if (server->fd < 0) - return server->fd; + int ret = 0; + + ret = tcp_server_create(&server->tcp_server, settings->port); + if (ret < 0) + return ret; return 0; } void server_destroy(const struct server *server) { - close(server->fd); + tcp_server_destroy(&server->tcp_server); } static int msg_handle(const struct msg *msg, void *) @@ -24,22 +27,17 @@ static int msg_handle(const struct msg *msg, void *) return msg_dump_unknown(msg); } -static int server_handle(int fd, void *) +static int server_conn_handler(int fd, void *) { return msg_recv_and_send_result(fd, msg_handle, NULL); } -static int server_accept(const struct server *server) -{ - return accept_connection(server->fd, server_handle, NULL); -} - int server_main(const struct server *server) { int ret = 0; while (1) { - ret = server_accept(server); + ret = tcp_server_accept(&server->tcp_server, server_conn_handler, NULL); if (ret < 0) return ret; } |
