Skip to content

Commit

Permalink
New command line argument: --version
Browse files Browse the repository at this point in the history
  • Loading branch information
danpodeanu committed Apr 28, 2024
1 parent 21b4498 commit 3cc047f
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 23 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,10 @@ Runs in foreground and expects external process control (svscan, nohup, etc.)

| Argument | Parameters | Req/Opt | Description |
| --- | --- | --- | --- |
| ```--stats``` | | *optional* | Display sent/received bytes statistics every 60 seconds. |
| ```--verbose``` | | *optional* | Verbose mode, can be specified multiple times. |
| ```--debug``` | | *optional* | Debug mode (e.g., very verbose). |
| ```--stats``` | | *optional* | Display sent/received bytes statistics every 60 seconds. |
| ```--version``` | | *optional* | Display the version and exit. |

## Listener

Expand Down
5 changes: 4 additions & 1 deletion udp-redirect.1
Original file line number Diff line number Diff line change
Expand Up @@ -170,10 +170,13 @@ Verbose mode, can be specified multiple times. (optional)
.B \--debug
Debug mode (e.g., very verbose). (optional)
.
.
.TP
.B \--stats
Display sent/received bytes statistics every 60 seconds. (optional)
.
.TP
.B \--version
Display the version and exit.
.\" --------------------------------------------------------------------------
.\" Macro definitions
.\" --------------------------------------------------------------------------
Expand Down
56 changes: 35 additions & 21 deletions udp-redirect.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* @file udp-redirect.c
* @author Dan Podeanu <[email protected]>
* @version 1.0
* @version 1.0.0
*
* @section LICENSE
*
Expand Down Expand Up @@ -31,6 +31,11 @@
#include <netdb.h>
#include <time.h>

/**
* The udp-redirect version
*/
#define UDP_REDIRECT_VERSION "1.0.0"

/**
* The delay in seconds between displaying statistics
*/
Expand Down Expand Up @@ -120,6 +125,8 @@ static struct option longopts[] = {

{ "stats", no_argument, NULL, 'q' }, ///< Display stats every 60 seconds

{ "version", no_argument, NULL, 'z' }, ///< Display the version

{ NULL, 0, NULL, 0 }
};

Expand Down Expand Up @@ -342,6 +349,11 @@ int main(int argc, char *argv[]) {
case 'q': /* --stats */
s.stats = 1;

break;
case 'z': /* --version */
fprintf(stderr, "udp-redirect v%s\n", UDP_REDIRECT_VERSION);
exit(EXIT_SUCCESS);

break;
default:
usage(argv0, NULL);
Expand Down Expand Up @@ -825,36 +837,38 @@ void usage(const char *argv0, const char *message) {

fprintf(stderr, "Usage: %s\n", argv0);
fprintf(stderr, " [--listen-address <address>] --listen-port <port> [--listen-interface <interface>]\n");
fprintf(stderr, " --connect-address <address> | --connect-host <hostname> --connect-port <port>\n");
fprintf(stderr, " [--connect-address <address> | --connect-host <hostname> --connect-port <port>\n");
fprintf(stderr, " [--send-address <address>] [--send-port <port>] [--send-interface <interface>]\n");
fprintf(stderr, " [--list-address-strict] [--connect-address-strict]\n");
fprintf(stderr, " [--lsten-sender-addr <address>] [--listen-sender-port <port>]\n");
fprintf(stderr, " [--ignore-errors] [--stop-errors]\n");
fprintf(stderr, " [--stats] [--verbose] [--debug]\n");
fprintf(stderr, " [--stats] [--verbose] [--debug] [--version]\n");
fprintf(stderr, "\n");
fprintf(stderr, "--verbose Verbose mode, can be specified multiple times (optional)\n");
fprintf(stderr, "--debug Debug mode (optional)\n");
fprintf(stderr, "--stats Display sent/received bytes statistics every 60 seconds (optional)\n");
fprintf(stderr, "--verbose Verbose mode, can be specified multiple times (optional)\n");
fprintf(stderr, "--debug Debug mode (optional)\n");
fprintf(stderr, "--version Display the version and exit\n");
fprintf(stderr, "\n");
fprintf(stderr, "--listen-address <address> Listen address (optional)\n");
fprintf(stderr, "--listen-port <port> Listen port (required)\n");
fprintf(stderr, "--listen-interface <interface> Listen interface name (optional)\n");
fprintf(stderr, "--listen-address-strict Only receive packets from the same source as the first packet (optional)\n");
fprintf(stderr, "--listen-address <ipv4 address> Listen address (optional)\n");
fprintf(stderr, "--listen-port <port> Listen port (required)\n");
fprintf(stderr, "--listen-interface <interface> Listen interface name (optional)\n");
fprintf(stderr, "--listen-address-strict Only receive packets from the same source as the first packet (optional)\n");
fprintf(stderr, "\n");
fprintf(stderr, "--connect-address <address> Connect address (required)\n");
fprintf(stderr, "--connect-host <hostname> Connect host, overwrites caddr if both are specified (required)\n");
fprintf(stderr, "--connect-port <port> Connect port (required)\n");
fprintf(stderr, "--connect-address-strict Only receive packets from the connect caddr / cport (optional)\n");
fprintf(stderr, "--connect-address <ipv4 address> Connect address (required)\n");
fprintf(stderr, "--connect-host <hostname> Connect host, overwrites --connect-address if both are specified (required)\n");
fprintf(stderr, "--connect-port <port> Connect port (required)\n");
fprintf(stderr, "--connect-address-strict Only receive packets from --connect-address / --connect-port (optional)\n");
fprintf(stderr, "\n");
fprintf(stderr, "--send-address <address> Send packets from address (optional)\n");
fprintf(stderr, "--send-port <port> Send packets from port (optional)\n");
fprintf(stderr, "--send-interface <interface> Send packets from interface (optional)\n");
fprintf(stderr, "--send-address <ipv4 address> Send packets from address (optional)\n");
fprintf(stderr, "--send-port <port> Send packets from port (optional)\n");
fprintf(stderr, "--send-interface <interface> Send packets from interface (optional)\n");
fprintf(stderr, "\n");
fprintf(stderr, "--listen-sender-address <address> Listen endpoint only accepts packets from this source address (optional)\n");
fprintf(stderr, "--listen-sender-port <port> Listen endpoint only accepts packets from this source port (optional)\n");
fprintf(stderr, " (must be set together, --listen-address-strict is implied)\n");
fprintf(stderr, "--listen-sender-address <ipv4 address> Listen endpoint only accepts packets from this source address (optional)\n");
fprintf(stderr, "--listen-sender-port <port> Listen endpoint only accepts packets from this source port (optional)\n");
fprintf(stderr, " (must be set together, --listen-address-strict is implied)\n");
fprintf(stderr, "\n");
fprintf(stderr, "--ignore-errors Ignore most receive or send errors (unreachable, etc.) instead of exiting (optional) (default)\n");
fprintf(stderr, "--stop-errors Exit on most receive or send errors (unreachable, etc.) (optional)\n");
fprintf(stderr, "--ignore-errors Ignore most receive or send errors (unreachable, etc.) instead of exiting (optional) (default)\n");
fprintf(stderr, "--stop-errors Exit on most receive or send errors (unreachable, etc.) (optional)\n");
fprintf(stderr, "\n");

exit(EXIT_FAILURE);
Expand Down

0 comments on commit 3cc047f

Please sign in to comment.