]> rtime.felk.cvut.cz Git - coffee/mt-apps.git/blobdiff - mt_server.c
.gitignore
[coffee/mt-apps.git] / mt_server.c
index 220b6bff45a52f6404325c8d9b54c56272b8ecba..d6a3904493917afa0155442592aeb31f95b47cf4 100644 (file)
@@ -99,7 +99,7 @@ static int callback_merica_terminal(struct lws *wsi,
 
         case LWS_CALLBACK_SERVER_WRITEABLE:
             n = strlen(line);
-            m = lws_write(wsi, line, n, LWS_WRITE_TEXT);
+            m = lws_write(wsi, (unsigned char *)line, n, LWS_WRITE_TEXT);
             if (m < n) {
                 fprintf(stderr, "ERROR %d writing to di socket\n", n);
                 return -1;
@@ -163,11 +163,12 @@ int mt_server_init(mt_server_t *self, struct ev_loop *loop, int fd)
 
     ev_io_ws *w = &(self->fd_watcher);
     w->context = context;
-    w->text = (char *)malloc(INPUT_LINE_LENGTH*sizeof(char));
+    w->text = (char *)malloc((LWS_PRE + INPUT_LINE_LENGTH)*sizeof(char));
     if (!w->text) {
         perror("malloc");
         return -1;
     }
+    w->text += LWS_PRE;
     strcpy(w->text, JSON_EMPTY);
     w->pos = w->text;
     protocols[PROTOCOL_MERICA_TERMINAL].user = (void *)w->text;
@@ -177,14 +178,14 @@ int mt_server_init(mt_server_t *self, struct ev_loop *loop, int fd)
     return lws_ev_initloop(context, loop, 0);
 }
 
-void mt_server_deinit(mt_server_t *self) //TODO wtf
+void mt_server_deinit(mt_server_t *self)
 {
-    //free(self->fd_watcher.text);
-    //protocols[PROTOCOL_MERICA_TERMINAL].user = NULL;
+    free(self->fd_watcher.text - LWS_PRE);
+    protocols[PROTOCOL_MERICA_TERMINAL].user = NULL;
     lws_context_destroy(self->context);
 }
 
-#ifdef IS_MAIN
+#ifndef NO_MAIN
 int main(int argc, const char **argv)
 {
     struct ev_loop *loop = EV_DEFAULT;