Avoid SIGPIPE
This commit is contained in:
parent
880fd39ea9
commit
1acf98ef54
11
main2.c
11
main2.c
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user