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;
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;
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;