summaryrefslogtreecommitdiffstats
path: root/util/printpkt.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/printpkt.c')
-rw-r--r--util/printpkt.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/util/printpkt.c b/util/printpkt.c
index 69a47ca..09a2194 100644
--- a/util/printpkt.c
+++ b/util/printpkt.c
@@ -260,11 +260,12 @@ static int printpkt_ipv4(struct ulogd_key *res, char *buf)
ikey_get_u16(&res[KEY_ICMP_ECHOSEQ]));
break;
case ICMP_PARAMETERPROB:
+ paddr = ikey_get_u32(&res[KEY_ICMP_GATEWAY]);
buf_cur += sprintf(buf_cur, "PARAMETER=%u ",
- ikey_get_u32(&res[KEY_ICMP_GATEWAY]) >> 24);
+ *(uint8_t *) &paddr);
break;
case ICMP_REDIRECT:
- paddr = ikey_get_u32(&res[KEY_ICMP_GATEWAY]),
+ paddr = ikey_get_u32(&res[KEY_ICMP_GATEWAY]);
buf_cur += sprintf(buf_cur, "GATEWAY=%s ",
inet_ntop(AF_INET,
&paddr,
@@ -355,6 +356,9 @@ static int printpkt_ipv6(struct ulogd_key *res, char *buf)
break;
}
break;
+ default:
+ buf_cur += sprintf(buf_cur, "PROTO=%u ",
+ ikey_get_u8(&res[KEY_IP6_NEXTHDR]));
}
return buf_cur - buf;
@@ -471,7 +475,7 @@ int printpkt_print(struct ulogd_key *res, char *buf)
buf_cur += sprintf(buf_cur, "GID=%u ",
ikey_get_u32(&res[KEY_OOB_GID]));
if (pp_is_valid(res, KEY_OOB_MARK))
- buf_cur += sprintf(buf_cur, "MARK=%x ",
+ buf_cur += sprintf(buf_cur, "MARK=0x%x ",
ikey_get_u32(&res[KEY_OOB_MARK]));
strcat(buf_cur, "\n");