diff options
author | Shuah Khan <shuahkh@osg.samsung.com> | 2018-03-07 23:42:26 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-03-09 20:17:09 +0300 |
commit | ad81b15d561692df1ce2a57dce391d39633209b1 (patch) | |
tree | 34801798ed490afb0b040cc1334ccc171fa5ea7f /tools/usb/usbip/src/usbip_network.c | |
parent | c207a10d2f0bddf691920c0d73b7e8a83e6e2fb6 (diff) | |
download | linux-ad81b15d561692df1ce2a57dce391d39633209b1.tar.xz |
usbip: tools: change to use new error codes in server reply messages
Changed usbip_network, usbip_attach, usbip_list, and usbipd to use
and propagate the new error codes in server reply messages.
usbip_net_recv_op_common() is changed to take a pointer to status
return the status returned in the op_common.status to callers.
usbip_attach and usbip_list use the common interface to print error
messages to indicate why the request failed.
With this change the messages say why a request failed:
- when a client requests a device that is already exported:
usbip attach -r server_name -b 3-10.2
usbip: error: Attach Request for 3-10.2 failed - Device busy (exported)
- when a client requests a device that isn't exportable,
usbip attach -r server_name -b 3-10.4
usbip: error: Attach Request for 3-10.4 failed - Device not found
Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'tools/usb/usbip/src/usbip_network.c')
-rw-r--r-- | tools/usb/usbip/src/usbip_network.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/tools/usb/usbip/src/usbip_network.c b/tools/usb/usbip/src/usbip_network.c index 90325fa8bc38..8ffcd47d9638 100644 --- a/tools/usb/usbip/src/usbip_network.c +++ b/tools/usb/usbip/src/usbip_network.c @@ -163,7 +163,7 @@ int usbip_net_send_op_common(int sockfd, uint32_t code, uint32_t status) return 0; } -int usbip_net_recv_op_common(int sockfd, uint16_t *code) +int usbip_net_recv_op_common(int sockfd, uint16_t *code, int *status) { struct op_common op_common; int rc; @@ -191,10 +191,14 @@ int usbip_net_recv_op_common(int sockfd, uint16_t *code) if (op_common.code != *code) { dbg("unexpected pdu %#0x for %#0x", op_common.code, *code); + /* return error status */ + *status = ST_ERROR; goto err; } } + *status = op_common.status; + if (op_common.status != ST_OK) { dbg("request failed at peer: %d", op_common.status); goto err; |