diff options
Diffstat (limited to 'include/net.h')
-rw-r--r-- | include/net.h | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/include/net.h b/include/net.h deleted file mode 100644 index 08c566a..0000000 --- a/include/net.h +++ /dev/null @@ -1,63 +0,0 @@ -// SPDX-FileCopyrightText: 2024 Lizzy Fleckenstein <lizzy@vlhl.dev> -// -// SPDX-License-Identifier: AGPL-3.0-or-later - -#ifndef NET_H -#define NET_H - -#include <stdio.h> -#include <stdint.h> -#include <stdbool.h> -#include <stddef.h> -#include <stdlib.h> -#include <poll.h> -#include <fcntl.h> -#include "str.h" -#include "ser.h" -#include "content.h" - -#define SET_NONBLOCK(X) fcntl((X), F_SETFL, fcntl((X), F_GETFL, 0) | O_NONBLOCK) - -#define PEER_INBUFFER_SIZE 0x100000 // 1MB -#define PEER_OUTBUFFER_SIZE 0x200000 // 2MB - -typedef uint32_t pkt_header; - -typedef struct { - int socket; - bool disco; - str *name; - struct { - bool header; - size_t len; - size_t promised; - uint8_t *buffer; - } in; - // TODO: ring buffer - struct { - size_t avail; - size_t cursor; - uint8_t *buffer; - } out; -} peer; - -#define SEND_PKT(CONN, TYPE, ...) \ - { strbuf pkt = NILSBUF; \ - ser_pkt_type(&pkt, TYPE); \ - __VA_ARGS__ \ - if (!peer_send(&(CONN), pkt.data, pkt.len)) \ - fprintf(stderr, "failed to send " #TYPE " to %.*s\n", PSTR(*(CONN).name)); \ - free(pkt.data); } - -void invalid_pkt(peer *p, str pkt); - -int socket_create(const char *host, const char *port, bool server); -int socket_accept(int accept_fd); - -void peer_init(peer *p, int socket, str *name); -void peer_free(peer *p); -struct pollfd peer_prepare(peer *p); -str peer_recv(peer *p, struct pollfd pfd); -bool peer_send(peer *p, void *data, size_t len); - -#endif |