本文整理汇总了C++中HttpReq::getVersion方法的典型用法代码示例。如果您正苦于以下问题:C++ HttpReq::getVersion方法的具体用法?C++ HttpReq::getVersion怎么用?C++ HttpReq::getVersion使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HttpReq
的用法示例。
在下文中一共展示了HttpReq::getVersion方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: buildFcgiEnv
int HttpCgiTool::buildFcgiEnv(FcgiEnv *pEnv, HttpSession *pSession)
{
static const char *SP_ENVs[] =
{
"\017\010SERVER_PROTOCOLHTTP/1.1",
"\017\010SERVER_PROTOCOLHTTP/1.0",
"\017\010SERVER_PROTOCOLHTTP/0.9"
};
static const char *RM_ENVs[10] =
{
"\016\007REQUEST_METHODUNKNOWN",
"\016\007REQUEST_METHODOPTIONS",
"\016\003REQUEST_METHODGET",
"\016\004REQUEST_METHODHEAD",
"\016\004REQUEST_METHODPOST",
"\016\003REQUEST_METHODPUT",
"\016\006REQUEST_METHODDELETE",
"\016\005REQUEST_METHODTRACE",
"\016\007REQUEST_METHODCONNECT",
"\016\004REQUEST_METHODMOVE"
};
static int RM_ENV_LEN[10] =
{ 23, 23, 19, 20, 20, 19, 22, 21, 23, 20 };
HttpReq *pReq = pSession->getReq();
int n;
pEnv->add(GISS_ENV, GISS_ENV_LEN);
n = pReq->getVersion();
pEnv->add(SP_ENVs[n], 25);
n = pReq->getMethod();
if (n < 10)
pEnv->add(RM_ENVs[n], RM_ENV_LEN[n]);
else
pEnv->add("REQUEST_METHOD", 016, HttpMethod::get(n),
HttpMethod::getLen(n));
addSpecialEnv(pEnv, pReq);
buildCommonEnv(pEnv, pSession);
addHttpHeaderEnv(pEnv, pReq);
return 0;
}
示例2: buildEnv
int HttpCgiTool::buildEnv( IEnv* pEnv, HttpConnection* pConn )
{
HttpReq * pReq = pConn->getReq();
int n;
pEnv->add( "GATEWAY_INTERFACE",17, "CGI/1.1", 7 );
if ( getenv( "PATH" ) == NULL )
{
pEnv->add( "PATH", 4, DEFAULT_PATH, DEFAULT_PATHLEN );
}
n = pReq->getVersion();
pEnv->add( "SERVER_PROTOCOL", 15,
HttpVer::getVersionString( n ),
HttpVer::getVersionStringLen( n ));
const char * pServerStr;
pServerStr = HttpServerVersion::getVersion();
n = HttpServerVersion::getVersionLen();
pEnv->add( "SERVER_SOFTWARE", 15, pServerStr, n);
n = pReq->getMethod();
pEnv->add( "REQUEST_METHOD", 14, HttpMethod::get( n ),
HttpMethod::getLen( n ));
// //FIXME: do nslookup
//
// tmp = dnslookup(r->cn->peer.sin_addr, r->c->dns);
// if (tmp) {
// ADD_ENV(pEnv, "REMOTE_HOST", tmp);
// free(tmp);
// }
//
// //ADD_ENV(pEnv, "REMOTE_HOST", achTemp );
addSpecialEnv( pEnv, pReq );
buildCommonEnv( pEnv, pConn );
addHttpHeaderEnv( pEnv, pReq );
pEnv->add( 0, 0, 0, 0);
return 0;
}
示例3: getReqVar
//.........这里部分代码省略.........
pValue = (char *)pReq->getOrgReqURL();
return pReq->getOrgReqURLLen();
case REF_DOC_ROOT:
pValue = (char *)pReq->getDocRoot()->c_str();
return pReq->getDocRoot()->len()-1;
case REF_SERVER_ADMIN:
if ( pReq->getVHost() )
{
const AutoStr2 * pEmail = pReq->getVHost()->getAdminEmails();
pValue = (char *)pEmail->c_str();
return pEmail->len();
}
return 0;
case REF_VH_CNAME:
if ( pReq->getVHost() )
{
pValue = (char *)pReq->getVHost()->getVhName( i );
return i;
}
return 0;
case REF_SERVER_NAME:
pValue = (char *)pReq->getHostStr();
return pReq->getHostStrLen();
case REF_SERVER_ADDR:
pValue = (char *)pReq->getLocalAddrStr()->c_str();
return pReq->getLocalAddrStr()->len();
case REF_SERVER_PORT:
pValue = (char *)pReq->getPortStr().c_str();
return pReq->getPortStr().len();
case REF_SERVER_PROTO:
i = pReq->getVersion();
pValue = (char *)HttpVer::getVersionString( i );
return HttpVer::getVersionStringLen( i );
case REF_SERVER_SOFT:
pValue = (char *)HttpServerVersion::getVersion();
return HttpServerVersion::getVersionLen();
case REF_REQ_LINE:
pValue = (char *)pReq->getOrgReqLine();
return pReq->getOrgReqLineLen();
case REF_IS_SUBREQ:
strcpy( pValue, "false" );
return 5;
case REF_RESP_BYTES:
i = StringTool::str_off_t( pValue, bufLen, pSession->getResp()->getBodySent() );
return i;
//case REF_COOKIE_VAL
//case REF_STRFTIME 155
//case REF_CONN_STATE:
case REF_REQ_TIME_MS:
{
struct timeval tv;
gettimeofday( &tv, NULL );
DateTime::s_curTime = tv.tv_sec;
DateTime::s_curTimeUs = tv.tv_usec;
long lReqTime = (DateTime::s_curTime - pSession->getReqTime())*1000000 +
(DateTime::s_curTimeUs - pSession->getReqTimeUs());
i = snprintf( pValue, bufLen, "%ld", lReqTime );
return i;
}
case REF_REQ_TIME_SEC:
i = snprintf( pValue, bufLen, "%ld",
示例4: log
void AccessLog::log( HttpConnection* pConn )
{
int n;
HttpReq* pReq = pConn->getReq();
HttpResp* pResp = pConn->getResp();
const char * pUser = pReq->getAuthUser();
long contentWritten = pResp->getBodySent();
const ClientInfo * pInfo = pConn->getClientInfo();
const char * pAddr = pInfo->getHostName();
pResp->needLogAccess( 0 );
if ( m_iPipedLog )
{
if ( !m_pManager )
return;
m_pAppender = m_pManager->getAppender();
if ( !m_pAppender )
return;
}
if ( m_pCustomFormat )
return customLog( pConn );
if (( pAddr )&&( *pAddr ))
{
n = pInfo->getHostNameLen();
}
else
{
pAddr = pInfo->getAddrString();
n = pInfo->getAddrStrLen();
}
m_buf.appendNoCheck( pAddr, n );
if ( ! *pUser )
{
m_buf.appendNoCheck( " - - ", 5 );
}
else
{
n = safe_snprintf( m_buf.end(), 70, " - \"%s\" ", pUser );
m_buf.used( n );
}
DateTime::getLogTime( pConn->getReqTime(), m_buf.end() );
m_buf.used( 30 );
n = pReq->getOrgReqLineLen();
char * pOrgReqLine = (char *)pReq->getOrgReqLine();
if ( pReq->getVersion() == HTTP_1_0 )
*(pOrgReqLine + n - 1) = '0';
if (( n > 4096 )||( m_buf.available() < 100 + n ))
{
flush();
m_pAppender->append( pOrgReqLine, n );
}
else
m_buf.appendNoCheck(pOrgReqLine, n );
m_buf.append( '"' );
m_buf.appendNoCheck(
HttpStatusCode::getCodeString( pReq->getStatusCode() ), 5 );
if ( contentWritten == 0 )
{
m_buf.append( '-' );
}
else
{
n = safe_snprintf( m_buf.end(), 20, "%ld", contentWritten );
m_buf.used( n );
}
if ( getAccessLogHeader() & LOG_REFERER )
{
m_buf.append( ' ' );
appendStr( pReq->getHeader( HttpHeader::H_REFERER ),
pReq->getHeaderLen( HttpHeader::H_REFERER ));
}
if ( getAccessLogHeader() & LOG_USERAGENT )
{
m_buf.append( ' ' );
appendStr( pReq->getHeader( HttpHeader::H_USERAGENT),
pReq->getHeaderLen( HttpHeader::H_USERAGENT) );
}
if ( getAccessLogHeader() & LOG_VHOST )
{
m_buf.append( ' ' );
appendStr( pReq->getHeader( HttpHeader::H_HOST ),
pReq->getHeaderLen( HttpHeader::H_HOST ) );
}
m_buf.append( '\n' );
if (( m_buf.available() < MAX_LOG_LINE_LEN )
||!asyncAccessLog() )
{
flush();
}
}