aboutsummaryrefslogtreecommitdiff
path: root/src/mm-port-serial.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-port-serial.c')
-rw-r--r--src/mm-port-serial.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/mm-port-serial.c b/src/mm-port-serial.c
index 47ce482c..e41beefa 100644
--- a/src/mm-port-serial.c
+++ b/src/mm-port-serial.c
@@ -606,10 +606,11 @@ port_serial_process_command (MMPortSerial *self,
/* Socket based setup */
else if (self->priv->socket) {
GError *inner_error = NULL;
+ gssize bytes_sent;
/* Send N bytes of the command */
- written = g_socket_send (self->priv->socket, p, send_len, NULL, &inner_error);
- if (written < 0) {
+ bytes_sent = g_socket_send (self->priv->socket, p, send_len, NULL, &inner_error);
+ if (bytes_sent < 0) {
/* Non-EWOULDBLOCK error? */
if (!g_error_matches (inner_error, G_IO_ERROR, G_IO_ERROR_WOULD_BLOCK)) {
g_propagate_error (error, inner_error);
@@ -634,7 +635,8 @@ port_serial_process_command (MMPortSerial *self,
/* Just keep on, will retry... */
written = 0;
- }
+ } else
+ written = bytes_sent;
ctx->idx += written;
} else