Modify version string for various binaries.
authorJustin Pettit <jpettit@nicira.com>
Thu, 21 May 2009 05:18:37 +0000 (22:18 -0700)
committerJustin Pettit <jpettit@nicira.com>
Thu, 21 May 2009 05:50:58 +0000 (22:50 -0700)
For applications that understand OpenFlow, print the versions they
support.  This change also adds that the program is part of the Open
vSwitch project.

Add support for the "--version" argument to some programs that were
missing it.

14 files changed:
extras/ezio/ezio-term.c
extras/ezio/ovs-switchui.c
lib/util.c
lib/util.h
secchan/main.c
utilities/ovs-appctl.c
utilities/ovs-cfg-mod.c
utilities/ovs-controller.c
utilities/ovs-discover.c
utilities/ovs-dpctl.c
utilities/ovs-kill.c
utilities/ovs-ofctl.c
vswitchd/brcompatd.c
vswitchd/vswitchd.c

index 2bda002b808507e269f1af3e1b573022ef3ccf3e..c2177addff88ef0f6ef00b70aa3eb0a122829b9f 100644 (file)
@@ -1020,8 +1020,7 @@ parse_options(int argc, char *argv[])
             usage();
 
         case 'V':
-            printf("%s %s compiled "__DATE__" "__TIME__"\n",
-                   program_name, VERSION BUILDNR);
+            OVS_PRINT_VERSION(0, 0);
             exit(EXIT_SUCCESS);
 
         DAEMON_OPTION_HANDLERS
index 0855abc6a327d463bf1787f532fcab6aa061820c..6fbf252381efe4aa6ac4acb82a9605ba8542691d 100644 (file)
@@ -2993,8 +2993,7 @@ parse_options(int argc, char *argv[])
             usage();
 
         case 'V':
-            printf("%s %s compiled "__DATE__" "__TIME__"\n",
-                   program_name, VERSION BUILDNR);
+            OVS_PRINT_VERSION(OFP_VERSION, OFP_VERSION);
             exit(EXIT_SUCCESS);
 
         VLOG_OPTION_HANDLERS
index 7ad8ba4ee69693d2b9522735915a9b19f238d0ad..ff392f440bbe3df6490ffc33b5325abf9935666e 100644 (file)
@@ -194,6 +194,18 @@ void set_program_name(const char *argv0)
     program_name = slash ? slash + 1 : argv0;
 }
 
+/* Print the version information for the program.  */
+void
+ovs_print_version(char *date, char *time, 
+                  uint8_t min_ofp, uint8_t max_ofp)
+{
+    printf("%s (Open vSwitch) "VERSION BUILDNR"\n", program_name);
+    printf("Compiled %s %s\n", date, time);
+    if (min_ofp || max_ofp) {
+        printf("OpenFlow versions %#x:%#x\n", min_ofp, max_ofp);
+    }
+}
+
 /* Writes the 'size' bytes in 'buf' to 'stream' as hex bytes arranged 16 per
  * line.  Numeric offsets are also included, starting at 'ofs' for the first
  * byte in 'buf'.  If 'ascii' is true then the corresponding ASCII characters
index dcb15a4bd2662465165a3d1dfcb2dccb07e8c10c..710222a2685349f9b8b3edcc8dba53cd5d9a9014 100644 (file)
@@ -97,6 +97,11 @@ extern "C" {
 
 void set_program_name(const char *);
 
+void ovs_print_version(char *date, char *time, 
+                       uint8_t min_ofp, uint8_t max_ofp);
+#define OVS_PRINT_VERSION(min_ofp, max_ofp) \
+        ovs_print_version(__DATE__, __TIME__, (min_ofp), (max_ofp))
+
 void out_of_memory(void) NO_RETURN;
 void *xmalloc(size_t) MALLOC_LIKE;
 void *xcalloc(size_t, size_t) MALLOC_LIKE;
index 1b5d5cca8d36f16028b23c656be0f857e8783792..5ed57824080050e3bda98f29d93b6a7f6c071bb7 100644 (file)
@@ -475,8 +475,7 @@ parse_options(int argc, char *argv[], struct ofsettings *s)
             usage();
 
         case 'V':
-            printf("%s %s compiled "__DATE__" "__TIME__"\n",
-                   program_name, VERSION BUILDNR);
+            OVS_PRINT_VERSION(OFP_VERSION, OFP_VERSION);
             exit(EXIT_SUCCESS);
 
         DAEMON_OPTION_HANDLERS
index d091dd08745e02fb371c0538776a5cd26be07834..44361b9215e20ae6fdf45629c50f22860a9fc786 100644 (file)
@@ -62,7 +62,9 @@ usage(char *prog_name, int exit_code)
            "        LEVEL may be 'emer', 'err', 'warn', 'info', or 'dbg' (default)\n"
            "  -r, --reopen       Make the program reopen its log file\n"
            "  -e, --execute=COMMAND  Execute control COMMAND and print its output\n"
-           "  -h, --help         Print this helpful information\n",
+           "Other options:\n"
+           "  -h, --help         Print this helpful information\n"
+           "  -V, --version      Display version information\n",
            prog_name);
     exit(exit_code);
 }
@@ -138,6 +140,7 @@ int main(int argc, char *argv[])
         /* Target options must come first. */
         {"target", required_argument, NULL, 't'},
         {"help", no_argument, NULL, 'h'},
