123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- Patch to allow building of tcpflood without librelp
- Cherry pick of
- https://github.com/rsyslog/rsyslog/commit/73e3b7ab2f8a3974d31844b492ad02d61ed5727f
- https://github.com/rsyslog/rsyslog/pull/1493
- Gentoo-Bug: https://bugs.gentoo.org/613264
- Gentoo-Bug: https://bugs.gentoo.org/614424
- diff -u b/tests/tcpflood.c b/tests/tcpflood.c
- --- b/tests/tcpflood.c
- +++ b/tests/tcpflood.c
- @@ -96,7 +96,9 @@
- #include <string.h>
- #include <netinet/in.h>
- #include <pthread.h>
- +#ifdef ENABLE_RELP
- #include <librelp.h>
- +#endif
- #include <sys/resource.h>
- #include <sys/time.h>
- #include <errno.h>
- @@ -149,7 +151,9 @@
- static int numConnections = 1; /* number of connections to create */
- static int softLimitConnections = 0; /* soft connection limit, see -c option description */
- static int *sockArray; /* array of sockets to use */
- +#ifdef ENABLE_RELP
- static relpClt_t **relpCltArray; /* array of sockets to use */
- +#endif
- static int msgNum = 0; /* initial message number to start with */
- static int bShowProgress = 1; /* show progress messages */
- static int bSilent = 0; /* completely silent operation */
- @@ -216,6 +220,7 @@
- static int sendTLS(int i, char *buf, int lenBuf);
- static void closeTLSSess(int __attribute__((unused)) i);
-
- +#ifdef ENABLE_RELP
- /* RELP subsystem */
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wformat-security"
- @@ -235,6 +240,7 @@
- CHKRELP(relpEngineSetEnableCmd(pRelpEngine, (unsigned char*)"syslog",
- eRelpCmdState_Required));
- }
- +#endif /* #ifdef ENABLE_RELP */
-
- /* prepare send subsystem for UDP send */
- static int
- @@ -273,6 +279,7 @@
- port = targetPort;
- }
- if(transport == TP_RELP_PLAIN) {
- + #ifdef ENABLE_RELP
- relpRetVal relp_r;
- relpClt_t *relpClt;
- char relpPort[16];
- @@ -286,6 +293,7 @@
- return(1);
- }
- *fd = 1; /* mimic "all ok" state */
- + #endif
- } else { /* TCP, with or without TLS */
- if((sock=socket(AF_INET, SOCK_STREAM, 0))==-1) {
- perror("\nsocket()");
- @@ -336,8 +344,10 @@
- sessArray = calloc(numConnections, sizeof(gnutls_session_t));
- # endif
- sockArray = calloc(numConnections, sizeof(int));
- + #ifdef ENABLE_RELP
- if(transport == TP_RELP_PLAIN)
- relpCltArray = calloc(numConnections, sizeof(relpClt_t*));
- + #endif
- for(i = 0 ; i < numConnections ; ++i) {
- if(i % 10 == 0) {
- if(bShowProgress)
- @@ -356,8 +366,10 @@
- * at least something.
- */
- if(transport == TP_RELP_PLAIN) {
- + #ifdef ENABLE_RELP
- CHKRELP(relpEngineCltDestruct(pRelpEngine,
- relpCltArray+i));
- + #endif
- } else { /* TCP and TLS modes */
- if(transport == TP_TLS)
- closeTLSSess(i);
- @@ -403,14 +415,13 @@
-
- if(bShowProgress)
- if(write(1, " close connections", sizeof(" close connections")-1)){}
- - //if(transport == TP_RELP_PLAIN)
- - //sleep(10); /* we need to let librelp settle a bit */
- for(i = 0 ; i < numConnections ; ++i) {
- if(i % 10 == 0 && bShowProgress) {
- lenMsg = sprintf(msgBuf, "\r%5.5d", i);
- if(write(1, msgBuf, lenMsg)){}
- }
- if(transport == TP_RELP_PLAIN) {
- + #ifdef ENABLE_RELP
- relpRetVal relpr;
- if(sockArray[i] != -1) {
- relpr = relpEngineCltDestruct(pRelpEngine, relpCltArray+i);
- @@ -419,6 +430,7 @@
- }
- sockArray[i] = -1;
- }
- + #endif
- } else { /* TCP and TLS modes */
- if(sockArray[i] != -1) {
- /* we try to not overrun the receiver by trying to flush buffers
- @@ -610,6 +622,7 @@
- offsSendBuf = lenBuf;
- }
- } else if(transport == TP_RELP_PLAIN) {
- + #ifdef ENABLE_RELP
- relpRetVal relp_ret;
- if(sockArray[socknum] == -1) {
- /* connection was dropped, need to re-establish */
- @@ -627,6 +640,7 @@
- printf("\nrelpCltSendSyslog() failed with relp error code %d\n",
- relp_ret);
- }
- + #endif
- }
- if(lenSend != lenBuf) {
- printf("\r%5.5d\n", i);
- @@ -1106,7 +1120,9 @@
- transport = TP_RELP_PLAIN;
- # else
- fprintf(stderr, "compiled without RELP support: "
- - "\"-Trelp-plain\" not supported!\n");
- + "\"-Trelp-plain\" not supported!\n"
- + "(add --enable-relp to ./configure options "
- + "if desired)\n");
- exit(1);
- # endif
- } else {
- @@ -1168,7 +1184,9 @@
- if(transport == TP_TLS) {
- initTLS();
- } else if(transport == TP_RELP_PLAIN) {
- + #ifdef ENABLE_RELP
- initRELP_PLAIN();
- + #endif
- }
-
- if(openConnections() != 0) {
- @@ -1183,9 +1201,11 @@
-
- closeConnections(); /* this is important so that we do not finish too early! */
-
- + #ifdef ENABLE_RELP
- if(transport == TP_RELP_PLAIN) {
- CHKRELP(relpEngineDestruct(&pRelpEngine));
- }
- + #endif
-
- if(nConnDrops > 0 && !bSilent)
- printf("-D option initiated %ld connection closures\n", nConnDrops);
|