X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/ec799d60f6cd3f41041b57efe3963c28dda94d4a..refs/heads/tcpdump-4.6:/print-usb.c diff --git a/print-usb.c b/print-usb.c index 8e15e7bf..75f78fc9 100644 --- a/print-usb.c +++ b/print-usb.c @@ -19,22 +19,21 @@ * */ +#define NETDISSECT_REWORKED #ifdef HAVE_CONFIG_H #include "config.h" #endif #include -#include -#include -#include - #include "interface.h" #if defined(HAVE_PCAP_USB_H) && defined(DLT_USB_LINUX) #include +static const char tstr[] = "[|usb]"; + /* returns direction: 1=inbound 2=outbound -1=invalid */ static int get_direction(int transfer_type, int event_type) @@ -81,49 +80,49 @@ get_direction(int transfer_type, int event_type) } static void -usb_header_print(const pcap_usb_header *uh) +usb_header_print(netdissect_options *ndo, const pcap_usb_header *uh) { int direction; switch(uh->transfer_type) { case URB_ISOCHRONOUS: - printf("ISOCHRONOUS"); + ND_PRINT((ndo, "ISOCHRONOUS")); break; case URB_INTERRUPT: - printf("INTERRUPT"); + ND_PRINT((ndo, "INTERRUPT")); break; case URB_CONTROL: - printf("CONTROL"); + ND_PRINT((ndo, "CONTROL")); break; case URB_BULK: - printf("BULK"); + ND_PRINT((ndo, "BULK")); break; default: - printf(" ?"); + ND_PRINT((ndo, " ?")); } switch(uh->event_type) { case URB_SUBMIT: - printf(" SUBMIT"); + ND_PRINT((ndo, " SUBMIT")); break; case URB_COMPLETE: - printf(" COMPLETE"); + ND_PRINT((ndo, " COMPLETE")); break; case URB_ERROR: - printf(" ERROR"); + ND_PRINT((ndo, " ERROR")); break; default: - printf(" ?"); + ND_PRINT((ndo, " ?")); } direction = get_direction(uh->transfer_type, uh->event_type); if(direction == 1) - printf(" from"); + ND_PRINT((ndo, " from")); else if(direction == 2) - printf(" to"); - printf(" %d:%d:%d", uh->bus_id, uh->device_address, uh->endpoint_number & 0x7f); + ND_PRINT((ndo, " to")); + ND_PRINT((ndo, " %d:%d:%d", uh->bus_id, uh->device_address, uh->endpoint_number & 0x7f)); } /* @@ -135,14 +134,15 @@ usb_header_print(const pcap_usb_header *uh) * is the number of bytes actually captured. */ u_int -usb_linux_48_byte_print(const struct pcap_pkthdr *h, register const u_char *p) +usb_linux_48_byte_print(netdissect_options *ndo, const struct pcap_pkthdr *h, + register const u_char *p) { if (h->caplen < sizeof(pcap_usb_header)) { - printf("[|usb]"); + ND_PRINT((ndo, "%s", tstr)); return(sizeof(pcap_usb_header)); } - usb_header_print((const pcap_usb_header *) p); + usb_header_print(ndo, (const pcap_usb_header *) p); return(sizeof(pcap_usb_header)); } @@ -157,14 +157,15 @@ usb_linux_48_byte_print(const struct pcap_pkthdr *h, register const u_char *p) * is the number of bytes actually captured. */ u_int -usb_linux_64_byte_print(const struct pcap_pkthdr *h, register const u_char *p) +usb_linux_64_byte_print(netdissect_options *ndo, const struct pcap_pkthdr *h, + register const u_char *p) { if (h->caplen < sizeof(pcap_usb_header_mmapped)) { - printf("[|usb]"); + ND_PRINT((ndo, "%s", tstr)); return(sizeof(pcap_usb_header_mmapped)); } - usb_header_print((const pcap_usb_header *) p); + usb_header_print(ndo, (const pcap_usb_header *) p); return(sizeof(pcap_usb_header_mmapped)); }