diff options
-rw-r--r-- | epan/dissectors/CMakeLists.txt | 1 | ||||
-rw-r--r-- | epan/dissectors/Makefile.am | 1 | ||||
-rw-r--r-- | epan/dissectors/errno.c | 182 | ||||
-rw-r--r-- | epan/dissectors/packet-netlink.c | 6 | ||||
-rw-r--r-- | epan/dissectors/packet-usb.c | 149 | ||||
-rw-r--r-- | epan/dissectors/packet-usb.h | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-usbip.c | 3 |
7 files changed, 195 insertions, 149 deletions
diff --git a/epan/dissectors/CMakeLists.txt b/epan/dissectors/CMakeLists.txt index f10850f384..f5fda870d8 100644 --- a/epan/dissectors/CMakeLists.txt +++ b/epan/dissectors/CMakeLists.txt @@ -1427,6 +1427,7 @@ set(DISSECTOR_SRC ) set(DISSECTOR_SUPPORT_SRC + errno.c packet-dcerpc-nt.c usb.c snort-config.c diff --git a/epan/dissectors/Makefile.am b/epan/dissectors/Makefile.am index 4a8e20675c..e24bcc4773 100644 --- a/epan/dissectors/Makefile.am +++ b/epan/dissectors/Makefile.am @@ -1842,6 +1842,7 @@ DISSECTOR_INCLUDES = \ # directory, but they're not dissectors themselves, i.e. they're not # used to generate "register.c"). DISSECTOR_SUPPORT_SRC = \ + errno.c \ packet-dcerpc-nt.c \ snort-config.c \ usb.c \ diff --git a/epan/dissectors/errno.c b/epan/dissectors/errno.c new file mode 100644 index 0000000000..ca40cd3d47 --- /dev/null +++ b/epan/dissectors/errno.c @@ -0,0 +1,182 @@ +/* errno.c + * String descriptions for errno values. + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "config.h" + +#include <epan/value_string.h> + +/* Note: sorted in (unsigned) ascending order with no gaps to enable direct, + * array-indexed access. */ +static const value_string linux_negative_errno_vals[] = { + /* from include/uapi/asm-generic/errno.h */ + { -133, "Memory page has hardware error (-EHWPOISON)" }, + { -132, "Operation not possible due to RF-kill (-ERFKILL)" }, + { -131, "State not recoverable (-ENOTRECOVERABLE)" }, + { -130, "Owner died (-EOWNERDEAD)" }, + { -129, "Key was rejected by service (-EKEYREJECTED)" }, + { -128, "Key has been revoked (-EKEYREVOKED)" }, + { -127, "Key has expired (-EKEYEXPIRED)" }, + { -126, "Required key not available (-ENOKEY)" }, + { -125, "Operation Canceled (-ECANCELED)" }, + { -124, "Wrong medium type (-EMEDIUMTYPE)" }, + { -123, "No medium found (-ENOMEDIUM)" }, + { -122, "Quota exceeded (-EDQUOT)" }, + { -121, "Remote I/O error (-EREMOTEIO)" }, + { -120, "Is a named type file (-EISNAM)" }, + { -119, "No XENIX semaphores available (-ENAVAIL)" }, + { -118, "Not a XENIX named type file (-ENOTNAM)" }, + { -117, "Structure needs cleaning (-EUCLEAN)" }, + { -116, "Stale file handle (-ESTALE)" }, + { -115, "Operation now in progress (-EINPROGRESS)" }, + { -114, "Operation already in progress (-EALREADY)" }, + { -113, "No route to host (-EHOSTUNREACH)" }, + { -112, "Host is down (-EHOSTDOWN)" }, + { -111, "Connection refused (-ECONNREFUSED)" }, + { -110, "Connection timed out (-ETIMEDOUT)" }, + { -109, "Too many references: cannot splice (-ETOOMANYREFS)" }, + { -108, "Cannot send after transport endpoint shutdown (-ESHUTDOWN)" }, + { -107, "Transport endpoint is not connected (-ENOTCONN)" }, + { -106, "Transport endpoint is already connected (-EISCONN)" }, + { -105, "No buffer space available (-ENOBUFS)" }, + { -104, "Connection reset by peer (-ECONNRESET)" }, + { -103, "Software caused connection abort (-ECONNABORTED)" }, + { -102, "Network dropped connection because of reset (-ENETRESET)" }, + { -101, "Network is unreachable (-ENETUNREACH)" }, + { -100, "Network is down (-ENETDOWN)" }, + { -99, "Cannot assign requested address (-EADDRNOTAVAIL)" }, + { -98, "Address already in use (-EADDRINUSE)" }, + { -97, "Address family not supported by protocol (-EAFNOSUPPORT)" }, + { -96, "Protocol family not supported (-EPFNOSUPPORT)" }, + { -95, "Operation not supported on transport endpoint (-EOPNOTSUPP)" }, + { -94, "Socket type not supported (-ESOCKTNOSUPPORT)" }, + { -93, "Protocol not supported (-EPROTONOSUPPORT)" }, + { -92, "Protocol not available (-ENOPROTOOPT)" }, + { -91, "Protocol wrong type for socket (-EPROTOTYPE)" }, + { -90, "Message too long (-EMSGSIZE)" }, + { -89, "Destination address required (-EDESTADDRREQ)" }, + { -88, "Socket operation on non-socket (-ENOTSOCK)" }, + { -87, "Too many users (-EUSERS)" }, + { -86, "Streams pipe error (-ESTRPIPE)" }, + { -85, "Interrupted system call should be restarted (-ERESTART)" }, + { -84, "Illegal byte sequence (-EILSEQ)" }, + { -83, "Cannot exec a shared library directly (-ELIBEXEC)" }, + { -82, "Attempting to link in too many shared libraries (-ELIBMAX)" }, + { -81, ".lib section in a.out corrupted (-ELIBSCN)" }, + { -80, "Accessing a corrupted shared library (-ELIBBAD)" }, + { -79, "Can not access a needed shared library (-ELIBACC)" }, + { -78, "Remote address changed (-EREMCHG)" }, + { -77, "File descriptor in bad state (-EBADFD)" }, + { -76, "Name not unique on network (-ENOTUNIQ)" }, + { -75, "Value too large for defined data type (-EOVERFLOW)" }, + { -74, "Not a data message (-EBADMSG)" }, + { -73, "RFS specific error (-EDOTDOT)" }, + { -72, "Multihop attempted (-EMULTIHOP)" }, + { -71, "Protocol error (-EPROTO)" }, + { -70, "Communication error on send (-ECOMM)" }, + { -69, "Srmount error (-ESRMNT)" }, + { -68, "Advertise error (-EADV)" }, + { -67, "Link has been severed (-ENOLINK)" }, + { -66, "Object is remote (-EREMOTE)" }, + { -65, "Package not installed (-ENOPKG)" }, + { -64, "Machine is not on the network (-ENONET)" }, + { -63, "Out of streams resources (-ENOSR)" }, + { -62, "Timer expired (-ETIME)" }, + { -61, "No data available (-ENODATA)" }, + { -60, "Device not a stream (-ENOSTR)" }, + { -59, "Bad font file format (-EBFONT)" }, + { -58, "(-58 \?\?\?)" }, /* dummy so that there are no "gaps" */ + { -57, "Invalid slot (-EBADSLT)" }, + { -56, "Invalid request code (-EBADRQC)" }, + { -55, "No anode (-ENOANO)" }, + { -54, "Exchange full (-EXFULL)" }, + { -53, "Invalid request descriptor (-EBADR)" }, + { -52, "Invalid exchange (-EBADE)" }, + { -51, "Level 2 halted (-EL2HLT)" }, + { -50, "No CSI structure available (-ENOCSI)" }, + { -49, "Protocol driver not attached (-EUNATCH)" }, + { -48, "Link number out of range (-ELNRNG)" }, + { -47, "Level 3 reset (-EL3RST)" }, + { -46, "Level 3 halted (-EL3HLT)" }, + { -45, "Level 2 not synchronized (-EL2NSYNC)" }, + { -44, "Channel number out of range (-ECHRNG)" }, + { -43, "Identifier removed (-EIDRM)" }, + { -42, "No message of desired type (-ENOMSG)" }, + { -41, "(-41 \?\?\?)" }, /* dummy so that there are no "gaps" */ + { -40, "Too many symbolic links encountered (-ELOOP)" }, + { -39, "Directory not empty (-ENOTEMPTY)" }, + { -38, "Invalid system call number (-ENOSYS)" }, + { -37, "No record locks available (-ENOLCK)" }, + { -36, "File name too long (-ENAMETOOLONG)" }, + { -35, "Resource deadlock would occur (-EDEADLK)" }, + /* from include/uapi/asm-generic/errno-base.h */ + { -34, "Math result not representable (-ERANGE)" }, + { -33, "Math argument out of domain of func (-EDOM)" }, + { -32, "Broken pipe (-EPIPE)" }, + { -31, "Too many links (-EMLINK)" }, + { -30, "Read-only file system (-EROFS)" }, + { -29, "Illegal seek (-ESPIPE)" }, + { -28, "No space left on device (-ENOSPC)" }, + { -27, "File too large (-EFBIG)" }, + { -26, "Text file busy (-ETXTBSY)" }, + { -25, "Not a typewriter (-ENOTTY)" }, + { -24, "Too many open files (-EMFILE)" }, + { -23, "File table overflow (-ENFILE)" }, + { -22, "Invalid argument (-EINVAL)" }, + { -21, "Is a directory (-EISDIR)" }, + { -20, "Not a directory (-ENOTDIR)" }, + { -19, "No such device (-ENODEV)" }, + { -18, "Cross-device link (-EXDEV)" }, + { -17, "File exists (-EEXIST)" }, + { -16, "Device or resource busy (-EBUSY)" }, + { -15, "Block device required (-ENOTBLK)" }, + { -14, "Bad address (-EFAULT)" }, + { -13, "Permission denied (-EACCES)" }, + { -12, "Out of memory (-ENOMEM)" }, + { -11, "Try again (-EAGAIN)" }, + { -10, "No child processes (-ECHILD)" }, + { -9, "Bad file number (-EBADF)" }, + { -8, "Exec format error (-ENOEXEC)" }, + { -7, "Argument list too long (-E2BIG)" }, + { -6, "No such device or address (-ENXIO)" }, + { -5, "I/O error (-EIO)" }, + { -4, "Interrupted system call (-EINTR)" }, + { -3, "No such process (-ESRCH)" }, + { -2, "No such file or directory (-ENOENT)" }, + { -1, "Operation not permitted (-EPERM)" }, + { 0, "Success" }, + { 0, NULL } +}; + +value_string_ext linux_negative_errno_vals_ext = VALUE_STRING_EXT_INIT(linux_negative_errno_vals); + +/* + * Editor modelines - http://www.wireshark.org/tools/modelines.html + * + * Local variables: + * c-basic-offset: 4 + * tab-width: 8 + * indent-tabs-mode: nil + * End: + * + * vi: set shiftwidth=4 tabstop=8 expandtab: + * :indentSize=4:tabSize=8:noTabs=true: + */ diff --git a/epan/dissectors/packet-netlink.c b/epan/dissectors/packet-netlink.c index a9c4078326..34c3ff3c90 100644 --- a/epan/dissectors/packet-netlink.c +++ b/epan/dissectors/packet-netlink.c @@ -79,6 +79,8 @@ static const value_string ha_types[] = { { 0, NULL } }; +extern value_string_ext linux_negative_errno_vals_ext; + static dissector_handle_t netlink_handle; static header_field_info *hfi_netlink = NULL; @@ -192,8 +194,8 @@ static header_field_info hfi_netlink_attr_data NETLINK_HFI_INIT = /* TODO add a value_string for errno. */ static header_field_info hfi_netlink_error NETLINK_HFI_INIT = - { "Error code", "netlink.error", FT_INT32, BASE_DEC, - NULL, 0x00, "Negative errno or 0 for acknowledgements", HFILL }; + { "Error code", "netlink.error", FT_INT32, BASE_DEC | BASE_EXT_STRING, + &linux_negative_errno_vals_ext, 0x00, "Negative errno or 0 for acknowledgements", HFILL }; static gint ett_netlink_cooked = -1; static gint ett_netlink_msghdr = -1; diff --git a/epan/dissectors/packet-usb.c b/epan/dissectors/packet-usb.c index 942a3528d3..b3498c0fc4 100644 --- a/epan/dissectors/packet-usb.c +++ b/epan/dissectors/packet-usb.c @@ -772,6 +772,7 @@ static const value_string usb_endpoint_direction_vals[] = { extern value_string_ext ext_usb_vendors_vals; extern value_string_ext ext_usb_products_vals; extern value_string_ext ext_usb_com_subclass_vals; +extern value_string_ext linux_negative_errno_vals_ext; /* * Standard descriptor types. @@ -903,146 +904,6 @@ static const value_string usb_wMaxPacketSize_slots_vals[] = { {0, NULL} }; -/* Note: sorted in (unsigned) ascending order */ -static const value_string usb_urb_status_vals[] = { - /* from linux/include/asm-generic/errno.h*/ - { -131, "State not recoverable (-ENOTRECOVERABLE)" }, - { -130, "Owner died (-EOWNERDEAD)" }, - { -129, "Key was rejected by service (-EKEYREJECTED)" }, - { -128, "Key has been revoked (-EKEYREVOKED)" }, - { -127, "Key has expired (-EKEYEXPIRED)" }, - { -126, "Required key not available (-ENOKEY)" }, - { -125, "Operation Canceled (-ECANCELED)" }, - { -124, "Wrong medium type (-EMEDIUMTYPE)" }, - { -123, "No medium found (-ENOMEDIUM)" }, - { -122, "Quota exceeded (-EDQUOT)" }, - { -121, "Remote I/O error (-EREMOTEIO)" }, - { -120, "Is a named type file (-EISNAM)" }, - { -119, "No XENIX semaphores available (-ENAVAIL)" }, - { -118, "Not a XENIX named type file (-ENOTNAM)" }, - { -117, "Structure needs cleaning (-EUCLEAN)" }, - { -116, "Stale NFS file handle (-ESTALE)" }, - { -115, "Operation now in progress (-EINPROGRESS)" }, - { -114, "Operation already in progress (-EALREADY)" }, - { -113, "No route to host (-EHOSTUNREACH)" }, - { -112, "Host is down (-EHOSTDOWN)" }, - { -111, "Connection refused (-ECONNREFUSED)" }, - { -110, "Connection timed out (-ETIMEDOUT)" }, - { -109, "Too many references: cannot splice (-ETOOMANYREFS)" }, - { -108, "Cannot send after transport endpoint shutdown (-ESHUTDOWN)" }, - { -107, "Transport endpoint is not connected (-ENOTCONN)" }, - { -106, "Transport endpoint is already connected (-EISCONN)" }, - { -105, "No buffer space available (-ENOBUFS)" }, - { -104, "Connection reset by peer (-ECONNRESET)" }, - { -103, "Software caused connection abort (-ECONNABORTED)" }, - { -102, "Network dropped connection because of reset (-ENETRESET)" }, - { -101, "Network is unreachable (-ENETUNREACH)" }, - { -100, "Network is down (-ENETDOWN)" }, - { -99, "Cannot assign requested address (-EADDRNOTAVAIL)" }, - { -98, "Address already in use (-EADDRINUSE)" }, - { -97, "Address family not supported by protocol (-EAFNOSUPPORT)" }, - { -96, "Protocol family not supported (-EPFNOSUPPORT)" }, - { -95, "Operation not supported on transport endpoint (-EOPNOTSUPP)" }, - { -94, "Socket type not supported (-ESOCKTNOSUPPORT)" }, - { -93, "Protocol not supported (-EPROTONOSUPPORT)" }, - { -92, "Protocol not available (-ENOPROTOOPT)" }, - { -91, "Protocol wrong type for socket (-EPROTOTYPE)" }, - { -90, "Message too long (-EMSGSIZE)" }, - { -89, "Destination address required (-EDESTADDRREQ)" }, - { -88, "Socket operation on non-socket (-ENOTSOCK)" }, - { -87, "Too many users (-EUSERS)" }, - { -86, "Streams pipe error (-ESTRPIPE)" }, - { -85, "Interrupted system call should be restarted (-ERESTART)" }, - { -84, "Illegal byte sequence (-EILSEQ)" }, - { -83, "Cannot exec a shared library directly (-ELIBEXEC)" }, - { -82, "Attempting to link in too many shared libraries (-ELIBMAX)" }, - { -81, ".lib section in a.out corrupted (-ELIBSCN)" }, - { -80, "Accessing a corrupted shared library (-ELIBBAD)" }, - { -79, "Can not access a needed shared library (-ELIBACC)" }, - { -78, "Remote address changed (-EREMCHG)" }, - { -77, "File descriptor in bad state (-EBADFD)" }, - { -76, "Name not unique on network (-ENOTUNIQ)" }, - { -75, "Value too large for defined data type (-EOVERFLOW)" }, - { -74, "Not a data message (-EBADMSG)" }, - { -73, "RFS specific error (-EDOTDOT)" }, - { -72, "Multihop attempted (-EMULTIHOP)" }, - { -71, "Protocol error (-EPROTO)" }, - { -70, "Communication error on send (-ECOMM)" }, - { -69, "Srmount error (-ESRMNT)" }, - { -68, "Advertise error (-EADV)" }, - { -67, "Link has been severed (-ENOLINK)" }, - { -66, "Object is remote (-EREMOTE)" }, - { -65, "Package not installed (-ENOPKG)" }, - { -64, "Machine is not on the network (-ENONET)" }, - { -63, "Out of streams resources (-ENOSR)" }, - { -62, "Timer expired (-ETIME)" }, - { -61, "No data available (-ENODATA)" }, - { -60, "Device not a stream (-ENOSTR)" }, - { -59, "Bad font file format (-EBFONT)" }, - { -58, "(-58 \?\?\?)" }, /* dummy so that there are no "gaps" */ - { -57, "Invalid slot (-EBADSLT)" }, - { -56, "Invalid request code (-EBADRQC)" }, - { -55, "No anode (-ENOANO)" }, - { -54, "Exchange full (-EXFULL)" }, - { -53, "Invalid request descriptor (-EBADR)" }, - { -52, "Invalid exchange (-EBADE)" }, - { -51, "Level 2 halted (-EL2HLT)" }, - { -50, "No CSI structure available (-ENOCSI)" }, - { -49, "Protocol driver not attached (-EUNATCH)" }, - { -48, "Link number out of range (-ELNRNG)" }, - { -47, "Level 3 reset (-EL3RST)" }, - { -46, "Level 3 halted (-EL3HLT)" }, - { -45, "Level 2 not synchronized (-EL2NSYNC)" }, - { -44, "Channel number out of range (-ECHRNG)" }, - { -43, "Identifier removed (-EIDRM)" }, - { -42, "No message of desired type (-ENOMSG)" }, - { -41, "(-41 \?\?\?)" }, /* dummy so that there are no "gaps" */ - { -40, "Too many symbolic links encountered (-ELOOP)" }, - { -39, "Directory not empty (-ENOTEMPTY)" }, - { -38, "Function not implemented (-ENOSYS)" }, - { -37, "No record locks available (-ENOLCK)" }, - { -36, "File name too long (-ENAMETOOLONG)" }, - { -35, "Resource deadlock would occur (-EDEADLK)" }, - /* from linux/include/asm-generic/errno.h */ - { -34, "Math result not representable (-ERANGE)" }, - { -33, "Math argument out of domain of func (-EDOM)" }, - { -32, "Broken pipe (-EPIPE)" }, - { -31, "Too many links (-EMLINK)" }, - { -30, "Read-only file system (-EROFS)" }, - { -29, "Illegal seek (-ESPIPE)" }, - { -28, "No space left on device (-ENOSPC)" }, - { -27, "File too large (-EFBIG)" }, - { -26, "Text file busy (-ETXTBSY)" }, - { -25, "Not a typewriter (-ENOTTY)" }, - { -24, "Too many open files (-EMFILE)" }, - { -23, "File table overflow (-ENFILE)" }, - { -22, "Invalid argument (-EINVAL)" }, - { -21, "Is a directory (-EISDIR)" }, - { -20, "Not a directory (-ENOTDIR)" }, - { -19, "No such device (-ENODEV)" }, - { -18, "Cross-device link (-EXDEV)" }, - { -17, "File exists (-EEXIST)" }, - { -16, "Device or resource busy (-EBUSY)" }, - { -15, "Block device required (-ENOTBLK)" }, - { -14, "Bad address (-EFAULT)" }, - { -13, "Permission denied (-EACCES)" }, - { -12, "Out of memory (-ENOMEM)" }, - { -11, "Try again (-EAGAIN)" }, - { -10, "No child processes (-ECHILD)" }, - { -9, "Bad file number (-EBADF)" }, - { -8, "Exec format error (-ENOEXEC)" }, - { -7, "Argument list too long (-E2BIG)" }, - { -6, "No such device or address (-ENXIO)" }, - { -5, "I/O error (-EIO)" }, - { -4, "Interrupted system call (-EINTR)" }, - { -3, "No such process (-ESRCH)" }, - { -2, "No such file or directory (-ENOENT)" }, - { -1, "Operation not permitted (-EPERM)" }, - { 0, "Success"}, - { 0, NULL } -}; -value_string_ext usb_urb_status_vals_ext = VALUE_STRING_EXT_INIT(usb_urb_status_vals); - #define USB_CONTROL_STAGE_SETUP 0x00 #define USB_CONTROL_STAGE_DATA 0x01 #define USB_CONTROL_STAGE_STATUS 0x02 @@ -3980,7 +3841,7 @@ dissect_linux_usb_iso_transfer(packet_info *pinfo _U_, proto_tree *urb_tree, tvb_memcpy(tvb, (guint8 *)&iso_len, offset+8, 4); iso_desc_ti = proto_tree_add_protocol_format(urb_tree, proto_usb, tvb, offset, - 16, "USB isodesc %u [%s]", i, val_to_str_ext(iso_status, &usb_urb_status_vals_ext, "Error %d")); + 16, "USB isodesc %u [%s]", i, val_to_str_ext(iso_status, &linux_negative_errno_vals_ext, "Error %d")); if (iso_len > 0) proto_item_append_text(iso_desc_ti, " (%u bytes)", iso_len); iso_desc_tree = proto_item_add_subtree(iso_desc_ti, ett_usb_isodesc); @@ -4048,7 +3909,7 @@ dissect_usbip_iso_transfer(packet_info *pinfo _U_, proto_tree *urb_tree, iso_status = tvb_get_ntohl(tvb, desc_offset + 12); iso_desc_ti = proto_tree_add_protocol_format(urb_tree, proto_usb, tvb, desc_offset, - 16, "USB isodesc %u [%s]", i, val_to_str_ext(iso_status, &usb_urb_status_vals_ext, "Error %d")); + 16, "USB isodesc %u [%s]", i, val_to_str_ext(iso_status, &linux_negative_errno_vals_ext, "Error %d")); iso_desc_tree = proto_item_add_subtree(iso_desc_ti, ett_usb_isodesc); proto_tree_add_item_ret_uint(iso_desc_tree, hf_usb_iso_off, tvb, desc_offset, 4, ENC_BIG_ENDIAN, &iso_off); @@ -4929,7 +4790,7 @@ proto_register_usb(void) { &hf_usb_urb_status, { "URB status", "usb.urb_status", - FT_INT32, BASE_DEC|BASE_EXT_STRING, &usb_urb_status_vals_ext, 0x0, + FT_INT32, BASE_DEC|BASE_EXT_STRING, &linux_negative_errno_vals_ext, 0x0, NULL, HFILL }}, { &hf_usb_urb_len, @@ -5205,7 +5066,7 @@ proto_register_usb(void) /* fields of struct mon_bin_isodesc from linux/drivers/usb/mon/mon_bin.c */ { &hf_usb_iso_status, /* host endian byte order */ { "Status", "usb.iso.iso_status", - FT_INT32, BASE_DEC|BASE_EXT_STRING, &usb_urb_status_vals_ext, 0x0, + FT_INT32, BASE_DEC|BASE_EXT_STRING, &linux_negative_errno_vals_ext, 0x0, "ISO descriptor status", HFILL }}, { &hf_usb_iso_off, /* host endian byte order */ diff --git a/epan/dissectors/packet-usb.h b/epan/dissectors/packet-usb.h index 5f058fad9a..6455016d6d 100644 --- a/epan/dissectors/packet-usb.h +++ b/epan/dissectors/packet-usb.h @@ -235,8 +235,6 @@ extern const true_false_string tfs_endpoint_direction; extern value_string_ext usb_class_vals_ext; -extern value_string_ext usb_urb_status_vals_ext; - usb_conv_info_t *get_usb_iface_conv_info(packet_info *pinfo, guint8 interface_num); proto_item * dissect_usb_descriptor_header(proto_tree *tree, diff --git a/epan/dissectors/packet-usbip.c b/epan/dissectors/packet-usbip.c index 38e0a443ee..e6f632cbae 100644 --- a/epan/dissectors/packet-usbip.c +++ b/epan/dissectors/packet-usbip.c @@ -164,6 +164,7 @@ static value_string_ext usbip_urb_vals_ext = VALUE_STRING_EXT_INIT(usbip_urb_val extern value_string_ext ext_usb_vendors_vals; extern value_string_ext ext_usb_products_vals; +extern value_string_ext linux_negative_errno_vals_ext; static const value_string usb_endpoint_direction_vals[] = { {USBIP_DIR_OUT, "OUT" }, @@ -853,7 +854,7 @@ proto_register_usbip(void) {&hf_usbip_status, {"Status", "usbip.status", - FT_INT32, BASE_DEC | BASE_EXT_STRING, &usb_urb_status_vals_ext, 0, + FT_INT32, BASE_DEC | BASE_EXT_STRING, &linux_negative_errno_vals_ext, 0, "USBIP Status", HFILL}}, {&hf_usbip_number_devices, |