int LsapiConn::doWrite() { if ( getConnector() ) { int state = getConnector()->getState(); if ((!state)||( state & (HEC_FWD_REQ_HEADER | HEC_FWD_REQ_BODY) )) { int ret = getConnector()->extOutputReady(); if ( getState() == ABORT ) { if ( getConnector() ) { incReqProcessed(); getConnector()->endResponse( 0, 0 ); } } return ret; } } if ( m_iTotalPending > 0 ) return flush(); else suspendWrite(); return 0; }
int ProxyConn::doWrite() { int ret; if ((m_iSsl) && (!m_ssl.isConnected())) { ret = connectSSL(); if (ret != 1) return ret; } if (getConnector()) { int state = getConnector()->getState(); if ((!state) || (state & (HEC_FWD_REQ_HEADER | HEC_FWD_REQ_BODY))) { int ret = getConnector()->extOutputReady(); if (getState() == ABORT) { if (getConnector()) { incReqProcessed(); getConnector()->endResponse(0, 0); } } return ret; } } if (m_iTotalPending > 0) return flush(); else suspendWrite(); return 0; }
int LsapiConn::endOfReqBody() { if ( m_iTotalPending ) { int ret = flush(); if ( ret ) return ret; } suspendWrite(); m_lReqSentTime = DateTime::s_curTime; return 0; }
int CgidConn::endOfReqBody() { if ( m_iTotalPending ) { int ret = flush(); if ( ret ) return ret; } suspendWrite(); ::shutdown( getfd(), SHUT_WR ); return 0; }
int ProxyConn::endOfReqBody() { if (m_iTotalPending) { int ret = flush(); if (ret) return ret; } suspendWrite(); m_lReqSentTime = time(NULL); return 0; }
int CgiConnection::onWrite() { if ( !getConnector() ) return -1; if ( D_ENABLED( DL_MEDIUM ) ) LOG_D(( getLogger(), "[%s] CgiConnection::onWrite()\n", getLogId() )); int ret = extOutputReady(); if (!( getConnector()->getState() & HEC_FWD_REQ_BODY )) { suspendWrite(); } return ret; }
int JConn::endOfReqBody() { if ( m_iPendingBody ) sendReqBodyPacket(); if ( m_iTotalPending ) { int ret = flush(); if ( ret ) return ret; } //JkAjp13::buildAjpHeader( m_pBufEnd, 0 ); //write( m_pBufEnd, 4 ); suspendWrite(); return 0; }
int JConn::doWrite() { if ( getConnector() ) { int state = getConnector()->getState(); if ((!state)||( state & (HEC_FWD_REQ_HEADER | HEC_FWD_REQ_BODY) )) { return getConnector()->extOutputReady(); } } if ( m_iTotalPending > 0 ) return flush(); else suspendWrite(); return 0; }
int CgidConn::doWrite() { if ( !getConnector() ) return -1; if ( D_ENABLED( DL_MEDIUM ) ) LOG_D(( getLogger(), "[%s] CgidConn::onWrite()\n", getLogId() )); int ret = getConnector()->extOutputReady(); if (!( getConnector()->getState() & HEC_FWD_REQ_BODY )) { if ( m_iTotalPending > 0 ) return flush(); else { suspendWrite(); ::shutdown( getfd(), SHUT_WR ); } } return ret; }
int L4Handler::onWriteEx() { bool full = ((getBuf()->available() == 0) ? true : false); int length; while ((length = getBuf()->blockSize()) > 0 ) { int n = getStream()->write(getBuf()->begin(), length); if ( D_ENABLED( DL_LESS ) ) LOG_D ((getLogger(), "[%s] L4Handler: write [%d of %d]", getLogId(), n, length )); if (n > 0) getBuf()->pop_front(n); else if ( n == 0 ) break; else // if (n < 0) { closeBothConnection(); return -1; } } if (getBuf()->available() != 0) { if (full) m_pL4conn->continueRead(); if ( getBuf()->empty() ) { suspendWrite(); if ( D_ENABLED( DL_LESS ) ) { LOG_D(( getLogger(), "[%s] [L4conn] m_pL4conn->continueRead", getLogId() )); } } } return 0; }
int CgiConnection::endOfReqBody() { suspendWrite(); ::shutdown( getfd(), SHUT_WR ); return 0; }