266 struct iphdr *ip = (
struct iphdr *)pkt;
268 uint32_t id, mark, ifi;
269 uint16_t tlen, left = len;
270 char saddr[INET_ADDRSTRLEN], daddr[INET_ADDRSTRLEN];
273 id = ntohl(ph->packet_id);
274 snprintf(tmp, left,
"hw_protocol=0x%04x hook=%u id=%u ",
275 ntohs(ph->hw_protocol), ph->hook,
id);
281 if ((mark = nfq_get_nfmark(tb))) {
282 snprintf(tmp, left,
"mark=%u ", mark);
288 if ((ifi = nfq_get_indev(tb))) {
289 snprintf(tmp, left,
"indev=%u ", ifi);
295 if ((ifi = nfq_get_outdev(tb))) {
296 snprintf(tmp, left,
"outdev=%u ", ifi);
302 if (pkt && (ip->version == 4)) {
303 union l4hdr *l4 = (
union l4hdr *)(pkt + (ip->ihl*4));
305 inet_ntop(AF_INET, &ip->saddr, saddr, INET_ADDRSTRLEN);
306 inet_ntop(AF_INET, &ip->daddr, daddr, INET_ADDRSTRLEN);
308 snprintf(tmp, left,
"src=%s dst=%s proto=%i ", saddr, daddr, ip->protocol);
313 switch(ip->protocol) {
315 snprintf(tmp, left,
"sport=%i dport=%i ", ntohs(l4->tcp.source), ntohs(l4->tcp.dest));
318 snprintf(tmp, left,
"sport=%i dport=%i ", ntohs(l4->udp.source), ntohs(l4->udp.dest));
321 snprintf(tmp, left,
"type=%i code=%i id=%i ", l4->icmp.type, l4->icmp.code, ntohs(l4->icmp.un.echo.id));
const char * inet_ntop(int af, const void *src, char *dest, socklen_t size)
Win32 implementation of inet_ntop.