Fix gateway socket hangup handling. Speed-up gateway processing.
This commit is contained in:
parent
e3157fabee
commit
65464f8f5a
2 changed files with 8 additions and 5 deletions
|
|
@ -533,10 +533,6 @@ void CO_epoll_processGtw(CO_epoll_gtw_t *epGtw,
|
|||
&& (ep->ev.data.fd == epGtw->gtwa_fdSocket
|
||||
|| ep->ev.data.fd == epGtw->gtwa_fd)
|
||||
) {
|
||||
if ((ep->ev.events & (EPOLLERR | EPOLLHUP)) != 0) {
|
||||
log_printf(LOG_DEBUG, DBG_GENERAL,
|
||||
"socket error or hangup, event=", ep->ev.events);
|
||||
}
|
||||
if ((ep->ev.events & EPOLLIN) != 0
|
||||
&& ep->ev.data.fd == epGtw->gtwa_fdSocket
|
||||
) {
|
||||
|
|
@ -626,6 +622,13 @@ void CO_epoll_processGtw(CO_epoll_gtw_t *epGtw,
|
|||
|
||||
ep->epoll_new = false;
|
||||
}
|
||||
else if ((ep->ev.events & (EPOLLERR | EPOLLHUP)) != 0) {
|
||||
log_printf(LOG_DEBUG, DBG_GENERAL,
|
||||
"socket error or hangup, event=", ep->ev.events);
|
||||
if (close(epGtw->gtwa_fd) < 0) {
|
||||
log_printf(LOG_CRIT, DBG_ERRNO, "close(gtwa_fd, hangup)");
|
||||
}
|
||||
}
|
||||
} /* if (ep->epoll_new) */
|
||||
|
||||
/* if socket connection is established, verify timeout */
|
||||
|
|
|
|||
|
|
@ -549,10 +549,10 @@ int main (int argc, char *argv[]) {
|
|||
#ifdef CO_SINGLE_THREAD
|
||||
CO_epoll_processRT(&epMain, CO, false);
|
||||
#endif
|
||||
CO_epoll_processMain(&epMain, CO, &reset);
|
||||
#if (CO_CONFIG_GTW) & CO_CONFIG_GTW_ASCII
|
||||
CO_epoll_processGtw(&epGtw, CO, &epMain);
|
||||
#endif
|
||||
CO_epoll_processMain(&epMain, CO, &reset);
|
||||
CO_epoll_processLast(&epMain);
|
||||
|
||||
#ifdef CO_USE_APPLICATION
|
||||
|
|
|
|||
Loading…
Reference in a new issue