#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