From 65c2a56c6d62e3c24d52da8c63f306b70becdb45 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Wed, 23 Sep 2020 12:40:28 -0400 Subject: Initialize sockets --- include/config.h | 2 ++ include/server.h | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 include/server.h (limited to 'include') diff --git a/include/config.h b/include/config.h index f9d875c..dec0e15 100644 --- a/include/config.h +++ b/include/config.h @@ -15,6 +15,7 @@ struct gmnisrv_host { }; struct gmnisrv_bind { + char *name; int family, port; char addr[sizeof(struct in6_addr)]; struct gmnisrv_bind *next; @@ -27,6 +28,7 @@ struct gmnisrv_config { }; int load_config(struct gmnisrv_config *conf, const char *path); +void config_finish(struct gmnisrv_config *conf); struct gmnisrv_host *gmnisrv_config_get_host( struct gmnisrv_config *conf, const char *hostname); diff --git a/include/server.h b/include/server.h new file mode 100644 index 0000000..8547799 --- /dev/null +++ b/include/server.h @@ -0,0 +1,31 @@ +#ifndef GMNISRV_SERVER +#define GMNISRV_SERVER +#include + +#define GEMINI_MAX_URL 1024 + +struct gmnisrv_client { + char buf[GEMINI_MAX_URL + 2]; + size_t bufln; + int sockfd; + int respfd; +}; + +struct gmisrv_config; + +struct gmnisrv_server { + struct gmnisrv_config *conf; + struct pollfd *fds; + nfds_t nfds, fdsz; + + size_t nlisten; + + struct gmnisrv_client *clients; + size_t nclients, clientsz; +}; + +int server_init(struct gmnisrv_server *server, struct gmnisrv_config *conf); +void server_run(struct gmnisrv_server *server); +void server_finish(struct gmnisrv_server *server); + +#endif -- cgit v1.2.3