+        {"version", no_argument, NULL, 'V'},
 
         /* Action options come afterward. */
         {"list", no_argument, NULL, 'l'},
@@ -166,7 +169,7 @@ int main(int argc, char *argv[])
         if (option == -1) {
             break;
         }
-        if (!strchr("th", option) && n_clients == 0) {
+        if (!strchr("thV", option) && n_clients == 0) {
             ovs_fatal(0, "no targets specified (use --help for help)");
         } else {
             ++n_actions;
@@ -216,6 +219,10 @@ int main(int argc, char *argv[])
             usage(argv[0], EXIT_SUCCESS);
             break;
 
+        case 'V':
+            OVS_PRINT_VERSION(0, 0);
+            exit(EXIT_SUCCESS);
+
         case '?':
             exit(EXIT_FAILURE);
 
index 03ee3708d2fb75f92e61aecb4ce195c0d018fa27..fdda753432f6528ea2b3762d4f818ddff2fee001 100644 (file)
@@ -57,7 +57,10 @@ usage(char *prog_name, int exit_code)
            "  -D, --del-section=KEY   delete section matching KEY\n"
            "  --del-match=PATTERN     delete entries matching shell PATTERN\n"
            "  -q, --query=KEY         return all entries matching KEY\n"
-           "  -c, --log-changes       log changes up to this point\n",
+           "  -c, --log-changes       log changes up to this point\n"
+           "\nOther options:\n"
+           "  -h, --help              display this help message\n"
+           "  -V, --version           display version information\n",
            prog_name);
     exit(exit_code);
 }
@@ -136,6 +139,7 @@ int main(int argc, char *argv[])
         {"changes",      no_argument, 0, 'c'},
         {"verbose",      optional_argument, 0, 'v'},
         {"help",         no_argument, 0, 'h'},
+        {"version",      no_argument, 0, 'V'},
         {0, 0, 0, 0},
     };
     char *short_options;
@@ -155,7 +159,7 @@ int main(int argc, char *argv[])
             break;
         }
 
