ferdnyc / rpms / chmlib

Forked from rpms/chmlib 4 years ago
Clone
Blob Blame History Raw
From 472396d694ae1d8b77f8b349ab13e387b9eae629 Mon Sep 17 00:00:00 2001
From: "FeRD (Frank Dana)" <ferdnyc@gmail.com>
Date: Thu, 11 Jul 2019 21:16:43 -0400
Subject: [PATCH] Print URL for server, quiet option suppresses

This will display a line of text on stdout immediately after
binding to the configured address and port:
`Server running at http://<address>:<port>/`
An option `-q` / `--quiet` is added, to suppress the output.
---
 src/chm_http.c | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/chm_http.c b/src/chm_http.c
index 237e85a..84304f9 100644
--- a/src/chm_http.c
+++ b/src/chm_http.c
@@ -51,13 +51,14 @@
 
 int config_port = 8080;
 char config_bind[65536] = "127.0.0.1";
+char config_quiet = 0;
 
 static void usage(const char *argv0)
 {
 #ifdef CHM_HTTP_SIMPLE
-    fprintf(stderr, "usage: %s <filename>\n", argv0);
+    fprintf(stderr, "usage: %s [--quiet] <filename>\n", argv0);
 #else
-    fprintf(stderr, "usage: %s [--port=PORT] [--bind=IP] <filename>\n", argv0);
+    fprintf(stderr, "usage: %s [--quiet] [--port=PORT] [--bind=IP] <filename>\n", argv0);
 #endif
     exit(1);
 }
@@ -80,6 +81,7 @@ int main(int c, char **v)
     {
         { "port", required_argument, 0, 'p' },
         { "bind", required_argument, 0, 'b' },
+        { "quiet", no_argument, 0, 'q' },
         { "help", no_argument, 0, 'h' },
         { 0, 0, 0, 0 }
     };
@@ -87,7 +89,7 @@ int main(int c, char **v)
     while (1) 
     {
         int o;
-        o = getopt_long (c, v, "p:b:h", longopts, &optindex);
+        o = getopt_long (c, v, "p:b:qh", longopts, &optindex);
         if (o < 0) 
         {
             break;
@@ -109,6 +111,10 @@ int main(int c, char **v)
                 config_bind[65535] = '\0';
                 break;
 
+            case 'q':
+                config_quiet = 1;
+                break;
+
             case 'h':
                 usage (v[0]);
                 break;
@@ -182,6 +188,12 @@ static void chmhttp_server(const char *filename)
         exit(3);
     }
 
+    /* Display URL for server */
+    if (!config_quiet)
+    {
+        printf("Server running at http://%s:%d/\n", config_bind, config_port);
+    }
+
     /* listen for connections */
     listen(server.socket, 75);
     addrLen = sizeof(struct sockaddr);
-- 
2.21.0