+#define _GNU_SOURCE /* See feature_test_macros(7) */
+#include <errno.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <syslog.h>
#include "mt_server.h"
#include "signal_exit.h"
+#include "mt_blank.h"
char *new_line()
{
lws_callback_on_writable_all_protocol(context,
&protocols[PROTOCOL_MERICA_TERMINAL]);
}
- } else {
- line = copy_line(JSON_EMPTY);
- if (line) {
- n = strlen(line);
- m = lws_write(wsi, (unsigned char *)line, n, LWS_WRITE_TEXT);
- free_line(line);
- } else {
+ if (m < n) {
+ fprintf(stderr, "ERROR %d writing to di socket\n", n);
return -1;
}
}
- if (m < n) {
- fprintf(stderr, "ERROR %d writing to di socket\n", n);
- return -1;
- }
break;
case LWS_CALLBACK_RECEIVE:
- if (strcmp((const char *)in, "reset") == 0) {
- line = copy_line(JSON_EMPTY);
- if (line) {
- if (list_add(lines, line) == 0) {
- lws_callback_on_writable_all_protocol(context,
- &protocols[PROTOCOL_MERICA_TERMINAL]);
- } else {
- free_line(line);
- }
- }
- } else if (strcmp((const char *)in, "close") == 0) {
+ if (strcmp((const char *)in, "close") == 0) {
fprintf(stderr, "closing websocket\n");
lws_close_reason(wsi, LWS_CLOSE_STATUS_GOINGAWAY,
(unsigned char *)"seeya", 5);
read(w->w.fd, pos, 1);
if (*pos == '\n' || (w->pos - w->text) == INPUT_LINE_LENGTH) {
+#ifdef NO_MAIN
+ mt_blank_wake();
+#endif
*pos = 0;
+ syslog(LOG_INFO, "%s", w->text);
char *line = new_line();
if (line) {
if (list_add(w->lines, w->text) == 0) {
return -1;
}
+ openlog(program_invocation_short_name, LOG_PID | LOG_PERROR, LOG_DAEMON);
+
memset(&info, 0, sizeof(info));
info.port = HTTP_PORT;
info.mounts = &mount;
free_line(self->fd_watcher.text);
list_deinit(self->fd_watcher.lines);
lws_context_destroy(self->context);
+ closelog();
}
#ifndef NO_MAIN