Close sockets on failure to write, don't die
This commit is contained in:
parent
dfd0978113
commit
7172863a1a
1 changed files with 5 additions and 7 deletions
12
src/server.c
12
src/server.c
|
@ -2088,13 +2088,12 @@ static int handle_sock_dgram(patty_ax25_server *server,
|
||||||
(void)sock_close(server, sock);
|
(void)sock_close(server, sock);
|
||||||
} else if (len > 0) {
|
} else if (len > 0) {
|
||||||
if (patty_ax25_sock_write(sock, sock->io_buf, len) < 0) {
|
if (patty_ax25_sock_write(sock, sock->io_buf, len) < 0) {
|
||||||
goto error_sock_write;
|
(void)sock_close(server, sock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
error_sock_write:
|
|
||||||
error_unknown:
|
error_unknown:
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -2285,17 +2284,16 @@ static int handle_sock(uint32_t key,
|
||||||
(void)sock_shutdown(server, sock);
|
(void)sock_shutdown(server, sock);
|
||||||
} else if (len > 0) {
|
} else if (len > 0) {
|
||||||
if (patty_ax25_sock_write(sock, sock->io_buf, len) < 0) {
|
if (patty_ax25_sock_write(sock, sock->io_buf, len) < 0) {
|
||||||
goto error_sock_write;
|
(void)sock_close(server, sock);
|
||||||
|
} else {
|
||||||
|
patty_timer_start(&sock->timer_t1);
|
||||||
|
patty_timer_stop(&sock->timer_t3);
|
||||||
}
|
}
|
||||||
|
|
||||||
patty_timer_start(&sock->timer_t1);
|
|
||||||
patty_timer_stop(&sock->timer_t3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
error_client_by_sock:
|
error_client_by_sock:
|
||||||
error_sock_write:
|
|
||||||
error_sock_resend_pending:
|
error_sock_resend_pending:
|
||||||
error_unknown:
|
error_unknown:
|
||||||
return -1;
|
return -1;
|
||||||
|
|
Loading…
Add table
Reference in a new issue