summaryrefslogtreecommitdiffhomepage
path: root/contrib/package/uhttpd/src/uhttpd.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/package/uhttpd/src/uhttpd.h')
-rw-r--r--contrib/package/uhttpd/src/uhttpd.h84
1 files changed, 84 insertions, 0 deletions
diff --git a/contrib/package/uhttpd/src/uhttpd.h b/contrib/package/uhttpd/src/uhttpd.h
new file mode 100644
index 0000000000..aa5a515e48
--- /dev/null
+++ b/contrib/package/uhttpd/src/uhttpd.h
@@ -0,0 +1,84 @@
+#ifndef _UHTTPD_
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <signal.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/select.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <linux/limits.h>
+#include <netdb.h>
+#include <ctype.h>
+
+#ifdef HAVE_TLS
+#include <openssl/ssl.h>
+#endif
+
+
+#define UH_LIMIT_MSGHEAD 4096
+#define UH_LIMIT_HEADERS 64
+
+#define UH_LIMIT_LISTENERS 16
+#define UH_LIMIT_CLIENTS 64
+
+#define UH_HTTP_MSG_GET 0
+#define UH_HTTP_MSG_HEAD 1
+#define UH_HTTP_MSG_POST 2
+
+
+struct config {
+ char docroot[PATH_MAX];
+#ifdef HAVE_CGI
+ char *cgi_prefix;
+#endif
+#ifdef HAVE_LUA
+ char *lua_prefix;
+ char *lua_handler;
+#endif
+#ifdef HAVE_TLS
+ char *cert;
+ char *key;
+ SSL_CTX *tls;
+#endif
+};
+
+struct listener {
+ int socket;
+ struct sockaddr_in6 addr;
+ struct config *conf;
+#ifdef HAVE_TLS
+ SSL_CTX *tls;
+#endif
+};
+
+struct client {
+ int socket;
+ int peeklen;
+ char peekbuf[UH_LIMIT_MSGHEAD];
+ struct listener *server;
+ struct sockaddr_in6 servaddr;
+ struct sockaddr_in6 peeraddr;
+#ifdef HAVE_TLS
+ SSL *tls;
+#endif
+};
+
+struct http_request {
+ int method;
+ float version;
+ char *url;
+ char *headers[UH_LIMIT_HEADERS];
+};
+
+struct http_response {
+ int statuscode;
+ char *statusmsg;
+ char *headers[UH_LIMIT_HEADERS];
+};
+
+#endif
+