shrpx: Check return value of library functions
This commit is contained in:
parent
9f28b3056f
commit
f0fc026799
|
@ -681,9 +681,15 @@ int HttpsUpstream::on_downstream_body(Downstream *downstream,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
evbuffer_add(output, data, len);
|
if(evbuffer_add(output, data, len) != 0) {
|
||||||
|
ULOG(FATAL, this) << "evbuffer_add() failed";
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
if(downstream->get_chunked_response()) {
|
if(downstream->get_chunked_response()) {
|
||||||
evbuffer_add(output, "\r\n", 2);
|
if(evbuffer_add(output, "\r\n", 2) != 0) {
|
||||||
|
ULOG(FATAL, this) << "evbuffer_add() failed";
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,7 +109,10 @@ int ListenHandler::accept_connection(evutil_socket_t fd,
|
||||||
memcpy(&wev.client_addr, addr, addrlen);
|
memcpy(&wev.client_addr, addr, addrlen);
|
||||||
wev.client_addrlen = addrlen;
|
wev.client_addrlen = addrlen;
|
||||||
evbuffer *output = bufferevent_get_output(workers_[idx].bev);
|
evbuffer *output = bufferevent_get_output(workers_[idx].bev);
|
||||||
evbuffer_add(output, &wev, sizeof(wev));
|
if(evbuffer_add(output, &wev, sizeof(wev)) != 0) {
|
||||||
|
LLOG(FATAL, this) << "evbuffer_add() failed";
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -228,8 +228,11 @@ void eventcb(bufferevent *bev, short events, void *ptr)
|
||||||
}
|
}
|
||||||
int fd = bufferevent_getfd(bev);
|
int fd = bufferevent_getfd(bev);
|
||||||
int val = 1;
|
int val = 1;
|
||||||
setsockopt(fd, IPPROTO_TCP, TCP_NODELAY,
|
if(setsockopt(fd, IPPROTO_TCP, TCP_NODELAY,
|
||||||
reinterpret_cast<char *>(&val), sizeof(val));
|
reinterpret_cast<char *>(&val), sizeof(val)) == -1) {
|
||||||
|
SSLOG(WARNING, spdy) << "Setting option TCP_NODELAY failed: "
|
||||||
|
<< strerror(errno);
|
||||||
|
}
|
||||||
} else if(events & BEV_EVENT_EOF) {
|
} else if(events & BEV_EVENT_EOF) {
|
||||||
if(LOG_ENABLED(INFO)) {
|
if(LOG_ENABLED(INFO)) {
|
||||||
SSLOG(INFO, spdy) << "EOF";
|
SSLOG(INFO, spdy) << "EOF";
|
||||||
|
|
|
@ -508,8 +508,11 @@ void spdy_downstream_eventcb(bufferevent *bev, short events, void *ptr)
|
||||||
}
|
}
|
||||||
int fd = bufferevent_getfd(bev);
|
int fd = bufferevent_getfd(bev);
|
||||||
int val = 1;
|
int val = 1;
|
||||||
setsockopt(fd, IPPROTO_TCP, TCP_NODELAY,
|
if(setsockopt(fd, IPPROTO_TCP, TCP_NODELAY,
|
||||||
reinterpret_cast<char *>(&val), sizeof(val));
|
reinterpret_cast<char *>(&val), sizeof(val)) == -1) {
|
||||||
|
DCLOG(WARNING, dconn) << "Setting option TCP_NODELAY failed: "
|
||||||
|
<< strerror(errno);
|
||||||
|
}
|
||||||
} else if(events & BEV_EVENT_EOF) {
|
} else if(events & BEV_EVENT_EOF) {
|
||||||
if(LOG_ENABLED(INFO)) {
|
if(LOG_ENABLED(INFO)) {
|
||||||
DCLOG(INFO, dconn) << "EOF. stream_id=" << downstream->get_stream_id();
|
DCLOG(INFO, dconn) << "EOF. stream_id=" << downstream->get_stream_id();
|
||||||
|
|
|
@ -46,7 +46,12 @@ void ThreadEventReceiver::on_read(bufferevent *bev)
|
||||||
evbuffer *input = bufferevent_get_input(bev);
|
evbuffer *input = bufferevent_get_input(bev);
|
||||||
while(evbuffer_get_length(input) >= sizeof(WorkerEvent)) {
|
while(evbuffer_get_length(input) >= sizeof(WorkerEvent)) {
|
||||||
WorkerEvent wev;
|
WorkerEvent wev;
|
||||||
evbuffer_remove(input, &wev, sizeof(WorkerEvent));
|
int nread = evbuffer_remove(input, &wev, sizeof(wev));
|
||||||
|
if(nread != sizeof(wev)) {
|
||||||
|
TLOG(FATAL, this) << "evbuffer_remove() removed fewer bytes. Expected:"
|
||||||
|
<< sizeof(wev) << " Actual:" << nread;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if(LOG_ENABLED(INFO)) {
|
if(LOG_ENABLED(INFO)) {
|
||||||
TLOG(INFO, this) << "WorkerEvent: client_fd=" << wev.client_fd
|
TLOG(INFO, this) << "WorkerEvent: client_fd=" << wev.client_fd
|
||||||
<< ", addrlen=" << wev.client_addrlen;
|
<< ", addrlen=" << wev.client_addrlen;
|
||||||
|
|
Loading…
Reference in New Issue