From 33e14b74df70ecbfcdb56b71a0ea7d4f1e05b1f4 Mon Sep 17 00:00:00 2001 From: Johnny Richard Date: Thu, 7 Apr 2022 14:36:21 +0200 Subject: server.c: Create server struct --- main.c | 38 +++++++------------------------------- 1 file changed, 7 insertions(+), 31 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index a977641..5db8d59 100644 --- a/main.c +++ b/main.c @@ -24,46 +24,22 @@ #include #include +#include "./server.h" + #define SERVER_PORT 6667 #define BUFFER_SIZE 1024 #define EXIT_COMMAND "exit" int main() { - int server_fd = socket(AF_INET, SOCK_STREAM, 0); - if (server_fd == -1) { - perror("[ERROR] unable to create a socket"); - return EXIT_FAILURE; - } - - struct sockaddr_in server; - server.sin_addr.s_addr = htonl(INADDR_ANY); - server.sin_family = AF_INET; - server.sin_port = htons(SERVER_PORT); - - int opt_val = 1; - setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR, &opt_val, sizeof(opt_val)); - - if (bind(server_fd, (struct sockaddr *) &server, sizeof(server)) == -1) { - perror("[ERROR] could not bind"); - close(server_fd); - return EXIT_FAILURE; - } - - if (listen(server_fd, SOMAXCONN) == -1) { - perror("[ERROR] could not listen"); - close(server_fd); - return EXIT_FAILURE; - } - - printf("[INFO] server listening at port (%d)\n", SERVER_PORT); + server_t server = server_create(SERVER_PORT); struct sockaddr_in client; socklen_t client_len = sizeof(client); - int client_fd = accept(server_fd, (struct sockaddr *) &client, &client_len); + int client_fd = accept(server.fd, (struct sockaddr *) &client, &client_len); if (client_fd == -1) { perror("[ERROR] could not accept connection"); - close(server_fd); + close(server.fd); return EXIT_FAILURE; } @@ -81,7 +57,7 @@ int main() { if (!strncasecmp(client_buf, EXIT_COMMAND, strlen(EXIT_COMMAND) - 1)) { puts("[INFO] exiting program. bye bye!"); close(client_fd); - close(server_fd); + close(server.fd); exit(EXIT_SUCCESS); } @@ -92,6 +68,6 @@ int main() { } close(client_fd); - close(server_fd); + close(server.fd); return EXIT_SUCCESS; } -- cgit v1.2.3