From: Willy Tarreau Date: Tue, 7 Jun 2022 10:09:55 +0000 (+0200) Subject: DEV: tcploop: add minimal UDP support X-Git-Tag: v2.7-dev1~83 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2d7cd3e4ca086e0ed6902f12f41b0e4d79b8445d;p=thirdparty%2Fhaproxy.git DEV: tcploop: add minimal UDP support Passing "-u" turns to SOCK_DGRAM + IPPROTO_UDP, which still allows bind/connect()/recv()/send() and can be convenient for experimentation purposes. --- diff --git a/dev/tcploop/tcploop.c b/dev/tcploop/tcploop.c index 8433872f8f..89229f7a64 100644 --- a/dev/tcploop/tcploop.c +++ b/dev/tcploop/tcploop.c @@ -72,6 +72,8 @@ static struct timeval start_time; static int showtime; static int verbose; static int pid; +static int sock_type = SOCK_STREAM; +static int sock_proto = IPPROTO_TCP; /* display the message and exit with the code */ @@ -95,6 +97,7 @@ __attribute__((noreturn)) void usage(int code, const char *arg0) "\n" "options :\n" " -v : verbose\n" + " -u : use UDP instead of TCP (limited)\n" " -t|-tt|-ttt : show time (msec / relative / absolute)\n" "actions :\n" " A[] : Accepts incoming sockets and closes count-1\n" @@ -338,7 +341,7 @@ int tcp_socket() { int sock; - sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + sock = socket(AF_INET, sock_type, sock_proto); if (sock < 0) { perror("socket()"); return -1; @@ -806,6 +809,10 @@ int main(int argc, char **argv) showtime += 3; else if (strcmp(argv[0], "-v") == 0) verbose ++; + else if (strcmp(argv[0], "-u") == 0) { + sock_type = SOCK_DGRAM; + sock_proto = IPPROTO_UDP; + } else if (strcmp(argv[0], "--") == 0) break; else