summaryrefslogtreecommitdiff
path: root/net/netcat/patches/patch-ab
blob: f2b625abf6365952c9e9b49873e888d2ae4acd8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
$NetBSD: patch-ab,v 1.1 1999/09/07 13:22:00 is Exp $
--- netcat.c.orig	Tue Sep  7 14:43:01 1999
+++ netcat.c	Tue Sep  7 14:51:37 1999
@@ -151,6 +151,7 @@
 
 /* global cmd flags: */
 USHORT o_alla = 0;
+USHORT o_allowbroad = 0;
 unsigned int o_interval = 0;
 USHORT o_listen = 0;
 USHORT o_nflag = 0;
@@ -621,6 +622,13 @@
   rr = setsockopt (nnetfd, SOL_SOCKET, SO_REUSEADDR, &x, sizeof (x));
   if (rr == -1)
     holler ("nnetfd reuseaddr failed");		/* ??? */
+#ifdef SO_BROADCAST
+  if (o_allowbroad) {
+    rr = setsockopt (nnetfd, SOL_SOCKET, SO_BROADCAST, &x, sizeof (x));
+    if (rr == -1)
+       holler ("nnetfd reuseaddr failed");         /* ??? */
+  }
+#endif
 #ifdef SO_REUSEPORT	/* doesnt exist everywhere... */
   rr = setsockopt (nnetfd, SOL_SOCKET, SO_REUSEPORT, &x, sizeof (x));
   if (rr == -1)
@@ -1390,12 +1398,14 @@
 
 /* If your shitbox doesn't have getopt, step into the nineties already. */
 /* optarg, optind = next-argv-component [i.e. flag arg]; optopt = last-char */
-  while ((x = getopt (argc, argv, "ae:g:G:hi:lno:p:rs:tuvw:z")) != EOF) {
+  while ((x = getopt (argc, argv, "abe:g:G:hi:lno:p:rs:tuvw:z")) != EOF) {
 /* Debug (("in go: x now %c, optarg %x optind %d", x, optarg, optind)) */
     switch (x) {
       case 'a':
 	bail ("all-A-records NIY");
 	o_alla++; break;
+      case 'b':
+	o_allowbroad++; break;
 #ifdef GAPING_SECURITY_HOLE
       case 'e':				/* prog to exec */
 	pr00gie = optarg;