add option port
authorLaurent Mazet <laurent.mazet@thalesgroup.com>
Tue, 25 Apr 2023 14:32:21 +0000 (16:32 +0200)
committerLaurent Mazet <laurent.mazet@thalesgroup.com>
Tue, 25 Apr 2023 14:32:21 +0000 (16:32 +0200)
webserver.c

index c5d2199b46082e5b954c0e5db3ab2d0c87012071..5c95457743b17c10f3a6ce47a5e98d2ddb1554b4 100644 (file)
@@ -16,6 +16,7 @@
 /* gobal variables */
 
 char *progname = NULL;
+int port = 8080;
 
 /* help function */
 
@@ -24,6 +25,7 @@ int usage (int ret)
     FILE *fid = ret ? stderr : stdout;
     fprintf (fid, "usage: %s\n", progname);
     fprintf (fid, " -h : help message\n");
+    fprintf (fid, " -p : port number (%d)\n", port);
     fprintf (fid, " -v : verbose level (%d)\n", verbose);
 
     return ret;
@@ -58,16 +60,18 @@ int main (int argc, char *argv[])
         }
         char c = arg[1];
         switch (c) {
-/*
-            case 'i':
+            case 'p':
             arg = (arg[2]) ? arg + 2 : (--argc > 0) ? *(++argv) : NULL;
             if (arg == NULL) {
-                VERBOSE (ERROR, fprintf (stderr, "%s: missing input prompt\n", progname); usage (1));
+                VERBOSE (ERROR, fprintf (stderr, "%s: missing port number\n", progname); usage (1));
+                return 1;
+            }
+            port = atoi (arg);
+            if (port <= 0) {
+                VERBOSE (ERROR, fprintf (stderr, "%s: incorrect port number (%s)\n", progname, arg); usage (1));
                 return 1;
             }
-            iprompt = arg;
             break;
-*/
         case 'v':
             arg = (arg[2]) ? arg + 2 : (--argc > 0) ? *(++argv) : NULL;
             if (arg == NULL) {
@@ -87,9 +91,11 @@ int main (int argc, char *argv[])
 
 // test: webserver.exe -h
 // test: webserver.exe -h | awk '/usage:/ { rc=1 } END { exit (1-rc) }'
-// test: echo 1 | webserver.exe -v3 | grep -q value
-// test: webserver.exe -_ 2> /dev/null | awk 'END { if (NR == 0) { exit(0) } else exit (1) }'
+// test: webserver.exe -_ 2> /dev/null | wc -l | xargs test 0 =
 // test: webserver.exe -_ 2>&1 | awk '/usage:/ { rc=1 } END { exit (1-rc) }'
 // test: webserver.exe error 2>&1 | grep -q 'invalid option'
+// test: webserver.exe -v 2>&1 | grep -q 'missing verbose level'
+// test: webserver.exe -p 2>&1 | grep -q 'missing port number'
+// test: webserver.exe -p -1 2>&1 | grep -q 'incorrect port number'
 
 /* vim: set ts=4 sw=4 et: */