aboutsummaryrefslogtreecommitdiff
path: root/recv.c
diff options
context:
space:
mode:
authorRaymaekers Luca <raymaekers.luca@gmail.com>2024-10-24 23:10:31 +0200
committerRaymaekers Luca <raymaekers.luca@gmail.com>2024-10-24 23:10:31 +0200
commitf37cce374cc9da243fc2babbea9a7051f15db80a (patch)
tree7a6b0e5f7bd38cbd39ba1e1f43689ca6be92c53e /recv.c
parentc7687f88bc5cb4d25304b0ee19789c37aebd7b6d (diff)
Archive code into v1/ directory
The code was written too fast and I deemed that it would be better to make a new draft.
Diffstat (limited to 'recv.c')
-rw-r--r--recv.c57
1 files changed, 0 insertions, 57 deletions
diff --git a/recv.c b/recv.c
deleted file mode 100644
index e4433ae..0000000
--- a/recv.c
+++ /dev/null
@@ -1,57 +0,0 @@
-// Minimal server implementation for probing out things
-
-#include "common.h"
-#include <arpa/inet.h>
-#include <errno.h>
-#include <poll.h>
-#include <sys/socket.h>
-#include <unistd.h>
-
-int main(void)
-{
- u32 serverfd, clientfd;
- u8 on = 1;
-
- const struct sockaddr_in address = {
- AF_INET,
- htons(PORT),
- {0},
- };
-
- serverfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- setsockopt(serverfd, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof(on));
- if (bind(serverfd, (struct sockaddr *)&address, sizeof(address)))
- return 1;
-
- listen(serverfd, 256);
-
- clientfd = accept(serverfd, 0, 0);
-
- struct pollfd fds[1] = {
- {clientfd, POLLIN, 0},
- };
-
- for (;;) {
- int ret = poll(fds, 1, 50000);
- if (ret == -1)
- return 2;
-
- if (fds[0].revents & POLLIN) {
- u8 recv_buf[BUF_MAX];
- u32 nrecv = recv(clientfd, recv_buf, sizeof(recv_buf), 0);
-
- writef("client(%d): %d bytes received.\n", clientfd, nrecv);
- if (nrecv == -1) {
- return errno;
- } else if (nrecv == 0) {
- writef("client(%d): disconnected.\n", clientfd);
- fds[0].fd = -1;
- fds[0].revents = 0;
- close(clientfd);
- return 0;
- }
- }
- }
-
- return 0;
-}