int recv_to_fifo(int fd) { int len; if( !session_isActive(fd) ) return -1; len = sRecv(fd, (char *) session[fd]->rdata + session[fd]->rdata_size, (int)RFIFOSPACE(fd), 0); if( len == SOCKET_ERROR ) {//An exception has occured if( sErrno != S_EWOULDBLOCK ) { //ShowDebug("recv_to_fifo: code %d, closing connection #%d\n", sErrno, fd); set_eof(fd); } return 0; } if( len == 0 ) {//Normal connection end. set_eof(fd); return 0; } session[fd]->rdata_size += len; session[fd]->rdata_tick = last_tick; return 0; }
int recv_to_fifo(int fd) { int len; if( !session_isActive(fd) ) return -1; len = sRecv(fd, (char *) session[fd]->rdata + session[fd]->rdata_size, (int)RFIFOSPACE(fd), 0); if( len == SOCKET_ERROR ) { //An exception has occured if( sErrno != S_EWOULDBLOCK ) { //ShowDebug("recv_to_fifo: %s, closing connection #%d\n", error_msg(), fd); set_eof(fd); } return 0; } if( len == 0 ) { //Normal connection end. set_eof(fd); return 0; } session[fd]->rdata_size += len; session[fd]->rdata_tick = last_tick; #ifdef SHOW_SERVER_STATS socket_data_i += len; socket_data_qi += len; if (!session[fd]->flag.server) { socket_data_ci += len; } #endif return 0; }