]> rtime.felk.cvut.cz Git - coffee/mt-apps.git/blobdiff - mt_server.h
mt_server: Use "%s" format string in syslog()
[coffee/mt-apps.git] / mt_server.h
index a2cab9d78e52836b534cdeb2aaa46ce17ad3f0a1..5beb9dd8b1da209a0d1d5b5c2f54bfa3c25263a5 100644 (file)
@@ -2,8 +2,51 @@
 #define MT_SERVER_H
 
 #include <ev.h>
+#include <libwebsockets.h>
 
-int mt_server_init(struct ev_loop *loop, int fd);
-void mt_server_deinit();
+// set these two according to your data
+// rx buf size must be >= permessage-deflate rx size
+#define MT_PROTOCOL_RX_BUFFER_SIZE 128
+#define INPUT_LINE_LENGTH          MT_PROTOCOL_RX_BUFFER_SIZE
+
+#if defined(SIM)
+#define HTTP_PORT       8080                    // listen here
+#define HTTP_ORIGIN     "html" // where the html files are
+#else
+#define HTTP_PORT       80                    // listen here
+#define HTTP_ORIGIN     "/usr/share/mtserver" // where the html files are
+#endif
+#define HTTP_MOUNTPOINT "/"                   // mountpoint URL
+#define HTTP_DEFAULT    "index.html"          // default filename
+
+typedef struct node {
+    char *line;
+    struct node *next;
+} node;
+
+typedef struct list {
+    struct node *first;
+    struct node *last;
+} list;
+
+typedef struct ev_io_ws {
+    ev_io w;                     // input watcher
+    struct lws_context *context;
+    list *lines;
+    char *text;                  // input buffer pointer
+    char *pos;                   // input buffer current position pointer
+} ev_io_ws;
+
+typedef struct mt_server_t {
+    struct lws_context *context;
+    ev_io_ws fd_watcher;         // input watcher
+} mt_server_t;
+
+// init self, add it to loop and make it read data from fd
+// return 0 on success, -1 otherwise
+int mt_server_init(mt_server_t *self, struct ev_loop *loop, int fd);
+
+// gett drunc an kil sellf
+void mt_server_deinit(mt_server_t *self);
 
 #endif