Changeset 39567d9 for libpacketdump
- Timestamp:
- 01/24/19 15:10:43 (2 years ago)
- Branches:
- develop
- Children:
- 5299c55
- Parents:
- 254c926
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libpacketdump/link_21.c
rd0f25d4 r39567d9 3 3 #include "libpacketdump.h" 4 4 #include "format_erf.h" 5 6 #include <arpa/inet.h> 7 #include <netinet/ether.h> 5 8 6 9 DLLEXPORT void decode(int link_type UNUSED, const char *packet UNUSED, unsigned len UNUSED) { … … 10 13 int i; 11 14 for (i=0; i<meta->num; i++) { 12 printf(" Option ID: %u Option Value: %s\n", 13 meta->items[i].option, (char *)meta->items[i].data); 15 16 if (meta->items[i].datatype == TRACE_META_STRING) { 17 printf(" Name: %s ID: %u Value: %s\n", 18 meta->items[i].option_name, 19 meta->items[i].option, 20 (char *)meta->items[i].data); 21 } else if (meta->items[i].datatype == TRACE_META_UINT8) { 22 printf(" Name: %s ID: %u Value: %u\n", 23 meta->items[i].option_name, 24 meta->items[i].option, 25 *(uint8_t *)meta->items[i].data); 26 } else if (meta->items[i].datatype == TRACE_META_UINT32) { 27 printf(" Name: %s ID: %u Value: %u\n", 28 meta->items[i].option_name, 29 meta->items[i].option, 30 *(uint32_t *)meta->items[i].data); 31 } else if (meta->items[i].datatype == TRACE_META_UINT64) { 32 printf(" Name: %s ID: %u Value: %lu\n", 33 meta->items[i].option_name, 34 meta->items[i].option, 35 *(uint64_t *)meta->items[i].data); 36 } else if (meta->items[i].datatype == TRACE_META_IPV4) { 37 struct in_addr ip; 38 ip.s_addr = *(uint32_t *)meta->items[i].data; 39 printf(" Name: %s ID: %u Value: %s\n", 40 meta->items[i].option_name, 41 meta->items[i].option, 42 inet_ntoa(ip)); 43 } else if (meta->items[i].datatype == TRACE_META_IPV6) { 44 printf(" Name: %s ID: %u Value: %s\n", 45 meta->items[i].option_name, 46 meta->items[i].option, 47 (char *)meta->items[i].data); 48 } else if (meta->items[i].datatype == TRACE_META_MAC) { 49 printf(" Name: %s ID: %u Value: %s\n", 50 meta->items[i].option_name, 51 meta->items[i].option, 52 ether_ntoa((struct ether_addr *)(char *)meta->items[i].data)); 53 } else { 54 printf(" Option ID: %u Option Value: ", meta->items[i].option); 55 int k; 56 unsigned char *curr = (unsigned char *)meta->items[i].data; 57 for (k=0; k<meta->items[i].len; k++) { 58 printf("%02x ", curr[k]); 59 } 60 printf("\n"); 61 } 14 62 } 15 63 }
Note: See TracChangeset
for help on using the changeset viewer.