]> prime8.dev >> repos - ttyd.git/commitdiff
protocol: fix readonly handling (#373)
authorGirts <girtsf@users.noreply.github.com>
Sat, 6 Jun 2020 13:51:15 +0000 (06:51 -0700)
committerGitHub <noreply@github.com>
Sat, 6 Jun 2020 13:51:15 +0000 (21:51 +0800)
Previously, if running in readonly mode (`-R`), we would keep
accumulating incoming websocket data to `pss->buffer`, resizing it with
every incoming message. This would also break the `RESIZE` operation as
we would never get rid of the `INPUT` message.

Now we discard `INPUT` messages in `readonly` mode, 1) allowing resize
to work and 2) preventing the buffer from growing indefinitely.

src/protocol.c

index 9586075964d6c8ddf18ec027a25d0031af80cb07..fbefa5408a009192b5d7e94b6c27843dd09a13b9 100644 (file)
@@ -358,7 +358,7 @@ int callback_tty(struct lws *wsi, enum lws_callback_reasons reason, void *user,
       switch (command) {
         case INPUT:
           if (proc->pty == 0) break;
-          if (server->readonly) return 0;
+          if (server->readonly) break;
 
           char *data = xmalloc(pss->len - 1);
           memcpy(data, pss->buffer + 1, pss->len - 1);