From 3f683b32c8102136bb687489c81548667b5c23a1 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Tue, 12 Aug 2008 13:13:16 -0700 Subject: [PATCH 1/1] Initialize the timetracking module in each userspace program. Also, use time_alarm() instead of the POSIX alarm() function, because alarm() interferes with time_alarm(). --- controller/controller.c | 2 ++ secchan/secchan.c | 2 ++ switch/switch.c | 2 ++ utilities/dpctl.c | 11 ++++------- utilities/ofp-discover.c | 10 ++++------ utilities/ofp-kill.c | 2 ++ utilities/vlogconf.c | 2 ++ 7 files changed, 18 insertions(+), 13 deletions(-) diff --git a/controller/controller.c b/controller/controller.c index 61a550a4..2176fa77 100644 --- a/controller/controller.c +++ b/controller/controller.c @@ -48,6 +48,7 @@ #include "openflow.h" #include "poll-loop.h" #include "rconn.h" +#include "timeval.h" #include "util.h" #include "vconn-ssl.h" #include "vconn.h" @@ -89,6 +90,7 @@ main(int argc, char *argv[]) set_program_name(argv[0]); register_fault_handlers(); + time_init(); vlog_init(); parse_options(argc, argv); diff --git a/secchan/secchan.c b/secchan/secchan.c index 30531988..6c0a70d2 100644 --- a/secchan/secchan.c +++ b/secchan/secchan.c @@ -61,6 +61,7 @@ #include "packets.h" #include "poll-loop.h" #include "rconn.h" +#include "timeval.h" #include "util.h" #include "vconn-ssl.h" #include "vconn.h" @@ -165,6 +166,7 @@ main(int argc, char *argv[]) set_program_name(argv[0]); register_fault_handlers(); + time_init(); vlog_init(); parse_options(argc, argv, &s); diff --git a/switch/switch.c b/switch/switch.c index d745bc83..8224089d 100644 --- a/switch/switch.c +++ b/switch/switch.c @@ -48,6 +48,7 @@ #include "queue.h" #include "util.h" #include "rconn.h" +#include "timeval.h" #include "vconn.h" #include "vconn-ssl.h" #include "vlog-socket.h" @@ -77,6 +78,7 @@ main(int argc, char *argv[]) set_program_name(argv[0]); register_fault_handlers(); + time_init(); vlog_init(); parse_options(argc, argv); diff --git a/utilities/dpctl.c b/utilities/dpctl.c index 224c7caf..8a075f91 100644 --- a/utilities/dpctl.c +++ b/utilities/dpctl.c @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -55,7 +56,7 @@ #include "openflow.h" #include "ofp-print.h" #include "random.h" -#include "signal.h" +#include "timeval.h" #include "vconn.h" #include "vconn-ssl.h" @@ -84,6 +85,7 @@ int main(int argc, char *argv[]) struct command *p; set_program_name(argv[0]); + time_init(); vlog_init(); parse_options(argc, argv); @@ -140,14 +142,9 @@ parse_options(int argc, char *argv[]) if (timeout <= 0) { fatal(0, "value %s on -t or --timeout is not at least 1", optarg); - } else if (timeout < UINT_MAX) { - /* Add 1 because historical implementations allow an alarm to - * occur up to a second early. */ - alarm(timeout + 1); } else { - alarm(UINT_MAX); + time_alarm(timeout); } - signal(SIGALRM, SIG_DFL); break; case 'h': diff --git a/utilities/ofp-discover.c b/utilities/ofp-discover.c index 7dfc56af..bf5e92d4 100644 --- a/utilities/ofp-discover.c +++ b/utilities/ofp-discover.c @@ -46,6 +46,7 @@ #include "fatal-signal.h" #include "netdev.h" #include "poll-loop.h" +#include "timeval.h" #include "util.h" #include "vlog-socket.h" @@ -90,6 +91,7 @@ main(int argc, char *argv[]) int i; set_program_name(argv[0]); + time_init(); vlog_init(); parse_options(argc, argv); @@ -152,7 +154,7 @@ main(int argc, char *argv[]) struct ds ds; /* Disable timeout, since discovery was successful. */ - alarm(0); + time_alarm(0); /* Print discovered parameters. */ ds_init(&ds); @@ -344,12 +346,8 @@ parse_options(int argc, char *argv[]) if (timeout <= 0) { fatal(0, "value %s on -t or --timeout is not at least 1", optarg); - } else if (timeout < UINT_MAX) { - /* Add 1 because historical implementations allow an alarm to - * occur up to a second early. */ - alarm(timeout + 1); } else { - alarm(UINT_MAX); + time_alarm(timeout); } signal(SIGALRM, SIG_DFL); break; diff --git a/utilities/ofp-kill.c b/utilities/ofp-kill.c index 9647f466..b04a43a9 100644 --- a/utilities/ofp-kill.c +++ b/utilities/ofp-kill.c @@ -41,6 +41,7 @@ #include #include "command-line.h" #include "daemon.h" +#include "timeval.h" #include "util.h" /* -s, --signal: signal to send. */ @@ -62,6 +63,7 @@ main(int argc, char *argv[]) int i; set_program_name(argv[0]); + time_init(); parse_options(argc, argv); argc -= optind; diff --git a/utilities/vlogconf.c b/utilities/vlogconf.c index 838597d4..b68c5357 100644 --- a/utilities/vlogconf.c +++ b/utilities/vlogconf.c @@ -43,6 +43,7 @@ #include "command-line.h" #include "compiler.h" +#include "timeval.h" #include "util.h" #include "vlog-socket.h" @@ -157,6 +158,7 @@ int main(int argc, char *argv[]) size_t n_clients = 0; set_program_name(argv[0]); + time_init(); short_options = long_options_to_short_options(long_options); for (;;) { -- 2.30.2