Skip to content

Commit

Permalink
server: replace --readonly with --writable
Browse files Browse the repository at this point in the history
  • Loading branch information
tsl0922 committed May 9, 2023
1 parent e46e3cf commit f8efcdd
Show file tree
Hide file tree
Showing 8 changed files with 16 additions and 16 deletions.
2 changes: 1 addition & 1 deletion Dockerfile
Expand Up @@ -8,4 +8,4 @@ EXPOSE 7681
WORKDIR /root

ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["ttyd", "bash"]
CMD ["ttyd", "-W", "bash"]
2 changes: 1 addition & 1 deletion Dockerfile.alpine
Expand Up @@ -8,4 +8,4 @@ EXPOSE 7681
WORKDIR /root

ENTRYPOINT ["/sbin/tini", "--"]
CMD ["ttyd", "bash"]
CMD ["ttyd", "-W", "bash"]
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -70,7 +70,7 @@ OPTIONS:
-g, --gid Group id to run with
-s, --signal Signal to send to the command when exit it (default: 1, SIGHUP)
-a, --url-arg Allow client to send command line arguments in URL (eg: http://localhost:7681?arg=foo&arg=bar)
-R, --readonly Do not allow clients to write to the TTY
-W, --writable Allow clients to write to the TTY (readonly by default)
-t, --client-option Send option to client (format: key=value), repeat to add more options
-T, --terminal-type Terminal type to report, default: xterm-256color
-O, --check-origin Do not allow websocket connection from different origin
Expand Down
4 changes: 2 additions & 2 deletions man/ttyd.1
Expand Up @@ -78,8 +78,8 @@ Cross platform: macOS, Linux, FreeBSD/OpenBSD, OpenWrt/LEDE, Windows
Allow client to send command line arguments in URL (eg: http://localhost:7681?arg=foo&arg=bar)

.PP
-R, --readonly
Do not allow clients to write to the TTY
-R, --writable
Allow clients to write to the TTY (readonly by default)

.PP
-t, --client-option
Expand Down
4 changes: 2 additions & 2 deletions man/ttyd.man.md
Expand Up @@ -50,8 +50,8 @@ ttyd 1 "September 2016" ttyd "User Manual"
-a, --url-arg
Allow client to send command line arguments in URL (eg: http://localhost:7681?arg=foo&arg=bar)

-R, --readonly
Do not allow clients to write to the TTY
-W, --writable
Allow clients to write to the TTY (readonly by default)

-t, --client-option <key=value>
Send option to client (format: key=value), repeat to add more options, see **CLIENT OPTIONS** for details
Expand Down
2 changes: 1 addition & 1 deletion src/protocol.c
Expand Up @@ -306,7 +306,7 @@ int callback_tty(struct lws *wsi, enum lws_callback_reasons reason, void *user,

switch (command) {
case INPUT:
if (server->readonly) break;
if (!server->writable) break;
int err = pty_write(pss->process, pty_buf_init(pss->buffer + 1, pss->len - 1));
if (err) {
lwsl_err("uv_write: %s (%s)\n", uv_err_name(err), uv_strerror(err));
Expand Down
14 changes: 7 additions & 7 deletions src/server.c
Expand Up @@ -71,7 +71,7 @@ static const struct option options[] = {{"port", required_argument, NULL, 'p'},
{"ssl-key", required_argument, NULL, 'K'},
{"ssl-ca", required_argument, NULL, 'A'},
{"url-arg", no_argument, NULL, 'a'},
{"readonly", no_argument, NULL, 'R'},
{"writable", no_argument, NULL, 'W'},
{"terminal-type", required_argument, NULL, 'T'},
{"client-option", required_argument, NULL, 't'},
{"check-origin", no_argument, NULL, 'O'},
Expand All @@ -82,7 +82,7 @@ static const struct option options[] = {{"port", required_argument, NULL, 'p'},
{"version", no_argument, NULL, 'v'},
{"help", no_argument, NULL, 'h'},
{NULL, 0, 0, 0}};
static const char *opt_string = "p:i:U:c:H:u:g:s:w:I:b:P:6aSC:K:A:Rt:T:Om:oBd:vh";
static const char *opt_string = "p:i:U:c:H:u:g:s:w:I:b:P:6aSC:K:A:Wt:T:Om:oBd:vh";

static void print_help() {
// clang-format off
Expand All @@ -102,7 +102,7 @@ static void print_help() {
" -s, --signal Signal to send to the command when exit it (default: 1, SIGHUP)\n"
" -w, --cwd Working directory to be set for the child program\n"
" -a, --url-arg Allow client to send command line arguments in URL (eg: http://localhost:7681?arg=foo&arg=bar)\n"
" -R, --readonly Do not allow clients to write to the TTY\n"
" -W, --writable Allow clients to write to the TTY (readonly by default)\n"
" -t, --client-option Send option to client (format: key=value), repeat to add more options\n"
" -T, --terminal-type Terminal type to report, default: xterm-256color\n"
" -O, --check-origin Do not allow websocket connection from different origin\n"
Expand Down Expand Up @@ -148,10 +148,10 @@ static void print_config() {
if (server->auth_header != NULL) lwsl_notice(" auth header: %s\n", server->auth_header);
if (server->check_origin) lwsl_notice(" check origin: true\n");
if (server->url_arg) lwsl_notice(" allow url arg: true\n");
if (server->readonly) lwsl_notice(" readonly: true\n");
if (server->max_clients > 0) lwsl_notice(" max clients: %d\n", server->max_clients);
if (server->once) lwsl_notice(" once: true\n");
if (server->index != NULL) lwsl_notice(" custom index.html: %s\n", server->index);
if (!server->writable) lwsl_notice("The --writable option is not set, will start in readonly mode");
}

static struct server *server_new(int argc, char **argv, int start) {
Expand Down Expand Up @@ -324,7 +324,7 @@ int main(int argc, char **argv) {
info.max_http_header_data = 65535;

int debug_level = LLL_ERR | LLL_WARN | LLL_NOTICE;
char iface[128] = "127.0.0.1";
char iface[128] = "";
char socket_owner[128] = "";
bool browser = false;
bool ssl = false;
Expand Down Expand Up @@ -354,8 +354,8 @@ int main(int argc, char **argv) {
case 'a':
server->url_arg = true;
break;
case 'R':
server->readonly = true;
case 'W':
server->writable = true;
break;
case 'O':
server->check_origin = true;
Expand Down
2 changes: 1 addition & 1 deletion src/server.h
Expand Up @@ -74,7 +74,7 @@ struct server {
int sig_code; // close signal
char sig_name[20]; // human readable signal string
bool url_arg; // allow client to send cli arguments in URL
bool readonly; // whether not allow clients to write to the TTY
bool writable; // whether clients to write to the TTY
bool check_origin; // whether allow websocket connection from different origin
int max_clients; // maximum clients to support
bool once; // whether accept only one client and exit on disconnection
Expand Down

0 comments on commit f8efcdd

Please sign in to comment.