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