summaryrefslogtreecommitdiff
path: root/pkg/openbsd/patch/0018-nc-Port-to-linux.patch
blob: 6c9f51828e8f0b12b9e6eac78789ad0772b75938 (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
From 0d05008cdf8188f66789de23e581d46608ad036b Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Fri, 16 Jun 2017 20:32:42 -0700
Subject: [PATCH] nc: Port to linux

---
 usr.bin/nc/netcat.c | 45 +++++++++++++++++++++++++++++++--------------
 1 file changed, 31 insertions(+), 14 deletions(-)

diff --git a/usr.bin/nc/netcat.c b/usr.bin/nc/netcat.c
index 3798dc760f1..6cbf346ed10 100644
--- a/usr.bin/nc/netcat.c
+++ b/usr.bin/nc/netcat.c
@@ -73,6 +73,31 @@
 #define TLS_CCERT	(1 << 3)
 #define TLS_MUSTSTAPLE	(1 << 4)
 
+#ifndef IPTOS_DSCP_CS0
+# define IPTOS_DSCP_CS0 0x00
+#endif
+#ifndef IPTOS_DSCP_CS1
+# define IPTOS_DSCP_CS1 0x20
+#endif
+#ifndef IPTOS_DSCP_CS2
+# define IPTOS_DSCP_CS2 0x40
+#endif
+#ifndef IPTOS_DSCP_CS3
+# define IPTOS_DSCP_CS3 0x60
+#endif
+#ifndef IPTOS_DSCP_CS4
+# define IPTOS_DSCP_CS4 0x80
+#endif
+#ifndef IPTOS_DSCP_CS5
+# define IPTOS_DSCP_CS5 0xa0
+#endif
+#ifndef IPTOS_DSCP_CS6
+# define IPTOS_DSCP_CS6 0xc0
+#endif
+#ifndef IPTOS_DSCP_CS7
+# define IPTOS_DSCP_CS7 0xe0
+#endif
+
 /* Command Line Options */
 int	dflag;					/* detached, no stdin */
 int	Fflag;					/* fdpass sock to stdout */
@@ -95,7 +120,6 @@ int	Iflag;					/* TCP receive buffer size */
 int	Oflag;					/* TCP send buffer size */
 int	Sflag;					/* TCP MD5 signature option */
 int	Tflag = -1;				/* IP Type of Service */
-int	rtableid = -1;
 
 int	usetls;					/* use TLS */
 char    *Cflag;					/* Public cert file */
@@ -267,12 +291,6 @@ main(int argc, char *argv[])
 		case 'u':
 			uflag = 1;
 			break;
-		case 'V':
-			rtableid = (int)strtonum(optarg, 0,
-			    RT_TABLEID_MAX, &errstr);
-			if (errstr)
-				errx(1, "rtable %s: %s", errstr, optarg);
-			break;
 		case 'v':
 			vflag = 1;
 			break;
@@ -345,10 +363,6 @@ main(int argc, char *argv[])
 	argc -= optind;
 	argv += optind;
 
-	if (rtableid >= 0)
-		if (setrtable(rtableid) == -1)
-			err(1, "setrtable");
-
 	/* Cruft to make sure options are clean, and used properly. */
 	if (argv[0] && !argv[1] && family == AF_UNIX) {
 		host = argv[0];
@@ -923,8 +937,12 @@ remote_connect(const char *host, const char *port, struct addrinfo hints)
 		if (sflag || pflag) {
 			struct addrinfo ahints, *ares;
 
-			/* try SO_BINDANY, but don't insist */
+			/* try SO_BINDANY/IP_TRANSPARENT, but don't insist */
+#if defined(SO_BINDANY)
 			setsockopt(s, SOL_SOCKET, SO_BINDANY, &on, sizeof(on));
+#elif defined(IP_TRANSPARENT)
+			setsockopt(s, SOL_IP, IP_TRANSPARENT, &on, sizeof(on));
+#endif
 			memset(&ahints, 0, sizeof(struct addrinfo));
 			ahints.ai_family = res->ai_family;
 			ahints.ai_socktype = uflag ? SOCK_DGRAM : SOCK_STREAM;
@@ -1754,7 +1772,6 @@ help(void)
 	\t-t		Answer TELNET negotiation\n\
 	\t-U		Use UNIX domain socket\n\
 	\t-u		UDP mode\n\
-	\t-V rtable	Specify alternate routing table\n\
 	\t-v		Verbose\n\
 	\t-W recvlimit	Terminate after receiving a number of packets\n\
 	\t-w timeout	Timeout for connects and final net reads\n\
@@ -1775,7 +1792,7 @@ usage(int ret)
 	    "\t  [-i interval] [-K keyfile] [-M ttl] [-m minttl] [-O length]\n"
 	    "\t  [-o staplefile] [-P proxy_username] [-p source_port] "
 	    "[-R CAfile]\n"
-	    "\t  [-s source] [-T keyword] [-V rtable] [-W recvlimit] "
+	    "\t  [-s source] [-T keyword] [-W recvlimit] "
 	    "[-w timeout]\n"
 	    "\t  [-X proxy_protocol] [-x proxy_address[:port]] "
 	    "[-Z peercertfile]\n"
-- 
2.19.0