Prevent SIGPIPE from terminating embedded STCP transports
This commit is contained in:
1 parent
11aa760d47
commit
fdcf92be04
3 files changed
+29
-2
No files matched your search
@@ -186,7 +186,7 @@ int stcp_send_raw(struct stcp_conn *c, uint8_t *data, size_t len) {
|
||||
c->wire_bytes += len;
|
||||
return 1;
|
||||
}
|
||||
ssize_t sent = send(c->sock, data, len, 0);
|
||||
ssize_t sent = socket_send(c->sock, data, len);
|
||||
if (sent < 0) {
|
||||
int err = socket_get_error();
|
||||
if (err != ERR_AGAIN && err != ERR_WOULDBLOCK) {
|
||||
@@ -234,7 +234,7 @@ void stcp_write_cb(socket_t sock, void *arg) {
|
||||
struct stcp_conn *c = (struct stcp_conn *)arg;
|
||||
if (c->close_err) { if (!c->close_call_soon) stcp_conn_do_close(c, c->close_err); return; }
|
||||
if (!c->send_buf) { uasync_set_socket_write(c->ua, c->socket_id, 0); return; }
|
||||
ssize_t sent = send(sock, c->send_buf + c->send_offset, c->send_len - c->send_offset, 0);
|
||||
ssize_t sent = socket_send(sock, c->send_buf + c->send_offset, c->send_len - c->send_offset);
|
||||
if (sent < 0) {
|
||||
int err = socket_get_error();
|
||||
if (err == ERR_AGAIN || err == ERR_WOULDBLOCK) return;
|
||||
|
||||
Reference in new issue
Block a user