2 * netsniff-ng - the packet sniffing beast
3 * By Daniel Borkmann <daniel@netsniff-ng.org>
4 * Copyright 2009, 2010 Daniel Borkmann.
5 * Subject to the GPL, version 2.
15 #include "proto_struct.h"
16 #include "dissector_eth.h"
18 static inline void hex_pay(uint8_t *packet
, size_t len
)
25 tprintf(" [ Payload hex ");
26 for (buff
= packet
, plen
= len
; plen
-- > 0; buff
++)
27 tprintf("%.2x ", *buff
);
29 tprintf(" [ Payload chr ");
30 for (buff
= packet
, plen
= len
; plen
-- > 0; buff
++)
31 tprintf("%c ", isprint(*buff
) ? *buff
: '.');
35 static inline void hex_none_newline(uint8_t *packet
, size_t len
)
40 static inline void hex_hex(uint8_t *packet
, size_t len
)
44 for (buff
= packet
; len
-- > 0; buff
++)
45 tprintf("%.2x ", *buff
);
49 static inline void hex_all(uint8_t *packet
, size_t len
)
55 static inline void hex_ascii(uint8_t *packet
, size_t len
)
59 for (buff
= packet
; len
-- > 0; buff
++)
60 tprintf("%c ", isprint(*buff
) ? *buff
: '.');
64 struct protocol hex_ops
= {
67 .print_full
= hex_pay
,
68 .print_less
= hex_none_newline
,
69 .print_pay_ascii
= hex_ascii
,
70 .print_pay_hex
= hex_hex
,
71 .print_pay_none
= hex_none_newline
,
72 .print_all_hex
= hex_all
,