aboutsummaryrefslogtreecommitdiff
path: root/connection.c
diff options
context:
space:
mode:
Diffstat (limited to 'connection.c')
-rw-r--r--connection.c58
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);
-}
-