Page MenuHomeFreeBSD

D39561.diff
No OneTemporary

D39561.diff

diff --git a/sbin/ping/ping.c b/sbin/ping/ping.c
--- a/sbin/ping/ping.c
+++ b/sbin/ping/ping.c
@@ -1561,13 +1561,21 @@
static void
pr_iph(struct ip *ip, const u_char *cp)
{
- struct in_addr ina;
+ struct in_addr dst_ina, src_ina;
int hlen;
hlen = ip->ip_hl << 2;
cp = cp + sizeof(struct ip); /* point to options */
- (void)printf("Vr HL TOS Len ID Flg off TTL Pro cks Src Dst\n");
+ memcpy(&src_ina, &ip->ip_src.s_addr, sizeof(src_ina));
+ memcpy(&dst_ina, &ip->ip_dst.s_addr, sizeof(dst_ina));
+
+ (void)printf("Vr HL TOS Len ID Flg off TTL Pro cks %*s %*s",
+ (int)strlen(inet_ntoa(src_ina)), "Src",
+ (int)strlen(inet_ntoa(dst_ina)), "Dst");
+ if (hlen > (int)sizeof(struct ip))
+ (void)printf(" Opts");
+ (void)putchar('\n');
(void)printf(" %1x %1x %02x %04x %04x",
ip->ip_v, ip->ip_hl, ip->ip_tos, ntohs(ip->ip_len),
ntohs(ip->ip_id));
@@ -1576,13 +1584,14 @@
ntohs(ip->ip_off) & 0x1fff);
(void)printf(" %02x %02x %04x", ip->ip_ttl, ip->ip_p,
ntohs(ip->ip_sum));
- memcpy(&ina, &ip->ip_src.s_addr, sizeof ina);
- (void)printf(" %s ", inet_ntoa(ina));
- memcpy(&ina, &ip->ip_dst.s_addr, sizeof ina);
- (void)printf(" %s ", inet_ntoa(ina));
+ (void)printf(" %s", inet_ntoa(src_ina));
+ (void)printf(" %s", inet_ntoa(dst_ina));
/* dump any option bytes */
- while (hlen-- > (int)sizeof(struct ip)) {
- (void)printf("%02x", *cp++);
+ if (hlen > (int)sizeof(struct ip)) {
+ (void)printf(" ");
+ while (hlen-- > (int)sizeof(struct ip)) {
+ (void)printf("%02x", *cp++);
+ }
}
(void)putchar('\n');
}
diff --git a/sbin/ping/tests/test_ping.py b/sbin/ping/tests/test_ping.py
--- a/sbin/ping/tests/test_ping.py
+++ b/sbin/ping/tests/test_ping.py
@@ -1244,8 +1244,8 @@
"stdout": """\
PING 192.0.2.2 (192.0.2.2): 56 data bytes
132 bytes from 192.0.2.2: Destination Host Unreachable
-Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
- 4 f 00 007c 0001 0 0000 40 01 d868 192.0.2.1 192.0.2.2 01010101010101010101010101010101010101010101010101010101010101010101010101010101
+Vr HL TOS Len ID Flg off TTL Pro cks Src Dst Opts
+ 4 f 00 007c 0001 0 0000 40 01 d868 192.0.2.1 192.0.2.2 01010101010101010101010101010101010101010101010101010101010101010101010101010101
--- 192.0.2.2 ping statistics ---
@@ -1269,8 +1269,8 @@
"stdout": """\
PING 192.0.2.2 (192.0.2.2): 56 data bytes
92 bytes from 192.0.2.2: Destination Host Unreachable
-Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
- 4 5 00 0054 0001 2 0000 40 01 b6a4 192.0.2.1 192.0.2.2
+Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
+ 4 5 00 0054 0001 2 0000 40 01 b6a4 192.0.2.1 192.0.2.2
--- 192.0.2.2 ping statistics ---
@@ -1342,8 +1342,8 @@
"stdout": """\
PING 192.0.2.2 (192.0.2.2): 56 data bytes
92 bytes from 192.0.2.2: Destination Host Unreachable
-Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
- 4 5 00 0054 0001 0 0000 40 01 f6a4 192.0.2.1 192.0.2.2
+Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
+ 4 5 00 0054 0001 0 0000 40 01 f6a4 192.0.2.1 192.0.2.2
--- 192.0.2.2 ping statistics ---

File Metadata

Mime Type
text/plain
Expires
Sat, Jan 11, 12:26 PM (19 h, 43 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15753706
Default Alt Text
D39561.diff (3 KB)

Event Timeline