diff options
| author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2026-05-01 15:30:40 +0200 |
|---|---|---|
| committer | Sander Vrijders <sander@ouroboros.rocks> | 2026-05-20 08:17:04 +0200 |
| commit | 3be3360349ee823531d6c3e53b188a7e8af2b761 (patch) | |
| tree | 733730ec06017c753eabc1d552fe31fe2bbf24f3 /src/tools/oping/oping.c | |
| parent | e05bd477e73b9a5d533c4865022602dc60cec1ab (diff) | |
| download | ouroboros-3be3360349ee823531d6c3e53b188a7e8af2b761.tar.gz ouroboros-3be3360349ee823531d6c3e53b188a7e8af2b761.zip | |
tools: Use distinct exit codes
The tools will now use the following convention:
0 — success
1 — runtime/I/O failure or packet loss
2 — setup failure
oping now uses a SIGALRM to exit on duration tests.
Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/tools/oping/oping.c')
| -rw-r--r-- | src/tools/oping/oping.c | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/src/tools/oping/oping.c b/src/tools/oping/oping.c index 763c0d62..16d36c51 100644 --- a/src/tools/oping/oping.c +++ b/src/tools/oping/oping.c @@ -96,6 +96,7 @@ struct { bool timestamp; bool flood; bool flood_busy; + long duration; qosspec_t qs; /* stats */ @@ -175,18 +176,19 @@ int main(int argc, argc--; argv++; - client.s_apn = NULL; - client.interval = 1000; - client.size = 64; - client.count = INT_MAX; - client.timestamp = false; - client.flood = false; + client.s_apn = NULL; + client.interval = 1000; + client.size = 64; + client.count = INT_MAX; + client.timestamp = false; + client.flood = false; client.flood_busy = false; - client.qs = qos_raw; - client.quiet = false; - server.quiet = false; - server.poll = false; - server.busy = false; + client.duration = 0; + client.qs = qos_raw; + client.quiet = false; + server.quiet = false; + server.poll = false; + server.busy = false; while (argc > 0) { if ((strcmp(*argv, "-i") == 0 || @@ -249,7 +251,9 @@ int main(int argc, } if (duration > 0) { - if (client.interval == 0) + if (client.flood || client.flood_busy) + client.duration = duration; + else if (client.interval == 0) client.count = duration * 10; else client.count = duration / client.interval; @@ -298,7 +302,7 @@ int main(int argc, if (ret < 0) exit(EXIT_FAILURE); - exit(EXIT_SUCCESS); + exit(ret); fail: usage(); |
