summaryrefslogtreecommitdiff
path: root/ipsvd
diff options
context:
space:
mode:
Diffstat (limited to 'ipsvd')
-rw-r--r--ipsvd/tcpudp.c25
1 files changed, 20 insertions, 5 deletions
diff --git a/ipsvd/tcpudp.c b/ipsvd/tcpudp.c
index 6a11539..537a524 100644
--- a/ipsvd/tcpudp.c
+++ b/ipsvd/tcpudp.c
@@ -40,11 +40,24 @@
#include "ssl_io.h"
#endif
-static unsigned verbose;
-static unsigned max_per_host;
-static unsigned cur_per_host;
-static unsigned cnum;
-static unsigned cmax = 30;
+struct globals {
+ unsigned verbose;
+ unsigned max_per_host;
+ unsigned cur_per_host;
+ unsigned cnum;
+ unsigned cmax;
+};
+#define G (*(struct globals*)&bb_common_bufsiz1)
+#define verbose (G.verbose )
+#define max_per_host (G.max_per_host)
+#define cur_per_host (G.cur_per_host)
+#define cnum (G.cnum )
+#define cmax (G.cmax )
+#define INIT_G() \
+ do { \
+ cmax = 30; \
+ } while (0)
+
static void xsetenv_proto(const char *proto, const char *n, const char *v)
{
@@ -147,6 +160,8 @@ int tcpudpsvd_main(int argc, char **argv)
int conn;
unsigned backlog = 20;
+ INIT_G();
+
tcp = (applet_name[0] == 't');
/* 3+ args, -i at most once, -p implies -h, -v is counter */