From ebabaa69c0a3ba992895c7a66729e81e0923d5f1 Mon Sep 17 00:00:00 2001 From: Toni Uhlig Date: Thu, 5 Apr 2018 17:53:27 +0200 Subject: Initial commit. Signed-off-by: Toni Uhlig --- src/socket.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/socket.c (limited to 'src/socket.c') diff --git a/src/socket.c b/src/socket.c new file mode 100644 index 0000000..99e4477 --- /dev/null +++ b/src/socket.c @@ -0,0 +1,30 @@ +#include +#include +#include +#include + +#include "socket.h" + + +int socket_init_in(psocket *psocket, const char *listen_addr, unsigned int listen_port) +{ + struct in_addr addr = {0}; + + assert(psocket); + if (!inet_aton(listen_addr, &addr)) + return 1; + + psocket->sock.sin_family = AF_INET; + psocket->sock.sin_addr = addr; + psocket->sock.sin_port = htons(listen_port); + psocket->fd = socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK, 0); + return psocket->fd < 0; +} + +int socket_bind_listen(psocket *psocket) +{ + assert(psocket); + if (bind(psocket->fd, &psocket->sock, sizeof(psocket->sock)) < 0) + return 1; + return listen(psocket->fd, POTD_BACKLOG) < 0; +} -- cgit v1.2.3