diff options
author | joerg <joerg@pkgsrc.org> | 2015-11-06 20:36:01 +0000 |
---|---|---|
committer | joerg <joerg@pkgsrc.org> | 2015-11-06 20:36:01 +0000 |
commit | befb39d6ca1f0a8fbc5e317b1d790f8258dbe578 (patch) | |
tree | 767809f0c22da2bc57b34e6ede1df32396cf7fdf /net | |
parent | 6a920159cbdb7ffc26f090374ed4296b91b98e82 (diff) | |
download | pkgsrc-befb39d6ca1f0a8fbc5e317b1d790f8258dbe578.tar.gz |
Avoid the horrible dynamic sized types extension from GCC.
Diffstat (limited to 'net')
-rw-r--r-- | net/tcptraceroute6/distinfo | 5 | ||||
-rw-r--r-- | net/tcptraceroute6/patches/patch-src_trace-icmp.c | 34 | ||||
-rw-r--r-- | net/tcptraceroute6/patches/patch-src_trace-tcp.c | 76 | ||||
-rw-r--r-- | net/tcptraceroute6/patches/patch-src_trace-udp.c | 40 |
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); + } + + |