diff options
author | Guangxiong Lin <[email protected]> | 2022-12-16 13:53:35 +0800 |
---|---|---|
committer | Guangxiong Lin <[email protected]> | 2022-12-16 13:53:35 +0800 |
commit | 7369505397cdfddf0883e2c24e1652df8bd488fe (patch) | |
tree | e961bd1bba0276e2c5f523bf12663b34983c9e51 /connection.c | |
parent | 49839c88a98d3798f7b18c58f54f26f36cacff38 (diff) | |
download | tinyserver-7369505397cdfddf0883e2c24e1652df8bd488fe.tar.gz tinyserver-7369505397cdfddf0883e2c24e1652df8bd488fe.tar.bz2 tinyserver-7369505397cdfddf0883e2c24e1652df8bd488fe.zip |
Refactor file structure
Diffstat (limited to 'connection.c')
-rw-r--r-- | connection.c | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/connection.c b/connection.c deleted file mode 100644 index c164ec8..0000000 --- a/connection.c +++ /dev/null @@ -1,58 +0,0 @@ -#include <stdlib.h> -#include <errno.h> -#include <stdio.h> -#include <unistd.h> - -#include "connection.h" -#include "constant.h" - -#define READ_BUFFER_SIZE 1024 - -struct connection { - struct tsocket *sock; -}; - -struct connection *connection_create(struct tsocket *sock) -{ - struct connection *conn = malloc(sizeof(*conn)); - conn->sock = sock; - - return conn; -} - -void connection_destroy(struct connection *conn) -{ - tsocket_destroy(conn->sock); - free(conn); -} - -static void echo(struct connection *conn) -{ - char buf[READ_BUFFER_SIZE]; - ssize_t n_read_bytes; - - struct tsocket *sock = (struct tsocket *)conn->sock; - - for (;;) { - n_read_bytes = read(sock->fd, buf, sizeof(buf)); - if (n_read_bytes > 0) { - printf("message from conn %d: %s\n", sock->fd, buf); - write(sock->fd, buf, sizeof(buf)); - } else if (n_read_bytes == 0) { - printf("conn %d disconnected\n", sock->fd); - return; - } else if (n_read_bytes == -1) { - if (errno == EAGAIN || errno == EWOULDBLOCK) - break; - } - } -} - -event_t *connection_create_event(struct tsocket *sock) -{ - connection_t *conn = connection_create(sock); - return event_create(conn, conn->sock->fd, - (evloop_process_func_t) echo, - (evloop_destroy_func_t) connection_destroy); -} - |