summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorjoerg <joerg@pkgsrc.org>2015-11-06 20:36:01 +0000
committerjoerg <joerg@pkgsrc.org>2015-11-06 20:36:01 +0000
commitbefb39d6ca1f0a8fbc5e317b1d790f8258dbe578 (patch)
tree767809f0c22da2bc57b34e6ede1df32396cf7fdf /net
parent6a920159cbdb7ffc26f090374ed4296b91b98e82 (diff)
downloadpkgsrc-befb39d6ca1f0a8fbc5e317b1d790f8258dbe578.tar.gz
Avoid the horrible dynamic sized types extension from GCC.
Diffstat (limited to 'net')
-rw-r--r--net/tcptraceroute6/distinfo5
-rw-r--r--net/tcptraceroute6/patches/patch-src_trace-icmp.c34
-rw-r--r--net/tcptraceroute6/patches/patch-src_trace-tcp.c76
-rw-r--r--net/tcptraceroute6/patches/patch-src_trace-udp.c40
4 files changed, 154 insertions, 1 deletions
diff --git a/net/tcptraceroute6/distinfo b/net/tcptraceroute6/distinfo
index 010877d6a6e..5d79919558a 100644
--- a/net/tcptraceroute6/distinfo
+++ b/net/tcptraceroute6/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.2 2015/11/04 00:35:40 agc Exp $
+$NetBSD: distinfo,v 1.3 2015/11/06 20:36:01 joerg Exp $
SHA1 (ndisc6-1.0.3.tar.bz2) = 7e7e8c9e23c66c0327bd71625f62cb64ec4ffd41
RMD160 (ndisc6-1.0.3.tar.bz2) = 35dedcd7d8d12af7e39b82502fa8f7d2124b64f6
@@ -6,3 +6,6 @@ SHA512 (ndisc6-1.0.3.tar.bz2) = 11dc9833edfc76650b46977d653686ed800dc1cc1dd06905
Size (ndisc6-1.0.3.tar.bz2) = 260294 bytes
SHA1 (patch-rdnssd_rdnssd.h) = 6f07d7cd2077a5b051cc6f7a15c0ee443a2a5fa1
SHA1 (patch-src_addrinfo.c) = a8882a8b7180039c4dfe97c4907fcf800b69d6e7
+SHA1 (patch-src_trace-icmp.c) = 37d57538a418c5f4ff93a4c4eda13d8dc0a78eed
+SHA1 (patch-src_trace-tcp.c) = bd7f1e5dad69bbc7b5f3feb866cea56cda07af88
+SHA1 (patch-src_trace-udp.c) = 141e5c86512c9ab1a28903f5bd58ceb502b11540
diff --git a/net/tcptraceroute6/patches/patch-src_trace-icmp.c b/net/tcptraceroute6/patches/patch-src_trace-icmp.c
new file mode 100644
index 00000000000..1d9a440f8fb
--- /dev/null
+++ b/net/tcptraceroute6/patches/patch-src_trace-icmp.c
@@ -0,0 +1,34 @@
+$NetBSD: patch-src_trace-icmp.c,v 1.1 2015/11/06 20:36:01 joerg Exp $
+
+--- src/trace-icmp.c.orig 2015-11-06 15:58:04.000000000 +0000
++++ src/trace-icmp.c
+@@ -40,19 +40,18 @@ send_echo_probe (int fd, unsigned ttl, u
+ if (plen < sizeof (struct icmp6_hdr))
+ plen = sizeof (struct icmp6_hdr);
+
+- struct
+- {
+- struct icmp6_hdr ih;
+- uint8_t payload[plen - sizeof (struct icmp6_hdr)];
+- } packet;
+- memset (&packet, 0, plen);
+-
+- packet.ih.icmp6_type = ICMP6_ECHO_REQUEST;
+- packet.ih.icmp6_id = htons (getpid ());
+- packet.ih.icmp6_seq = htons ((ttl << 8) | (n & 0xff));
++ uint8_t buffer[plen];
++ struct icmp6_hdr ih;
++ memset (buffer, 0, plen);
++ memset (&ih, 0, sizeof(ih));
++
++ ih.icmp6_type = ICMP6_ECHO_REQUEST;
++ ih.icmp6_id = htons (getpid ());
++ ih.icmp6_seq = htons ((ttl << 8) | (n & 0xff));
+ (void)port;
++ memcpy(buffer, &ih, sizeof(ih));
+
+- return send_payload (fd, &packet.ih, plen, ttl);
++ return send_payload (fd, buffer, plen, ttl);
+ }
+
+
diff --git a/net/tcptraceroute6/patches/patch-src_trace-tcp.c b/net/tcptraceroute6/patches/patch-src_trace-tcp.c
new file mode 100644
index 00000000000..4bf07e2af35
--- /dev/null
+++ b/net/tcptraceroute6/patches/patch-src_trace-tcp.c
@@ -0,0 +1,76 @@
+$NetBSD: patch-src_trace-tcp.c,v 1.1 2015/11/06 20:36:01 joerg Exp $
+
+--- src/trace-tcp.c.orig 2015-11-06 15:53:03.000000000 +0000
++++ src/trace-tcp.c
+@@ -51,21 +51,21 @@ send_syn_probe (int fd, unsigned ttl, un
+ if (plen < sizeof (struct tcphdr))
+ plen = sizeof (struct tcphdr);
+
+- struct
+- {
+- struct tcphdr th;
+- uint8_t payload[plen - sizeof (struct tcphdr)];
+- } packet;
+-
+- memset (&packet, 0, sizeof (packet));
+- packet.th.th_sport = sport;
+- packet.th.th_dport = port;
+- packet.th.th_seq = htonl ((ttl << 24) | (n << 16) | getpid ());
+- packet.th.th_off = sizeof (packet.th) / 4;
+- packet.th.th_flags = TH_SYN | (ecn ? (TH_ECE | TH_CWR) : 0);
+- packet.th.th_win = htons (TCP_WINDOW);
++ uint8_t buffer[plen];
+
+- return send_payload (fd, &packet, plen, ttl);
++ struct tcphdr th;
++
++ memset(&th, 0, sizeof (th));
++ memset(buffer, 0, plen);
++ th.th_sport = sport;
++ th.th_dport = port;
++ th.th_seq = htonl ((ttl << 24) | (n << 16) | getpid ());
++ th.th_off = sizeof (th) / 4;
++ th.th_flags = TH_SYN | (ecn ? (TH_ECE | TH_CWR) : 0);
++ th.th_win = htons (TCP_WINDOW);
++ memcpy(buffer, &th, sizeof(th));
++
++ return send_payload (fd, buffer, plen, ttl);
+ }
+
+
+@@ -128,21 +128,21 @@ send_ack_probe (int fd, unsigned ttl, un
+ if (plen < sizeof (struct tcphdr))
+ plen = sizeof (struct tcphdr);
+
+- struct
+- {
+- struct tcphdr th;
+- uint8_t payload[plen - sizeof (struct tcphdr)];
+- } packet;
+-
+- memset (&packet, 0, sizeof (packet));
+- packet.th.th_sport = sport;
+- packet.th.th_dport = port;
+- packet.th.th_ack = htonl ((ttl << 24) | (n << 16) | getpid ());
+- packet.th.th_off = sizeof (packet.th) / 4;
+- packet.th.th_flags = TH_ACK;
+- packet.th.th_win = htons (TCP_WINDOW);
++ uint8_t buffer[plen];
++
++ struct tcphdr th;
++
++ memset(&th, 0, sizeof (th));
++ memset(buffer, 0, plen);
++ th.th_sport = sport;
++ th.th_dport = port;
++ th.th_ack = htonl ((ttl << 24) | (n << 16) | getpid ());
++ th.th_off = sizeof (th) / 4;
++ th.th_flags = TH_ACK;
++ th.th_win = htons (TCP_WINDOW);
++ memcpy(buffer, &th, sizeof(th));
+
+- return send_payload (fd, &packet, plen, ttl);
++ return send_payload (fd, buffer, plen, ttl);
+ }
+
+
diff --git a/net/tcptraceroute6/patches/patch-src_trace-udp.c b/net/tcptraceroute6/patches/patch-src_trace-udp.c
new file mode 100644
index 00000000000..cccf98faad3
--- /dev/null
+++ b/net/tcptraceroute6/patches/patch-src_trace-udp.c
@@ -0,0 +1,40 @@
+$NetBSD: patch-src_trace-udp.c,v 1.1 2015/11/06 20:36:01 joerg Exp $
+
+--- src/trace-udp.c.orig 2015-11-06 15:56:21.000000000 +0000
++++ src/trace-udp.c
+@@ -43,25 +43,25 @@ send_udp_probe (int fd, unsigned ttl, un
+ if (plen < sizeof (struct udphdr))
+ plen = sizeof (struct udphdr);
+
+- struct
+- {
+- struct udphdr uh;
+- uint8_t payload[plen - sizeof (struct udphdr)];
+- } packet;
+- memset (&packet, 0, plen);
++ uint8_t buffer[plen];
++ struct udphdr uh;
++
++ memset (&uh, 0, sizeof(uh));
++ memset (buffer, 0, plen);
+
+ (void)n;
+- packet.uh.uh_sport = sport;
+- packet.uh.uh_dport = htons (ntohs (port) + ttl);
++ uh.uh_sport = sport;
++ uh.uh_dport = htons (ntohs (port) + ttl);
+ /* For UDP-Lite we have full checksum coverage, if only because the
+ * IPV6_CHECKSUM setsockopt only supports full coverage. Hence
+ * we can set coverage to the length of the packet, even though zero
+ * would be more idiosyncrasic. */
+- packet.uh.uh_ulen = htons (plen);
++ uh.uh_ulen = htons (plen);
+ /*if (plen > sizeof (struct udphdr))
+ packet.payload[0] = (uint8_t)ttl;*/
++ memcpy(buffer, &uh, sizeof(uh));
+
+- return send_payload (fd, &packet, plen, ttl);
++ return send_payload (fd, buffer, plen, ttl);
+ }
+
+