-        if ((option > UCHAR_MAX || !strchr("Fhv?", option))
+        if ((option > UCHAR_MAX || !strchr("FhVv?", option))
             && config_set == false) {
             ovs_fatal(0, "no config file specified (use --help for help)");
         }
@@ -198,6 +202,10 @@ int main(int argc, char *argv[])
             usage(argv[0], EXIT_SUCCESS);
             break;
 
+        case 'V':
+            OVS_PRINT_VERSION(0, 0);
+            exit(EXIT_SUCCESS);
+
         case 'v':
             vlog_set_verbosity(optarg);
             break;
index d67bc98bb51c85a5bf5177fa8366da5a4c263171..6c1b4017552e9eab04a7b854e4cde5c69d4cf876 100644 (file)
@@ -296,7 +296,7 @@ parse_options(int argc, char *argv[])
             usage();
 
         case 'V':
-            printf("%s "VERSION" compiled "__DATE__" "__TIME__"\n", argv[0]);
+            OVS_PRINT_VERSION(OFP_VERSION, OFP_VERSION);
             exit(EXIT_SUCCESS);
 
         VLOG_OPTION_HANDLERS
index 82c8aae1d8898ccdc5eded68853e8456199a830f..f899c2f8d46b85ee71f3f97f95507db5aee340ef 100644 (file)
@@ -368,8 +368,7 @@ parse_options(int argc, char *argv[])
             usage();
 
         case 'V':
-            printf("%s %s compiled "__DATE__" "__TIME__"\n",
-                   program_name, VERSION BUILDNR);
+            OVS_PRINT_VERSION(0, 0);
             exit(EXIT_SUCCESS);
 
         case 'v':
index bfd87aff8f3ce5c95e609864ac07f5a1e6843571..1406763f26b9c87f5545e02146a862d5063dcc6e 100644 (file)
@@ -148,8 +148,7 @@ parse_options(int argc, char *argv[])
             usage();
 
         case 'V':
-            printf("%s %s compiled "__DATE__" "__TIME__"\n",
-                   program_name, VERSION BUILDNR);
+            OVS_PRINT_VERSION(0, 0);
             exit(EXIT_SUCCESS);
 
         case 'v':
index 153e431d5c4e3ba0a10fdba7d4a2fe547c3e35ba..935a0bc1e65a4c0e761bfa2c3c0a99ab4cb9c2c4 100644 (file)
@@ -182,8 +182,7 @@ parse_options(int argc, char *argv[])
             usage();
 
         case 'V':
-            printf("%s %s compiled "__DATE__" "__TIME__"\n",
-                   program_name, VERSION BUILDNR);
+            OVS_PRINT_VERSION(0, 0);
             exit(EXIT_SUCCESS);
 
         case '?':
index f97e07a877086833580f5ea136c7b0b2662eb20b..cd134be65fbe38b8485b59b0a7770b9cef53b8db 100644 (file)
@@ -180,8 +180,7 @@ parse_options(int argc, char *argv[], struct settings *s)
             usage();
 
         case 'V':
-            printf("%s %s compiled "__DATE__" "__TIME__"\n",
-                   program_name, VERSION BUILDNR);
+            OVS_PRINT_VERSION(OFP_VERSION, OFP_VERSION);
             exit(EXIT_SUCCESS);
 
         case 'v':
index cda9c5cd08292dff622128e7650daea66483da3a..8e450727a471f77bb19863a3b58393ff55dbe5c2 100644 (file)
@@ -696,8 +696,7 @@ parse_options(int argc, char *argv[])
             usage();
 
         case 'V':
-            printf("%s "VERSION BUILDNR" compiled "__DATE__" "__TIME__"\n",
-                   argv[0]);
+            OVS_PRINT_VERSION(0, 0);
             exit(EXIT_SUCCESS);
 
         case OPT_LOCK_TIMEOUT:
index abd54356e31aacdc93106abc763e4f9698d920d8..907e488cb58366fac2bde707ef973d9c816bedf4 100644 (file)
@@ -189,8 +189,7 @@ parse_options(int argc, char *argv[])
             usage();
 
         case 'V':
-            printf("%s "VERSION BUILDNR" compiled "__DATE__" "__TIME__"\n",
-                   argv[0]);
+            OVS_PRINT_VERSION(OFP_VERSION, OFP_VERSION);
             exit(EXIT_SUCCESS);
 
         case OPT_FAKE_PROC_NET: