diff options
| author | Drew DeVault <sir@cmpwn.com> | 2020-09-23 14:19:28 -0400 |
|---|---|---|
| committer | Drew DeVault <sir@cmpwn.com> | 2020-09-23 14:19:28 -0400 |
| commit | da9db7bc46db0cb675635594c7c207e232a2da63 (patch) | |
| tree | b9ec7137c1a3408524a606c10f9ce719898ee04e /include/server.h | |
| parent | f88d817dcac470b4f3f531453d2e7b255e85cf68 (diff) | |
| download | gmnisrv-da9db7bc46db0cb675635594c7c207e232a2da63.tar.gz gmnisrv-da9db7bc46db0cb675635594c7c207e232a2da63.tar.xz gmnisrv-da9db7bc46db0cb675635594c7c207e232a2da63.zip | |
Implement basic server event loop
Diffstat (limited to 'include/server.h')
| -rw-r--r-- | include/server.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/include/server.h b/include/server.h index 8547799..ac3bcac 100644 --- a/include/server.h +++ b/include/server.h @@ -1,14 +1,18 @@ #ifndef GMNISRV_SERVER #define GMNISRV_SERVER #include <poll.h> +#include <stdbool.h> #define GEMINI_MAX_URL 1024 struct gmnisrv_client { + struct sockaddr addr; + socklen_t addrlen; + char buf[GEMINI_MAX_URL + 2]; size_t bufln; + int sockfd; - int respfd; }; struct gmisrv_config; @@ -18,10 +22,15 @@ struct gmnisrv_server { struct pollfd *fds; nfds_t nfds, fdsz; + // nlisten is initialized once and does not change. The fds list starts + // with this many listening sockets, then has sockets for each active + // client, up to nfds. size_t nlisten; struct gmnisrv_client *clients; size_t nclients, clientsz; + + bool run; }; int server_init(struct gmnisrv_server *server, struct gmnisrv_config *conf); |
