]> prime8.dev >> repos - ttyd.git/commitdiff
Add support for the --signal-list option
authorShuanglei Tao <tsl0922@gmail.com>
Sat, 11 Feb 2017 00:13:18 +0000 (08:13 +0800)
committerShuanglei Tao <tsl0922@gmail.com>
Sat, 11 Feb 2017 00:20:08 +0000 (08:20 +0800)
README.md
src/server.c
src/utils.c
src/utils.h

index efb7ad782c65cc5aad95b95af061164a62b9bc78..368f2b80ceebb8b5ee2ce5e3dd393127c1b8e4ec 100644 (file)
--- a/README.md
+++ b/README.md
@@ -72,6 +72,7 @@ OPTIONS:
     --uid, -u               User id to run with
     --gid, -g               Group id to run with
     --signal, -s            Signal to send to the command when exit it (default: SIGHUP)
+    --signal-list           Print a list of supported signals
     --reconnect, -r         Time to reconnect for the client in seconds (default: 10)
     --readonly, -R          Do not allow clients to write to the TTY
     --client-option, -t     Send option to client (format: key=value), repeat to add more options
index 8979012bec3adb68b35b819b026dac5d5773706e..45ffa511f7ebe5674c8d2eca513e919392103cad 100644 (file)
@@ -28,6 +28,7 @@ static const struct option options[] = {
         {"uid",          required_argument, NULL, 'u'},
         {"gid",          required_argument, NULL, 'g'},
         {"signal",       required_argument, NULL, 's'},
+        {"signal-list",  no_argument,       NULL,  1},
         {"reconnect",    required_argument, NULL, 'r'},
         {"index",        required_argument, NULL, 'I'},
         {"ssl",          no_argument,       NULL, 'S'},
@@ -41,7 +42,7 @@ static const struct option options[] = {
         {"debug",        required_argument, NULL, 'd'},
         {"version",      no_argument,       NULL, 'v'},
         {"help",         no_argument,       NULL, 'h'},
-        {NULL, 0, 0,                              0}
+        {NULL,           0,                 0,     0}
 };
 static const char *opt_string = "p:i:c:u:g:s:r:I:aSC:K:A:Rt:OoBd:vh";
 
@@ -58,6 +59,7 @@ void print_help() {
                     "    --uid, -u               User id to run with\n"
                     "    --gid, -g               Group id to run with\n"
                     "    --signal, -s            Signal to send to the command when exit it (default: SIGHUP)\n"
+                    "    --signal-list           Print a list of supported signals\n"
                     "    --reconnect, -r         Time to reconnect for the client in seconds (default: 10)\n"
                     "    --readonly, -R          Do not allow clients to write to the TTY\n"
                     "    --client-option, -t     Send option to client (format: key=value), repeat to add more options\n"
@@ -232,6 +234,9 @@ main(int argc, char **argv) {
     int c;
     while ((c = getopt_long(start, argv, opt_string, options, NULL)) != -1) {
         switch (c) {
+            case 1:
+                print_sig_list();
+                exit(EXIT_SUCCESS);
             case 'h':
                 print_help();
                 return 0;
index b2fe8d67aa939140537521b8017851c77bfcd68c..af6ead50105f81c79102e3175b2ce161b2086b76 100644 (file)
@@ -88,6 +88,16 @@ get_sig(const char *sig_name) {
     return -1;
 }
 
+void print_sig_list() {
+    char name[30];
+    for (int sig = 1; sig < NSIG; sig++) {
+        if (sys_signame[sig] != NULL) {
+            strcpy(name, sys_signame[sig]);
+            printf("%2d) SIG%s (%s)\n", sig, uppercase(name), strsignal(sig));
+        }
+    }
+}
+
 int
 open_uri(char *uri) {
 #ifdef __APPLE__
index 7ac0008211ad05078d3c59af1b564b706be7a598..ceef70275b4cfec9b0ba5a80d0ea19d3ce1de730 100644 (file)
@@ -25,6 +25,10 @@ get_sig_name(int sig, char *buf);
 int
 get_sig(const char *sig_name);
 
+// print signal list
+void
+print_sig_list();
+
 // Open uri with the default application of system
 int
 open_uri(char *uri);