Prevent SIGPIPE from terminating embedded STCP transports

This commit is contained in:
evgeny committed 2026-10-22 22:59:44 +02:00
1 parent 11aa760d47
commit fdcf92be04
3 files changed
+29 -2

No files matched your search

+2 -2
View File
@@ -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;