diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2008-11-23 23:59:44 +0100 |
---|---|---|
committer | Eric Leblond <eric@inl.fr> | 2008-12-09 01:19:25 +0100 |
commit | d4cf078cb71a943af0dcaa51ed5f950df0fdeca3 (patch) | |
tree | 7a732b2f7526343f76ab71092bd6b7dccc233497 /util | |
parent | 8aa47fcd3c013913b5e553053e0098b6765e5544 (diff) |
add ukey_* function for key assignation
This patch cleans up the current key assignation by introducing a
set of functions ukey_* to set the key value as Eric Leblond and
we discussed during the latest Netfilter Workshop. This patch is
based on an idea from Holger Eitzenberger.
Signed-off-by: Eric Leblond <eric@inl.fr>
Diffstat (limited to 'util')
-rw-r--r-- | util/printflow.c | 52 | ||||
-rw-r--r-- | util/printpkt.c | 146 |
2 files changed, 100 insertions, 98 deletions
diff --git a/util/printflow.c b/util/printflow.c index bb3c2c4..7743a6a 100644 --- a/util/printflow.c +++ b/util/printflow.c @@ -139,14 +139,14 @@ int printflow_keys_num = sizeof(printflow_keys)/sizeof(*printflow_keys); #define pp_print(buf_cur, label, res, x, type) \ if (pp_is_valid(res, x)) \ - buf_cur += sprintf(buf_cur, label"=%u ", GET_VALUE(res, x).type); + buf_cur += sprintf(buf_cur, label"=%u ", ikey_get_##type(&res[x])); int printflow_print(struct ulogd_key *res, char *buf) { char *buf_cur = buf; if (pp_is_valid(res, PRINTFLOW_EVENT_TYPE)) { - switch (GET_VALUE(res, PRINTFLOW_EVENT_TYPE).ui32) { + switch (ikey_get_u32(&res[PRINTFLOW_EVENT_TYPE])) { case 1: buf_cur += sprintf(buf_cur, "[NEW] "); break; @@ -164,33 +164,33 @@ int printflow_print(struct ulogd_key *res, char *buf) if (pp_is_valid(res, PRINTFLOW_ORIG_IP_SADDR)) buf_cur += sprintf(buf_cur, "SRC=%s ", - (char *) GET_VALUE(res, PRINTFLOW_ORIG_IP_SADDR).ptr); + (char *) ikey_get_ptr(&res[PRINTFLOW_ORIG_IP_SADDR])); if (pp_is_valid(res, PRINTFLOW_ORIG_IP_DADDR)) buf_cur += sprintf(buf_cur, "DST=%s ", - (char *) GET_VALUE(res, PRINTFLOW_ORIG_IP_DADDR).ptr); + (char *) ikey_get_ptr(&res[PRINTFLOW_ORIG_IP_DADDR])); if (!pp_is_valid(res, PRINTFLOW_ORIG_IP_PROTOCOL)) goto orig_out; - switch (GET_VALUE(res, PRINTFLOW_ORIG_IP_PROTOCOL).ui8) { + switch (ikey_get_u8(&res[PRINTFLOW_ORIG_IP_PROTOCOL])) { case IPPROTO_TCP: buf_cur += sprintf(buf_cur, "PROTO=TCP "); - pp_print(buf_cur, "SPT", res, PRINTFLOW_ORIG_L4_SPORT, ui16); - pp_print(buf_cur, "DPT", res, PRINTFLOW_ORIG_L4_DPORT, ui16); + pp_print(buf_cur, "SPT", res, PRINTFLOW_ORIG_L4_SPORT, u16); + pp_print(buf_cur, "DPT", res, PRINTFLOW_ORIG_L4_DPORT, u16); break; case IPPROTO_UDP: buf_cur += sprintf(buf_cur, "PROTO=UDP "); - pp_print(buf_cur, "SPT", res, PRINTFLOW_ORIG_L4_SPORT, ui16); - pp_print(buf_cur, "DPT", res, PRINTFLOW_ORIG_L4_DPORT, ui16); + pp_print(buf_cur, "SPT", res, PRINTFLOW_ORIG_L4_SPORT, u16); + pp_print(buf_cur, "DPT", res, PRINTFLOW_ORIG_L4_DPORT, u16); break; case IPPROTO_ICMP: buf_cur += sprintf(buf_cur, "PROTO=ICMP "); - pp_print(buf_cur, "TYPE", res, PRINTFLOW_ICMP_CODE, ui8); - pp_print(buf_cur, "CODE", res, PRINTFLOW_ICMP_TYPE, ui8); + pp_print(buf_cur, "TYPE", res, PRINTFLOW_ICMP_CODE, u8); + pp_print(buf_cur, "CODE", res, PRINTFLOW_ICMP_TYPE, u8); break; case IPPROTO_ESP: @@ -202,46 +202,46 @@ int printflow_print(struct ulogd_key *res, char *buf) break; default: - pp_print(buf_cur, "PROTO", res, PRINTFLOW_ORIG_IP_PROTOCOL, ui8); + pp_print(buf_cur, "PROTO", res, PRINTFLOW_ORIG_IP_PROTOCOL, u8); break; } orig_out: - pp_print(buf_cur, "PKTS", res, PRINTFLOW_ORIG_RAW_PKTCOUNT, ui32); - pp_print(buf_cur, "BYTES", res, PRINTFLOW_ORIG_RAW_PKTLEN, ui32); + pp_print(buf_cur, "PKTS", res, PRINTFLOW_ORIG_RAW_PKTCOUNT, u32); + pp_print(buf_cur, "BYTES", res, PRINTFLOW_ORIG_RAW_PKTLEN, u32); buf_cur += sprintf(buf_cur, ", REPLY: "); if (pp_is_valid(res, PRINTFLOW_REPLY_IP_SADDR)) buf_cur += sprintf(buf_cur, "SRC=%s ", - (char *) GET_VALUE(res,PRINTFLOW_REPLY_IP_SADDR).ptr); + (char *) ikey_get_ptr(&res[PRINTFLOW_REPLY_IP_SADDR])); if (pp_is_valid(res, PRINTFLOW_REPLY_IP_DADDR)) buf_cur += sprintf(buf_cur, "DST=%s ", - (char *) GET_VALUE(res,PRINTFLOW_REPLY_IP_DADDR).ptr); + (char *) ikey_get_ptr(&res[PRINTFLOW_REPLY_IP_DADDR])); if (!pp_is_valid(res, PRINTFLOW_REPLY_IP_PROTOCOL)) goto reply_out; - switch (GET_VALUE(res, PRINTFLOW_REPLY_IP_PROTOCOL).ui8) { + switch (ikey_get_u8(&res[PRINTFLOW_REPLY_IP_PROTOCOL])) { case IPPROTO_TCP: buf_cur += sprintf(buf_cur, "PROTO=TCP "); - pp_print(buf_cur, "SPT", res, PRINTFLOW_REPLY_L4_SPORT, ui16); - pp_print(buf_cur, "DPT", res, PRINTFLOW_REPLY_L4_DPORT, ui16); + pp_print(buf_cur, "SPT", res, PRINTFLOW_REPLY_L4_SPORT, u16); + pp_print(buf_cur, "DPT", res, PRINTFLOW_REPLY_L4_DPORT, u16); break; case IPPROTO_UDP: buf_cur += sprintf(buf_cur, "PROTO=UDP "); - pp_print(buf_cur, "SPT", res, PRINTFLOW_REPLY_L4_SPORT, ui16); - pp_print(buf_cur, "DPT", res, PRINTFLOW_REPLY_L4_DPORT, ui16); + pp_print(buf_cur, "SPT", res, PRINTFLOW_REPLY_L4_SPORT, u16); + pp_print(buf_cur, "DPT", res, PRINTFLOW_REPLY_L4_DPORT, u16); break; case IPPROTO_ICMP: buf_cur += sprintf(buf_cur, "PROTO=ICMP "); - pp_print(buf_cur, "TYPE", res, PRINTFLOW_ICMP_CODE, ui8); - pp_print(buf_cur, "CODE", res, PRINTFLOW_ICMP_TYPE, ui8); + pp_print(buf_cur, "TYPE", res, PRINTFLOW_ICMP_CODE, u8); + pp_print(buf_cur, "CODE", res, PRINTFLOW_ICMP_TYPE, u8); break; case IPPROTO_ESP: @@ -253,13 +253,13 @@ orig_out: break; default: - pp_print(buf_cur, "PROTO", res, PRINTFLOW_REPLY_IP_PROTOCOL, ui8); + pp_print(buf_cur, "PROTO", res, PRINTFLOW_REPLY_IP_PROTOCOL, u8); break; } reply_out: - pp_print(buf_cur, "PKTS", res, PRINTFLOW_REPLY_RAW_PKTCOUNT, ui32); - pp_print(buf_cur, "BYTES", res, PRINTFLOW_REPLY_RAW_PKTLEN, ui32); + pp_print(buf_cur, "PKTS", res, PRINTFLOW_REPLY_RAW_PKTCOUNT, u32); + pp_print(buf_cur, "BYTES", res, PRINTFLOW_REPLY_RAW_PKTLEN, u32); strcat(buf_cur, "\n"); return 0; diff --git a/util/printpkt.c b/util/printpkt.c index 29c2ea4..2292377 100644 --- a/util/printpkt.c +++ b/util/printpkt.c @@ -119,38 +119,38 @@ static int printpkt_proto(struct ulogd_key *res, char *buf, int protocol) } buf_cur += sprintf(buf_cur, "SPT=%u DPT=%u ", - GET_VALUE(res, KEY_TCP_SPORT).ui16, - GET_VALUE(res, KEY_TCP_DPORT).ui16); + ikey_get_u16(&res[KEY_TCP_SPORT]), + ikey_get_u16(&res[KEY_TCP_DPORT])); /* FIXME: config */ - buf_cur += sprintf(buf_cur, "SEQ=%u ACK=%u ", - GET_VALUE(res, KEY_TCP_SEQ).ui32, - GET_VALUE(res, KEY_TCP_ACKSEQ).ui32); + buf_cur += sprintf(buf_cur, "SEQ=%u ACK=%u ", + ikey_get_u32(&res[KEY_TCP_SEQ]), + ikey_get_u32(&res[KEY_TCP_ACKSEQ])); buf_cur += sprintf(buf_cur, "WINDOW=%u ", - GET_VALUE(res, KEY_TCP_WINDOW).ui16); + ikey_get_u16(&res[KEY_TCP_WINDOW])); // buf_cur += sprintf(buf_cur, "RES=0x%02x ", - if (GET_VALUE(res, KEY_TCP_URG).b) + if (ikey_get_u8(&res[KEY_TCP_URG])) buf_cur += sprintf(buf_cur, "URG "); - if (GET_VALUE(res, KEY_TCP_ACK).b) + if (ikey_get_u8(&res[KEY_TCP_ACK])) buf_cur += sprintf(buf_cur, "ACK "); - if (GET_VALUE(res, KEY_TCP_PSH).b) + if (ikey_get_u8(&res[KEY_TCP_PSH])) buf_cur += sprintf(buf_cur, "PSH "); - if (GET_VALUE(res, KEY_TCP_RST).b) + if (ikey_get_u8(&res[KEY_TCP_RST])) buf_cur += sprintf(buf_cur, "RST "); - if (GET_VALUE(res, KEY_TCP_SYN).b) + if (ikey_get_u8(&res[KEY_TCP_SYN])) buf_cur += sprintf(buf_cur, "SYN "); - if (GET_VALUE(res, KEY_TCP_FIN).b) + if (ikey_get_u8(&res[KEY_TCP_FIN])) buf_cur += sprintf(buf_cur, "FIN "); buf_cur += sprintf(buf_cur, "URGP=%u ", - GET_VALUE(res, KEY_TCP_URGP).ui16); + ikey_get_u16(&res[KEY_TCP_URGP])); break; @@ -163,14 +163,14 @@ static int printpkt_proto(struct ulogd_key *res, char *buf, int protocol) } buf_cur += sprintf(buf_cur, "SPT=%u DPT=%u LEN=%u ", - GET_VALUE(res, KEY_UDP_SPORT).ui16, - GET_VALUE(res, KEY_UDP_DPORT).ui16, - GET_VALUE(res, KEY_UDP_LEN).ui16); + ikey_get_u16(&res[KEY_UDP_SPORT]), + ikey_get_u16(&res[KEY_UDP_DPORT]), + ikey_get_u16(&res[KEY_UDP_LEN])); break; case IPPROTO_ESP: case IPPROTO_AH: buf_cur += sprintf(buf_cur, "PROTO=%s ", - GET_VALUE(res, KEY_IP_PROTOCOL).ui8 == IPPROTO_ESP ? "ESP" : "AH"); + ikey_get_u8(&res[KEY_IP_PROTOCOL]) == IPPROTO_ESP ? "ESP" : "AH"); if (!pp_is_valid(res, KEY_AHESP_SPI)) { buf_cur += sprintf(buf_cur, "INCOMPLETE"); @@ -178,7 +178,7 @@ static int printpkt_proto(struct ulogd_key *res, char *buf, int protocol) } buf_cur += sprintf(buf_cur, "SPI=0x%x ", - GET_VALUE(res, KEY_AHESP_SPI).ui32); + ikey_get_u32(&res[KEY_AHESP_SPI])); break; } @@ -189,43 +189,44 @@ static int printpkt_ipv4(struct ulogd_key *res, char *buf) { char *buf_cur = buf; char tmp[INET_ADDRSTRLEN]; + u_int32_t paddr; if (pp_is_valid(res, KEY_IP_SADDR)) buf_cur += sprintf(buf_cur, "SRC=%s ", - (char *) GET_VALUE(res, KEY_IP_SADDR).ptr); + (char *) ikey_get_ptr(&res[KEY_IP_SADDR])); if (pp_is_valid(res, KEY_IP_DADDR)) buf_cur += sprintf(buf_cur, "DST=%s ", - (char *) GET_VALUE(res, KEY_IP_DADDR).ptr); + (char *) ikey_get_ptr(&res[KEY_IP_DADDR])); /* FIXME: add pp_is_valid calls to remainder of file */ buf_cur += sprintf(buf_cur,"LEN=%u TOS=%02X PREC=0x%02X TTL=%u ID=%u ", - GET_VALUE(res, KEY_IP_TOTLEN).ui16, - GET_VALUE(res, KEY_IP_TOS).ui8 & IPTOS_TOS_MASK, - GET_VALUE(res, KEY_IP_TOS).ui8 & IPTOS_PREC_MASK, - GET_VALUE(res, KEY_IP_TTL).ui8, - GET_VALUE(res, KEY_IP_ID).ui16); + ikey_get_u16(&res[KEY_IP_TOTLEN]), + ikey_get_u8(&res[KEY_IP_TOS]) & IPTOS_TOS_MASK, + ikey_get_u8(&res[KEY_IP_TOS]) & IPTOS_PREC_MASK, + ikey_get_u8(&res[KEY_IP_TTL]), + ikey_get_u16(&res[KEY_IP_ID])); - if (GET_VALUE(res, KEY_IP_FRAGOFF).ui16 & IP_RF) + if (ikey_get_u16(&res[KEY_IP_FRAGOFF]) & IP_RF) buf_cur += sprintf(buf_cur, "CE "); - if (GET_VALUE(res, KEY_IP_FRAGOFF).ui16 & IP_DF) + if (ikey_get_u16(&res[KEY_IP_FRAGOFF]) & IP_DF) buf_cur += sprintf(buf_cur, "DF "); - if (GET_VALUE(res, KEY_IP_FRAGOFF).ui16 & IP_MF) + if (ikey_get_u16(&res[KEY_IP_FRAGOFF]) & IP_MF) buf_cur += sprintf(buf_cur, "MF "); - if (GET_VALUE(res, KEY_IP_FRAGOFF).ui16 & IP_OFFMASK) + if (ikey_get_u16(&res[KEY_IP_FRAGOFF]) & IP_OFFMASK) buf_cur += sprintf(buf_cur, "FRAG:%u ", - GET_VALUE(res, KEY_IP_FRAGOFF).ui16 & IP_OFFMASK); + ikey_get_u16(&res[KEY_IP_FRAGOFF]) & IP_OFFMASK); - switch (GET_VALUE(res, KEY_IP_PROTOCOL).ui8) { + switch (ikey_get_u8(&res[KEY_IP_PROTOCOL])) { case IPPROTO_TCP: case IPPROTO_UDP: case IPPROTO_ESP: case IPPROTO_AH: buf_cur += printpkt_proto(res, buf_cur, - GET_VALUE(res, KEY_IP_PROTOCOL).ui8); + ikey_get_u8(&res[KEY_IP_PROTOCOL])); break; case IPPROTO_ICMP: @@ -237,36 +238,37 @@ static int printpkt_ipv4(struct ulogd_key *res, char *buf) } buf_cur += sprintf(buf_cur, "TYPE=%u CODE=%u ", - GET_VALUE(res, KEY_ICMP_TYPE).ui8, - GET_VALUE(res, KEY_ICMP_CODE).ui8); + ikey_get_u8(&res[KEY_ICMP_TYPE]), + ikey_get_u8(&res[KEY_ICMP_CODE])); - switch (GET_VALUE(res, KEY_ICMP_TYPE).ui8) { + switch (ikey_get_u8(&res[KEY_ICMP_CODE])) { case ICMP_ECHO: case ICMP_ECHOREPLY: buf_cur += sprintf(buf_cur, "ID=%u SEQ=%u ", - GET_VALUE(res, KEY_ICMP_ECHOID).ui16, - GET_VALUE(res, KEY_ICMP_ECHOSEQ).ui16); + ikey_get_u16(&res[KEY_ICMP_ECHOID]), + ikey_get_u16(&res[KEY_ICMP_ECHOSEQ])); break; case ICMP_PARAMETERPROB: buf_cur += sprintf(buf_cur, "PARAMETER=%u ", - GET_VALUE(res, KEY_ICMP_GATEWAY).ui32 >> 24); + ikey_get_u32(&res[KEY_ICMP_GATEWAY]) >> 24); break; case ICMP_REDIRECT: + paddr = ikey_get_u32(&res[KEY_ICMP_GATEWAY]), buf_cur += sprintf(buf_cur, "GATEWAY=%s ", inet_ntop(AF_INET, - &GET_VALUE(res, KEY_ICMP_GATEWAY).ui32, + &paddr, tmp, sizeof(tmp))); break; case ICMP_DEST_UNREACH: - if (GET_VALUE(res, KEY_ICMP_CODE).ui8 == ICMP_FRAG_NEEDED) + if (ikey_get_u8(&res[KEY_ICMP_CODE]) == ICMP_FRAG_NEEDED) buf_cur += sprintf(buf_cur, "MTU=%u ", - GET_VALUE(res, KEY_ICMP_FRAGMTU).ui16); + ikey_get_u16(&res[KEY_ICMP_FRAGMTU])); break; } break; default: buf_cur += sprintf(buf_cur, "PROTO=%u ", - GET_VALUE(res, KEY_IP_PROTOCOL).ui8); + ikey_get_u8(&res[KEY_IP_PROTOCOL])); } return buf_cur - buf; @@ -278,41 +280,41 @@ static int printpkt_ipv6(struct ulogd_key *res, char *buf) if (pp_is_valid(res, KEY_IP_SADDR)) buf_cur += sprintf(buf_cur, "SRC=%s ", - (char *) GET_VALUE(res, KEY_IP_SADDR).ptr); + (char *) ikey_get_ptr(&res[KEY_IP_SADDR])); if (pp_is_valid(res, KEY_IP_DADDR)) buf_cur += sprintf(buf_cur, "DST=%s ", - (char *) GET_VALUE(res, KEY_IP_DADDR).ptr); + (char *) ikey_get_ptr(&res[KEY_IP_DADDR])); if (pp_is_valid(res, KEY_IP6_PAYLOAD_LEN)) buf_cur += sprintf(buf_cur, "LEN=%Zu ", - GET_VALUE(res, KEY_IP6_PAYLOAD_LEN).ui16 + + ikey_get_u16(&res[KEY_IP6_PAYLOAD_LEN]) + sizeof(struct ip6_hdr)); if (pp_is_valid(res, KEY_IP6_PRIORITY)) buf_cur += sprintf(buf_cur, "TC=%u ", - GET_VALUE(res, KEY_IP6_PRIORITY).ui8); + ikey_get_u8(&res[KEY_IP6_PRIORITY])); if (pp_is_valid(res, KEY_IP6_HOPLIMIT)) buf_cur += sprintf(buf_cur, "HOPLIMIT=%u ", - GET_VALUE(res, KEY_IP6_HOPLIMIT).ui8); + ikey_get_u8(&res[KEY_IP6_HOPLIMIT])); if (pp_is_valid(res, KEY_IP6_FLOWLABEL)) buf_cur += sprintf(buf_cur, "FLOWLBL=%u ", - GET_VALUE(res, KEY_IP6_FLOWLABEL).ui32); + ikey_get_u32(&res[KEY_IP6_FLOWLABEL])); if (pp_is_valid(res, KEY_IP6_FRAG_OFF) && pp_is_valid(res, KEY_IP6_FRAG_ID)) buf_cur += sprintf(buf_cur, "FRAG: %u ID: %08x ", - GET_VALUE(res, KEY_IP6_FRAG_OFF).ui16, - GET_VALUE(res, KEY_IP6_FRAG_ID).ui32); + ikey_get_u16(&res[KEY_IP6_FRAG_OFF]), + ikey_get_u32(&res[KEY_IP6_FRAG_ID])); - switch (GET_VALUE(res, KEY_IP6_NEXTHDR).ui8) { + switch (ikey_get_u8(&res[KEY_IP6_NEXTHDR])) { case IPPROTO_TCP: case IPPROTO_UDP: case IPPROTO_ESP: case IPPROTO_AH: buf_cur += printpkt_proto(res, buf_cur, - GET_VALUE(res, KEY_IP6_NEXTHDR).ui8); + ikey_get_u8(&res[KEY_IP6_NEXTHDR])); break; case IPPROTO_ICMPV6: buf_cur += sprintf(buf_cur, "PROTO=ICMPv6 "); @@ -329,15 +331,15 @@ static int printpkt_ipv6(struct ulogd_key *res, char *buf) } buf_cur += sprintf(buf_cur, "TYPE=%u CODE=%u ", - GET_VALUE(res, KEY_ICMPV6_TYPE).ui8, - GET_VALUE(res, KEY_ICMPV6_CODE).ui8); + ikey_get_u8(&res[KEY_ICMPV6_TYPE]), + ikey_get_u8(&res[KEY_ICMPV6_CODE])); - switch (GET_VALUE(res, KEY_ICMPV6_TYPE).ui8) { + switch (ikey_get_u8(&res[KEY_ICMPV6_TYPE])) { case ICMP6_ECHO_REQUEST: case ICMP6_ECHO_REPLY: buf_cur += sprintf(buf_cur, "ID=%u SEQ=%u ", - GET_VALUE(res, KEY_ICMPV6_ECHOID).ui16, - GET_VALUE(res, KEY_ICMPV6_ECHOSEQ).ui16); + ikey_get_u16(&res[KEY_ICMPV6_ECHOID]), + ikey_get_u16(&res[KEY_ICMPV6_ECHOSEQ])); break; } break; @@ -354,16 +356,16 @@ int printpkt_arp(struct ulogd_key *res, char *buf) if (pp_is_valid(res, KEY_ARP_SPA)) buf_cur += sprintf(buf_cur, "SRC=%s ", - (char *) GET_VALUE(res, KEY_ARP_SPA).ptr); + (char *) ikey_get_ptr(&res[KEY_ARP_SPA])); if (pp_is_valid(res, KEY_ARP_TPA)) buf_cur += sprintf(buf_cur, "DST=%s ", - (char *) GET_VALUE(res, KEY_ARP_TPA).ptr); + (char *) ikey_get_ptr(&res[KEY_ARP_TPA])); buf_cur += sprintf(buf_cur, "PROTO=ARP "); if (pp_is_valid(res, KEY_ARP_OPCODE)) { - code = GET_VALUE(res, KEY_ARP_OPCODE).ui16; + code = ikey_get_u16(&res[KEY_ARP_OPCODE]); switch (code) { case ARPOP_REQUEST: buf_cur += sprintf(buf_cur, "REQUEST "); @@ -379,7 +381,7 @@ int printpkt_arp(struct ulogd_key *res, char *buf) } if (pp_is_valid(res, KEY_ARP_SHA) && (code == ARPOP_REPLY)) { - mac = GET_VALUE(res, KEY_ARP_SHA).ptr; + mac = ikey_get_ptr(&res[KEY_ARP_SHA]); buf_cur += sprintf(buf_cur, "REPLY_MAC=" "%02x:%02x:%02x:%02x:%02x:%02x ", mac[0], mac[1], mac[2], @@ -395,7 +397,7 @@ int printpkt_bridge(struct ulogd_key *res, char *buf) { char *buf_cur = buf; - switch (GET_VALUE(res, KEY_OOB_PROTOCOL).ui16) { + switch (ikey_get_u16(&res[KEY_OOB_PROTOCOL])) { case ETH_P_IP: buf_cur += printpkt_ipv4(res, buf_cur); break; @@ -407,7 +409,7 @@ int printpkt_bridge(struct ulogd_key *res, char *buf) break; default: buf_cur += sprintf(buf_cur, "PROTO=%u ", - GET_VALUE(res, KEY_OOB_PROTOCOL).ui16); + ikey_get_u16(&res[KEY_OOB_PROTOCOL])); } return buf_cur - buf; @@ -419,17 +421,17 @@ int printpkt_print(struct ulogd_key *res, char *buf) if (pp_is_valid(res, KEY_OOB_PREFIX)) buf_cur += sprintf(buf_cur, "%s ", - (char *) GET_VALUE(res, KEY_OOB_PREFIX).ptr); + (char *) ikey_get_ptr(&res[KEY_OOB_PREFIX])); if (pp_is_valid(res, KEY_OOB_IN) && pp_is_valid(res, KEY_OOB_OUT)) buf_cur += sprintf(buf_cur, "IN=%s OUT=%s ", - (char *) GET_VALUE(res, KEY_OOB_IN).ptr, - (char *) GET_VALUE(res, KEY_OOB_OUT).ptr); + (char *) ikey_get_ptr(&res[KEY_OOB_IN]), + (char *) ikey_get_ptr(&res[KEY_OOB_OUT])); /* FIXME: configurable */ if (pp_is_valid(res, KEY_RAW_MAC)) { - unsigned char *mac = (unsigned char *) GET_VALUE(res, KEY_RAW_MAC).ptr; - int i, len = GET_VALUE(res, KEY_RAW_MACLEN).ui16; + unsigned char *mac = (unsigned char *) ikey_get_ptr(&res[KEY_RAW_MAC]); + int i, len = ikey_get_u16(&res[KEY_RAW_MACLEN]); buf_cur += sprintf(buf_cur, "MAC="); for (i = 0; i < len; i++) @@ -438,7 +440,7 @@ int printpkt_print(struct ulogd_key *res, char *buf) } else buf_cur += sprintf(buf_cur, "MAC= "); - switch (GET_VALUE(res, KEY_OOB_FAMILY).ui8) { + switch (ikey_get_u8(&res[KEY_OOB_FAMILY])) { case AF_INET: buf_cur += printpkt_ipv4(res, buf_cur); break; @@ -452,13 +454,13 @@ int printpkt_print(struct ulogd_key *res, char *buf) if (pp_is_valid(res, KEY_OOB_UID)) buf_cur += sprintf(buf_cur, "UID=%u ", - GET_VALUE(res, KEY_OOB_UID).ui32); + ikey_get_u32(&res[KEY_OOB_UID])); if (pp_is_valid(res, KEY_OOB_GID)) buf_cur += sprintf(buf_cur, "GID=%u ", - GET_VALUE(res, KEY_OOB_GID).ui32); + ikey_get_u32(&res[KEY_OOB_GID])); if (pp_is_valid(res, KEY_OOB_MARK)) buf_cur += sprintf(buf_cur, "MARK=%x ", - GET_VALUE(res, KEY_OOB_MARK).ui32); + ikey_get_u32(&res[KEY_OOB_MARK])); strcat(buf_cur, "\n"); |