From 6416c8feecc760807f4edf5d9c8e8be9c2df8981 Mon Sep 17 00:00:00 2001 From: mrfoxygmfr Date: Tue, 20 May 2025 21:50:25 +0300 Subject: feat(lib/net): network library implemented --- lib/net/client.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 lib/net/client.c (limited to 'lib/net/client.c') diff --git a/lib/net/client.c b/lib/net/client.c new file mode 100644 index 0000000..10d84b1 --- /dev/null +++ b/lib/net/client.c @@ -0,0 +1,31 @@ +#include "./client.h" +#include "common.h" +#include + +conn_t* client_connect_to_server(const char* addr, const char* port) { + conn_t* conn = calloc(1, sizeof(*conn)); + + conn->conn_socket_fd = socket(AF_INET, SOCK_STREAM, 0); + if (conn->conn_socket_fd == -1) { + fprintf(stderr, "[client_connect_to_server] Unable to create socket()\n"); + exit(EXIT_FAILURE); + } + + struct sockaddr_in* conn_addr = get_addr(addr, port); + + if (connect(conn->conn_socket_fd, conn_addr, sizeof(*conn_addr)) == -1) { + if (errno == ECONNREFUSED) { + close(conn->conn_socket_fd); + free(conn); + + return NULL; + } + + fprintf(stderr, "[connect_to_master] Unable to connect() to master"); + exit(EXIT_FAILURE); + } + + free(conn_addr); + + return conn; +} -- cgit mrf-deployment