]> prime8.dev >> repos - ttyd.git/commitdiff
server: add option to toggle IPv6 support
authorShuanglei Tao <tsl0922@gmail.com>
Sun, 9 Dec 2018 01:13:14 +0000 (09:13 +0800)
committerShuanglei Tao <tsl0922@gmail.com>
Sun, 9 Dec 2018 01:13:14 +0000 (09:13 +0800)
README.md
man/ttyd.1
man/ttyd.man.md
src/server.c

index 3122e2a20edb9f0df20fd72f332ab96d72275c58..30588634fd469fc3c9650227340d99c97f1b2ee4 100644 (file)
--- a/README.md
+++ b/README.md
@@ -85,6 +85,7 @@ OPTIONS:
     -o, --once              Accept only one client and exit on disconnection
     -B, --browser           Open terminal with the default system browser
     -I, --index             Custom index.html path
+    -6, --ipv6              Enable IPv6 support
     -S, --ssl               Enable SSL
     -C, --ssl-cert          SSL certificate file path
     -K, --ssl-key           SSL key file path
index 46e4efba39078933447f247b20f3017263be1411..a5197cdeb8310db9418c008efeca0a6ba42c542a 100644 (file)
@@ -90,6 +90,10 @@ Cross platform: macOS, Linux, FreeBSD/OpenBSD, OpenWrt/LEDE, Windows
 \-I, \-\-index <index file>
       Custom index.html path
 
+.PP
+\-6, \-\-ipv6
+      Enable IPv6 support
+
 .PP
 \-S, \-\-ssl
       Enable SSL
index 41d48a1627d1c8e16836eab06b623000f408cfa7..47ef98127e0a20cef11551e2348a93e36e9946f8 100644 (file)
@@ -64,6 +64,9 @@ ttyd 1 "September 2016" ttyd "User Manual"
   -I, --index <index file>
       Custom index.html path
 
+  -6, --ipv6
+      Enable IPv6 support
+
   -S, --ssl
       Enable SSL
 
index 96680d4ed7178ddc906ddd75cc61d8592548c56c..2f6be83d8a074c09020ae51b8f80b0ba2bcc7847 100644 (file)
@@ -47,6 +47,7 @@ static const struct option options[] = {
         {"signal-list",  no_argument,       NULL,  1},
         {"reconnect",    required_argument, NULL, 'r'},
         {"index",        required_argument, NULL, 'I'},
+        {"ipv6",         no_argument, NULL, '6'},
         {"ssl",          no_argument,       NULL, 'S'},
         {"ssl-cert",     required_argument, NULL, 'C'},
         {"ssl-key",      required_argument, NULL, 'K'},
@@ -61,7 +62,7 @@ static const struct option options[] = {
         {"help",         no_argument,       NULL, 'h'},
         {NULL,           0,                 0,     0}
 };
-static const char *opt_string = "p:i:c:u:g:s:r:I:aSC:K:A:Rt:T:Om:oBd:vh";
+static const char *opt_string = "p:i:c:u:g:s:r:I:6aSC:K:A:Rt:T:Om:oBd:vh";
 
 void print_help() {
     fprintf(stderr, "ttyd is a tool for sharing terminal over the web\n\n"
@@ -85,6 +86,7 @@ void print_help() {
                     "    -o, --once              Accept only one client and exit on disconnection\n"
                     "    -B, --browser           Open terminal with the default system browser\n"
                     "    -I, --index             Custom index.html path\n"
+                    "    -6, --ipv6              Enable IPv6 support\n"
                     "    -S, --ssl               Enable SSL\n"
                     "    -C, --ssl-cert          SSL certificate file path\n"
                     "    -K, --ssl-key           SSL key file path\n"
@@ -236,7 +238,7 @@ main(int argc, char **argv) {
     info.gid = -1;
     info.uid = -1;
     info.max_http_header_pool = 16;
-    info.options = LWS_SERVER_OPTION_VALIDATE_UTF8;
+    info.options = LWS_SERVER_OPTION_VALIDATE_UTF8 | LWS_SERVER_OPTION_DISABLE_IPV6;
     info.extensions = extensions;
 
     int debug_level = LLL_ERR | LLL_WARN | LLL_NOTICE;
@@ -337,6 +339,9 @@ main(int argc, char **argv) {
                     return -1;
                 }
                 break;
+            case '6':
+                info.options &= ~(LWS_SERVER_OPTION_DISABLE_IPV6);
+                break;
             case 'S':
                 ssl = true;
                 break;