Avoid SIGPIPE

This commit is contained in:
Mid 2025-04-15 12:07:27 +03:00
parent 880fd39ea9
commit 1acf98ef54

11
main2.c
View File

@ -101,15 +101,18 @@ static void consume(Client *cli, size_t n) {
cli->len -= n;
}
static void transmit(Client *cli, const char *buf, size_t sz) {
static int transmit(Client *cli, const char *buf, size_t sz) {
while(sz) {
ssize_t s = send(cli->fd, buf, sz, 0);
ssize_t s = send(cli->fd, buf, sz, MSG_NOSIGNAL);
if(s >= 0) {
buf += s;
sz -= s;
} else {
return 0;
}
}
return 1;
}
static void transmit_all(const char *buf, size_t sz) {
@ -306,7 +309,9 @@ static int handle(Client *cli) {
size_t rsize = cli->len;
int pret = phr_decode_chunked(&cli->chudec, cli->buf, &rsize);
if(pret == -1) return 0;
if(pret == -1) {
return 0;
}
stream_step(cli->buf, rsize);