static.h
changeset 27 1e79b4cc8f1b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/static.h	Mon Jul 07 04:36:03 2008 +0300
@@ -0,0 +1,38 @@
+#ifndef STATIC_H
+#define STATIC_H
+
+#include <event2/http.h>
+
+/*
+ * I serve up simple static files over HTTP by just loading them directly into memory.
+ *
+ * This is inefficient, but for small files it's OK.
+ */
+
+struct static_file {
+    // the file descriptor
+    int fh;
+
+    // the size of the file in bytes
+    off_t size;
+
+    // the mmap address
+    void *mmap_addr;
+};
+
+int static_init (struct static_file *ctx, struct evhttp *http_server, const char *url, const char *path);
+void static_deinit (struct static_file *ctx);
+
+#define STATIC_DIR_MAX 16
+#define STATIC_PATH_MAX 1024
+
+struct static_dir {
+    struct static_file files[STATIC_DIR_MAX];
+
+    int file_count;
+};
+
+int static_dir_init (struct static_dir *ctx, struct evhttp *http_server, const char *url_prefix, const char *dir_path);
+void static_dir_deinit (struct static_dir *ctx);
+
+#endif /* STATIC_H */