zhxy/http服务器/appweb-4.3.4-0/doc/api/httpBare.html

10970 lines
1.9 MiB
HTML
Raw Normal View History

2022-01-06 15:41:19 +00:00
<h1>HTTP - Http API Native API</h1>
<a name="Components"></a><h1>Components</h1>
<table class="apiIndex" title="Components">
<tr class="apiDef">
<td class="apiName"><a href="#group___http" class="nameRef">Http</a></td>
<td class="apiBrief">Http service object.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_auth" class="nameRef">HttpAuth</a></td>
<td class="apiBrief">Authorization.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_cache" class="nameRef">HttpCache</a></td>
<td class="apiBrief">Cache Control.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_conn" class="nameRef">HttpConn</a></td>
<td class="apiBrief">Http Connections.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_endpoint" class="nameRef">HttpEndpoint</a></td>
<td class="apiBrief">Listening endpoints.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_host" class="nameRef">HttpHost</a></td>
<td class="apiBrief">Host Object.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_limits" class="nameRef">HttpLimits</a></td>
<td class="apiBrief">Http limits.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_packet" class="nameRef">HttpPacket</a></td>
<td class="apiBrief">Packet object.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_queue" class="nameRef">HttpQueue</a></td>
<td class="apiBrief">Queue object.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_range" class="nameRef">HttpRange</a></td>
<td class="apiBrief">Content range structure.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_route" class="nameRef">HttpRoute</a></td>
<td class="apiBrief">Route Control.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_rx" class="nameRef">HttpRx</a></td>
<td class="apiBrief">Http Rx.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_session" class="nameRef">HttpSession</a></td>
<td class="apiBrief">Session state object.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_stage" class="nameRef">HttpStage</a></td>
<td class="apiBrief">Pipeline Stages.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_stats" class="nameRef">HttpStats</a></td>
<td class="apiBrief">HttpStats.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_trace" class="nameRef">HttpTrace</a></td>
<td class="apiBrief">Trace management structure.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_tx" class="nameRef">HttpTx</a></td>
<td class="apiBrief">Http Tx.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_upload_file" class="nameRef">HttpUploadFile</a></td>
<td class="apiBrief">Upload File.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_uri" class="nameRef">HttpUri</a></td>
<td class="apiBrief">URI management.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___http_web_socket" class="nameRef">HttpWebSocket</a></td>
<td class="apiBrief">WebSocket Service to implement the WebSockets RFC 6455 specification for client and server communications.</td></tr>
</table>
<a name="Functions"></a><h1>Functions</h1>
<table class="apiIndex" title="Functions">
<tr class="apiDef"><td class="apiType"><a href="#group___http_conn" class="ref">HttpConn*</a></td><td><a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="nameRef">httpAcceptConn</a>(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, <a href="mprBare.html#group___mpr_event" class="ref">MprEvent</a> *event)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Accept a new connection.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="nameRef">httpAddAuthStore</a>(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a> verifyUser)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add an authorization store for password validation.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="nameRef">httpAddAuthType</a>(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a> askLogin, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a> parse, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a> setAuth)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add an authorization type.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_cache_1gad23f207942ba83542e4d995a3f765681" class="nameRef">httpAddCache</a>(struct HttpRoute *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *methods, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uris, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *extensions, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *types, <a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> clientLifespan, <a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> serverLifespan, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add caching for response content.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="nameRef">httpAddHeader</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a header to the transmission using a format string.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="nameRef">httpAddHeaderString</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a header to the transmission.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1gad9250fc3d08526ea7dc3b7ab9d6970e2" class="nameRef">httpAddHomeRoute</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *parent)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a route for the home page.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="nameRef">httpAddHostToEndpoint</a>(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, struct HttpHost *host)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a host to an endpoint.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_1ga0b81bb7e1e229c931533804c3bab6ed3" class="nameRef">httpAddOption</a>(<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add an option to the options table.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_rx_1ga2efe9d742affc69062599605bc6edf11" class="nameRef">httpAddParams</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add query and form body data to params.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga07a96592710d8f7edc06546ab105856f" class="nameRef">httpAddResource</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *parent, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *resource)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add routes for a resource.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1gad3d741f6f52178a9507db8ca240bba58" class="nameRef">httpAddResourceGroup</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *parent, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *resource)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add routes for a group of resources.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="nameRef">httpAddRole</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *role, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *abilities)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a role.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_host_1gadcbb2c44a2ae32546fbdcccbfec64c0a" class="nameRef">httpAddRoute</a>(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="#group___http_route" class="ref">HttpRoute</a> *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a route to a host.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="nameRef">httpAddRouteCondition</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *details, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a route condition.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="nameRef">httpAddRouteErrorDocument</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, int status, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add an error document.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="nameRef">httpAddRouteFilter</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *extensions, int direction)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a route filter.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="nameRef">httpAddRouteHandler</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *extensions)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a route handler.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="nameRef">httpAddRouteHeader</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *header, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a route header check.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga72267ab0661f6536dd1ce5ea64a12dd0" class="nameRef">httpAddRouteIndex</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the route index document.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="nameRef">httpAddRouteLanguageDir</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *language, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a route language directory.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="nameRef">httpAddRouteLanguageSuffix</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *language, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *suffix, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a route language suffix.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga04f240925c339ab35010e013bfa62c7a" class="nameRef">httpAddRouteParam</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a route param check.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1gae5a3fe25fd0e8ed6038fc076f40aa2e6" class="nameRef">httpAddRouteSet</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *parent, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *set)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a route set package.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="nameRef">httpAddRouteUpdate</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *details, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a route update rule.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga4d72eb7b413175ed98b5726f4f0ad165" class="nameRef">httpAddStaticRoute</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *parent)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a route for static content under a &quot;static&quot; directory.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_upload_file_1gae80cebe62ea47eaf3e45d9a09c14bec4" class="nameRef">httpAddUploadFile</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *id, <a href="#group___http_upload_file" class="ref">HttpUploadFile</a> *file)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add an Uploaded file.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="nameRef">httpAddUser</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *user, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *password, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *abilities)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a user.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_packet_1ga985c3c56f728ce5fa706bbd24021f190" class="nameRef">httpAdjustPacketEnd</a>(<a href="#group___http_packet" class="ref">HttpPacket</a> *packet, <a href="mprBare.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a> size)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Adjust the packet end position.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_packet_1gaa4276acfac070e26923c69125baf4959" class="nameRef">httpAdjustPacketStart</a>(<a href="#group___http_packet" class="ref">HttpPacket</a> *packet, <a href="mprBare.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a> size)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Adjust the packet starting position.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="nameRef">httpAfterEvent</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Do setup after an I/O event to receive future events.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_session" class="ref">HttpSession*</a></td><td><a href="#group___http_session_1ga8eb6b74c4f7ce9cad48eb099de634dcd" class="nameRef">httpAllocSession</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *id, <a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> lifespan)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Allocate a new session state object.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="nameRef">httpAppendHeader</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Append a transmission header.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="nameRef">httpAppendHeaderString</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Append a transmission header string.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga59e692e11ae01760285fb12ed39e2042" class="nameRef">httpBackupRouteLog</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Backup the route log if required.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="nameRef">httpCallEvent</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int mask)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Call httpEvent with the given event mask.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="nameRef">httpCanUser</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a user has the required abilities.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="nameRef">httpClearRouteStages</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, int direction)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Clear the pipeline stages for the route.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_host" class="ref">HttpHost*</a></td><td><a href="#group___http_host_1ga1fbea76e46959e0f9fd0c8f38090cb8b" class="nameRef">httpCloneHost</a>(<a href="#group___http_host" class="ref">HttpHost</a> *parent)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Clone a host.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_packet" class="ref">HttpPacket*</a></td><td><a href="#group___http_packet_1ga58a9502d7353a0cc11d43a5881d562cc" class="nameRef">httpClonePacket</a>(<a href="#group___http_packet" class="ref">HttpPacket</a> *orig)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Clone a packet.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_stage" class="ref">HttpStage*</a></td><td><a href="#group___http_stage_1ga8971850225994ea96daf05429c001c7c" class="nameRef">httpCloneStage</a>(<a href="#group___http" class="ref">Http</a> *http, <a href="#group___http_stage" class="ref">HttpStage</a> *stage)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a clone of an existing state.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_uri" class="ref">HttpUri*</a></td><td><a href="#group___http_uri_1gadd399e69d65d719663f7f9b51933c521" class="nameRef">httpCloneUri</a>(<a href="#group___http_uri" class="ref">HttpUri</a> *base, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Clone a URI.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="nameRef">httpCloseConn</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Close a connection.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_uri" class="ref">HttpUri*</a></td><td><a href="#group___http_uri_1ga87cace641a89a7bc7675e650d9e17640" class="nameRef">httpCompleteUri</a>(<a href="#group___http_uri" class="ref">HttpUri</a> *uri, <a href="#group___http_uri" class="ref">HttpUri</a> *other)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Complete the given URI.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="nameRef">httpComputeAllUserAbilities</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Compute all the user abilities for a route using the given auth.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="nameRef">httpComputeUserAbilities</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="#struct_http_user" class="ref">HttpUser</a> *user)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Compute the user abilities for a given user in a route using the given auth.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_endpoint_1gab8694430f1f3941a97515ca5697e1bae" class="nameRef">httpConfigureNamedVirtualEndpoints</a>(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ip, int port)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Configure endpoints with named virtual hosts.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="nameRef">httpConnTimeout</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Signal a connection timeout on a connection.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="nameRef">httpConnect</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *method, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri, struct MprSsl *ssl)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Connect to a server and issue Http client request.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="nameRef">httpContentNotModified</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if the content has not been modified.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http" class="ref">Http*</a></td><td><a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="nameRef">httpCreate</a>(int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a Http service object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_route" class="ref">HttpRoute*</a></td><td><a href="#group___http_route_1ga5d648be4ce523b960d8385c09c832bc2" class="nameRef">httpCreateActionRoute</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *parent, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *pattern, <a href="#http_8h_1a6e7f146ca4c741ae204a7416090edc28" class="ref">HttpAction</a> action)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a route for use with the Action Handler.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_route" class="ref">HttpRoute*</a></td><td><a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="nameRef">httpCreateAliasRoute</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *parent, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *pattern, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, int status)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a route suitable for use as an alias.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_auth" class="ref">HttpAuth*</a></td><td><a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="nameRef">httpCreateAuth</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create an authentication object.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="nameRef">httpCreateCGIParams</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create CGI parameters.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_endpoint" class="ref">HttpEndpoint*</a></td><td><a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="nameRef">httpCreateConfiguredEndpoint</a>(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *home, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *documents, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ip, int port)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create and configure a new endpoint.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_route" class="ref">HttpRoute*</a></td><td><a href="#group___http_route_1gaacfd904666b9112759be6399e8e72f72" class="nameRef">httpCreateConfiguredRoute</a>(struct HttpHost *host, int serverSide)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a configured route.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_conn" class="ref">HttpConn*</a></td><td><a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="nameRef">httpCreateConn</a>(<a href="#group___http" class="ref">Http</a> *http, struct HttpEndpoint *endpoint, <a href="mprBare.html#group___mpr_dispatcher" class="ref">MprDispatcher</a> *dispatcher)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a connection object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_stage" class="ref">HttpStage*</a></td><td><a href="#group___http_stage_1ga5a62ae78862a15a0ca8c192f7d5a048c" class="nameRef">httpCreateConnector</a>(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#group___mpr_module" class="ref">MprModule</a> *module)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a connector stage.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_packet" class="ref">HttpPacket*</a></td><td><a href="#group___http_packet_1gad491733e89bee8b1b64b47fa0e798931" class="nameRef">httpCreateDataPacket</a>(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a data packet.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_route" class="ref">HttpRoute*</a></td><td><a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="nameRef">httpCreateDefaultRoute</a>(struct HttpHost *host)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a default route for a host.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_packet" class="ref">HttpPacket*</a></td><td><a href="#group___http_packet_1ga5dd04a1c7f834f9acb5aa74488da5aad" class="nameRef">httpCreateEndPacket</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create an end-of-stream packet.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_endpoint" class="ref">HttpEndpoint*</a></td><td><a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="nameRef">httpCreateEndpoint</a>(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ip, int port, <a href="mprBare.html#group___mpr_dispatcher" class="ref">MprDispatcher</a> *dispatcher)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create an endpoint object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_packet" class="ref">HttpPacket*</a></td><td><a href="#group___http_packet_1ga5af4bd1a1d534e61d11ed1753c5f4a67" class="nameRef">httpCreateEntityPacket</a>(<a href="mprBare.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a> pos, <a href="mprBare.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a> size, <a href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900" class="ref">HttpFillProc</a> fill)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create an entity data packet.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_stage" class="ref">HttpStage*</a></td><td><a href="#group___http_stage_1gab1e3174087a5e78598b66abe7ac5887e" class="nameRef">httpCreateFilter</a>(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#group___mpr_module" class="ref">MprModule</a> *module)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a filter stage.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_stage" class="ref">HttpStage*</a></td><td><a href="#group___http_stage_1ga238f5fb9f76203fdcb07fd6227ae383f" class="nameRef">httpCreateHandler</a>(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#group___mpr_module" class="ref">MprModule</a> *module)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a request handler stage.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_packet" class="ref">HttpPacket*</a></td><td><a href="#group___http_packet_1ga24b80ddbcd324b10ac430c4465823190" class="nameRef">httpCreateHeaderPacket</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a response header packet.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_host" class="ref">HttpHost*</a></td><td><a href="#group___http_host_1ga3e6e98147b766aeff4cbfebe8146998b" class="nameRef">httpCreateHost</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a host.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_route" class="ref">HttpRoute*</a></td><td><a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="nameRef">httpCreateInheritedRoute</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a route inherited from a parent route.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_limits" class="ref">HttpLimits*</a></td><td><a href="#group___http_limits_1gaf6da4fb1c160ebf9ae4e5fbafcdd583c" class="nameRef">httpCreateLimits</a>(int serverSide)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a new limits object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_packet" class="ref">HttpPacket*</a></td><td><a href="#group___http_packet_1ga736f27036a2f3752bc3aa5580f75eef7" class="nameRef">httpCreatePacket</a>(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a data packet.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#struct_http_role" class="ref">HttpRole*</a></td><td><a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="nameRef">httpCreateRole</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *abilities)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a new role.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_route" class="ref">HttpRoute*</a></td><td><a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="nameRef">httpCreateRoute</a>(struct HttpHost *host)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a route for a host.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="nameRef">httpCreateRxPipeline</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, struct HttpRoute *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create the receive request pipeline.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="nameRef">httpCreateSecret</a>(<a href="#group___http" class="ref">Http</a> *http)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create the Http secret data for crypto.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_session" class="ref">HttpSession*</a></td><td><a href="#group___http_session_1gaa1e5bfdfe87a7ef0d8ca2bf649099ee3" class="nameRef">httpCreateSession</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a session object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_stage" class="ref">HttpStage*</a></td><td><a href="#group___http_stage_1gad9a57a81fd836d1ec4322d60bf0d56c7" class="nameRef">httpCreateStage</a>(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, int flags, <a href="mprBare.html#group___mpr_module" class="ref">MprModule</a> *module)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a connector stage.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_tx" class="ref">HttpTx*</a></td><td><a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="nameRef">httpCreateTx</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *headers)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create the tx object.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="nameRef">httpCreateTxPipeline</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, struct HttpRoute *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create the transmit request pipeline.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_uri" class="ref">HttpUri*</a></td><td><a href="#group___http_uri_1ga3def4a0e93965e1fac2c38e6e5272081" class="nameRef">httpCreateUri</a>(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create and initialize a URI.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_uri" class="ref">HttpUri*</a></td><td><a href="#group___http_uri_1gadcc4702f652977af0efb6abceb17566b" class="nameRef">httpCreateUriFromParts</a>(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *scheme, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *host, int port, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *reference, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *query, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a URI from parts.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#struct_http_user" class="ref">HttpUser*</a></td><td><a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="nameRef">httpCreateUser</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *password, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *abilities)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a new user.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_stage_1ga635121f5f5fa104bb218796fd47178fe" class="nameRef">httpDefaultOutgoingServiceStage</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Default outgoing data handling.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#http_8h_1a97b87c9cd5010bbd1188abfa67296768" class="nameRef">httpDefineAction</a>(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri, <a href="#http_8h_1a6e7f146ca4c741ae204a7416090edc28" class="ref">HttpAction</a> fun)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a function procedure to invoke when the specified URI is requested.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_route" class="ref">HttpRoute*</a></td><td><a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="nameRef">httpDefineRoute</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *parent, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *methods, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *pattern, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *target, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *source)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a route.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="nameRef">httpDefineRouteCondition</a>(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="#http_8h_1a0f957adf7a453cc11f9622b40f1348eb" class="ref">HttpRouteProc</a> *proc)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a route condition rule.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="nameRef">httpDefineRouteTarget</a>(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="#http_8h_1a0f957adf7a453cc11f9622b40f1348eb" class="ref">HttpRouteProc</a> *proc)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a route target rule.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="nameRef">httpDefineRouteUpdate</a>(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="#http_8h_1a0f957adf7a453cc11f9622b40f1348eb" class="ref">HttpRouteProc</a> *proc)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a route update rule.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="nameRef">httpDestroy</a>(<a href="#group___http" class="ref">Http</a> *http)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Destroy the Http service object.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="nameRef">httpDestroyConn</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Destroy the connection object.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="nameRef">httpDestroyEndpoint</a>(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Destroy the endpoint.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="nameRef">httpDestroyPipeline</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Destroy the request pipeline.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_session_1ga63006fbfd2772ecf03d0fd390fc31b7e" class="nameRef">httpDestroySession</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Destroy a session state object.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="nameRef">httpDestroyTx</a>(<a href="#group___http_tx" class="ref">HttpTx</a> *tx)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Destroy the tx object.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="nameRef">httpDisableQueue</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Disable a queue.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="nameRef">httpDiscardData</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int dir)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Discard buffered transmit pipeline data.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="nameRef">httpDiscardQueueData</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> removePackets)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Discard all data from the queue.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="nameRef">httpDisconnect</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Disconnect the connection&apos;s socket.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_limits_1ga936696874273efa3f816cc124dcf366b" class="nameRef">httpEaseLimits</a>(<a href="#group___http_limits" class="ref">HttpLimits</a> *limits)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Ease the limits.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga4668c9f8a5bf6878b2d92b894f9c6029" class="nameRef">httpEnableConnEvents</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Enable connection events.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_limits_1gace43e7a431bfca0bece0ded59f125ee5" class="nameRef">httpEnablePutMethod</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> on)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Enable use of the DELETE and PUT methods.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="nameRef">httpEnableQueue</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Enable a queue after it has been disabled.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_limits_1gaf2ebb2fe7b68b07d3046751e8dd8fa78" class="nameRef">httpEnableTraceMethod</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> on)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Enable use of the TRACE Http method.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="nameRef">httpEnableUpload</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Enable Multipart-Mime File Upload for this request.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="nameRef">httpError</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int status, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Error handling for the connection.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="nameRef">httpEvent</a>(struct HttpConn *conn, <a href="mprBare.html#group___mpr_event" class="ref">MprEvent</a> *event)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Http I/O event handler.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___http_route_1ga6e8c76164020f9dfdecf1c7338043264" class="nameRef">httpExpandRouteVars</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *str)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Expand route variables in a string.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="nameRef">httpFinalize</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Indicate the request is finalized.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="nameRef">httpFinalizeConnector</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Finalize connector output sending the response.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1ga49edf0602dd2143b518c247f9cee8720" class="nameRef">httpFinalizeOutput</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Finalize transmission of the http response.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="nameRef">httpFinalizeRoute</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Finalize a route.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="nameRef">httpFlush</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Flush tx data.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="nameRef">httpFlushQueue</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> block)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Flush queue data.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="nameRef">httpFollowRedirects</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> follow)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Follow redirctions.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="nameRef">httpFormatError</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int status, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Format an error transmission.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="nameRef">httpFormatResponse</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Format an alternate response.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="nameRef">httpFormatResponseBody</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *title, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Format a response body.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="nameRef">httpFormatResponsev</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, va_list args)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Format an alternate response.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_uri_1ga1c87f3e7e694435939d05e5a112e56fd" class="nameRef">httpFormatUri</a>(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *scheme, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *host, int port, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ref, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *query, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Format a URI.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="nameRef">httpGetAsync</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the async mode value for the connection.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="nameRef">httpGetChunkSize</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the preferred chunked size for transfer chunk encoding.</td></tr>
<tr class="apiDef"><td class="apiType">void*</td><td><a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="nameRef">httpGetConnContext</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the connection context object.</td></tr>
<tr class="apiDef"><td class="apiType">void*</td><td><a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="nameRef">httpGetConnHost</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the connection host object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a></td><td><a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="nameRef">httpGetContentLength</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the receive body content length.</td></tr>
<tr class="apiDef"><td class="apiType">void*</td><td><a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="nameRef">httpGetContext</a>(<a href="#group___http" class="ref">Http</a> *http)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the http context object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="nameRef">httpGetCookies</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the request cookies.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="nameRef">httpGetDateString</a>(<a href="mprBare.html#group___mpr_path" class="ref">MprPath</a> *sbuf)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the time as an ISO date string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_host" class="ref">HttpHost*</a></td><td><a href="#group___http_host_1gae764c0d5e2a2a6bb13ff3dc86172fa06" class="nameRef">httpGetDefaultHost</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the default host defined via httpSetDefaultHost.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_route" class="ref">HttpRoute*</a></td><td><a href="#group___http_route_1gae3e560397e0fa36954827ff06d59f830" class="nameRef">httpGetDefaultRoute</a>(<a href="#group___http_host" class="ref">HttpHost</a> *host)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the default route for a host.</td></tr>
<tr class="apiDef"><td class="apiType">void*</td><td><a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="nameRef">httpGetEndpointContext</a>(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the endpoint context object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="nameRef">httpGetError</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the error message associated with the last request.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="nameRef">httpGetExt</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a URI extension.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="nameRef">httpGetHeader</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get an rx http header.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#struct_mpr_hash" class="ref">MprHash*</a></td><td><a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="nameRef">httpGetHeaderHash</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the hash table of rx Http headers.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="nameRef">httpGetHeaders</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get all the request http headers.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_rx_1ga6c8ec95383e146c74f7ec0c1580147d8" class="nameRef">httpGetHeadersFromHash</a>(<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *hash)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a header string from the given hash.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_route" class="ref">HttpRoute*</a></td><td><a href="#group___http_route_1gafb24a3384aa3724f4c01a8e6713060fc" class="nameRef">httpGetHostDefaultRoute</a>(<a href="#group___http_host" class="ref">HttpHost</a> *host)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Return the default route for a host.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="nameRef">httpGetIntParam</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, int defaultValue)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a form variable as an integer.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="nameRef">httpGetKeepAliveCount</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the count of Keep-Alive requests that will be used for this connection object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#struct_http_lang" class="ref">HttpLang*</a></td><td><a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="nameRef">httpGetLanguage</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *spoken, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *defaultLang)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the language to use for the request.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="nameRef">httpGetMoreOutput</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get more output data by invoking the writable callback.</td></tr>
<tr class="apiDef"><td class="apiType">void*</td><td><a href="#group___http_1gab1986500e6a2ecaf280670720e519d7b" class="nameRef">httpGetOption</a>(<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *defaultValue)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Extract a field value from an option string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#struct_mpr_hash" class="ref">MprHash*</a></td><td><a href="#group___http_1gaa87e80de01ebf27a74bb447dfc011867" class="nameRef">httpGetOptionHash</a>(<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get an option value that is itself an object (hash).</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#struct_mpr_hash" class="ref">MprHash*</a></td><td><a href="#group___http_1ga4609378f83c826cf9fd749e454b2fb65" class="nameRef">httpGetOptions</a>(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *options)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Convert an options string into an options table.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_packet" class="ref">HttpPacket*</a></td><td><a href="#group___http_queue_1ga289893521c40788edc06280530167a85" class="nameRef">httpGetPacket</a>(struct HttpQueue *q)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the next packet from a queue.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_packet_1ga76c32ea617916aed4174ef232df26fc3" class="nameRef">httpGetPacketLength</a>(<a href="#group___http_packet" class="ref">HttpPacket</a> *packet)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the length of the packet data contents.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="nameRef">httpGetParam</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *defaultValue)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a request param.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#struct_mpr_hash" class="ref">MprHash*</a></td><td><a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="nameRef">httpGetParams</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the request params table.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_rx_1ga792bb74969da2e9f5e53adef69e9b311" class="nameRef">httpGetParamsString</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the request params table as a string.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_rx_1gaff1c1e4974e913cfe273b7ddfc79b1cd" class="nameRef">httpGetPathExt</a>(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a path extension.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="nameRef">httpGetQueryString</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the request query string.</td></tr>
<tr class="apiDef"><td class="apiType">void*</td><td><a href="#http_8h_1ae23809132f4fe55bfd6996e5b46b4a31" class="nameRef">httpGetQueueData</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the queue data for the connection.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="nameRef">httpGetQueueRoom</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the room in the queue.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="nameRef">httpGetReadCount</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the number of bytes that can be read from the read queue.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_uri" class="ref">HttpUri*</a></td><td><a href="#group___http_uri_1ga8932b843125d3ba77523ee407f71089f" class="nameRef">httpGetRelativeUri</a>(<a href="#group___http_uri" class="ref">HttpUri</a> *base, <a href="#group___http_uri" class="ref">HttpUri</a> *target, int clone)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a relative URI from the base to the target.</td></tr>
<tr class="apiDef"><td class="apiType">void*</td><td><a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="nameRef">httpGetRouteData</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get extra route data.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="nameRef">httpGetRouteDir</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the route directory.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___http_route_1gad85523fe7fe6d5cd445f8568ccb68f22" class="nameRef">httpGetRouteMethods</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the route method list.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___http_route_1ga8471456108a6cd5322ba2fb4fbc6bbd1" class="nameRef">httpGetRouteVar</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a path token variable.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_session" class="ref">HttpSession*</a></td><td><a href="#group___http_session_1gac941465ecd0d3d0e3f4e6ccc66ec6605" class="nameRef">httpGetSession</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int create)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a session state object.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_session_1ga2244ff502745aa576f670dd91ff13a3a" class="nameRef">httpGetSessionID</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the session ID.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#struct_mpr_hash" class="ref">MprHash*</a></td><td><a href="#group___http_session_1ga8fd2d595fcee3a662e328af72c036b53" class="nameRef">httpGetSessionObj</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get an object from the session state store.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___http_session_1ga5ca28737a741dcf69eb0090640c09930" class="nameRef">httpGetSessionVar</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *defaultValue)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a session state variable.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a5272042f7e0f5c53e2fd4b49ff47d92d" class="ref">cvoid*</a></td><td><a href="#group___http_rx_1gab3115e46e00ffbc29ec9c8c4a9f8fc61" class="nameRef">httpGetStageData</a>(struct HttpConn *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get stage data.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_stats_1ga346ba34e0ea1e88c6e9fb8c7be7afb55" class="nameRef">httpGetStats</a>(<a href="#group___http_stats" class="ref">HttpStats</a> *sp)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the Http performance statistics.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="nameRef">httpGetStatus</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the response status.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="nameRef">httpGetStatusMessage</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the Http response status message.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_web_socket_1ga6c1a4a4b4d9cfc2ce626bb5fd005e6ac" class="nameRef">httpGetWebSocketCloseReason</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the close reason supplied by the peer.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_web_socket_1ga1b12513bad90a3d388527ed9ad304c3f" class="nameRef">httpGetWebSocketMessageLength</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the message length for the current message.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_web_socket_1gad908e15f337a359e0f90258621d1329b" class="nameRef">httpGetWebSocketProtocol</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the selected web socket protocol selected by the server.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_web_socket_1ga026b733296a4ce32bd0e71902a26db8b" class="nameRef">httpGetWebSocketState</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the WebSocket state.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="nameRef">httpGetWriteQueueCount</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the count of bytes buffered on the write queue.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_limits" class="ref">HttpLimits*</a></td><td><a href="#group___http_route_1ga2b82eae86554fe49b2a170c462c56012" class="nameRef">httpGraduateLimits</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="#group___http_limits" class="ref">HttpLimits</a> *limits)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Graduate the limits from the parent route.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_stage_1ga289f62101d0dbc4a88465af5b40e11eb" class="nameRef">httpHandleOptionsTrace</a>(struct HttpConn *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *methods)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Handle a Http Trace or Options method request.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="nameRef">httpHasNamedVirtualHosts</a>(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if an endpoint has named virtual hosts.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_limits_1gabf99e730cf6ee3ae898a4a88f8d60e2f" class="nameRef">httpInitLimits</a>(<a href="#group___http_limits" class="ref">HttpLimits</a> *limits, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> serverSide)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Initialize a limits object with default values.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_1ga8300fb76d2cf94a5cb2a61c04da11312" class="nameRef">httpInsertOption</a>(<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add an option to the options table.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="nameRef">httpIsAuthenticated</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if the user is authenticated.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="nameRef">httpIsChunked</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Return whether transfer chunked encoding will be used on this request.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="nameRef">httpIsEndpointAsync</a>(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get if the endpoint is running in asynchronous mode.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="nameRef">httpIsEof</a>(struct HttpConn *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if the connection has received all incoming content.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_tx_1gaddcc759faff073cc695a204e29b2642e" class="nameRef">httpIsFinalized</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if request has been finalized.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="nameRef">httpIsLastPacket</a>(<a href="#group___http_packet" class="ref">HttpPacket</a> *packet)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if the packet is the last in a logical message.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="nameRef">httpIsOutputFinalized</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if request response has been fully generated.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="nameRef">httpIsPacketTooBig</a>(struct HttpQueue *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a packet is too big.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="nameRef">httpIsQueueEmpty</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Determine if the queue is empty.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="nameRef">httpIsQueueSuspended</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a queue is suspended.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_packet_1ga6c9a2e1da5b57252b7cf2e1958dcdc96" class="nameRef">httpJoinPacket</a>(<a href="#group___http_packet" class="ref">HttpPacket</a> *packet, <a href="#group___http_packet" class="ref">HttpPacket</a> *other)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Join two packets.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="nameRef">httpJoinPacketForService</a>(struct HttpQueue *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> serviceQ)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Join a packet onto the service queue.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="nameRef">httpJoinPackets</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Join packets together.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_uri" class="ref">HttpUri*</a></td><td><a href="#group___http_uri_1ga7336eda33f8949dc4f552cc5e4ab606c" class="nameRef">httpJoinUri</a>(<a href="#group___http_uri" class="ref">HttpUri</a> *base, int argc, <a href="#group___http_uri" class="ref">HttpUri</a> **others)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Join URIs.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_uri" class="ref">HttpUri*</a></td><td><a href="#group___http_uri_1gaa591d6219b0eaa3d61a83770dd604fce" class="nameRef">httpJoinUriPath</a>(<a href="#group___http_uri" class="ref">HttpUri</a> *result, <a href="#group___http_uri" class="ref">HttpUri</a> *base, <a href="#group___http_uri" class="ref">HttpUri</a> *other)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Join a URI path.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="nameRef">httpLink</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *target, <a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a URI link.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga6803769ee7bff322435d7e9e1d442e8b" class="nameRef">httpLogRoutes</a>(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> full)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Show the current route table to the error log.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="nameRef">httpLogin</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *username, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *password)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Log the user in.</td></tr>
<tr class="apiDef"><td class="apiType">struct HttpEndpoint*</td><td><a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="nameRef">httpLookupEndpoint</a>(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ip, int port)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Lookup a listening endpoint.</td></tr>
<tr class="apiDef"><td class="apiType">struct HttpHost*</td><td><a href="#group___http_1ga6d402e9d1748650913482396ace16b27" class="nameRef">httpLookupHost</a>(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Lookup a host by name.</td></tr>
<tr class="apiDef"><td class="apiType">struct HttpHost*</td><td><a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="nameRef">httpLookupHostOnEndpoint</a>(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Lookup a host name.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___http_uri_1gaf7793eaed546ea5d187691db728f1703" class="nameRef">httpLookupMimeType</a>(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ext)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the mime type for an extension.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_route" class="ref">HttpRoute*</a></td><td><a href="#group___http_route_1ga4b84369a2cbfbb36e37108ade6d11c4d" class="nameRef">httpLookupRoute</a>(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Lookup a route by name.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="nameRef">httpLookupRouteErrorDocument</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, int status)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Lookup an error document by HTTP status code.</td></tr>
<tr class="apiDef"><td class="apiType">struct HttpStage*</td><td><a href="#group___http_stage_1ga890b60bd78dd3099a51898b885cb26ea" class="nameRef">httpLookupStage</a>(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Lookup a stage by name.</td></tr>
<tr class="apiDef"><td class="apiType">void*</td><td><a href="#group___http_stage_1gafcc686a0a347d0ec14370c7eef99bcf0" class="nameRef">httpLookupStageData</a>(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Lookup stage data.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="nameRef">httpLookupStatus</a>(<a href="#group___http" class="ref">Http</a> *http, int status)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Lookup a Http status code.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="nameRef">httpMakePath</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Make a filename path.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_uri" class="ref">HttpUri*</a></td><td><a href="#group___http_uri_1ga76afee77d12a6c52896af0ea658c301d" class="nameRef">httpMakeUriLocal</a>(<a href="#group___http_uri" class="ref">HttpUri</a> *uri)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Make a URI local.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1gac98fc3caa237cb475847573203bd3187" class="nameRef">httpMapFile</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="#group___http_route" class="ref">HttpRoute</a> *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Map the request URI and route target to a filename.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="nameRef">httpMatchHost</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Match the HttpHost object that should serve this request.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="nameRef">httpMatchParam</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *expected)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Match a form variable with an expected value.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="nameRef">httpMatchRoute</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="#group___http_route" class="ref">HttpRoute</a> *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Match a route against the current request.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="nameRef">httpMemoryError</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Signal a memory allocation error.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="nameRef">httpNeedRetry</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, char **url)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Determine if the transmission needs a transparent retry to implement authentication or redirection.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_uri_1gab6de6ed30c95a9e9a3b8f9bf7acaf625" class="nameRef">httpNormalizeUri</a>(<a href="#group___http_uri" class="ref">HttpUri</a> *uri)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Normalize a URI.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_uri_1ga662c0fad256c2517e276758efb1bb04d" class="nameRef">httpNormalizeUriPath</a>(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Normalize a URI.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga7b3f62c070bd50c8fe347529d619be99" class="nameRef">httpNotify</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int event, int arg)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Inform notifiers of a connection event or state change.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#http_8h_1ad9c7997f9f2a3dfa3060e85896dc94dd" class="nameRef">httpOmitBody</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Tell the tx to omit sending any body.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_1ga98ac288de46fac02211b41daed515273" class="nameRef">httpOption</a>(<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, int useDefault)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test a field value from an option string.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="nameRef">httpPrepClientConn</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> keepHeaders)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Prepare a client connection for a new request.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_rx_1gabec750f9be88c9321ffe026fdabf7b90" class="nameRef">httpPumpRequest</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Pump the Http engine for a request.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="nameRef">httpPutBackPacket</a>(struct HttpQueue *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Put a packet back onto a queue.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="nameRef">httpPutForService</a>(struct HttpQueue *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> serviceQ)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Put a packet into the service queue for deferred processing.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="nameRef">httpPutPacket</a>(struct HttpQueue *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Put a packet to the queue.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="nameRef">httpPutPacketToNext</a>(struct HttpQueue *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Put a packet to the next queue downstream.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="nameRef">httpRead</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, char *buffer, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Read rx body data.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="nameRef">httpReadString</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Read response data as a string.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga2f25ecba7e7d54268b2a34541c2f247d" class="nameRef">httpReadyHandler</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Run the handler ready callback.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="nameRef">httpRedirect</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int status, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Redirect the client.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_upload_file_1gaf0783c034eabeefdde3e194e7f773711" class="nameRef">httpRemoveAllUploadedFiles</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove all uploaded files.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="nameRef">httpRemoveHeader</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove a header from the transmission.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_1ga19ecb294244c6f53755fe124bc399cfc" class="nameRef">httpRemoveOption</a>(<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove an option.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="nameRef">httpRemoveQueue</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove a queue.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="nameRef">httpRemoveRole</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *role)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove a role.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_session_1ga6a57161d51de33ecfb2bf127ffcc1048" class="nameRef">httpRemoveSessionVar</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove a session state variable.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_upload_file_1ga4bb0929fd70a3247ea1f0d13a57cfc19" class="nameRef">httpRemoveUploadFile</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *id)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove an uploaded file.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="nameRef">httpRemoveUser</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *user)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove a user.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="nameRef">httpResetCredentials</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Reset the current security credentials.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="nameRef">httpResetRoutePipeline</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Reset the route pipeline.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_host_1gaaaa414cbf0f8cacd73ce305927b78efa" class="nameRef">httpResetRoutes</a>(<a href="#group___http_host" class="ref">HttpHost</a> *host)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Reset the list of routes for the host.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="nameRef">httpResizePacket</a>(struct HttpQueue *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Resize a packet.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_uri" class="ref">HttpUri*</a></td><td><a href="#group___http_uri_1ga53a807f2a2750df3f88d4f4b2ac89fa2" class="nameRef">httpResolveUri</a>(<a href="#group___http_uri" class="ref">HttpUri</a> *base, int argc, <a href="#group___http_uri" class="ref">HttpUri</a> **others, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> local)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Resolve URIs relative to a base.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="nameRef">httpResumeQueue</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Resume a queue.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="nameRef">httpRouteRequest</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Route the request and select that matching route and handle to process the request.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="nameRef">httpScheduleQueue</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Schedule a queue.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="nameRef">httpSecureEndpoint</a>(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, struct MprSsl *ssl)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Secure an endpoint.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="nameRef">httpSecureEndpointByName</a>(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, struct MprSsl *ssl)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Secure an endpoint by name.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_web_socket_1ga038d5c42a1ef5bce910dc617987a222c" class="nameRef">httpSend</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Send a UTF-8 text message to the web socket peer.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_web_socket_1ga139827d860ee64824f15ebfeb15478cc" class="nameRef">httpSendBlock</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int type, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *buf, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Send a message of a given type to the web socket peer.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_web_socket_1gadb22d418a67109b699890888ca66053a" class="nameRef">httpSendClose</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int status, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *reason)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Send a close message to the web socket peer.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="nameRef">httpServiceQueue</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Service a queue.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="nameRef">httpServiceQueues</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Service pipeline queues to flow data.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="nameRef">httpSetAsync</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int enable)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the async mode value for the connection.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="nameRef">httpSetAuthAllow</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ip)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Allow access by a client IP IP address.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="nameRef">httpSetAuthAnyValidUser</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Allow access by any valid user.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="nameRef">httpSetAuthAutoLogin</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> on)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Enable auto login.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="nameRef">httpSetAuthDeny</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ip)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Deny access by a client IP address.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="nameRef">httpSetAuthForm</a>(struct HttpRoute *parent, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *loginPage, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *loginService, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *logoutService, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *loggedIn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define the callbabcks for the &apos;post&apos; authentication type.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="nameRef">httpSetAuthOrder</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, int order)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the auth allow/deny order.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="nameRef">httpSetAuthPermittedUsers</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *users)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define the set of permitted users.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="nameRef">httpSetAuthQop</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *qop)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the required quality of service for digest authentication.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="nameRef">httpSetAuthRealm</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *realm)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the required realm for basic or digest authentication.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="nameRef">httpSetAuthRequiredAbilities</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *abilities)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the required abilities for access.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="nameRef">httpSetAuthStore</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *store)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the authentication password store to use.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="nameRef">httpSetAuthType</a>(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *proto, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *details)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the authentication protocol to use.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="nameRef">httpSetChunkSize</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the chunk size for transfer chunked encoding.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="nameRef">httpSetConnContext</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, void *context)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the connection context object.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="nameRef">httpSetConnHost</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, void *host)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the connection host object.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="nameRef">httpSetConnNotifier</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a> notifier)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a notifier callback for this connection.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="nameRef">httpSetContentLength</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a> length)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a content length header in the transmission.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="nameRef">httpSetContentType</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *mimeType)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the transmission (response) content mime type.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="nameRef">httpSetContext</a>(<a href="#group___http" class="ref">Http</a> *http, void *context)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the http context object.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="nameRef">httpSetCookie</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *domain, <a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> lifespan, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a transmission cookie.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" class="nameRef">httpSetCredentials</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *user, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *password, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *authType)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the Http credentials.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="nameRef">httpSetDefaultClientHost</a>(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *host)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a default client host.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="nameRef">httpSetDefaultClientPort</a>(<a href="#group___http" class="ref">Http</a> *http, int port)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a default client port.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_host_1gacba7af49f198c1ac13e6cadd2673956f" class="nameRef">httpSetDefaultHost</a>(<a href="#group___http_host" class="ref">HttpHost</a> *host)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the default host for all servers.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="nameRef">httpSetEndpointAddress</a>(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ip, int port)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the endpoint IP address.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="nameRef">httpSetEndpointAsync</a>(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, int enable)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Control if the endpoint is running in asynchronous mode.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="nameRef">httpSetEndpointContext</a>(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, void *context)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the endpoint context object.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="nameRef">httpSetEndpointNotifier</a>(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a> fn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a notifier callback for this endpoint.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="nameRef">httpSetEntityLength</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a> len)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define the length of the transmission content.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="nameRef">httpSetForkCallback</a>(struct Http *http, <a href="mprBare.html#group___mpr_cmd_1gaa20a5cafff87c96ba20526367622c885" class="ref">MprForkCallback</a> proc, void *arg)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the fork callback.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="nameRef">httpSetHasNamedVirtualHosts</a>(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> on)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Control whether the endpoint has named virtual hosts.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="nameRef">httpSetHeader</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a transmission header.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="nameRef">httpSetHeaderString</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a simple key/value transmission header.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga5407927519c3619f8b3173a19c7cab31" class="nameRef">httpSetHeadersCallback</a>(struct HttpConn *conn, <a href="#group___http_conn_1gaf11f6724913441eab0f9c8a6e139569e" class="ref">HttpHeadersCallback</a> fn, void *arg)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a headers callback.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_host_1ga393e177fad929d5ca96379e9270b6842" class="nameRef">httpSetHostDefaultEndpoint</a>(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the default endpoint for a host.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_host_1gae8d3b5ebddb6c740c738befee3c78efb" class="nameRef">httpSetHostDefaultRoute</a>(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="#group___http_route" class="ref">HttpRoute</a> *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the default route for a host.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_host_1ga9c33731fd3222d8eed376feeb3b115ad" class="nameRef">httpSetHostIpAddr</a>(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ip, int port)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the host internet address.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_host_1ga446cc7ba87875c92e544e035a404f33f" class="nameRef">httpSetHostName</a>(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the host name.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_host_1ga0f04d9504cb2005ef7f0f4ba2d653581" class="nameRef">httpSetHostProtocol</a>(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *protocol)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the host HTTP protocol version.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_host_1ga2302c34632a1b72ec759533ee9d7ad10" class="nameRef">httpSetHostRoot</a>(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *root)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the server root for a host.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_host_1ga0c90d5255c39ee470811df672867a6db" class="nameRef">httpSetHostSecureEndpoint</a>(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the default secure endpoint for a host.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga8f6d4ce201a094c8a0f185d1d592b439" class="nameRef">httpSetIOCallback</a>(struct HttpConn *conn, <a href="#group___http_conn_1ga90233a1163fa6772c60c86588b01e803" class="ref">HttpIOCallback</a> fn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define an I/O callback for connections.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="nameRef">httpSetIntParam</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, int value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set an integer request param value.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga5050ac505b4e8701f6247db9242a4249" class="nameRef">httpSetKeepAliveCount</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int count)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Control Http Keep-Alive for the connection.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_rx_1ga246c59aa7888e4eabb40b09d3420f4fe" class="nameRef">httpSetMethod</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *method)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a new HTTP method for processing.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_1ga1b68c24657b6564346e47d0e7521790a" class="nameRef">httpSetOption</a>(<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set an option.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="nameRef">httpSetParam</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a request param value.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1gabfb77d6aba161b2641177d85de86b559" class="nameRef">httpSetProtocol</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *protocol)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the Http protocol variant for this connection.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="nameRef">httpSetProxy</a>(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *host, int port)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a Http proxy host to use for all client connect requests.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="nameRef">httpSetQueueLimits</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> low, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> max)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a queue&apos;s flow control low and high water marks.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="nameRef">httpSetResponded</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the responded flag for the request.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga43fe43a026149b074825c886a9d1fba1" class="nameRef">httpSetRetries</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int retries)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the Http retry count.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="nameRef">httpSetRouteAuth</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="#group___http_auth" class="ref">HttpAuth</a> *auth)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the route authentication.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="nameRef">httpSetRouteAutoDelete</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> on)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Control file upload auto delete.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="nameRef">httpSetRouteCompression</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Contol content compression for the route.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="nameRef">httpSetRouteConnector</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the connector to use for a route.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="nameRef">httpSetRouteData</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, void *data)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set route data.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="nameRef">httpSetRouteDefaultLanguage</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *language)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the default language for the route.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="nameRef">httpSetRouteDir</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *dir)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the route directory.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="nameRef">httpSetRouteFlags</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Update the route flags.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="nameRef">httpSetRouteHandler</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the handler to use for a route.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga9f09cf024514587e80203b9a74f7a61f" class="nameRef">httpSetRouteHome</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *home)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the route directory for configuration files.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_route_1gaab3c7073de79d8dde006efbd71d61e08" class="nameRef">httpSetRouteLog</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size, int backup, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *format, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Configure the route access log.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="nameRef">httpSetRouteMethods</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *methods)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define the methods for the route.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="nameRef">httpSetRouteName</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the route name.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="nameRef">httpSetRoutePattern</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *pattern, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the route pattern.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="nameRef">httpSetRoutePrefix</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *prefix)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the route prefix.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="nameRef">httpSetRouteScript</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *script, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *scriptPath)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the script to service the route.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="nameRef">httpSetRouteSource</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *source)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the source code module for the route.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_route_1ga7a2248e73a4b634e923c4e4faab2e4e7" class="nameRef">httpSetRouteTarget</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *details)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a route target.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1gaa330ec51c47806576240547ab3f06c7c" class="nameRef">httpSetRouteTemplate</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tplate)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the route template.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga0fca8cb1a2151bde37febf28638f8f6c" class="nameRef">httpSetRouteTraceFilter</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, int dir, int levels[HTTP_TRACE_MAX_ITEM], <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *include, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *exclude)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the route trace filter.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga3c0b5cdd207914add45a78054b96f9fe" class="nameRef">httpSetRouteVar</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *token, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a path token variable.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga6c7911ff918bc0a7eeedc0ab44e73749" class="nameRef">httpSetRouteWorkers</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, int workers)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define the maximum number of workers for a route.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1gadb0ffcb5cdc970539e2ef83c5050024b" class="nameRef">httpSetSendConnector</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the &quot;Send&quot; connector to process the request.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_session_1ga56c600614329fbd1ba3537d2cc809488" class="nameRef">httpSetSessionObj</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set an object into the session state store.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_session_1gae968a01773107fba5909a62e8b5b8b27" class="nameRef">httpSetSessionVar</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a session variable.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="nameRef">httpSetSoftware</a>(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *description)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the software description.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1ga9ed9a3687b90670fb6e12697f579e744" class="nameRef">httpSetStageData</a>(struct HttpConn *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a5272042f7e0f5c53e2fd4b49ff47d92d" class="ref">cvoid</a> *data)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set stage data.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga94b63eed8385fd7c6c5db45a0a4ca768" class="nameRef">httpSetState</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int state)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the connection state and invoke notifiers.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="nameRef">httpSetStatus</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int status)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a Http response status.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1gaa4b4def5658e51af56d186e0b35ace55" class="nameRef">httpSetTimeout</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> requestTimeout, <a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> inactivityTimeout)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the Http inactivity timeout.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1gaac1789f20731bd9cbb129153f8ee7a07" class="nameRef">httpSetTimestamp</a>(<a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> period)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a timestamp in the MPR log file.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="nameRef">httpSetUri</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a new URI for processing.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_web_socket_1ga96f8cb3db541d8a1340caf0d2afbbb1f" class="nameRef">httpSetWebSocketProtocols</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *protocols)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a list of application-level protocols supported by the client.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga3b9e9dbb4d2b8da2de6fb6d20c307fc6" class="nameRef">httpSetupWaitHandler</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int eventMask)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Setup a wait handler for the connection to wait for desired events.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_conn_1ga9ed05242455c9da79ad164ea85ec7427" class="nameRef">httpShouldTrace</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int dir, int item, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ext)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if the item should be traced.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="nameRef">httpSocketBlocked</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Indicate that the transmission socket is blocked.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___http_packet" class="ref">HttpPacket*</a></td><td><a href="#group___http_packet_1ga99ecd872c756327114f8470650da5af9" class="nameRef">httpSplitPacket</a>(<a href="#group___http_packet" class="ref">HttpPacket</a> *packet, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> offset)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Split a data packet.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="nameRef">httpStartEndpoint</a>(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Start listening for client connections.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_conn_1ga4bc751046420a19e3a2fa04beb93fba0" class="nameRef">httpStartPipeline</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Start the pipeline.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_stats_1ga7895265873d5e93a5da00d2423ccb886" class="nameRef">httpStatsReport</a>(int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get an Http performance report.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#group___mpr_socket" class="ref">MprSocket*</a></td><td><a href="#group___http_conn_1ga269af9eeb75763738059d298b48f1032" class="nameRef">httpStealConn</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Steal a connection from Appweb.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="nameRef">httpStopEndpoint</a>(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Stop the server listening for client connections.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="nameRef">httpSuspendQueue</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Suspend a queue.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_route_1gae4b6d8eea6fd3315c15b353a1fd71753" class="nameRef">httpTemplate</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tplate, <a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Expand a template string using given options.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="nameRef">httpTestParam</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a request param is defined.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_route_1gad3c617708c6209cddbad56f16e4d62e9" class="nameRef">httpTokenize</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *str, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Tokenize a string based on route data.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_route_1gacb87f172e58f3fdb1158eac01f3b4622" class="nameRef">httpTokenizev</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *str, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, va_list args)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Tokenize a string based on route data.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="nameRef">httpTrimExtraPath</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Trim extra path from the URI.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_cache_1ga2fd7b63c7f3834cd41260a22983cd932" class="nameRef">httpUpdateCache</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *data, <a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> lifespan)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Update the cached content for a URI.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_web_socket_1ga3456efbc36a0e27b3dde28462ef88d90" class="nameRef">httpUpgradeWebSocket</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Upgrade a client HTTP connection connection to use WebSockets.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___http_uri_1ga9ea785faccf155c6bd3b2650d5245d11" class="nameRef">httpUriToString</a>(<a href="#group___http_uri" class="ref">HttpUri</a> *uri, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Convert a Uri to a string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="nameRef">httpValidateLimits</a>(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, int event, <a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Validate the request against defined resource limits.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_conn_1ga8edf2556f7d44f12e505ede6dabafe53" class="nameRef">httpVerifyWebSocketsHandshake</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Verify the server handshake.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="nameRef">httpWait</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int state, <a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> timeout)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Wait for the connection to achieve the requested state.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_web_socket_1gacb7184072bfb15ebf2c95f9ef6d0ba8c" class="nameRef">httpWebSocketOrderlyClosed</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if web socket connection was orderly closed by sending an acknowledged close message.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="nameRef">httpWillNextQueueAcceptPacket</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Determine if the downstream queue will accept this packet.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="nameRef">httpWillNextQueueAcceptSize</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Determine if the downstream queue will accept a certain amount of data.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___http_queue_1ga5a91f11aad2cd85d6e59830d2ffaf5f5" class="nameRef">httpWillQueueAcceptPacket</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> split)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Determine if the given queue will accept this packet.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="nameRef">httpWrite</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Write a formatted string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="nameRef">httpWriteBlock</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *buf, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Write a block of data to the queue.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_cache_1ga59f76623bdccce81465d4a4246d9be87" class="nameRef">httpWriteCached</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Write the cached content for a URI to the client.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="nameRef">httpWriteHeaders</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Write the transmission headers into the given packet.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___http_route_1gad0242da72f0bd7cc5e200a85adae2e7b" class="nameRef">httpWriteRouteLog</a>(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *buf, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Write data to the route access log.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="nameRef">httpWriteString</a>(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *s)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Write a string of data to the queue.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="nameRef">httpWriteUploadData</a>(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#group___mpr_list" class="ref">MprList</a> *formData, <a href="mprBare.html#group___mpr_list" class="ref">MprList</a> *fileData)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Write Http upload body data.</td></tr>
</table>
<a name="Typedefs"></a><h1>Typedefs</h1>
<table class="apiIndex" title="typedefs">
<tr class="apiDef"><td class="apiName"><a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="nameRef">HttpAskLogin</a></td><td class="apiBrief">AuthType callback to generate a response requesting the user login This should call httpError if such a response cannot be generated.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_http_auth_store" class="nameRef">HttpAuthStore</a></td><td class="apiBrief">Password backend store.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_http_auth_type" class="nameRef">HttpAuthType</a></td><td class="apiBrief">Authentication Protocol.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="nameRef">HttpEnvCallback</a></td><td class="apiBrief">Set environment vars callback.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900" class="nameRef">HttpFillProc</a></td><td class="apiBrief">Callback procedure to fill a packet with data.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___http_conn_1gaf11f6724913441eab0f9c8a6e139569e" class="nameRef">HttpHeadersCallback</a></td><td class="apiBrief">Callback to fill headers.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___http_conn_1ga90233a1163fa6772c60c86588b01e803" class="nameRef">HttpIOCallback</a></td><td class="apiBrief">I/O callback for connections.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_http_lang" class="nameRef">HttpLang</a></td><td class="apiBrief">Language definition record for routes.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="nameRef">HttpListenCallback</a></td><td class="apiBrief">Listen callback.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="nameRef">HttpNotifier</a></td><td class="apiBrief">Connection Http state change notification callback.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="nameRef">HttpParseAuth</a></td><td class="apiBrief">AuthType callback to parse the HTTP &apos;Authorize&apos; (client) and &apos;www-authenticate&apos; (server) headers.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="nameRef">HttpRedirectCallback</a></td><td class="apiBrief">Define an callback for IO events on this connection.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_http_role" class="nameRef">HttpRole</a></td><td class="apiBrief">Authorization Roles.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_http_route_op" class="nameRef">HttpRouteOp</a></td><td class="apiBrief">Route operation record.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#http_8h_1a0f957adf7a453cc11f9622b40f1348eb" class="nameRef">HttpRouteProc</a></td><td class="apiBrief">General route procedure.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="nameRef">HttpSetAuth</a></td><td class="apiBrief">AuthType callback to set the necessary HTTP authorization headers for a client request.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___http_conn_1ga742ae2f2bdc26e0c841da4f692ef25e6" class="nameRef">HttpTimeoutCallback</a></td><td class="apiBrief">Timeout callback.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#struct_http_user" class="nameRef">HttpUser</a></td><td class="apiBrief">User Authorization.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="nameRef">HttpVerifyUser</a></td><td class="apiBrief">AuthStore callback Verify the user credentials.</td></tr>
</table>
<a name="Defines"></a><h1>Defines</h1>
<table class="apiIndex" title="Defines">
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aaa85b59f92a2c0d651a9ec75041c6140" class="nameRef">BIT_HTTP_SOFTWARE</a>&nbsp;&nbsp;&nbsp;&quot;Embedthis-http&quot;</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default Http protocol name used in Http Server header.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ac5eb79f1c913512d6367f4694b805912" class="nameRef">BIT_MAX_CACHE_DURATION</a>&nbsp;&nbsp;&nbsp;(86400 * 1000)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default cache lifespan to 1 day.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aef717516020333eee1726821f42d3ae7" class="nameRef">BIT_MAX_CACHE_ITEM</a>&nbsp;&nbsp;&nbsp;(256 * 1024)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Maximum cachable item size.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a7f38bf4869b90a1e755d2713afbe393b" class="nameRef">BIT_MAX_CHUNK</a>&nbsp;&nbsp;&nbsp;(8 * 1024)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Maximum chunk size for transfer chunk encoding.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a4d5d7162df13b4f7d77ad0551e55c849" class="nameRef">BIT_MAX_CLIENTS</a>&nbsp;&nbsp;&nbsp;32</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Maximum concurrent client endpoints.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ad695d4b2ab041bdec0c6ca76f9d84e2f" class="nameRef">BIT_MAX_CLIENTS_HASH</a>&nbsp;&nbsp;&nbsp;131</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Hash table for client IP addresses.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a4b704626005da6c3954085c0bc8eb170" class="nameRef">BIT_MAX_HEADERS</a>&nbsp;&nbsp;&nbsp;8192</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Maximum size of the headers.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ad5e69938e7410d19412fe6daf2443f32" class="nameRef">BIT_MAX_INACTIVITY_DURATION</a>&nbsp;&nbsp;&nbsp;(60 * 1000)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default keep connection alive between requests timeout.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a087819ab843430646499b3dcbf4897a1" class="nameRef">BIT_MAX_IOVEC</a>&nbsp;&nbsp;&nbsp;16</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Number of fragments in a single socket write.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a1d08f8775263f04b74525507a6ea1bc5" class="nameRef">BIT_MAX_KEEP_ALIVE</a>&nbsp;&nbsp;&nbsp;200</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Maximum requests per connection.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aac2895bb1386aa76519056281d75a39b" class="nameRef">BIT_MAX_NUM_HEADERS</a>&nbsp;&nbsp;&nbsp;30</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Maximum number of header lines.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aba8f1002f68ab8354d1cbde9202b194b" class="nameRef">BIT_MAX_PARSE_DURATION</a>&nbsp;&nbsp;&nbsp;(30 * 1000)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default request parse header timeout.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ae325911f074aabf361f92ae2b66d0337" class="nameRef">BIT_MAX_PING_DURATION</a>&nbsp;&nbsp;&nbsp;(30 * 1000)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>WSS ping defeat Keep-Alive timeouts (30 sec).</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ab63406108093a699f4a3337d0284cb20" class="nameRef">BIT_MAX_QBUFFER</a>&nbsp;&nbsp;&nbsp;(32 * 1024)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Maximum buffer for any pipeline queue.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ad8f5fc10a7c50e12cdb8f5116df36b48" class="nameRef">BIT_MAX_RECEIVE_BODY</a>&nbsp;&nbsp;&nbsp;(128 * 1024 * 1024)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Maximum incoming body size.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1afaa990c4b4db3a090c03ff3aea37e7fb" class="nameRef">BIT_MAX_RECEIVE_FORM</a>&nbsp;&nbsp;&nbsp;(1024 * 1024)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Maximum incoming form size.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ae9ea242cd9fa92e9e4e4135a3b23934f" class="nameRef">BIT_MAX_REQUEST_DURATION</a>&nbsp;&nbsp;&nbsp;MAXINT</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default request timeout (unlimited).</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a0778bd3e10bfc762ad051928e9bd519b" class="nameRef">BIT_MAX_REQUESTS</a>&nbsp;&nbsp;&nbsp;50</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Maximum concurrent requests.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a72342ee098a236df2986f70a3d97b4b7" class="nameRef">BIT_MAX_REQUESTS_PER_CLIENT</a>&nbsp;&nbsp;&nbsp;20</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Maximum concurrent requests.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a7a96367876ac1a7f360a5c8978b12cd6" class="nameRef">BIT_MAX_REWRITE</a>&nbsp;&nbsp;&nbsp;20</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Maximum URI rewrites.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a696e0e5210851d7496cd3f6f5d64d6de" class="nameRef">BIT_MAX_ROUTE_MATCHES</a>&nbsp;&nbsp;&nbsp;32</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Maximum number of submatches in routes.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ab4c1168e636b72ba712d8d4e704bf968" class="nameRef">BIT_MAX_SESSION_DURATION</a>&nbsp;&nbsp;&nbsp;(3600 * 1000)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default session timeout (one hour).</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a6a124ff5d2230d8731be6cbae1bdde6d" class="nameRef">BIT_MAX_SESSIONS</a>&nbsp;&nbsp;&nbsp;100</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Maximum concurrent sessions.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ae1f1b8de2c039da27783373b09207f52" class="nameRef">BIT_MAX_TX_BODY</a>&nbsp;&nbsp;&nbsp;(INT_MAX)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Maximum buffer for response data.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a8bc351dd350b34f013c790b130b44164" class="nameRef">BIT_MAX_URI</a>&nbsp;&nbsp;&nbsp;1024</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Reasonable URI size.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a8bdb02b0bedb262faf95f6cc40ae0feb" class="nameRef">BIT_MAX_WSS_FRAME</a>&nbsp;&nbsp;&nbsp;(4 * 1024)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default max WebSockets message frame size.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a112bc9d317b6dd9262bcbedfe74c51bc" class="nameRef">BIT_MAX_WSS_PACKET</a>&nbsp;&nbsp;&nbsp;(8 * 1024)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default size to provide to application in one packet.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a05494f49fb897f33c387682a1ee233c9" class="nameRef">BIT_MAX_WSS_SOCKETS</a>&nbsp;&nbsp;&nbsp;200</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default max WebSockets.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ab78ab3f994a782f9a7432a9854b94db3" class="nameRef">HTTP_ADDED_FORM_PARAMS</a>&nbsp;&nbsp;&nbsp;0x800</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Form body data added to params.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ac62578f288cd862870ccebdafbf2a3a8" class="nameRef">HTTP_ADDED_QUERY_PARAMS</a>&nbsp;&nbsp;&nbsp;0x400</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Query added to params.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aef3cb5c3441dac52fa77df115bcc501f" class="nameRef">HTTP_ALLOW_DENY</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Run allow checks before deny checks.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aa678279429bbd9c6ce0e2f23a3554d33" class="nameRef">HTTP_AUTH_CHECKED</a>&nbsp;&nbsp;&nbsp;0x4000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>User authentication has been checked.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a4126ab362249dc54a375e7db102eddf3" class="nameRef">HTTP_AUTO_LOGIN</a>&nbsp;&nbsp;&nbsp;0x4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Auto login for debug.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a1deec53d4942486bad2898c24942c9f9" class="nameRef">HTTP_BLOCK</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for httpSendBlock and httpWriteBlock to indicate blocking operation.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a64ad01309072f89c0c3eeeb50958e227" class="nameRef">HTTP_BUFFER</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for httpSendBlock and httpWriteBlock to always absorb the data without blocking.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a36200550bd4cfd821cd46a4dac9c3f45" class="nameRef">HTTP_CACHE_ALL</a>&nbsp;&nbsp;&nbsp;0x10</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Cache the same pathInfo together regardless of the request params.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a45783139025a72ff9f488d170b202bb5" class="nameRef">HTTP_CACHE_CLIENT</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Cache on the client side.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ae8e22b4ed7d644e44c20dab57e43316b" class="nameRef">HTTP_CACHE_MANUAL</a>&nbsp;&nbsp;&nbsp;0x4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Cache manually.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a17bc1c3f05bd04188aa9737c8fb0ba37" class="nameRef">HTTP_CACHE_ONLY</a>&nbsp;&nbsp;&nbsp;0x20</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Cache exactly the specified URI with params.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a22ab917b50b85b968e167830ac200f51" class="nameRef">HTTP_CACHE_RESET</a>&nbsp;&nbsp;&nbsp;0x8</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Don&apos;t inherit cache config from outer routes.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aba05dd2242ff4a0e98bdbe6757b6f97f" class="nameRef">HTTP_CACHE_SERVER</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Cache on the server side.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a2b7b851eaf76d93b2c6ed4b5f839b737" class="nameRef">HTTP_CACHE_UNIQUE</a>&nbsp;&nbsp;&nbsp;0x40</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Uniquely cache request with different params.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1abedc8ad3e73f4d60823e1620a210d2f2" class="nameRef">HTTP_CHUNK_DATA</a>&nbsp;&nbsp;&nbsp;2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Start of chunk data.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1abc69a0d7c0ce4eb2f3862d88e9f05585" class="nameRef">HTTP_CHUNK_EOF</a>&nbsp;&nbsp;&nbsp;3</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>End of last chunk.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a95d9fceb0d02928f3a7b689b30633208" class="nameRef">HTTP_CHUNK_START</a>&nbsp;&nbsp;&nbsp;1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Start of a new chunk.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ac735c63d0bbacf2b02537ec4a646e13e" class="nameRef">HTTP_CHUNK_UNCHUNKED</a>&nbsp;&nbsp;&nbsp;0</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Data is not transfer-chunk encoded.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a96bbcf273ff67fa6aee87eb08d5d182b" class="nameRef">HTTP_CHUNKED</a>&nbsp;&nbsp;&nbsp;0x200</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Content is chunk encoded.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1af6b606159004cca9ed83f7897e39acf0" class="nameRef">HTTP_CLIENT_SIDE</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Initialize the client-side support.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a1efdfd58d322aa536b75deecf922f1c8" class="nameRef">HTTP_CODE_ACCEPTED</a>&nbsp;&nbsp;&nbsp;202</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request has been accepted and processing is continuing.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a0af0302aed58ea49fd6b1be26179585c" class="nameRef">HTTP_CODE_BAD_GATEWAY</a>&nbsp;&nbsp;&nbsp;502</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The server cannot act as a gateway for the given request.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aa6ec699961284a60025ee3ddc2f47af0" class="nameRef">HTTP_CODE_BAD_HANDSHAKE</a>&nbsp;&nbsp;&nbsp;551</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The server handsake response is unacceptable.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a8b9b86ec8ac18bf9e606f22c0921dd4a" class="nameRef">HTTP_CODE_BAD_METHOD</a>&nbsp;&nbsp;&nbsp;405</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request HTTP method was not supported by the resource.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a16c7e21f17349c2515fe0134f9b7ffd4" class="nameRef">HTTP_CODE_BAD_REQUEST</a>&nbsp;&nbsp;&nbsp;400</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request is malformed.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aa7dc3796cad07c52f3db7ed660948405" class="nameRef">HTTP_CODE_BAD_VERSION</a>&nbsp;&nbsp;&nbsp;505</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The server does not support the HTTP protocol version.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ac4e84c07da5d5314255265a9470004fe" class="nameRef">HTTP_CODE_COMMS_ERROR</a>&nbsp;&nbsp;&nbsp;550</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The server had a communicationss error responding to the client.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a33cde539885f920737a6c148f854aa15" class="nameRef">HTTP_CODE_CONFLICT</a>&nbsp;&nbsp;&nbsp;409</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request had a conflict in the request headers and URI.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ad1f324698e12fefadfc2ec5d16ce6a5b" class="nameRef">HTTP_CODE_CONTINUE</a>&nbsp;&nbsp;&nbsp;100</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Continue with request, only partial content transmitted.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a00c11c6c6bf42cf1fb483c273454cf45" class="nameRef">HTTP_CODE_CREATED</a>&nbsp;&nbsp;&nbsp;201</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request has completed and a new resource was created.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a7b7785ff11163b18f12bc2d66f728abe" class="nameRef">HTTP_CODE_EXPECTATION_FAILED</a>&nbsp;&nbsp;&nbsp;417</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The server cannot satisfy the Expect header requirements.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ac68e0a1d868dad52967d757dab5220db" class="nameRef">HTTP_CODE_FORBIDDEN</a>&nbsp;&nbsp;&nbsp;403</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request was legal, but the server refuses to process.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ab24790eefb565c4e7064438592e32204" class="nameRef">HTTP_CODE_GATEWAY_TIMEOUT</a>&nbsp;&nbsp;&nbsp;504</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The server gateway timed out waiting for the upstream server.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a0eeb0f3801fbd1ca5d0f050e12426768" class="nameRef">HTTP_CODE_GONE</a>&nbsp;&nbsp;&nbsp;410</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The requested resource is no longer available.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1af7fab487ecc4f937304ff5ad1fd97330" class="nameRef">HTTP_CODE_INSUFFICIENT_STORAGE</a>&nbsp;&nbsp;&nbsp;507</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The server has insufficient storage to complete the request.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a6d47746cc8b934944ed4f05308b2da63" class="nameRef">HTTP_CODE_INTERNAL_SERVER_ERROR</a>&nbsp;&nbsp;&nbsp;500</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Server processing or configuration error.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1af92be73f22cd3758211ce5b90ec64572" class="nameRef">HTTP_CODE_LENGTH_REQUIRED</a>&nbsp;&nbsp;&nbsp;411</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request did not specify a required content length.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a3d8f6601017c97af5fe8bd5267be8b02" class="nameRef">HTTP_CODE_MOVED_PERMANENTLY</a>&nbsp;&nbsp;&nbsp;301</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The requested URI has moved permanently to a new location.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a33f32423ccbf3a2a61f56cc5aee18cd8" class="nameRef">HTTP_CODE_MOVED_TEMPORARILY</a>&nbsp;&nbsp;&nbsp;302</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The URI has moved temporarily to a new location.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a7e41c8a47383e2bdf4b34ce5510bc9b6" class="nameRef">HTTP_CODE_NO_CONTENT</a>&nbsp;&nbsp;&nbsp;204</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request has completed and there is no response to send.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a1159b67860d06bcce578f8d4d0083070" class="nameRef">HTTP_CODE_NO_RESPONSE</a>&nbsp;&nbsp;&nbsp;444</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The connection was closed with no response to the client.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aa44abbf9540845f062801eb5bff8a128" class="nameRef">HTTP_CODE_NOT_ACCEPTABLE</a>&nbsp;&nbsp;&nbsp;406</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The requested resource cannot generate the required content.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a0a20b658e0dc1c0634a4eb5b07b36d52" class="nameRef">HTTP_CODE_NOT_AUTHORITATIVE</a>&nbsp;&nbsp;&nbsp;203</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request has completed but content may be from another source.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a20eb5cc8af538c827de0f7ed9811243c" class="nameRef">HTTP_CODE_NOT_FOUND</a>&nbsp;&nbsp;&nbsp;404</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The requested resource was not found.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a9e272d1190eb37ce4447a9021f68a0c4" class="nameRef">HTTP_CODE_NOT_IMPLEMENTED</a>&nbsp;&nbsp;&nbsp;501</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The server does not recognize the request or method.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a225a5999b63c699c4492a8412b315452" class="nameRef">HTTP_CODE_NOT_MODIFIED</a>&nbsp;&nbsp;&nbsp;304</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The requested resource has changed since the last request.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a471de168f41ecf5e8d62a43fea28b5d7" class="nameRef">HTTP_CODE_OK</a>&nbsp;&nbsp;&nbsp;200</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request completed successfully.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ae55f28c554e19bbddaba95fdb81c90e0" class="nameRef">HTTP_CODE_PARTIAL</a>&nbsp;&nbsp;&nbsp;206</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request has completed and is returning partial content.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ab772ef28d09ec65afdfc7b67ca29c4b8" class="nameRef">HTTP_CODE_PAYMENT_REQUIRED</a>&nbsp;&nbsp;&nbsp;402</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Reserved for future use.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a9b62630f040b66859f1b08380ac52250" class="nameRef">HTTP_CODE_PRECOND_FAILED</a>&nbsp;&nbsp;&nbsp;412</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The server cannot satisfy one of the request preconditions.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1abf878ed6908fa91fca3138731e7033a2" class="nameRef">HTTP_CODE_RANGE_NOT_SATISFIABLE</a>&nbsp;&nbsp;&nbsp;416</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request content range does not exist for the resource.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aac7ff73346b1a2812e6b2cde68ace003" class="nameRef">HTTP_CODE_REQUEST_TIMEOUT</a>&nbsp;&nbsp;&nbsp;408</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The server timed out waiting for the request to complete.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a9d41ec497841c29d86a1b9ef93a6316d" class="nameRef">HTTP_CODE_REQUEST_TOO_LARGE</a>&nbsp;&nbsp;&nbsp;413</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request is too large for the server to process.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a4b04fb7856d5d412df31b0d9528d6191" class="nameRef">HTTP_CODE_REQUEST_URL_TOO_LARGE</a>&nbsp;&nbsp;&nbsp;414</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request URI is too long for the server to process.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aab1d80e99e8e1db0a8a4531c69f037c9" class="nameRef">HTTP_CODE_RESET</a>&nbsp;&nbsp;&nbsp;205</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request has completed with no content.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a81767ddf9b55cb683935842e67b93680" class="nameRef">HTTP_CODE_SEE_OTHER</a>&nbsp;&nbsp;&nbsp;303</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The requested URI can be found at another URI location.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a00a05677bf92a38abf5be28b5ce0d294" class="nameRef">HTTP_CODE_SERVICE_UNAVAILABLE</a>&nbsp;&nbsp;&nbsp;503</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The server is currently unavailable or overloaded.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a4479bf6e59a34ca61262f58bce1f0e8e" class="nameRef">HTTP_CODE_SWITCHING</a>&nbsp;&nbsp;&nbsp;101</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Switching protocols.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a12036a2f5ae164e644d3a063864cb1a1" class="nameRef">HTTP_CODE_TEMPORARY_REDIRECT</a>&nbsp;&nbsp;&nbsp;307</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request should be repeated at another URI location.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a4667745cca24cb084488393a562647aa" class="nameRef">HTTP_CODE_UNAUTHORIZED</a>&nbsp;&nbsp;&nbsp;401</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Authentication for the request has failed.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ad0f303cb6433d273adbfd7a8db38f720" class="nameRef">HTTP_CODE_UNSUPPORTED_MEDIA_TYPE</a>&nbsp;&nbsp;&nbsp;415</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request media type is not supported by the server or resource.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a368ec3a2d7da1dc0a43de55c829ae97b" class="nameRef">HTTP_CODE_USE_PROXY</a>&nbsp;&nbsp;&nbsp;305</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The requested resource must be accessed via the location proxy.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1af3509b1285ba1e90e279c1b1c797a3e1" class="nameRef">HTTP_COMPLETE_URI</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Complete all missing URI fields.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a59c0d7026480d7cb9099bc01428d42a1" class="nameRef">HTTP_COMPLETE_URI_PATH</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Complete missing URI path.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ac862059ba5178f3aac9b4b5420aa9ecf" class="nameRef">HTTP_COOKIE_HTTP</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for httpSetCookie for http cookies (http only).</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a2e88b499c23ec6858a7e4ae982744675" class="nameRef">HTTP_COOKIE_SECURE</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for httpSetCookie for secure cookies (https only).</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a0ef2ef65e60db375ddc172ab15342cb7" class="nameRef">HTTP_CREATE_ENV</a>&nbsp;&nbsp;&nbsp;0x80</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Must create env for this request.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ac706e99193bc479c8e9127ebbf8bb42f" class="nameRef">HTTP_DELAY_SERVICE</a>&nbsp;&nbsp;&nbsp;0</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Delay servicing the queue.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a80131cf3bb8aa236a18cb067c14c23b6" class="nameRef">HTTP_DELETE</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>DELETE method.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a163293c27a367433a183f48610bc5d57" class="nameRef">HTTP_DENY_ALLOW</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Run deny checks before allow checks.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a62ebab73ebbfd4aca3756e4902021d51" class="nameRef">HTTP_EVENT_APP_CLOSE</a>&nbsp;&nbsp;&nbsp;7</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request is now closed.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a3e6f19bf167049b8bc020628ddb2f601" class="nameRef">HTTP_EVENT_APP_OPEN</a>&nbsp;&nbsp;&nbsp;6</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request is now open.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ad1769775106df4605233ba9b01721c02" class="nameRef">HTTP_EVENT_DESTROY</a>&nbsp;&nbsp;&nbsp;5</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The connection is being closed and destroyed.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ab5924075516126d3256ccda2b5f7ce0c" class="nameRef">HTTP_EVENT_ERROR</a>&nbsp;&nbsp;&nbsp;4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request has an error.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a4e9df810abc8a5596d14e3e60e1cecae" class="nameRef">HTTP_EVENT_READABLE</a>&nbsp;&nbsp;&nbsp;2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request has data available for reading.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1abd8812f97c272220db027ba7f48e518f" class="nameRef">HTTP_EVENT_STATE</a>&nbsp;&nbsp;&nbsp;1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Notifier events.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a9e6203b6ae8eb3ed01918e6caf211bdb" class="nameRef">HTTP_EVENT_WRITABLE</a>&nbsp;&nbsp;&nbsp;3</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The request is now writable (post / put data).</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1af51a09294ea4883244ec0accc66ca06a" class="nameRef">HTTP_EXPECT_CONTINUE</a>&nbsp;&nbsp;&nbsp;0x2000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Client expects an HTTP 100 Continue response.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aa276b433bb7caee9ec1bb1386063707b" class="nameRef">HTTP_GET</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>GET method.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a4e69ea7b8d7e381ceaf2601e10471059" class="nameRef">HTTP_HEAD</a>&nbsp;&nbsp;&nbsp;0x4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>HEAD method.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ab87c17e25fdc51d53de17fbc98b804ae" class="nameRef">HTTP_HOST_NAMED_VHOST</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Host flag for a named virtual host.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a1cf2efd1fd71077c859dbb6ce22e126e" class="nameRef">HTTP_HOST_NO_TRACE</a>&nbsp;&nbsp;&nbsp;0x10</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Host flag to disable the of TRACE HTTP method.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a48a9ec41b94ea54638900dfd81e6f940" class="nameRef">HTTP_HOST_VHOST</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Host flag to signify host is a virtual host.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ac3b6b875fb79bd40dc978676f52d3a87" class="nameRef">HTTP_IF_MODIFIED</a>&nbsp;&nbsp;&nbsp;0x100</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>If-[un]modified-since supplied.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a1276a2317ea0340ba5037989946f1173" class="nameRef">HTTP_LANG_AFTER</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Insert suffix after extension.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a429d619d0377c4a711e114695588fcac" class="nameRef">HTTP_LANG_BEFORE</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Insert suffix before extension.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a3a06e2832bfa422ef4bfa9bc1e884bd9" class="nameRef">HTTP_LIMITS_OPENED</a>&nbsp;&nbsp;&nbsp;0x1000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Request limits opened.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a929ac76ed6b382bd092cd0a9696b380f" class="nameRef">HTTP_MAX_QUEUE</a>&nbsp;&nbsp;&nbsp;2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Number of queue types.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a312321f82b42737f6d9b00b2be8bc410" class="nameRef">HTTP_MAX_SECRET</a>&nbsp;&nbsp;&nbsp;16</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Size of secret data for auth.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a56b89d504e7a5dae4663bf0962a0c3a4" class="nameRef">HTTP_MAX_WSS_MESSAGE</a>&nbsp;&nbsp;&nbsp;(2147483647)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default max WebSockets message size (2GB).</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ad78d16ca673a37f6bde41e9b7b0c7c26" class="nameRef">HTTP_MORE</a>&nbsp;&nbsp;&nbsp;0x1000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for <a class="ref" href="#group___http_web_socket_1ga139827d860ee64824f15ebfeb15478cc">httpSendBlock</a> to indicate there are more frames for this message.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a89e5dca37a7c4514c0a8f540b67246cf" class="nameRef">HTTP_NAMED_VHOST</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Using named virtual hosting.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aff3845a62cf42cd163dc85a835935ee3" class="nameRef">HTTP_NEW_DISPATCHER</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>New dispatcher for each connection.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a7426295028ca06412cfa6e168b9b7ec8" class="nameRef">HTTP_NON_BLOCK</a>&nbsp;&nbsp;&nbsp;0x4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Flag for httpSendBlock and httpWriteBlock to indicate non-blocking operation.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a63d4c725d922ebee7cddd485fd35adf3" class="nameRef">HTTP_OPTIONS</a>&nbsp;&nbsp;&nbsp;0x8</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>OPTIONS method.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a9aec61b1e54b2a07d20b3db1dc37ad0e" class="nameRef">HTTP_PACKET_DATA</a>&nbsp;&nbsp;&nbsp;0x4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Packet contains actual content data.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ad0c314b5a901bd8e044368786264bcc4" class="nameRef">HTTP_PACKET_END</a>&nbsp;&nbsp;&nbsp;0x8</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>End of stream packet.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ad8ca15d3ea2ec3383ccba1d4daa9a6ca" class="nameRef">HTTP_PACKET_HEADER</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Packet contains HTTP headers.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aad652c4290135a119273f290e76709a5" class="nameRef">HTTP_PACKET_RANGE</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Packet is a range boundary packet.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a410f580b04318940eaeca8bd5ab560bb" class="nameRef">HTTP_PACKET_SOLO</a>&nbsp;&nbsp;&nbsp;0x10</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Don&apos;t join this packet.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ad786c274cc31d7193adba110054555b7" class="nameRef">HTTP_POST</a>&nbsp;&nbsp;&nbsp;0x10</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Post method.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ad0e84459f11d4b8762fa7c5adc775602" class="nameRef">HTTP_PUT</a>&nbsp;&nbsp;&nbsp;0x20</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>PUT method.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a98a792245d44c81dd840ee7663abcfd8" class="nameRef">HTTP_QUEUE_ALL</a>&nbsp;&nbsp;&nbsp;0x10</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Queue has all the data there is and will be.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ab27cdea95f53f3273a745861eee907cf" class="nameRef">HTTP_QUEUE_EOF</a>&nbsp;&nbsp;&nbsp;0x40</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Queue at end of data.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a85a79f8178b74b26cb0246d8a12427c9" class="nameRef">HTTP_QUEUE_OPEN</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Queue&apos;s open routine has been called.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a59d9b82c1359a2c13ae4673708ddc22c" class="nameRef">HTTP_QUEUE_READY</a>&nbsp;&nbsp;&nbsp;0x100</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Handler stage ready routine called.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a8d8a128cd8c6220f4052641ab145fba7" class="nameRef">HTTP_QUEUE_RESERVICE</a>&nbsp;&nbsp;&nbsp;0x200</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Queue requires reservicing.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a4862a148e4a0dce7dd5b2679de34c683" class="nameRef">HTTP_QUEUE_RX</a>&nbsp;&nbsp;&nbsp;1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Receive (read from client) queue.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a671cd86b6059971d95c8bc41a1ddcc49" class="nameRef">HTTP_QUEUE_SERVICED</a>&nbsp;&nbsp;&nbsp;0x20</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Queue has been serviced at least once.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a57a4f694df3f8eb1935e505f44ae948a" class="nameRef">HTTP_QUEUE_STARTED</a>&nbsp;&nbsp;&nbsp;0x80</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Handler stage start routine called.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a540422d19200c556cafb35887b13fad4" class="nameRef">HTTP_QUEUE_SUSPENDED</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Queue&apos;s service routine is suspended due to flow control.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a4a52f5378152be620bf4aa560552912c" class="nameRef">HTTP_QUEUE_TX</a>&nbsp;&nbsp;&nbsp;0</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Send (transmit to client) queue.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1acd6efa58a46c2fe19174be8d10ca8b4b" class="nameRef">HTTP_RETRIES</a>&nbsp;&nbsp;&nbsp;3</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default number of retries for client requests.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a28cc2dcc807f7703ab2db9e7af645386" class="nameRef">HTTP_ROUTE_FREE</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Free Route.mdata back to malloc when route is freed.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a45ad0f540886f823fc7a004e6a58c5f3" class="nameRef">HTTP_ROUTE_FREE_PATTERN</a>&nbsp;&nbsp;&nbsp;0x4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Free Route.patternCompiled back to malloc when route is freed.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ad1ac684311644b97c3715a4a023230a9" class="nameRef">HTTP_ROUTE_GZIP</a>&nbsp;&nbsp;&nbsp;0x1000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Support gzipped content on this route.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a30075653213e46ab54ed8a2c0ce6ccda" class="nameRef">HTTP_ROUTE_NOT</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Negate the route pattern test result.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aa16aa098e2e087067c2270d757b6632b" class="nameRef">HTTP_ROUTE_OK</a>&nbsp;&nbsp;&nbsp;0</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The route matches the request.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a40ce809b50d7de9ab5c55a9cb3f4a39e" class="nameRef">HTTP_ROUTE_PUT_DELETE_METHODS</a>&nbsp;&nbsp;&nbsp;0x4000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Support PUT|DELETE on this route.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a2f759fdacbcee530f455ef8dcd68058b" class="nameRef">HTTP_ROUTE_RAW</a>&nbsp;&nbsp;&nbsp;0x8</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Don&apos;t html encode the write data.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a955f04cf021a605954db80ea392c4831" class="nameRef">HTTP_ROUTE_REJECT</a>&nbsp;&nbsp;&nbsp;1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>The route does not match the request.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1acd6c5320fc75068c8ef5b6787d883e04" class="nameRef">HTTP_ROUTE_REROUTE</a>&nbsp;&nbsp;&nbsp;2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Request has been modified and must be re-routed.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a928afe9a84a77dcfdaf6c66fe817181d" class="nameRef">HTTP_ROUTE_STARTED</a>&nbsp;&nbsp;&nbsp;0x2000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Route initialized.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a0387b91cb9a28a0aa031dfec64f3e44b" class="nameRef">HTTP_ROUTE_TRACE_METHOD</a>&nbsp;&nbsp;&nbsp;0x8000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Enable the trace method for handlers supporting it.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a4ffd1fab3d18e9979519523a3aeab640" class="nameRef">HTTP_SCHEDULE_QUEUE</a>&nbsp;&nbsp;&nbsp;1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Schedule the queue for service.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aad136598f94d14f7eae59e8994b6b545" class="nameRef">HTTP_SERVER_SIDE</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Initialize the server-side support.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ac6c0bcff0a2419e6b4aa96425e13444a" class="nameRef">HTTP_SESSION_AUTHVER</a>&nbsp;&nbsp;&nbsp;&quot;_:VERSION:_&quot;</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Auth version number.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1afa015063559e8beaa3913b83b3dd8f31" class="nameRef">HTTP_SESSION_COOKIE</a>&nbsp;&nbsp;&nbsp;&quot;-http-session-&quot;</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Session cookie name.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a1cf4f68d5938635284573c13e4deee86" class="nameRef">HTTP_SESSION_USERNAME</a>&nbsp;&nbsp;&nbsp;&quot;_:USERNAME:_&quot;</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Username variable.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1adda5f4dff7a1f293e6e6038de7bee34d" class="nameRef">HTTP_STAGE_AUTO_DIR</a>&nbsp;&nbsp;&nbsp;0x10000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Want auto directory redirection.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ab6bbbe09b47f5f604c00c606a722e7d1" class="nameRef">HTTP_STAGE_CONNECTOR</a>&nbsp;&nbsp;&nbsp;0x1000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Stage is a connector.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aefe4a1a161e1b43fe87cb2c3588a1295" class="nameRef">HTTP_STAGE_FILTER</a>&nbsp;&nbsp;&nbsp;0x4000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Stage is a filter.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a0cab91f1bd2e24ec0706e1b5477270aa" class="nameRef">HTTP_STAGE_HANDLER</a>&nbsp;&nbsp;&nbsp;0x2000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Stage is a handler.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a2863c2fdfa09d59c9a81a3015e7db906" class="nameRef">HTTP_STAGE_MODULE</a>&nbsp;&nbsp;&nbsp;0x8000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Stage is a filter.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ac81e0ab6857fff5a95ed7769954faa39" class="nameRef">HTTP_STAGE_RX</a>&nbsp;&nbsp;&nbsp;0x40000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Stage to be used in the Rx direction.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a74cfd9dab993cf0acf789670e28dbe21" class="nameRef">HTTP_STAGE_TX</a>&nbsp;&nbsp;&nbsp;0x80000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Stage to be used in the Tx direction.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a32599b266edff5fd21b80d8ff853dc36" class="nameRef">HTTP_STAGE_UNLOADED</a>&nbsp;&nbsp;&nbsp;0x20000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Stage module library has been unloaded.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1af6fb8dc73e94e3fcb84f0dc7c1dd666b" class="nameRef">HTTP_STATE_BEGIN</a>&nbsp;&nbsp;&nbsp;1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Ready for a new request.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a7d75018fb437317cb86172702afae8b9" class="nameRef">HTTP_STATE_COMPLETE</a>&nbsp;&nbsp;&nbsp;9</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Request complete.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a65bbb186aaee29bb1a5f1dae86aaa968" class="nameRef">HTTP_STATE_CONNECTED</a>&nbsp;&nbsp;&nbsp;2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Connection received or made.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a48b437ca7b1aebbdc59500edeffa55eb" class="nameRef">HTTP_STATE_CONTENT</a>&nbsp;&nbsp;&nbsp;5</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Reading posted content.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a5b606444ccb086999f4f73464fe6ac10" class="nameRef">HTTP_STATE_FINALIZED</a>&nbsp;&nbsp;&nbsp;8</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Input received, request processed and response transmitted.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a9bd030b0d982cf5849e38d80f985ca5d" class="nameRef">HTTP_STATE_FIRST</a>&nbsp;&nbsp;&nbsp;3</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>First request line has been parsed.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1abdb87032cf39ece94fc641cb9e779a37" class="nameRef">HTTP_STATE_PARSED</a>&nbsp;&nbsp;&nbsp;4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Headers have been parsed, handler can start.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ad662a2aec49318e57c9498e057a5e33b" class="nameRef">HTTP_STATE_READY</a>&nbsp;&nbsp;&nbsp;6</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Handler ready - all body data received.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a01d1d35b4e50d2da3a468ff2656e740c" class="nameRef">HTTP_STATE_RUNNING</a>&nbsp;&nbsp;&nbsp;7</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Handler running.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a1f303aa406082d1f2234c9d14717e50c" class="nameRef">HTTP_TIMER_PERIOD</a>&nbsp;&nbsp;&nbsp;1000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>HttpTimer checks ever 1 second.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ad178c3ea9a8a0e1f74a0eb99ad5a59a6" class="nameRef">HTTP_TRACE</a>&nbsp;&nbsp;&nbsp;0x40</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>TRACE method.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a9c94d94c7709537c32b0f36cb144b43d" class="nameRef">HTTP_TRACE_BODY</a>&nbsp;&nbsp;&nbsp;3</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Body content.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a88fe23bf7df8c5dcdac4d18f06a117e8" class="nameRef">HTTP_TRACE_CONN</a>&nbsp;&nbsp;&nbsp;0</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>New connections.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1af779ef05bffbaa1ed53407d1455f26a8" class="nameRef">HTTP_TRACE_FIRST</a>&nbsp;&nbsp;&nbsp;1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>First line of header only.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a44ff1e780f7d44f508af34103121fd84" class="nameRef">HTTP_TRACE_HEADER</a>&nbsp;&nbsp;&nbsp;2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Header.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a3c4a4138bf2fe4f9398e348531e84bfc" class="nameRef">HTTP_TRACE_LIMITS</a>&nbsp;&nbsp;&nbsp;4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Request and connection count limits.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a8da21ba1c0730e24a4c67ba56bc26bad" class="nameRef">HTTP_TRACE_MAX_DIR</a>&nbsp;&nbsp;&nbsp;2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Trace transmission.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1af6207c39543ee2f1abbd2efb8f61cba4" class="nameRef">HTTP_TRACE_RX</a>&nbsp;&nbsp;&nbsp;0</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Trace reception.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ab489828cf34806dbdfc8e65211f3af2b" class="nameRef">HTTP_TRACE_TIME</a>&nbsp;&nbsp;&nbsp;5</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Instrument http pipeline.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a73a80c0fd24847cf0dd508101d6df439" class="nameRef">HTTP_TRACE_TX</a>&nbsp;&nbsp;&nbsp;1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Trace transmission.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a8bb4e689a631a70c200f36ad4caf180b" class="nameRef">HTTP_TX_HEADERS_CREATED</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Response headers have been created.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1abdc2a79e0de4ebdf4ef05a0aa12ae66b" class="nameRef">HTTP_TX_MATCHED</a>&nbsp;&nbsp;&nbsp;0x20</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Handler match routine run.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1af13c71d846367cd5ee0b8b8847cff8c8" class="nameRef">HTTP_TX_NO_BODY</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>No transmission body, only send headers.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a19ec7d4ebdf3d3ece2cb5a5e236d4ee4" class="nameRef">HTTP_TX_NO_LENGTH</a>&nbsp;&nbsp;&nbsp;0x10</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Don&apos;t emit a content length (used for TRACE).</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a7f58f64782fe160d948e787e23b7e05a" class="nameRef">HTTP_TX_SENDFILE</a>&nbsp;&nbsp;&nbsp;0x4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Relay output via Send connector.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a34867373af51bddd8e9d1b26ee2dc84e" class="nameRef">HTTP_TX_USE_OWN_HEADERS</a>&nbsp;&nbsp;&nbsp;0x8</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Skip adding default headers.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a223a4e30ad20848a3deba62eb3ef07f4" class="nameRef">HTTP_UTILITY</a>&nbsp;&nbsp;&nbsp;0x4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Http engine for utilities (esp).</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a14000338828cdc8af171e86178d14115" class="nameRef">HTTP_VALIDATE_CLOSE_CONN</a>&nbsp;&nbsp;&nbsp;2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Close a connection.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a88db5a25f360c16b3b4dda0100a545ac" class="nameRef">HTTP_VALIDATE_CLOSE_PROCESS</a>&nbsp;&nbsp;&nbsp;6</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Close a CGI process.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a58e7868790b23a28cfc4c6bb65683aeb" class="nameRef">HTTP_VALIDATE_CLOSE_REQUEST</a>&nbsp;&nbsp;&nbsp;4</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Close a request.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ac0ba639e7b65b300aca84c1856bef0c2" class="nameRef">HTTP_VALIDATE_OPEN_CONN</a>&nbsp;&nbsp;&nbsp;1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Open a new connection.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a52d76b70dc40f20c791b0132bb4fbfd6" class="nameRef">HTTP_VALIDATE_OPEN_PROCESS</a>&nbsp;&nbsp;&nbsp;5</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Open a new CGI process.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a83c92d6f8cb4886dd629358d1cf2b9e1" class="nameRef">HTTP_VALIDATE_OPEN_REQUEST</a>&nbsp;&nbsp;&nbsp;3</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Open a new request.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a2d7f585a9fdca9b08e3fd35ce78b5b05" class="nameRef">WS_MSG_BINARY</a>&nbsp;&nbsp;&nbsp;0x2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>httpSendBlock type for binary messages.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a186dc650d758ef9f0ee64a85e7cc8af4" class="nameRef">WS_MSG_CLOSE</a>&nbsp;&nbsp;&nbsp;0x8</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>httpSendBlock type for close message.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a23fc3a8fd718e9b8266fc6a76d2a154a" class="nameRef">WS_MSG_CONT</a>&nbsp;&nbsp;&nbsp;0x0</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Continuation of WebSocket message.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ab855bddef81f4d62e351067a93acfa06" class="nameRef">WS_MSG_CONTROL</a>&nbsp;&nbsp;&nbsp;0x8</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Start of control messages.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a1563322ac90329ac3f40a06de988ae36" class="nameRef">WS_MSG_MAX</a>&nbsp;&nbsp;&nbsp;0xB</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Max message type for httpSendBlock.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a6f1a33baf9e0cae8bcb9d4783497eb23" class="nameRef">WS_MSG_PING</a>&nbsp;&nbsp;&nbsp;0x9</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>httpSendBlock type for ping messages.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1aacf0d8962c712fd88a78245d2606838c" class="nameRef">WS_MSG_PONG</a>&nbsp;&nbsp;&nbsp;0xA</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>httpSendBlock type for pong messages.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a9436cb91a2db55a58d85d0ecb340b5d5" class="nameRef">WS_MSG_TEXT</a>&nbsp;&nbsp;&nbsp;0x1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>httpSendBlock type for text messages.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a02363560e73ebd3d01c09902d2290c4d" class="nameRef">WS_STATE_CLOSED</a>&nbsp;&nbsp;&nbsp;3</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>WebSocket is closed.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a0463873293d20536a4fa2445af3ca7e9" class="nameRef">WS_STATE_CLOSING</a>&nbsp;&nbsp;&nbsp;2</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>WebSocket is closing.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a2e0dc474d59b4f6362baeb9c3f556523" class="nameRef">WS_STATE_CONNECTING</a>&nbsp;&nbsp;&nbsp;0</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>WebSocket connection is being established.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a2fe743eb09e44700deb9f6bc1bc5e484" class="nameRef">WS_STATE_OPEN</a>&nbsp;&nbsp;&nbsp;1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>WebSocket handsake is complete and ready for communications.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1acb030881bbbeb9c19a3856761f814d7c" class="nameRef">WS_STATUS_COMMS_ERROR</a>&nbsp;&nbsp;&nbsp;1006</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>TCP/IP communications error.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ac954aed2921e88e5f201b9572bb5e4b5" class="nameRef">WS_STATUS_FRAME_TOO_LARGE</a>&nbsp;&nbsp;&nbsp;1004</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Message frame is too large.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ae98979bd33d2d07e78dbbd50e5c4ae5f" class="nameRef">WS_STATUS_GOING_AWAY</a>&nbsp;&nbsp;&nbsp;1001</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Endpoint is going away.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a2ee23d675a50ec7ee63187c28dd488ed" class="nameRef">WS_STATUS_INTERNAL_ERROR</a>&nbsp;&nbsp;&nbsp;1011</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Server terminating due to an internal error.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a2de7d7fd428151413fb71f82f13c039b" class="nameRef">WS_STATUS_INVALID_UTF8</a>&nbsp;&nbsp;&nbsp;1007</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Text message has invalid UTF-8.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a251fe22f34dcff94070116f479350760" class="nameRef">WS_STATUS_MAX</a>&nbsp;&nbsp;&nbsp;5000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Maximum error status (less one).</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a7560c62c5427572d179d5b4b229594c1" class="nameRef">WS_STATUS_MESSAGE_TOO_LARGE</a>&nbsp;&nbsp;&nbsp;1009</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Message is too large.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a6969719796c0162edbf061fea625ab50" class="nameRef">WS_STATUS_MISSING_EXTENSION</a>&nbsp;&nbsp;&nbsp;1010</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Unsupported WebSockets extension.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a8b6d7a5967332ae48ef8b128f5f6040e" class="nameRef">WS_STATUS_NO_STATUS</a>&nbsp;&nbsp;&nbsp;1005</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>No status was received from the peer in closing.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ab6e3b70a3b4c05b606253bcd0df39d1a" class="nameRef">WS_STATUS_OK</a>&nbsp;&nbsp;&nbsp;1000</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Normal closure.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a9e0caa1e1cc7be6bc03ecb7d7ccedb53" class="nameRef">WS_STATUS_POLICY_VIOLATION</a>&nbsp;&nbsp;&nbsp;1008</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Application level policy violation.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ad90fcc81c6f064d2745fc70752eebdc2" class="nameRef">WS_STATUS_PROTOCOL_ERROR</a>&nbsp;&nbsp;&nbsp;1002</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>WebSockets protocol error.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1ae9da534c8c1af898e510b4573efbd353" class="nameRef">WS_STATUS_TLS_ERROR</a>&nbsp;&nbsp;&nbsp;1015</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>TLS handshake error.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#http_8h_1a68e26444d14de550a69b294150f4903b" class="nameRef">WS_STATUS_UNSUPPORTED_TYPE</a>&nbsp;&nbsp;&nbsp;1003</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Unsupported message data type.</td></tr>
</table>
<h1>Http</h1>
<a name="group___http"></a>
<div class="api">
<div class="prototype">Http</div>
<div class="apiDetail">
<p>Http service object.</p>
<dl><dt><b>Description</b>:</dt><dd>The Http service is managed by a single service object.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">struct HttpStage *</td><td><td>actionHandler</td><td>
Action handler.
</td>
<tr><td class="param">int</td><td><td>activeProcesses</td><td>
Count of active external processes.
</td>
<tr><td class="param">int</td><td><td>activeSessions</td><td>
Count of active sessions.
</td>
<tr><td class="param">int</td><td><td>activeVMs</td><td>
Number of ejs VMs.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>authStores</td><td>
Available password stores.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>authTypes</td><td>
Available authentication protocol types.
</td>
<tr><td class="param">MprTime</td><td><td>booted</td><td>
Time the server started.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>cacheFilter</td><td>
Cache filter.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>cacheHandler</td><td>
Cache filter.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>cgiConnector</td><td>
CGI connector.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>cgiHandler</td><td>
CGI handler.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>chunkFilter</td><td>
Chunked transfer encoding filter.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>clientHandler</td><td>
Client-side handler (dummy).
</td>
<tr><td class="param">struct HttpLimits *</td><td><td>clientLimits</td><td>
Client resource limits.
</td>
<tr><td class="param">struct HttpRoute *</td><td><td>clientRoute</td><td>
Default route for clients.
</td>
<tr><td class="param">MprList *</td><td><td>connections</td><td>
Currently open connection requests.
</td>
<tr><td class="param">void *</td><td><td>context</td><td>
Embedding context.
</td>
<tr><td class="param">char *</td><td><td>currentDate</td><td>
Date string for HTTP response headers.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" external="mpr.dtags">MprTicks</a></td><td><td>currentTime</td><td>
When currentDate was last calculated (ticks).
</td>
<tr><td class="param">char *</td><td><td>defaultClientHost</td><td>
Default ip address.
</td>
<tr><td class="param">int</td><td><td>defaultClientPort</td><td>
Default port.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>dirHandler</td><td>
Directory listing handler.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>egiHandler</td><td>
Embedded Gateway Interface (EGI) handler.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>ejsHandler</td><td>
Ejscript Web Framework handler.
</td>
<tr><td class="param">MprList *</td><td><td>endpoints</td><td>
Currently configured listening endpoints.
</td>
<tr><td class="param"><a class="ref" href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d">HttpEnvCallback</a></td><td><td>envCallback</td><td>
SetEnv callback.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>espHandler</td><td>
ESP Web Framework handler.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>fileHandler</td><td>
Static file handler.
</td>
<tr><td class="param">int</td><td><td>flags</td><td>
Open flags.
</td>
<tr><td class="param"><a class="ref" href="#group___mpr_cmd_1gaa20a5cafff87c96ba20526367622c885" external="mpr.dtags">MprForkCallback</a></td><td><td>forkCallback</td><td>
Callback in child after fork().
</td>
<tr><td class="param">MprList *</td><td><td>hosts</td><td>
List of host objects.
</td>
<tr><td class="param"><a class="ref" href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3">HttpListenCallback</a></td><td><td>listenCallback</td><td>
Invoked when creating listeners.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>netConnector</td><td>
Default network connector.
</td>
<tr><td class="param">int</td><td><td>nextAuth</td><td>
Auth object version vector.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" external="mpr.dtags">MprTicks</a></td><td><td>now</td><td>
When was the currentDate last computed.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>passHandler</td><td>
Pass through handler.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>phpHandler</td><td>
PHP through handler.
</td>
<tr><td class="param">char *</td><td><td>protocol</td><td>
HTTP/1.0 or HTTP/1.1.
</td>
<tr><td class="param">char *</td><td><td>proxyHost</td><td>
Proxy ip address.
</td>
<tr><td class="param">int</td><td><td>proxyPort</td><td>
Proxy port.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>rangeFilter</td><td>
Ranged requests filter.
</td>
<tr><td class="param"><a class="ref" href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8">HttpRedirectCallback</a></td><td><td>redirectCallback</td><td>
Redirect callback.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>routeConditions</td><td>
Http route condition functions.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>routeTargets</td><td>
Http route target functions.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>routeUpdates</td><td>
Http route update functions.
</td>
<tr><td class="param">char *</td><td><td>secret</td><td>
Random bytes for authentication.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>sendConnector</td><td>
Optimized sendfile connector.
</td>
<tr><td class="param">struct HttpLimits *</td><td><td>serverLimits</td><td>
Server resource limits.
</td>
<tr><td class="param">MprCache *</td><td><td>sessionCache</td><td>
Session state cache.
</td>
<tr><td class="param">char *</td><td><td>software</td><td>
Software name and version.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>stages</td><td>
Possible stages in connection pipelines.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>statusCodes</td><td>
Http status codes.
</td>
<tr><td class="param">MprEvent *</td><td><td>timer</td><td>
Admin service timer.
</td>
<tr><td class="param">MprEvent *</td><td><td>timestamp</td><td>
Timestamp timer.
</td>
<tr><td class="param">uint64</td><td><td>totalConnections</td><td>
Total connections accepted.
</td>
<tr><td class="param">uint64</td><td><td>totalRequests</td><td>
Total requests served.
</td>
<tr><td class="param">int</td><td><td>underAttack</td><td>
Under DOS attack.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>uploadFilter</td><td>
Upload filter.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>webSocketFilter</td><td>
WebSocket filter.
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_1ga0b81bb7e1e229c931533804c3bab6ed3"></a>
<div class="api">
<div class="prototype">
void
httpAddOption
(<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
</div>
<div class="apiDetail">
<p>Add an option to the options table.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">options</td><td>Option table returned from httpGetOptions.</td>
<tr><td class="param">field</td><td>Field key name.</td>
<tr><td class="param">value</td><td>Value to use for the field.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
</div>
</div>
<a name="group___http_1ga26dea264af06335774c8abc9fbe7c44f"></a>
<div class="api">
<div class="prototype">
<a href="#group___http" class="ref">Http</a> *
httpCreate
(int flags)
</div>
<div class="apiDetail">
<p>Create a Http service object.</p>
<dl><dt><b>Description</b>:</dt><dd>Create a http service object. One http service object should be created per application.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">flags</td><td>Set to zero to initialize bo Initialize the client-side support only.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The http service object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
</div>
</div>
<a name="group___http_1ga6daf4768a6774bccd5fe172e54eda049"></a>
<div class="api">
<div class="prototype">
int
httpCreateSecret
(<a href="#group___http" class="ref">Http</a> *http)
</div>
<div class="apiDetail">
<p>Create the Http secret data for crypto.</p>
<dl><dt><b>Description</b>:</dt><dd>Create http secret data that is used to seed SSL-based communications.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http service object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
</div>
</div>
<a name="group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e"></a>
<div class="api">
<div class="prototype">
void
httpDestroy
(<a href="#group___http" class="ref">Http</a> *http)
</div>
<div class="apiDetail">
<p>Destroy the Http service object.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http service object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
</div>
</div>
<a name="group___http_1ga3cc41b779426b19d2140ab24810fadb9"></a>
<div class="api">
<div class="prototype">
void *
httpGetContext
(<a href="#group___http" class="ref">Http</a> *http)
</div>
<div class="apiDetail">
<p>Get the http context object.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http service object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The http context object defined via httpSetContext.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
</div>
</div>
<a name="group___http_1ga27b90151605da08a154b87961e2a9e60"></a>
<div class="api">
<div class="prototype">
char *
httpGetDateString
(<a href="mprBare.html#group___mpr_path" class="ref">MprPath</a> *sbuf)
</div>
<div class="apiDetail">
<p>Get the time as an ISO date string.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">sbuf</td><td>Optional path buffer. If supplied, the modified time of the path is used. If NULL, then the current time is used.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>RFC822 formatted date string.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
</div>
</div>
<a name="group___http_1gab1986500e6a2ecaf280670720e519d7b"></a>
<div class="api">
<div class="prototype">
void *
httpGetOption
(<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *defaultValue)
</div>
<div class="apiDetail">
<p>Extract a field value from an option string.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">options</td><td>Option string of the form: &quot;field=&apos;value&apos; field=&apos;value&apos;...&quot;.</td>
<tr><td class="param">field</td><td>Field key name.</td>
<tr><td class="param">defaultValue</td><td>Value to use if &quot;field&quot; is not found in options.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Option value.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
</div>
</div>
<a name="group___http_1gaa87e80de01ebf27a74bb447dfc011867"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *
httpGetOptionHash
(<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field)
</div>
<div class="apiDetail">
<p>Get an option value that is itself an object (hash).</p>
<dl><dt><b>Description</b>:</dt><dd>This returns an option value that is an instance of <a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a>. When deserializing a JSON option string which contains multiple levels, this routine can be used to extract lower option container values.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">options</td><td>Options object to examine.</td>
<tr><td class="param">field</td><td>Property to return.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>An <a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> instance for the given field. This will contain option sub-properties.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
</div>
</div>
<a name="group___http_1ga4609378f83c826cf9fd749e454b2fb65"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *
httpGetOptions
(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *options)
</div>
<div class="apiDetail">
<p>Convert an options string into an options table.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">options</td><td>Option string of the form: &quot;{field:&apos;value&apos;, field:&apos;value&apos;}&quot; This is a sub-set of the JSON syntax. Arrays are not supported.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Options table.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
</div>
</div>
<a name="group___http_1ga8300fb76d2cf94a5cb2a61c04da11312"></a>
<div class="api">
<div class="prototype">
void
httpInsertOption
(<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
</div>
<div class="apiDetail">
<p>Add an option to the options table.</p>
<dl><dt><b>Description</b>:</dt><dd>If the field already exists, the added value is inserted prior to the existing value.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">options</td><td>Option table returned from httpGetOptions.</td>
<tr><td class="param">field</td><td>Field key name.</td>
<tr><td class="param">value</td><td>Value to use for the field.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
</div>
</div>
<a name="group___http_1ga1d74c518c6f7e585954dda94f3043a21"></a>
<div class="api">
<div class="prototype">
struct HttpEndpoint *
HttpEndpoint* httpLookupEndpoint
(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ip, int port)
</div>
<div class="apiDetail">
<p>Lookup a listening endpoint.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http object created via <a class="ref" href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f">httpCreate</a></td>
<tr><td class="param">ip</td><td>Listening IP address to look for.</td>
<tr><td class="param">port</td><td>Listening port number.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>HttpEndpoint object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
</div>
</div>
<a name="group___http_1ga6d402e9d1748650913482396ace16b27"></a>
<div class="api">
<div class="prototype">
struct HttpHost *
HttpHost* httpLookupHost
(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
</div>
<div class="apiDetail">
<p>Lookup a host by name.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http object created via <a class="ref" href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f">httpCreate</a></td>
<tr><td class="param">name</td><td>The name of the host to find.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The corresponding host object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
</div>
</div>
<a name="group___http_1ga80762b506890fb154336ceba54be6e7f"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
httpLookupStatus
(<a href="#group___http" class="ref">Http</a> *http, int status)
</div>
<div class="apiDetail">
<p>Lookup a Http status code.</p>
<dl><dt><b>Description</b>:</dt><dd>Lookup the code and return the corresponding text message briefly expaining the status.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http object created via <a class="ref" href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f">httpCreate</a></td>
<tr><td class="param">status</td><td>Http status code.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Text message corresponding to the status code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
</div>
</div>
<a name="group___http_1ga98ac288de46fac02211b41daed515273"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpOption
(<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, int useDefault)
</div>
<div class="apiDetail">
<p>Test a field value from an option string.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">options</td><td>Option string of the form: &quot;field=&apos;value&apos; field=&apos;value&apos;...&quot;.</td>
<tr><td class="param">field</td><td>Field key name.</td>
<tr><td class="param">value</td><td>Test if the field is set to this value.</td>
<tr><td class="param">useDefault</td><td>If true and &quot;field&quot; is not found in options, return true.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Allocated value string.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
</div>
</div>
<a name="group___http_1ga19ecb294244c6f53755fe124bc399cfc"></a>
<div class="api">
<div class="prototype">
void
httpRemoveOption
(<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field)
</div>
<div class="apiDetail">
<p>Remove an option.</p>
<dl><dt><b>Description</b>:</dt><dd>Remove a property from an options hash.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">options</td><td>Options table returned from httpGetOptions.</td>
<tr><td class="param">field</td><td>Property field to remove.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
</div>
</div>
<a name="group___http_1ga1b68c24657b6564346e47d0e7521790a"></a>
<div class="api">
<div class="prototype">
void
httpSetOption
(<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
</div>
<div class="apiDetail">
<p>Set an option.</p>
<dl><dt><b>Description</b>:</dt><dd>Set a property in an options hash.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">options</td><td>Options table returned from httpGetOptions.</td>
<tr><td class="param">field</td><td>Property field to set.</td>
<tr><td class="param">value</td><td>Property value to use.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
</div>
</div>
<a name="group___http_1ga7c0a123b785f897d3d3cc5cebcc971db"></a>
<div class="api">
<div class="prototype">
void
httpSetProxy
(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *host, int port)
</div>
<div class="apiDetail">
<p>Define a Http proxy host to use for all client connect requests.</p>
<dl><dt><b>Description</b>:</dt><dd>Define a http proxy host to communicate via when accessing the net.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http object created via <a class="ref" href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f">httpCreate</a></td>
<tr><td class="param">host</td><td>Proxy host name or IP address.</td>
<tr><td class="param">port</td><td>Proxy host port number.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga74dbe19ccb82f86a72b42944906abd68" class="ref">httpSetSoftware</a></dd></dl>
</div>
</div>
<a name="group___http_1ga74dbe19ccb82f86a72b42944906abd68"></a>
<div class="api">
<div class="prototype">
void
httpSetSoftware
(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *description)
</div>
<div class="apiDetail">
<p>Set the software description.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http object created via <a class="ref" href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f">httpCreate</a></td>
<tr><td class="param">description</td><td>String describing the Http software. By default, this is set to HTTP_NAME.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http" class="ref">Http</a>, <a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f" class="ref">httpCreate</a>, <a href="#group___http_1ga6daf4768a6774bccd5fe172e54eda049" class="ref">httpCreateSecret</a>, <a href="#group___http_1ga9df88d0ef0b9493ddcd78c2c2e0df18e" class="ref">httpDestroy</a>, <a href="#group___http_1ga3cc41b779426b19d2140ab24810fadb9" class="ref">httpGetContext</a>, <a href="#group___http_1ga27b90151605da08a154b87961e2a9e60" class="ref">httpGetDateString</a>, <a href="#group___http_1ga1d74c518c6f7e585954dda94f3043a21" class="ref">httpLookupEndpoint</a>, <a href="#group___http_1ga80762b506890fb154336ceba54be6e7f" class="ref">httpLookupStatus</a>, <a href="#group___http_conn_1ga0d819593e26ecd9c011553fc00158435" class="ref">httpSetContext</a>, <a href="#group___http_conn_1ga4e9c864aef59a820497577657d1364ba" class="ref">httpSetDefaultClientHost</a>, <a href="#group___http_conn_1gae06679e424c64e4c663cf5237733b59c" class="ref">httpSetDefaultClientPort</a>, <a href="#group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6" class="ref">httpSetForkCallback</a>, <a href="#group___http_1ga7c0a123b785f897d3d3cc5cebcc971db" class="ref">httpSetProxy</a></dd></dl>
</div>
</div>
<h1>HttpAuth</h1>
<a name="group___http_auth"></a>
<div class="api">
<div class="prototype">HttpAuth</div>
<div class="apiDetail">
<p>Authorization.</p>
<dl><dt><b>Description</b>:</dt><dd>HttpAuth is the foundation authorization object and is used by HttpRoute. It stores the authorization configuration information required to determine if a client request should be permitted access to a given resource.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>allow</td><td>
Clients to allow.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>deny</td><td>
Clients to deny.
</td>
<tr><td class="param">int</td><td><td>flags</td><td>
Authorization flags.
</td>
<tr><td class="param">char *</td><td><td>loggedIn</td><td>
Target URI after logging in.
</td>
<tr><td class="param">char *</td><td><td>loginPage</td><td>
Web page for user login for &apos;post&apos; type.
</td>
<tr><td class="param">struct HttpAuth *</td><td><td>parent</td><td>
Parent auth.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>permittedUsers</td><td>
User name for access.
</td>
<tr><td class="param">char *</td><td><td>qop</td><td>
Quality of service.
</td>
<tr><td class="param">char *</td><td><td>realm</td><td>
Realm of access.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>requiredAbilities</td><td>
Set of required abilities (all are required).
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>roles</td><td>
Hash of roles.
</td>
<tr><td class="param"><a class="ref" href="#struct_http_auth_store">HttpAuthStore</a> *</td><td><td>store</td><td>
Authorization password backend (system|file|custom).
</td>
<tr><td class="param"><a class="ref" href="#struct_http_auth_type">HttpAuthType</a> *</td><td><td>type</td><td>
Authorization protocol type (basic|digest|form|custom).
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>users</td><td>
Hash of users.
</td>
<tr><td class="param">int</td><td><td>version</td><td>
Inherited from parent and incremented on changes.
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85"></a>
<div class="api">
<div class="prototype">
int
httpAddAuthStore
(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a> verifyUser)
</div>
<div class="apiDetail">
<p>Add an authorization store for password validation.</p>
The pre-supplied types are &apos;system&apos; and &apos;file&apos;
<dl><dt><b>Description</b>:</dt><dd>This creates an AuthType object with the defined name and callbacks.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http service object.</td>
<tr><td class="param">name</td><td>Unique authorization type name.</td>
<tr><td class="param">verifyUser</td><td>Callback to verify the username and password contained in the HttpConn object passed to the callback.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d"></a>
<div class="api">
<div class="prototype">
int
httpAddAuthType
(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a> askLogin, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a> parse, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a> setAuth)
</div>
<div class="apiDetail">
<p>Add an authorization type.</p>
The pre-supplied types are &apos;basic&apos;, &apos;digest&apos; and &apos;post&apos;
<dl><dt><b>Description</b>:</dt><dd>This creates an AuthType object with the defined name and callbacks.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http service object.</td>
<tr><td class="param">name</td><td>Unique authorization type name.</td>
<tr><td class="param">askLogin</td><td>Callback to generate a client login response.</td>
<tr><td class="param">parse</td><td>Callback to parse the HTTP authentication headers.</td>
<tr><td class="param">setAuth</td><td>Callback to set the HTTP response authentication headers.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga817c321a931cb42635e628b60c99b67a"></a>
<div class="api">
<div class="prototype">
int
httpAddRole
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *role, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *abilities)
</div>
<div class="apiDetail">
<p>Add a role.</p>
<dl><dt><b>Description</b>:</dt><dd>This creates the role with given abilities. Ability words can also be other roles.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Auth object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
<tr><td class="param">role</td><td>Role name to add.</td>
<tr><td class="param">abilities</td><td>Space separated list of abilities.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga736054573c6dbbd1c834264155dab253"></a>
<div class="api">
<div class="prototype">
int
httpAddUser
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *user, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *password, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *abilities)
</div>
<div class="apiDetail">
<p>Add a user.</p>
<dl><dt><b>Description</b>:</dt><dd>This creates the user and adds the user to the authentication database.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Auth object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
<tr><td class="param">user</td><td>User name to add.</td>
<tr><td class="param">password</td><td>User password. The password should not be encrypted. The backend will encrypt as required.</td>
<tr><td class="param">abilities</td><td>Space separated list of abilities.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpCanUser
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Test if a user has the required abilities.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a> object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the user has all the required abilities.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3"></a>
<div class="api">
<div class="prototype">
void
httpComputeAllUserAbilities
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth)
</div>
<div class="apiDetail">
<p>Compute all the user abilities for a route using the given auth.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Auth object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b"></a>
<div class="api">
<div class="prototype">
void
httpComputeUserAbilities
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="#struct_http_user" class="ref">HttpUser</a> *user)
</div>
<div class="apiDetail">
<p>Compute the user abilities for a given user in a route using the given auth.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Auth object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
<tr><td class="param">user</td><td>User object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_auth" class="ref">HttpAuth</a> *
httpCreateAuth
()
</div>
<div class="apiDetail">
<p>Create an authentication object.</p>
<dl><dt>Returns:</dt><dd>An empty authentiction object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5"></a>
<div class="api">
<div class="prototype">
<a href="#struct_http_role" class="ref">HttpRole</a> *
httpCreateRole
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *abilities)
</div>
<div class="apiDetail">
<p>Create a new role.</p>
<dl><dt><b>Description</b>:</dt><dd>The role is not added to the authentication database.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Auth object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
<tr><td class="param">name</td><td>Role name.</td>
<tr><td class="param">abilities</td><td>Space separated list of abilities.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270"></a>
<div class="api">
<div class="prototype">
<a href="#struct_http_user" class="ref">HttpUser</a> *
httpCreateUser
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *password, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *abilities)
</div>
<div class="apiDetail">
<p>Create a new user.</p>
<dl><dt><b>Description</b>:</dt><dd>The user is not added to the authentication database.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Auth object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
<tr><td class="param">name</td><td>User name.</td>
<tr><td class="param">password</td><td>User password. The password should not be encrypted. The backend will encrypt as required.</td>
<tr><td class="param">abilities</td><td>Space separated list of abilities.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga0858b254138c27234d8ab0fccba459ad"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpIsAuthenticated
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Test if the user is authenticated.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the username and password have been authenticated and the user has the abilities required to access the requested resource document.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpLogin
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *username, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *password)
</div>
<div class="apiDetail">
<p>Log the user in.</p>
<dl><dt><b>Description</b>:</dt><dd>This will verify the supplied username and password. If the user is successfully logged in, the user identity will be stored in session state for fast authentication on subsequent requests. Note: this does not verify any user abilities.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
<tr><td class="param">username</td><td>User name to authenticate.</td>
<tr><td class="param">password</td><td>Password for the user.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the username and password have been authenticated.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1gac4f5313df3a2b59227b861b8be616319"></a>
<div class="api">
<div class="prototype">
int
httpRemoveRole
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *role)
</div>
<div class="apiDetail">
<p>Remove a role.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Auth object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
<tr><td class="param">role</td><td>Role name to remove.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga401567ded11d00adf55087b78ed45757"></a>
<div class="api">
<div class="prototype">
int
httpRemoveUser
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *user)
</div>
<div class="apiDetail">
<p>Remove a user.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Auth object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
<tr><td class="param">user</td><td>User name to remove.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388"></a>
<div class="api">
<div class="prototype">
void
httpSetAuthAllow
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ip)
</div>
<div class="apiDetail">
<p>Allow access by a client IP IP address.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Authorization object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
<tr><td class="param">ip</td><td>Client IP address to allow.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga1e3860c07cf1b53066349912ba604c11"></a>
<div class="api">
<div class="prototype">
void
httpSetAuthAnyValidUser
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth)
</div>
<div class="apiDetail">
<p>Allow access by any valid user.</p>
<dl><dt><b>Description</b>:</dt><dd>This configures the basic or digest authentication for the authorization object.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Authorization object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191"></a>
<div class="api">
<div class="prototype">
void
httpSetAuthAutoLogin
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> on)
</div>
<div class="apiDetail">
<p>Enable auto login.</p>
<dl><dt><b>Description</b>:</dt><dd>If auto-login is enabled, access will be granted to all resources.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Auth object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
<tr><td class="param">on</td><td>Set to true to enable auto login.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga46484036ce6079882051e393d7f2e655"></a>
<div class="api">
<div class="prototype">
void
httpSetAuthDeny
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ip)
</div>
<div class="apiDetail">
<p>Deny access by a client IP address.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Authorization object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
<tr><td class="param">ip</td><td>Client IP address to deny. This must be an IP address string.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a"></a>
<div class="api">
<div class="prototype">
void
httpSetAuthForm
(struct HttpRoute *parent, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *loginPage, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *loginService, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *logoutService, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *loggedIn)
</div>
<div class="apiDetail">
<p>Define the callbabcks for the &apos;post&apos; authentication type.</p>
<dl><dt><b>Description</b>:</dt><dd>This creates a new route for the login page.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">parent</td><td>Parent route from which to inherit when creating a route for the login page.</td>
<tr><td class="param">loginPage</td><td>Web page URI for the user to enter username and password.</td>
<tr><td class="param">loginService</td><td>URI to use for the internal login service. To use your own login URI, set to this the empty string.</td>
<tr><td class="param">logoutService</td><td>URI to use to log the user out. To use your won logout URI, set this to the empty string.</td>
<tr><td class="param">loggedIn</td><td>The client is redirected to this URI once logged in. Use a &quot;referrer:&quot; prefix to the URI to redirect the user to the referring URI before the loginPage. If the referrer cannot be determined, the base URI is utilized.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1gaca051ee0de660c150b2fe37572cb8526"></a>
<div class="api">
<div class="prototype">
void
httpSetAuthOrder
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, int order)
</div>
<div class="apiDetail">
<p>Set the auth allow/deny order.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Auth object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
<tr><td class="param">order</td><td>Set to HTTP_ALLOW_DENY to run allow checks before deny checks. Set to HTTP_DENY_ALLOW to run deny checks before allow.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga19171e8760e89aa482673959b3d60938"></a>
<div class="api">
<div class="prototype">
void
httpSetAuthPermittedUsers
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *users)
</div>
<div class="apiDetail">
<p>Define the set of permitted users.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Auth object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
<tr><td class="param">users</td><td>Space separated list of acceptable users.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5"></a>
<div class="api">
<div class="prototype">
void
httpSetAuthQop
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *qop)
</div>
<div class="apiDetail">
<p>Set the required quality of service for digest authentication.</p>
<dl><dt><b>Description</b>:</dt><dd>This configures the basic or digest authentication for the auth object.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Auth object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
<tr><td class="param">qop</td><td>Quality of service description.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1gaf068156faee2f2be74fe08455a715187"></a>
<div class="api">
<div class="prototype">
void
httpSetAuthRealm
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *realm)
</div>
<div class="apiDetail">
<p>Set the required realm for basic or digest authentication.</p>
<dl><dt><b>Description</b>:</dt><dd>This configures the authentication realm. The realm is displayed to the user in the browser login dialog box.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Auth object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
<tr><td class="param">realm</td><td>Authentication realm.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab"></a>
<div class="api">
<div class="prototype">
void
httpSetAuthRequiredAbilities
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *abilities)
</div>
<div class="apiDetail">
<p>Set the required abilities for access.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Auth object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
<tr><td class="param">abilities</td><td>Spaces separated list of all the required abilities.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga9edb29a658e66f66df80100308a1aa73"></a>
<div class="api">
<div class="prototype">
int
httpSetAuthStore
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *store)
</div>
<div class="apiDetail">
<p>Set the authentication password store to use.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Auth object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
<tr><td class="param">store</td><td>Password store to use. Select from: &apos;system&apos;, &apos;file&apos;.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377"></a>
<div class="api">
<div class="prototype">
int
httpSetAuthType
(<a href="#group___http_auth" class="ref">HttpAuth</a> *auth, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *proto, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *details)
</div>
<div class="apiDetail">
<p>Set the authentication protocol to use.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">auth</td><td>Auth object allocated by <a class="ref" href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07">httpCreateAuth</a></td>
<tr><td class="param">proto</td><td>Protocol name to use. Select from: &apos;basic&apos;, &apos;digest&apos;, &apos;form&apos;.</td>
<tr><td class="param">details</td><td>Extra protocol details.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a></dd></dl>
</div>
</div>
<h1>HttpCache</h1>
<a name="group___http_cache"></a>
<div class="api">
<div class="prototype">HttpCache</div>
<div class="apiDetail">
<p>Cache Control.</p>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_cache_1gad23f207942ba83542e4d995a3f765681" class="ref">httpAddCache</a>, <a href="#group___http_cache_1ga2fd7b63c7f3834cd41260a22983cd932" class="ref">httpUpdateCache</a></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param"><a class="ref" href="#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" external="mpr.dtags">MprTicks</a></td><td><td>clientLifespan</td><td>
Lifespan for client cached content.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>extensions</td><td>
Extensions to cache.
</td>
<tr><td class="param">int</td><td><td>flags</td><td>
Cache control flags.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>methods</td><td>
Methods to cache.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" external="mpr.dtags">MprTicks</a></td><td><td>serverLifespan</td><td>
Lifespan for server cached content.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>types</td><td>
MimeTypes to cache.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>uris</td><td>
URIs to cache.
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_cache_1gad23f207942ba83542e4d995a3f765681"></a>
<div class="api">
<div class="prototype">
void
httpAddCache
(struct HttpRoute *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *methods, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uris, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *extensions, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *types, <a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> clientLifespan, <a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> serverLifespan, int flags)
</div>
<div class="apiDetail">
<p>Add caching for response content.</p>
<dl><dt><b>Description</b>:</dt><dd>This call configures caching for request responses. Caching may be used for any HTTP method, though typically it is most useful for state-less GET requests. Output data may be uniquely cached for requests with different request parameters (query, post, and route parameters). <br/><br/>
When server-side caching is requested and manual-mode is not enabled, the request response will be automatically cached. Subsequent client requests will revalidate the cached content with the server. If the server-side cached content has not expired, a HTTP Not-Modified (304) response will be sent and the client will use its client-side cached content. This results in a very fast transaction with the client as no response data is sent. Server-side caching will cache both the response headers and content. <br/><br/>
If manual server-side caching is requested, the response will be automatically cached, but subsequent requests will require the handler to explicitly send cached content by calling <a class="ref" href="#group___http_cache_1ga59f76623bdccce81465d4a4246d9be87">httpWriteCached</a>. <br/><br/>
If client-side caching is requested, a &quot;Cache-Control&quot; Http header will be sent to the client with the caching &quot;max-age&quot; set to the lifespan argument value (converted to seconds). This causes the client to serve client-cached content and to not contact the server at all until the max-age expires. Alternatively, you can use <a class="ref" href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61">httpSetHeader</a> to explicitly set a "Cache-Control header. For your reference, here are some keywords that can be used in the Cache-Control Http header. <br/><br/>
&quot;max-age&quot; Maximum time in seconds the resource is considered fresh. &quot;s-maxage&quot; Maximum time in seconds the resource is considered fresh from a shared cache. &quot;public&quot; marks authenticated responses as cacheable. &quot;private&quot; shared caches may not store the response. &quot;no-cache&quot; cache must re-submit request for validation before using cached copy. &quot;no-store&quot; response may not be stored in a cache. &quot;must-revalidate&quot; forces clients to revalidate the request with the server. &quot;proxy-revalidate&quot; similar to must-revalidate except only for proxy caches. <br/><br/>
Use client-side caching for static content that will rarely change or for content for which using &quot;reload&quot; in the browser is an adequate solution to force a refresh. Use manual server-side caching for situations where you need to explicitly control when and how cached data is returned to the client. For most other situations, use server-side caching.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>HttpRoute object.</td>
<tr><td class="param">methods</td><td>List of methods for which caching should be enabled. Set to a comma or space separated list of method names. Method names can be any case. Set to null or &quot;*&quot; for all methods. Example: &quot;GET, POST&quot;.</td>
<tr><td class="param">uris</td><td>Set of URIs to cache. If the URI is set to &quot;*&quot; all URIs for that action are uniquely cached. If the request has POST data, the URI may include such post data in a sorted query format. E.g. {uri: /buy?item=scarf&amp;quantity=1}.</td>
<tr><td class="param">extensions</td><td>List of document extensions for which caching should be enabled. Set to a comma or space separated list of extensions. Extensions should not have a period prefix. Set to null or &quot;*&quot; for all extensions. Example: &quot;html, css, js&quot;.</td>
<tr><td class="param">types</td><td>List of document mime types for which caching should be enabled. Set to a comma or space separated list of types. The mime types are those that correspond to the document extension and NOT the content type defined by the handler serving the document. Set to null or &quot;*&quot; for all types. Example: &quot;image/gif, application/x-php&quot;.</td>
<tr><td class="param">clientLifespan</td><td>Lifespan of client cache items in milliseconds. If not set to positive integer, the lifespan will default to the route lifespan.</td>
<tr><td class="param">serverLifespan</td><td>Lifespan of server cache items in milliseconds. If not set to positive integer, the lifespan will default to the route lifespan.</td>
<tr><td class="param">flags</td><td>Cache control flags. Select HTTP_CACHE_MANUAL to enable manual mode. In manual mode, cached content will not be automatically sent. Use <a class="ref" href="#group___http_cache_1ga59f76623bdccce81465d4a4246d9be87">httpWriteCached</a> in the request handler to write previously cached content. <br/><br/>
Select HTTP_CACHE_CLIENT to enable client-side caching. In this mode a &quot;Cache-Control&quot; Http header will be sent to the client with the caching &quot;max-age&quot;. WARNING: the client will not send any request for this URI until the max-age timeout has expired. <br/><br/>
Select HTTP_CACHE_RESET to first reset existing caching configuration for this route. <br/><br/>
Select HTTP_CACHE_ALL, HTTP_CACHE_ONLY or HTTP_CACHE_UNIQUE to define the server-side caching mode. Only one of these three mode flags should be specified. <br/><br/>
If the HTTP_CACHE_ALL flag is set, the request params (query, post data, and route parameters) will be ignored and all requests for a given URI path will cache to the same cache record. <br/><br/>
Select HTTP_CACHE_UNIQUE to uniquely cache requests with different request parameters. The URIs specified in uris should not contain any request parameters. <br/><br/>
Select HTTP_CACHE_ONLY to cache only the exact URI with parameters specified in uris. The parameters must be in sorted www-urlencoded format. For example: /example.esp?hobby=sailing&amp;name=john.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_cache" class="ref">HttpCache</a>, <a href="#group___http_cache_1ga2fd7b63c7f3834cd41260a22983cd932" class="ref">httpUpdateCache</a></dd></dl>
</div>
</div>
<a name="group___http_cache_1ga2fd7b63c7f3834cd41260a22983cd932"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpUpdateCache
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *data, <a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> lifespan)
</div>
<div class="apiDetail">
<p>Update the cached content for a URI.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
<tr><td class="param">uri</td><td>The request URI for which to update the cache. If using the HTTP_CACHE_ONLY flag when configuring the cached item, then the URI should contain the request parameters in sorted www-urlencoded format.</td>
<tr><td class="param">data</td><td>Data to cache for the URI. If you wish to cache response headers, include those at the start of the data followed by an additional new line. For example: &quot;Content-Type: text/plain\n\nHello World\n&quot;.</td>
<tr><td class="param">lifespan</td><td>Lifespan in milliseconds for the cached content.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_cache" class="ref">HttpCache</a>, <a href="#group___http_cache_1gad23f207942ba83542e4d995a3f765681" class="ref">httpAddCache</a></dd></dl>
</div>
</div>
<a name="group___http_cache_1ga59f76623bdccce81465d4a4246d9be87"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpWriteCached
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Write the cached content for a URI to the client.</p>
<dl><dt><b>Description</b>:</dt><dd>This call explicitly writes cached content to the client. It is useful when the caching is configured in manual mode via the HTTP_CACHE_MANUAL flag to <a class="ref" href="#group___http_cache_1gad23f207942ba83542e4d995a3f765681">httpAddCache</a></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_cache" class="ref">HttpCache</a>, <a href="#group___http_cache_1gad23f207942ba83542e4d995a3f765681" class="ref">httpAddCache</a>, <a href="#group___http_cache_1ga2fd7b63c7f3834cd41260a22983cd932" class="ref">httpUpdateCache</a></dd></dl>
</div>
</div>
<h1>HttpConn</h1>
<a name="group___http_conn"></a>
<div class="api">
<div class="prototype">HttpConn</div>
<div class="apiDetail">
<p>Http Connections.</p>
<dl><dt><b>Description</b>:</dt><dd>The HttpConn object represents a TCP/IP connection to the client. A connection object is created for each socket connection initiated by the client. One HttpConn object may service many Http requests due to HTTP/1.1 keep-alive.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_c
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt><b>Description</b>:</dt><dd>The Action Handler provides a simple mechanism to bind &quot;C&quot; callback functions with URIs.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">int</td><td><td>async</td><td>
Connection is in async mode (non-blocking).
</td>
<tr><td class="param">void *</td><td><td>authData</td><td>
Authorization state data.
</td>
<tr><td class="param">int</td><td><td>authRequested</td><td>
Authorization requested based on user credentials.
</td>
<tr><td class="param">char *</td><td><td>authType</td><td>
Type of authentication: set to basic, digest, post or a custom name.
</td>
<tr><td class="param">char *</td><td><td>boundary</td><td>
File upload boundary.
</td>
<tr><td class="param">HttpQueue *</td><td><td>connectorq</td><td>
Connector write queue.
</td>
<tr><td class="param">int</td><td><td>connError</td><td>
A connection error has occurred.
</td>
<tr><td class="param">void *</td><td><td>context</td><td>
Embedding context (EjsRequest).
</td>
<tr><td class="param">struct HttpQueue *</td><td><td>currentq</td><td>
Current queue being serviced (just for GC).
</td>
<tr><td class="param">void *</td><td><td>data</td><td>
Custom data for request - must be a managed reference.
</td>
<tr><td class="param">MprDispatcher *</td><td><td>dispatcher</td><td>
Event dispatcher.
</td>
<tr><td class="param">void *</td><td><td>ejs</td><td>
Embedding VM.
</td>
<tr><td class="param">int</td><td><td>encoded</td><td>
True if the password is MD5(username:realm:password).
</td>
<tr><td class="param">struct HttpEndpoint *</td><td><td>endpoint</td><td>
Endpoint object (if set - indicates server-side).
</td>
<tr><td class="param">int</td><td><td>error</td><td>
A request error has occurred.
</td>
<tr><td class="param">char *</td><td><td>errorMsg</td><td>
Error message for the last request (if any).
</td>
<tr><td class="param">int</td><td><td>followRedirects</td><td>
Follow redirects for client requests.
</td>
<tr><td class="param">void *</td><td><td>grid</td><td>
Current request database grid for MVC apps.
</td>
<tr><td class="param"><a class="ref" href="#group___http_conn_1gaf11f6724913441eab0f9c8a6e139569e">HttpHeadersCallback</a></td><td><td>headersCallback</td><td>
Callback to fill headers.
</td>
<tr><td class="param">void *</td><td><td>headersCallbackArg</td><td>
Arg to fillHeaders.
</td>
<tr><td class="param">struct HttpHost *</td><td><td>host</td><td>
Host object (if relevant).
</td>
<tr><td class="param">Http *</td><td><td>http</td><td>
Http service object.
</td>
<tr><td class="param">int</td><td><td>http10</td><td>
Using legacy HTTP/1.0.
</td>
<tr><td class="param">HttpPacket *</td><td><td>input</td><td>
Header packet.
</td>
<tr><td class="param"><a class="ref" href="#group___http_conn_1ga90233a1163fa6772c60c86588b01e803">HttpIOCallback</a></td><td><td>ioCallback</td><td>
I/O event callback.
</td>
<tr><td class="param">char *</td><td><td>ip</td><td>
Remote client IP address.
</td>
<tr><td class="param">int</td><td><td>keepAliveCount</td><td>
Count of remaining Keep-Alive requests for this connection.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" external="mpr.dtags">MprTicks</a></td><td><td>lastActivity</td><td>
Last activity on the connection.
</td>
<tr><td class="param">HttpLimits *</td><td><td>limits</td><td>
Service limits.
</td>
<tr><td class="param">void *</td><td><td>mark</td><td>
Reference for GC marking.
</td>
<tr><td class="param">ssize</td><td><td>newData</td><td>
Length of new data last read into the input packet.
</td>
<tr><td class="param">MprDispatcher *</td><td><td>newDispatcher</td><td>
New dispatcher if using a worker thread.
</td>
<tr><td class="param"><a class="ref" href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb">HttpNotifier</a></td><td><td>notifier</td><td>
Connection Http state change notification callback.
</td>
<tr><td class="param">MprDispatcher *</td><td><td>oldDispatcher</td><td>
Original dispatcher if using a worker thread.
</td>
<tr><td class="param">char *</td><td><td>password</td><td>
Supplied password (may be encrypted depending on auth protocol).
</td>
<tr><td class="param">void *</td><td><td>pool</td><td>
Pool of VMs.
</td>
<tr><td class="param">int</td><td><td>port</td><td>
Remote port.
</td>
<tr><td class="param">char *</td><td><td>protocol</td><td>
HTTP protocol.
</td>
<tr><td class="param">char *</td><td><td>protocols</td><td>
Supported web socket protocols (clients).
</td>
<tr><td class="param">int</td><td><td>pumping</td><td>
Rre-entrancy prevention for <a class="ref" href="#group___http_rx_1gabec750f9be88c9321ffe026fdabf7b90">httpPumpRequest()</a>
</td>
<tr><td class="param">HttpQueue *</td><td><td>readq</td><td>
End of the read pipeline.
</td>
<tr><td class="param">void *</td><td><td>record</td><td>
Current request database record for MVC apps.
</td>
<tr><td class="param">int</td><td><td>retries</td><td>
Client request retries.
</td>
<tr><td class="param">struct HttpRx *</td><td><td>rx</td><td>
Rx object.
</td>
<tr><td class="param">int</td><td><td>secure</td><td>
Using https.
</td>
<tr><td class="param">int</td><td><td>seqno</td><td>
Unique connection sequence number.
</td>
<tr><td class="param">struct HttpQueue *</td><td><td>serviceq</td><td>
List of queues that require service for request pipeline.
</td>
<tr><td class="param">MprSocket *</td><td><td>sock</td><td>
Underlying socket handle.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" external="mpr.dtags">MprTicks</a></td><td><td>started</td><td>
When the connection started (ticks).
</td>
<tr><td class="param">uint64</td><td><td>startMark</td><td>
High resolution tick time of request.
</td>
<tr><td class="param">int</td><td><td>state</td><td>
Connection state.
</td>
<tr><td class="param">void *</td><td><td>staticData</td><td>
Custom data for request - must be an - unmanaged reference.
</td>
<tr><td class="param"><a class="ref" href="#group___http_conn_1ga742ae2f2bdc26e0c841da4f692ef25e6">HttpTimeoutCallback</a></td><td><td>timeoutCallback</td><td>
Request and inactivity timeout callback.
</td>
<tr><td class="param">MprEvent *</td><td><td>timeoutEvent</td><td>
Connection or request timeout event.
</td>
<tr><td class="param">HttpTrace</td><td><td>trace[2]</td><td>
Tracing for [rx|tx].
</td>
<tr><td class="param">struct HttpTx *</td><td><td>tx</td><td>
Tx object.
</td>
<tr><td class="param">int</td><td><td>upgraded</td><td>
Request protocol upgraded.
</td>
<tr><td class="param">struct <a class="ref" href="#struct_http_user">HttpUser</a> *</td><td><td>user</td><td>
Authorized User record for access checking.
</td>
<tr><td class="param">char *</td><td><td>username</td><td>
Supplied user name.
</td>
<tr><td class="param">int</td><td><td>worker</td><td>
Use worker.
</td>
<tr><td class="param">MprEvent *</td><td><td>workerEvent</td><td>
Event for running connection via a worker thread.
</td>
<tr><td class="param">HttpQueue *</td><td><td>writeq</td><td>
Start of the write pipeline.
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_conn_1ga5db87311f54d073407479bcee8f195b7"></a>
<div class="api">
<div class="prototype">
void
httpAfterEvent
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Do setup after an I/O event to receive future events.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" c
</div>
</div>
<a name="group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f"></a>
<div class="api">
<div class="prototype">
void
httpCallEvent
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int mask)
</div>
<div class="apiDetail">
<p>Call httpEvent with the given event mask.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">mask</td><td>Mask of events. MPR_READABLE | MPR_WRITABLE.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c"
</div>
</div>
<a name="group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f"></a>
<div class="api">
<div class="prototype">
void
httpCloseConn
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Close a connection.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c"
</div>
</div>
<a name="group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629"></a>
<div class="api">
<div class="prototype">
void
httpConnTimeout
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Signal a connection timeout on a connection.</p>
<dl><dt><b>Description</b>:</dt><dd>This call cancels a connections current request, disconnects the socket and issues an error to the error log. This call is normally invoked by the httpTimer which runs regularly to check for timed out requests. This call should not be made on another thread, but should be scheduled to run on the connection&apos;s dispatcher to avoid thread races.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" cl
</div>
</div>
<a name="group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_conn" class="ref">HttpConn</a> *
httpCreateConn
(<a href="#group___http" class="ref">Http</a> *http, struct HttpEndpoint *endpoint, <a href="mprBare.html#group___mpr_dispatcher" class="ref">MprDispatcher</a> *dispatcher)
</div>
<div class="apiDetail">
<p>Create a connection object.</p>
<dl><dt><b>Description</b>:</dt><dd>Most interactions with the Http library are via a connection object. It is used for server-side communications when responding to client requests and it is used to initiate outbound client requests.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http object created via <a class="ref" href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f">httpCreate</a></td>
<tr><td class="param">endpoint</td><td>Endpoint object owning the connection.</td>
<tr><td class="param">dispatcher</td><td>Disptacher to use for I/O events on the connection.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A new connection object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" c
</div>
</div>
<a name="group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66"></a>
<div class="api">
<div class="prototype">
void
httpCreateRxPipeline
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, struct HttpRoute *route)
</div>
<div class="apiDetail">
<p>Create the receive request pipeline.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">route</td><td>Route object controlling how the pipeline is configured for the request.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" class="
</div>
</div>
<a name="group___http_conn_1ga41b6211f9fc174ea4e70281363696722"></a>
<div class="api">
<div class="prototype">
void
httpCreateTxPipeline
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, struct HttpRoute *route)
</div>
<div class="apiDetail">
<p>Create the transmit request pipeline.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">route</td><td>Route object controlling how the pipeline is configured for the request.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" class="
</div>
</div>
<a name="group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9"></a>
<div class="api">
<div class="prototype">
void
httpDestroyConn
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Destroy the connection object.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" cl
</div>
</div>
<a name="group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37"></a>
<div class="api">
<div class="prototype">
void
httpDestroyPipeline
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Destroy the request pipeline.</p>
<dl><dt><b>Description</b>:</dt><dd>This is called at the conclusion of a request.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" class=
</div>
</div>
<a name="group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f"></a>
<div class="api">
<div class="prototype">
void
httpDiscardData
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int dir)
</div>
<div class="apiDetail">
<p>Discard buffered transmit pipeline data.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">dir</td><td>Queue direction. Either HTTP_QUEUE_TX or HTTP_QUEUE_RX.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" cl
</div>
</div>
<a name="group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b"></a>
<div class="api">
<div class="prototype">
void
httpDisconnect
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Disconnect the connection&apos;s socket.</p>
<dl><dt><b>Description</b>:</dt><dd>This call will close the socket and signal a connection error. Subsequent use of the connection socket will not be possible. This call should not be made on another thread, but should be scheduled to run on the connection&apos;s dispatcher to avoid thread races.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" c
</div>
</div>
<a name="group___http_conn_1ga4668c9f8a5bf6878b2d92b894f9c6029"></a>
<div class="api">
<div class="prototype">
void
httpEnableConnEvents
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Enable connection events.</p>
<dl><dt><b>Description</b>:</dt><dd>Connection events are automatically disabled upon receipt of an I/O event on a connection. This permits a connection to process the I/O without fear of interruption by another I/O event. At the completion of processing of the I/O request, the connection should be re-enabled via httpEnableConnEvents. This call is made for requests in <a class="ref" href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf">httpEvent</a></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0"></a>
<div class="api">
<div class="prototype">
void
httpEnableUpload
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Enable Multipart-Mime File Upload for this request.</p>
This will define a &quot;Content-Type: multipart/form-data...&quot; header and will create a mime content boundary for use to delimit the various upload content files and fields
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" cla
</div>
</div>
<a name="group___http_conn_1ga9f730354501b53a97b7678a91273a3be"></a>
<div class="api">
<div class="prototype">
void
httpError
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int status, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
</div>
<div class="apiDetail">
<p>Error handling for the connection.</p>
<dl><dt><b>Description</b>:</dt><dd>The httpError call is used to flag the current request as failed. If httpError is called multiple times, those calls are ignored and only the first call to httpError has effect. This call will discard all data in the output pipeline queues. If some data has already been written to the client the connection will be aborted so the client can get some indication that an error has occurred after the headers have been transmitted.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">status</td><td>Http status code. The status code can be ored with the flags HTTP_ABORT to immediately abort the connection or HTTP_CLOSE to close the connection at the completion of the request.</td>
<tr><td class="param">fmt</td><td>Printf style formatted string.</td>
<tr><td class="param">...</td><td>Arguments for fmt.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf
</div>
</div>
<a name="group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf"></a>
<div class="api">
<div class="prototype">
void
httpEvent
(struct HttpConn *conn, <a href="mprBare.html#group___mpr_event" class="ref">MprEvent</a> *event)
</div>
<div class="apiDetail">
<p>Http I/O event handler.</p>
Invoke when there is an I/O event on the connection. This is normally invoked automatically when I/O events are received
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">event</td><td>Event structure.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf
</div>
</div>
<a name="group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90"></a>
<div class="api">
<div class="prototype">
void
httpFinalizeConnector
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Finalize connector output sending the response.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" class="r
</div>
</div>
<a name="group___http_conn_1gaf9174526ff9a050731b6949351085ba9"></a>
<div class="api">
<div class="prototype">
int
httpGetAsync
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the async mode value for the connection.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the connection is in async mode.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c"
</div>
</div>
<a name="group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpGetChunkSize
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the preferred chunked size for transfer chunk encoding.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Chunk size. Returns &quot;zero&quot; if not yet defined.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" cla
</div>
</div>
<a name="group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d"></a>
<div class="api">
<div class="prototype">
void *
httpGetConnContext
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the connection context object.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The connection context object defined via httpSetConnContext.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" class
</div>
</div>
<a name="group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a"></a>
<div class="api">
<div class="prototype">
void *
httpGetConnHost
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the connection host object.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The connection host object defined via httpSetConnHost.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" cl
</div>
</div>
<a name="group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
httpGetError
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the error message associated with the last request.</p>
<dl><dt><b>Description</b>:</dt><dd>Error messages may be generated for internal or client side errors.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A error string. The caller must not free this reference.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c"
</div>
</div>
<a name="group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61"></a>
<div class="api">
<div class="prototype">
char *
httpGetExt
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get a URI extension.</p>
<dl><dt><b>Description</b>:</dt><dd>If the URI has no extension and the response content filename (HttpTx.filename) has been calculated, it will be tested for an extension.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The URI extension without the leading period.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3
</div>
</div>
<a name="group___http_conn_1gaa2099f58db09458014bab94511635438"></a>
<div class="api">
<div class="prototype">
int
httpGetKeepAliveCount
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the count of Keep-Alive requests that will be used for this connection object.</p>
<dl><dt><b>Description</b>:</dt><dd>Http Keep-Alive means that the TCP/IP connection is preserved accross multiple requests. This typically means much higher performance and better response. Http Keep-Alive is enabled by default for Http/1.1 (the default). Disable Keep-Alive when talking to old, broken HTTP servers.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The maximum count of Keep-Alive requests.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" class="r
</div>
</div>
<a name="group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpGetMoreOutput
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get more output data by invoking the writable callback.</p>
<dl><dt><b>Description</b>:</dt><dd>This optional handler callback is invoked when the service queue has room for more data.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the handler writable callback exists and can be invoked.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" clas
</div>
</div>
<a name="group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpGetWriteQueueCount
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the count of bytes buffered on the write queue.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The number of bytes buffered.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" class="re
</div>
</div>
<a name="group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0"></a>
<div class="api">
<div class="prototype">
void
httpMatchHost
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Match the HttpHost object that should serve this request.</p>
<dl><dt><b>Description</b>:</dt><dd>This sets the conn-&gt;host field to the appropriate host. If no suitable host can be found, <a class="ref" href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be">httpError</a> will be called and conn-&gt;error will be set.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c"
</div>
</div>
<a name="group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366"></a>
<div class="api">
<div class="prototype">
void
httpMemoryError
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Signal a memory allocation error.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" cl
</div>
</div>
<a name="group___http_conn_1ga7b3f62c070bd50c8fe347529d619be99"></a>
<div class="api">
<div class="prototype">
void
httpNotify
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int event, int arg)
</div>
<div class="apiDetail">
<p>Inform notifiers of a connection event or state change.</p>
<dl><dt><b>Description</b>:</dt><dd>This is an internal API and should not be called by handler or user code.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">event</td><td>Event to issue.</td>
<tr><td class="param">arg</td><td>Argument to event.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289"></a>
<div class="api">
<div class="prototype">
void
httpPrepClientConn
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> keepHeaders)
</div>
<div class="apiDetail">
<p>Prepare a client connection for a new request.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">keepHeaders</td><td>If true, keep the headers already defined on the connection object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" class
</div>
</div>
<a name="group___http_conn_1ga2f25ecba7e7d54268b2a34541c2f247d"></a>
<div class="api">
<div class="prototype">
void
httpReadyHandler
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Run the handler ready callback.</p>
<dl><dt><b>Description</b>:</dt><dd>This will be called when all incoming data for the request has been fully received.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616"></a>
<div class="api">
<div class="prototype">
void
httpResetCredentials
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Reset the current security credentials.</p>
<dl><dt><b>Description</b>:</dt><dd>Remove any existing security credentials.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" class="
</div>
</div>
<a name="group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4"></a>
<div class="api">
<div class="prototype">
void
httpRouteRequest
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Route the request and select that matching route and handle to process the request.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" cla
</div>
</div>
<a name="group___http_conn_1ga167b27caf19d14a614670451fd3ef921"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpServiceQueues
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Service pipeline queues to flow data.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" clas
</div>
</div>
<a name="group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc"></a>
<div class="api">
<div class="prototype">
void
httpSetAsync
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int enable)
</div>
<div class="apiDetail">
<p>Set the async mode value for the connection.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">enable</td><td>Set to 1 to enable async mode.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the connection is in async mode.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c"
</div>
</div>
<a name="group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7"></a>
<div class="api">
<div class="prototype">
void
httpSetChunkSize
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)
</div>
<div class="apiDetail">
<p>Set the chunk size for transfer chunked encoding.</p>
When set, a &quot;Transfer-Encoding: Chunked&quot; header will be added to the request, and all write data will be broken into chunks of the requested size
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">size</td><td>Requested chunk size.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" cla
</div>
</div>
<a name="group___http_conn_1ga39282985fac34e40c0497453463a6fa0"></a>
<div class="api">
<div class="prototype">
void
httpSetConnContext
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, void *context)
</div>
<div class="apiDetail">
<p>Set the connection context object.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">context</td><td>New context object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" class
</div>
</div>
<a name="group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8"></a>
<div class="api">
<div class="prototype">
void
httpSetConnHost
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, void *host)
</div>
<div class="apiDetail">
<p>Set the connection host object.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">host</td><td>New context host.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" cl
</div>
</div>
<a name="group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318"></a>
<div class="api">
<div class="prototype">
void
httpSetConnNotifier
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a> notifier)
</div>
<div class="apiDetail">
<p>Define a notifier callback for this connection.</p>
<dl><dt><b>Description</b>:</dt><dd>The notifier callback will be invoked for state changes and I/O events as Http requests are processed. The supported events are: <ul><li>HTTP_EVENT_STATE <mdash/> The request is changing state. Valid states are: HTTP_STATE_BEGIN, HTTP_STATE_CONNECTED, HTTP_STATE_FIRST, HTTP_STATE_CONTENT, HTTP_STATE_READY, HTTP_STATE_RUNNING, HTTP_STATE_FINALIZED and HTTP_STATE_COMPLETE. A request will always visit all states and the notifier will be invoked for each and every state. This is true even if the request has no content, the HTTP_STATE_CONTENT will still be visited. </li><li>HTTP_EVENT_READABLE <mdash/> There is data available to read </li><li>HTTP_EVENT_WRITABLE <mdash/> The outgoing pipeline can absorb more data </li><li>HTTP_EVENT_ERROR <mdash/> The request has encountered an error </li><li>HTTP_EVENT_DESTROY <mdash/> The connection structure is about to be destoyed </li><li>HTTP_EVENT_OPEN <mdash/> The application layer is now open </li><li>HTTP_EVENT_CLOSE <mdash/> The application layer is now closed </li></ul></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">notifier</td><td>Notifier function.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" class=
</div>
</div>
<a name="group___http_conn_1ga0d819593e26ecd9c011553fc00158435"></a>
<div class="api">
<div class="prototype">
void
httpSetContext
(<a href="#group___http" class="ref">Http</a> *http, void *context)
</div>
<div class="apiDetail">
<p>Set the http context object.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http object created via <a class="ref" href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f">httpCreate</a></td>
<tr><td class="param">context</td><td>New context object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c"></a>
<div class="api">
<div class="prototype">
void
httpSetCredentials
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *user, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *password, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *authType)
</div>
<div class="apiDetail">
<p>Set the Http credentials.</p>
<dl><dt><b>Description</b>:</dt><dd>Define a user and password to use with Http authentication for sites that require it. This will be used for the next client connection.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">user</td><td>String user.</td>
<tr><td class="param">password</td><td>Decrypted password string.</td>
<tr><td class="param">authType</td><td>Authentication type. Set to basic or digest. Defaults to nothing.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1ga4e9c864aef59a820497577657d1364ba"></a>
<div class="api">
<div class="prototype">
void
httpSetDefaultClientHost
(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *host)
</div>
<div class="apiDetail">
<p>Define a default client host.</p>
<dl><dt><b>Description</b>:</dt><dd>Define a default host to use for client connections if the URI does not specify a host.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">host</td><td>Host or IP address.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1gae06679e424c64e4c663cf5237733b59c"></a>
<div class="api">
<div class="prototype">
void
httpSetDefaultClientPort
(<a href="#group___http" class="ref">Http</a> *http, int port)
</div>
<div class="apiDetail">
<p>Define a default client port.</p>
<dl><dt><b>Description</b>:</dt><dd>Define a default port to use for client connections if the URI does not define a port.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">port</td><td>Integer port number.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1ga7dbccd2e9b5782a0f2bd802f73b058e6"></a>
<div class="api">
<div class="prototype">
void
httpSetForkCallback
(struct Http *http, <a href="mprBare.html#group___mpr_cmd_1gaa20a5cafff87c96ba20526367622c885" class="ref">MprForkCallback</a> proc, void *arg)
</div>
<div class="apiDetail">
<p>Set the fork callback.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http service object.</td>
<tr><td class="param">proc</td><td>Fork callback procedure.</td>
<tr><td class="param">arg</td><td>Argument to supply when the callback is invoked.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1ga5407927519c3619f8b3173a19c7cab31"></a>
<div class="api">
<div class="prototype">
void
httpSetHeadersCallback
(struct HttpConn *conn, <a href="#group___http_conn_1gaf11f6724913441eab0f9c8a6e139569e" class="ref">HttpHeadersCallback</a> fn, void *arg)
</div>
<div class="apiDetail">
<p>Define a headers callback.</p>
<dl><dt><b>Description</b>:</dt><dd>The headers callback will run before the standard response headers are generated. This gives an opportunity to pre-populate the response headers.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">fn</td><td>Callback function to invoke.</td>
<tr><td class="param">arg</td><td>Argument to provide when invoking the headers callback.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1ga8f6d4ce201a094c8a0f185d1d592b439"></a>
<div class="api">
<div class="prototype">
void
httpSetIOCallback
(struct HttpConn *conn, <a href="#group___http_conn_1ga90233a1163fa6772c60c86588b01e803" class="ref">HttpIOCallback</a> fn)
</div>
<div class="apiDetail">
<p>Define an I/O callback for connections.</p>
<dl><dt><b>Description</b>:</dt><dd>The I/O callback is invoked when I/O events are detected on the connection. The default I/O callback is <a class="ref" href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf">httpEvent</a></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">fn</td><td>Callback function to invoke.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1ga5050ac505b4e8701f6247db9242a4249"></a>
<div class="api">
<div class="prototype">
void
httpSetKeepAliveCount
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int count)
</div>
<div class="apiDetail">
<p>Control Http Keep-Alive for the connection.</p>
<dl><dt><b>Description</b>:</dt><dd>Http Keep-Alive means that the TCP/IP connection is preserved accross multiple requests. This typically means much higher performance and better response. Http Keep-Alive is enabled by default for Http/1.1 (the default). Disable Keep-Alive when talking to old, broken HTTP servers.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">count</td><td>Count of Keep-Alive transactions to use before closing the connection. Set to zero to disable keep-alive.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1gabfb77d6aba161b2641177d85de86b559"></a>
<div class="api">
<div class="prototype">
void
httpSetProtocol
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *protocol)
</div>
<div class="apiDetail">
<p>Set the Http protocol variant for this connection.</p>
<dl><dt><b>Description</b>:</dt><dd>Set the Http protocol variant to use.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">protocol</td><td>String representing the protocol variant. Valid values are: &quot;HTTP/1.0&quot;, &quot;HTTP/1.1&quot;. This parameter must be persistent. Use HTTP/1.1 wherever possible.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1ga43fe43a026149b074825c886a9d1fba1"></a>
<div class="api">
<div class="prototype">
void
httpSetRetries
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int retries)
</div>
<div class="apiDetail">
<p>Set the Http retry count.</p>
<dl><dt><b>Description</b>:</dt><dd>Define the number of retries before failing a request. It is normative for network errors to require that requests be sometimes retried. The default retries is set to (2).</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">retries</td><td>Count of retries.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1gadb0ffcb5cdc970539e2ef83c5050024b"></a>
<div class="api">
<div class="prototype">
void
httpSetSendConnector
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)
</div>
<div class="apiDetail">
<p>Set the &quot;Send&quot; connector to process the request.</p>
<dl><dt><b>Description</b>:</dt><dd>If the net connection has been selected, but the response content is a file, the pipeline connector can be upgraded to use the &quot;Send&quot; connector.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">path</td><td>File name to send as a response.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1ga94b63eed8385fd7c6c5db45a0a4ca768"></a>
<div class="api">
<div class="prototype">
void
httpSetState
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int state)
</div>
<div class="apiDetail">
<p>Set the connection state and invoke notifiers.</p>
<dl><dt><b>Description</b>:</dt><dd>The connection states are, in order : HTTP_STATE_BEGIN HTTP_STATE_CONNECTED HTTP_STATE_FIRST HTTP_STATE_PARSED HTTP_STATE_CONTENT HTTP_STATE_READY HTTP_STATE_RUNNING HTTP_STATE_FINALIZED HTTP_STATE_COMPLETE. When httpSetState advances the state it will invoke any registered <a class="ref" href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb">HttpNotifier</a>. If the state is set to a state beyond the next intermediate state, the HttpNotifier will be invoked for all intervening states. This is true even if the request has no content, the HTTP_STATE_CONTENT will still be visited.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">state</td><td>New state to enter.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1gaa4b4def5658e51af56d186e0b35ace55"></a>
<div class="api">
<div class="prototype">
void
httpSetTimeout
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> requestTimeout, <a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> inactivityTimeout)
</div>
<div class="apiDetail">
<p>Set the Http inactivity timeout.</p>
<dl><dt><b>Description</b>:</dt><dd>Define an inactivity timeout after which the Http connection will be closed.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">requestTimeout</td><td>Request timeout in msec. This is the total time for the request. Set to -1 to preserve the existing value.</td>
<tr><td class="param">inactivityTimeout</td><td>Inactivity timeout in msec. This is maximum connection idle time. Set to -1 to preserve the existing value.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1gaac1789f20731bd9cbb129153f8ee7a07"></a>
<div class="api">
<div class="prototype">
void
httpSetTimestamp
(<a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> period)
</div>
<div class="apiDetail">
<p>Define a timestamp in the MPR log file.</p>
<dl><dt><b>Description</b>:</dt><dd>This routine initiates the writing of a timestamp in the MPR log file.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">period</td><td>Time in milliseconds between timestamps.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1ga3b9e9dbb4d2b8da2de6fb6d20c307fc6"></a>
<div class="api">
<div class="prototype">
void
httpSetupWaitHandler
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int eventMask)
</div>
<div class="apiDetail">
<p>Setup a wait handler for the connection to wait for desired events.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">eventMask</td><td>Mask of events. MPR_READABLE | MPR_WRITABLE.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1ga9ed05242455c9da79ad164ea85ec7427"></a>
<div class="api">
<div class="prototype">
int
httpShouldTrace
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int dir, int item, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ext)
</div>
<div class="apiDetail">
<p>Test if the item should be traced.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">dir</td><td>Direction of data flow. Set to HTTP_TRACE_RX or HTTP_TRACE_TX.</td>
<tr><td class="param">item</td><td>Item to trace. Set to HTTP_TRACE_CONN, HTTP_TRACE_FIRST, HTTP_TRACE_HEADER, HTTP_TRACE_BODY, or HTTP_TRACE_TIME.</td>
<tr><td class="param">ext</td><td>URI resource extension (without &quot;.&quot;).</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The level at which tracing should be done. Returns -1 if tracing should not be done for this item.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1ga4bc751046420a19e3a2fa04beb93fba0"></a>
<div class="api">
<div class="prototype">
void
httpStartPipeline
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Start the pipeline.</p>
This starts the request handler
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1ga269af9eeb75763738059d298b48f1032"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#group___mpr_socket" class="ref">MprSocket</a> *
httpStealConn
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Steal a connection from Appweb.</p>
<dl><dt><b>Description</b>:</dt><dd>Steal a connection from Appweb and assume total responsibility for the connection. This removes the connection from active management by Appweb. After calling, request and inactivity timeouts will not be enforced. It is the callers responsibility to call mprCloseSocket.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The connection socket object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1ga8edf2556f7d44f12e505ede6dabafe53"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpVerifyWebSocketsHandshake
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Verify the server handshake.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the handshake is valid.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1ga952ec74db373dc7994cfa238905f5244"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpWriteUploadData
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#group___mpr_list" class="ref">MprList</a> *formData, <a href="mprBare.html#group___mpr_list" class="ref">MprList</a> *fileData)
</div>
<div class="apiDetail">
<p>Write Http upload body data.</p>
<dl><dt><b>Description</b>:</dt><dd>Write files and form fields as request body data. This will use transfer chunk encoding. This routine will block until all the buffer is written even if a callback is defined.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>Http connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">fileData</td><td>List of string file names to upload.</td>
<tr><td class="param">formData</td><td>List of strings containing &quot;key=value&quot; pairs. The form data should be already www-urlencoded.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Number of bytes successfully written.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<h1>HttpEndpoint</h1>
<a name="group___http_endpoint"></a>
<div class="api">
<div class="prototype">HttpEndpoint</div>
<div class="apiDetail">
<p>Listening endpoints.</p>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">int</td><td><td>activeClients</td><td>
Count of current active clients.
</td>
<tr><td class="param">int</td><td><td>activeRequests</td><td>
Count of current active requests.
</td>
<tr><td class="param">int</td><td><td>async</td><td>
Listening is in async mode (non-blocking).
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>clientLoad</td><td>
Table of active client IPs and connection counts.
</td>
<tr><td class="param">void *</td><td><td>context</td><td>
Embedding context.
</td>
<tr><td class="param">MprDispatcher *</td><td><td>dispatcher</td><td>
Event dispatcher.
</td>
<tr><td class="param">int</td><td><td>flags</td><td>
Endpoint control flags.
</td>
<tr><td class="param">MprList *</td><td><td>hosts</td><td>
List of host objects.
</td>
<tr><td class="param">Http *</td><td><td>http</td><td>
Http service object.
</td>
<tr><td class="param">char *</td><td><td>ip</td><td>
Listen IP address.
May be null if listening on all interfaces.
</td>
<tr><td class="param">HttpLimits *</td><td><td>limits</td><td>
Alias for first host, default route resource limits.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_mutex" external="mpr.dtags">MprMutex</a> *</td><td><td>mutex</td><td>
Multithread sync.
</td>
<tr><td class="param"><a class="ref" href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb">HttpNotifier</a></td><td><td>notifier</td><td>
Default connection notifier callback.
</td>
<tr><td class="param">int</td><td><td>port</td><td>
Listen port.
</td>
<tr><td class="param">MprSocket *</td><td><td>sock</td><td>
Listening socket.
</td>
<tr><td class="param">struct MprSsl *</td><td><td>ssl</td><td>
Endpoint SSL configuration.
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_conn" class="ref">HttpConn</a> *
httpAcceptConn
(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, <a href="mprBare.html#group___mpr_event" class="ref">MprEvent</a> *event)
</div>
<div class="apiDetail">
<p>Accept a new connection.</p>
Accept a new client connection on a new socket. If multithreaded, this will come in on a worker thread dedicated to this connection. This is called from the listen wait handler
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">endpoint</td><td>The endpoint on which the server was listening.</td>
<tr><td class="param">event</td><td>Mpr event object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A HttpConn object representing the new connection.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6"></a>
<div class="api">
<div class="prototype">
void
httpAddHostToEndpoint
(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, struct HttpHost *host)
</div>
<div class="apiDetail">
<p>Add a host to an endpoint.</p>
<dl><dt><b>Description</b>:</dt><dd>Add the host to the endpoint&apos;s list of hosts. A listening endpoint may have multiple virutal hosts.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">endpoint</td><td>Endpoint to which the host will be added.</td>
<tr><td class="param">host</td><td>HttpHost object to add.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if the host can be added.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1gab8694430f1f3941a97515ca5697e1bae"></a>
<div class="api">
<div class="prototype">
int
httpConfigureNamedVirtualEndpoints
(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ip, int port)
</div>
<div class="apiDetail">
<p>Configure endpoints with named virtual hosts.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http service object.</td>
<tr><td class="param">ip</td><td>IP address for the named virtual host.</td>
<tr><td class="param">port</td><td>address for the named virtual host.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1ga68cc44b20078010230e96f874493db32"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *
httpCreateConfiguredEndpoint
(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *home, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *documents, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ip, int port)
</div>
<div class="apiDetail">
<p>Create and configure a new endpoint.</p>
<dl><dt><b>Description</b>:</dt><dd>Convenience function to create and configure a new endpoint without using a config file. An endpoint is created with a default host and default route.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">home</td><td>Home directory for configuration files for the endpoint.</td>
<tr><td class="param">documents</td><td>Directory containing the.</td>
<tr><td class="param">ip</td><td>IP address to use for the endpoint. Set to null to listen on all interfaces.</td>
<tr><td class="param">port</td><td>Listening port number to use for the endpoint.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A configured HttpEndpoint object instance.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *
httpCreateEndpoint
(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ip, int port, <a href="mprBare.html#group___mpr_dispatcher" class="ref">MprDispatcher</a> *dispatcher)
</div>
<div class="apiDetail">
<p>Create an endpoint object.</p>
<dl><dt><b>Description</b>:</dt><dd>Creates a listening endpoint on the given IP:PORT. Use httpStartEndpoint to begin listening for client connections.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">ip</td><td>IP address on which to listen.</td>
<tr><td class="param">port</td><td>IP port number.</td>
<tr><td class="param">dispatcher</td><td>Dispatcher to use. Can be null.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db"></a>
<div class="api">
<div class="prototype">
void
httpDestroyEndpoint
(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint)
</div>
<div class="apiDetail">
<p>Destroy the endpoint.</p>
<dl><dt><b>Description</b>:</dt><dd>This destroys the endpoint created by <a class="ref" href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c">httpCreateEndpoint</a>. Calling this routine should not normally be necessary as the garbage collector will invoke as required.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">endpoint</td><td>HttpEndpoint object returned from <a class="ref" href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c">httpCreateEndpoint</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41"></a>
<div class="api">
<div class="prototype">
void *
httpGetEndpointContext
(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint)
</div>
<div class="apiDetail">
<p>Get the endpoint context object.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">endpoint</td><td>HttpEndpoint object created via <a class="ref" href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c">httpCreateEndpoint</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The endpoint context object defined via httpSetEndpointContext.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1ga95038407668d474b404fc8784006c9c2"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpHasNamedVirtualHosts
(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint)
</div>
<div class="apiDetail">
<p>Test if an endpoint has named virtual hosts.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">endpoint</td><td>Endpoint object to examine.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the endpoint has named virutal hosts.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7"></a>
<div class="api">
<div class="prototype">
int
httpIsEndpointAsync
(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint)
</div>
<div class="apiDetail">
<p>Get if the endpoint is running in asynchronous mode.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">endpoint</td><td>HttpEndpoint object created via <a class="ref" href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c">httpCreateEndpoint</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the endpoint is in async mode.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57"></a>
<div class="api">
<div class="prototype">
struct HttpHost *
HttpHost* httpLookupHostOnEndpoint
(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
</div>
<div class="apiDetail">
<p>Lookup a host name.</p>
<dl><dt><b>Description</b>:</dt><dd>Lookup a host by name in the set of defined hosts for this endpoint.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">endpoint</td><td>HttpEndpoint object created via <a class="ref" href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c">httpCreateEndpoint</a></td>
<tr><td class="param">name</td><td>Host name to search for.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>An HttpHost object instance or null if the host cannot be found.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26"></a>
<div class="api">
<div class="prototype">
int
httpSecureEndpoint
(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, struct MprSsl *ssl)
</div>
<div class="apiDetail">
<p>Secure an endpoint.</p>
<dl><dt><b>Description</b>:</dt><dd>Define the SSL parameters for an endpoint. This must be done before starting listening on the endpoint via <a class="ref" href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6">httpStartEndpoint</a></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">endpoint</td><td>HttpEndpoint object created via <a class="ref" href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c">httpCreateEndpoint</a></td>
<tr><td class="param">ssl</td><td>MprSsl object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458"></a>
<div class="api">
<div class="prototype">
int
httpSecureEndpointByName
(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, struct MprSsl *ssl)
</div>
<div class="apiDetail">
<p>Secure an endpoint by name.</p>
<dl><dt><b>Description</b>:</dt><dd>Define the SSL parameters for an endpoint that is selected by name. This must be done before starting listening on the endpoint via <a class="ref" href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6">httpStartEndpoint</a></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">name</td><td>Endpoint name. The endpoint name is comprised of the IP and port. For example: &quot;127.0.0.1:7777&quot;.</td>
<tr><td class="param">ssl</td><td>MprSsl object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35"></a>
<div class="api">
<div class="prototype">
void
httpSetEndpointAddress
(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ip, int port)
</div>
<div class="apiDetail">
<p>Set the endpoint IP address.</p>
<dl><dt><b>Description</b>:</dt><dd>This call defines the endpoint&apos;s IP address and port number. If the endpoint has already been started, this will stop and restart the endpoint. Current requests will not be disturbed. This is useful to modify the endpoints address when using dynamically assigned IP addresses.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">endpoint</td><td>HttpEndpoint object created via <a class="ref" href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c">httpCreateEndpoint</a></td>
<tr><td class="param">ip</td><td>IP address to use for the endpoint. Set to null to listen on all interfaces.</td>
<tr><td class="param">port</td><td>Listening port number to use for the endpoint.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807"></a>
<div class="api">
<div class="prototype">
void
httpSetEndpointAsync
(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, int enable)
</div>
<div class="apiDetail">
<p>Control if the endpoint is running in asynchronous mode.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">endpoint</td><td>HttpEndpoint object created via <a class="ref" href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c">httpCreateEndpoint</a></td>
<tr><td class="param">enable</td><td>Set to 1 to enable async mode.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0"></a>
<div class="api">
<div class="prototype">
void
httpSetEndpointContext
(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, void *context)
</div>
<div class="apiDetail">
<p>Set the endpoint context object.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">endpoint</td><td>HttpEndpoint object created via <a class="ref" href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c">httpCreateEndpoint</a></td>
<tr><td class="param">context</td><td>New context object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0"></a>
<div class="api">
<div class="prototype">
void
httpSetEndpointNotifier
(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a> fn)
</div>
<div class="apiDetail">
<p>Define a notifier callback for this endpoint.</p>
<dl><dt><b>Description</b>:</dt><dd>The notifier callback will be invoked as Http requests are processed.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">endpoint</td><td>HttpEndpoint object created via <a class="ref" href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c">httpCreateEndpoint</a></td>
<tr><td class="param">fn</td><td>Notifier function.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795"></a>
<div class="api">
<div class="prototype">
void
httpSetHasNamedVirtualHosts
(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> on)
</div>
<div class="apiDetail">
<p>Control whether the endpoint has named virtual hosts.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">endpoint</td><td>Endpoint object to examine.</td>
<tr><td class="param">on</td><td>Set to true to enable named virtual hosts.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6"></a>
<div class="api">
<div class="prototype">
int
httpStartEndpoint
(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint)
</div>
<div class="apiDetail">
<p>Start listening for client connections.</p>
<dl><dt><b>Description</b>:</dt><dd>Opens the endpoint socket and starts listening for connections.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">endpoint</td><td>HttpEndpoint object created via <a class="ref" href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c">httpCreateEndpoint</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1ga4c1deccf2ac027252158420937d43156"></a>
<div class="api">
<div class="prototype">
void
httpStopEndpoint
(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint)
</div>
<div class="apiDetail">
<p>Stop the server listening for client connections.</p>
<dl><dt><b>Description</b>:</dt><dd>Closes the socket endpoint.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">endpoint</td><td>HttpEndpoint object created via <a class="ref" href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c">httpCreateEndpoint</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba" class="ref">httpValidateLimits</a></dd></dl>
</div>
</div>
<a name="group___http_endpoint_1ga98e8cebcc329b8197b6eb7416afbb2ba"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpValidateLimits
(<a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint, int event, <a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Validate the request against defined resource limits.</p>
<dl><dt><b>Description</b>:</dt><dd>The Http library supports a suite of resource limits that restrict the impact of a request on the system. This call validates a processing event for the current request against the server&apos;s endpoint limits.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">endpoint</td><td>The endpoint on which the server was listening.</td>
<tr><td class="param">event</td><td>Processing event. The supported events are: HTTP_VALIDATE_OPEN_CONN, HTTP_VALIDATE_CLOSE_CONN, HTTP_VALIDATE_OPEN_REQUEST and HTTP_VALIDATE_CLOSE_REQUEST.</td>
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the request can be successfully validated against the endpoint limits.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_endpoint" class="ref">HttpEndpoint</a>, <a href="#group___http_endpoint_1ga5166eddc5649251036e5c0255882c1a8" class="ref">httpAcceptConn</a>, <a href="#group___http_endpoint_1ga4ef2065c27222065ba19f343cb9358d6" class="ref">httpAddHostToEndpoint</a>, <a href="#group___http_endpoint_1ga68cc44b20078010230e96f874493db32" class="ref">httpCreateConfiguredEndpoint</a>, <a href="#group___http_endpoint_1gad5bb2a3a29df9b1191c484a56fcf642c" class="ref">httpCreateEndpoint</a>, <a href="#group___http_endpoint_1ga77fcd662f068f86a06f61526aa87f4db" class="ref">httpDestroyEndpoint</a>, <a href="#group___http_endpoint_1gac0eb38f7ce5403815c0d1200f086db41" class="ref">httpGetEndpointContext</a>, <a href="#group___http_endpoint_1ga95038407668d474b404fc8784006c9c2" class="ref">httpHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga303d2ca6f404f9a4b5ef422b6cdfd6c7" class="ref">httpIsEndpointAsync</a>, <a href="#group___http_endpoint_1ga345d79808086a901e162cf23ee7ebf57" class="ref">httpLookupHostOnEndpoint</a>, <a href="#group___http_endpoint_1ga454b9f51a8537da53850fa6e8c021c26" class="ref">httpSecureEndpoint</a>, <a href="#group___http_endpoint_1gac12fd0a70938dcf886c1fd95a3857458" class="ref">httpSecureEndpointByName</a>, <a href="#group___http_endpoint_1ga713af86f8914a5cd3ad2a5832b1ffb35" class="ref">httpSetEndpointAddress</a>, <a href="#group___http_endpoint_1ga9297341ed265ddd736a07d5bac192807" class="ref">httpSetEndpointAsync</a>, <a href="#group___http_endpoint_1ga37194c20cddffd0c1dca6d7a54c31fb0" class="ref">httpSetEndpointContext</a>, <a href="#group___http_endpoint_1ga5bd47c988eb934173a7ac411ed2e58b0" class="ref">httpSetEndpointNotifier</a>, <a href="#group___http_endpoint_1ga768ffb7411647773b0e6f5b839763795" class="ref">httpSetHasNamedVirtualHosts</a>, <a href="#group___http_endpoint_1ga30fd4014d0b786ee8e705e3a45e42eb6" class="ref">httpStartEndpoint</a>, <a href="#group___http_endpoint_1ga4c1deccf2ac027252158420937d43156" class="ref">httpStopEndpoint</a></dd></dl>
</div>
</div>
<h1>HttpHost</h1>
<a name="group___http_host"></a>
<div class="api">
<div class="prototype">HttpHost</div>
<div class="apiDetail">
<p>Host Object.</p>
<dl><dt><b>Description</b>:</dt><dd>A Host object represents a logical host. Several logical hosts may share a single HttpEndpoint.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_host_1gadcbb2c44a2ae32546fbdcccbfec64c0a" class="ref">httpAddRoute</a>, <a href="#group___http_host_1ga1fbea76e46959e0f9fd0c8f38090cb8b" class="ref">httpCloneHost</a>, <a href="#group___http_host_1ga3e6e98147b766aeff4cbfebe8146998b" class="ref">httpCreateHost</a>, <a href="#group___http_host_1gaaaa414cbf0f8cacd73ce305927b78efa" class="ref">httpResetRoutes</a>, <a href="#group___http_host_1ga9c33731fd3222d8eed376feeb3b115ad" class="ref">httpSetHostIpAddr</a>, <a href="#group___http_host_1ga446cc7ba87875c92e544e035a404f33f" class="ref">httpSetHostName</a>, <a href="#group___http_host_1ga0f04d9504cb2005ef7f0f4ba2d653581" class="ref">httpSetHostProtocol</a></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">HttpEndpoint *</td><td><td>defaultEndpoint</td><td>
Default endpoint for host.
</td>
<tr><td class="param">HttpRoute *</td><td><td>defaultRoute</td><td>
Default route for the host.
</td>
<tr><td class="param">int</td><td><td>flags</td><td>
Host flags.
</td>
<tr><td class="param">char *</td><td><td>ip</td><td>
Hostname/ip portion parsed from name.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_mutex" external="mpr.dtags">MprMutex</a> *</td><td><td>mutex</td><td>
Multithread sync.
</td>
<tr><td class="param">char *</td><td><td>name</td><td>
Host name.
</td>
<tr><td class="param">struct HttpHost *</td><td><td>parent</td><td>
Parent host to inherit aliases, dirs, routes.
</td>
<tr><td class="param">int</td><td><td>port</td><td>
Port address portion parsed from name.
</td>
<tr><td class="param">char *</td><td><td>protocol</td><td>
Defaults to &quot;HTTP/1.1&quot;.
</td>
<tr><td class="param">MprCache *</td><td><td>responseCache</td><td>
Response content caching store.
</td>
<tr><td class="param">char *</td><td><td>root</td><td>
Home for this host.
</td>
<tr><td class="param">MprList *</td><td><td>routes</td><td>
List of Route defintions.
</td>
<tr><td class="param">HttpEndpoint *</td><td><td>secureEndpoint</td><td>
Secure endpoint for host.
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_host_1gadcbb2c44a2ae32546fbdcccbfec64c0a"></a>
<div class="api">
<div class="prototype">
int
httpAddRoute
(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="#group___http_route" class="ref">HttpRoute</a> *route)
</div>
<div class="apiDetail">
<p>Add a route to a host.</p>
<dl><dt><b>Description</b>:</dt><dd>Add the route to the host list of routes. During request route matching, routes are processed in order, so it is important to define routes in the order in which you wish to match them.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">host</td><td>HttpHost object.</td>
<tr><td class="param">route</td><td>Route to add.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if the route can be added.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_host" class="ref">HttpHost</a>, <a href="#group___http_host_1ga1fbea76e46959e0f9fd0c8f38090cb8b" class="ref">httpCloneHost</a>, <a href="#group___http_host_1ga3e6e98147b766aeff4cbfebe8146998b" class="ref">httpCreateHost</a>, <a href="#group___http_host_1gaaaa414cbf0f8cacd73ce305927b78efa" class="ref">httpResetRoutes</a>, <a href="#group___http_host_1ga9c33731fd3222d8eed376feeb3b115ad" class="ref">httpSetHostIpAddr</a>, <a href="#group___http_host_1ga446cc7ba87875c92e544e035a404f33f" class="ref">httpSetHostName</a>, <a href="#group___http_host_1ga0f04d9504cb2005ef7f0f4ba2d653581" class="ref">httpSetHostProtocol</a></dd></dl>
</div>
</div>
<a name="group___http_host_1ga1fbea76e46959e0f9fd0c8f38090cb8b"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_host" class="ref">HttpHost</a> *
httpCloneHost
(<a href="#group___http_host" class="ref">HttpHost</a> *parent)
</div>
<div class="apiDetail">
<p>Clone a host.</p>
<dl><dt><b>Description</b>:</dt><dd>The parent host is cloned and a new host returned. The new host inherites the parent&apos;s configuration.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">parent</td><td>Parent HttpHost object to clone.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The new HttpHost object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_host" class="ref">HttpHost</a>, <a href="#group___http_host_1gadcbb2c44a2ae32546fbdcccbfec64c0a" class="ref">httpAddRoute</a>, <a href="#group___http_host_1ga3e6e98147b766aeff4cbfebe8146998b" class="ref">httpCreateHost</a>, <a href="#group___http_host_1gaaaa414cbf0f8cacd73ce305927b78efa" class="ref">httpResetRoutes</a>, <a href="#group___http_host_1ga9c33731fd3222d8eed376feeb3b115ad" class="ref">httpSetHostIpAddr</a>, <a href="#group___http_host_1ga446cc7ba87875c92e544e035a404f33f" class="ref">httpSetHostName</a>, <a href="#group___http_host_1ga0f04d9504cb2005ef7f0f4ba2d653581" class="ref">httpSetHostProtocol</a></dd></dl>
</div>
</div>
<a name="group___http_host_1ga3e6e98147b766aeff4cbfebe8146998b"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_host" class="ref">HttpHost</a> *
httpCreateHost
()
</div>
<div class="apiDetail">
<p>Create a host.</p>
<dl><dt><b>Description</b>:</dt><dd>Create a new host object. The host is added to the Http service&apos;s list of hosts.</dd></dl>
<dl><dt>Returns:</dt><dd>The new HttpHost object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_host" class="ref">HttpHost</a>, <a href="#group___http_host_1gadcbb2c44a2ae32546fbdcccbfec64c0a" class="ref">httpAddRoute</a>, <a href="#group___http_host_1ga1fbea76e46959e0f9fd0c8f38090cb8b" class="ref">httpCloneHost</a>, <a href="#group___http_host_1gaaaa414cbf0f8cacd73ce305927b78efa" class="ref">httpResetRoutes</a>, <a href="#group___http_host_1ga9c33731fd3222d8eed376feeb3b115ad" class="ref">httpSetHostIpAddr</a>, <a href="#group___http_host_1ga446cc7ba87875c92e544e035a404f33f" class="ref">httpSetHostName</a>, <a href="#group___http_host_1ga0f04d9504cb2005ef7f0f4ba2d653581" class="ref">httpSetHostProtocol</a></dd></dl>
</div>
</div>
<a name="group___http_host_1gae764c0d5e2a2a6bb13ff3dc86172fa06"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_host" class="ref">HttpHost</a> *
httpGetDefaultHost
()
</div>
<div class="apiDetail">
<p>Get the default host defined via httpSetDefaultHost.</p>
<dl><dt>Returns:</dt><dd>The defaul thost object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_host" class="ref">HttpHost</a>, <a href="#group___http_host_1gadcbb2c44a2ae32546fbdcccbfec64c0a" class="ref">httpAddRoute</a>, <a href="#group___http_host_1ga1fbea76e46959e0f9fd0c8f38090cb8b" class="ref">httpCloneHost</a>, <a href="#group___http_host_1ga3e6e98147b766aeff4cbfebe8146998b" class="ref">httpCreateHost</a>, <a href="#group___http_host_1gaaaa414cbf0f8cacd73ce305927b78efa" class="ref">httpResetRoutes</a>, <a href="#group___http_host_1ga9c33731fd3222d8eed376feeb3b115ad" class="ref">httpSetHostIpAddr</a>, <a href="#group___http_host_1ga446cc7ba87875c92e544e035a404f33f" class="ref">httpSetHostName</a>, <a href="#group___http_host_1ga0f04d9504cb2005ef7f0f4ba2d653581" class="ref">httpSetHostProtocol</a></dd></dl>
</div>
</div>
<a name="group___http_host_1gaaaa414cbf0f8cacd73ce305927b78efa"></a>
<div class="api">
<div class="prototype">
void
httpResetRoutes
(<a href="#group___http_host" class="ref">HttpHost</a> *host)
</div>
<div class="apiDetail">
<p>Reset the list of routes for the host.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">host</td><td>HttpHost object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_host" class="ref">HttpHost</a>, <a href="#group___http_host_1gadcbb2c44a2ae32546fbdcccbfec64c0a" class="ref">httpAddRoute</a>, <a href="#group___http_host_1ga1fbea76e46959e0f9fd0c8f38090cb8b" class="ref">httpCloneHost</a>, <a href="#group___http_host_1ga3e6e98147b766aeff4cbfebe8146998b" class="ref">httpCreateHost</a>, <a href="#group___http_host_1ga9c33731fd3222d8eed376feeb3b115ad" class="ref">httpSetHostIpAddr</a>, <a href="#group___http_host_1ga446cc7ba87875c92e544e035a404f33f" class="ref">httpSetHostName</a>, <a href="#group___http_host_1ga0f04d9504cb2005ef7f0f4ba2d653581" class="ref">httpSetHostProtocol</a></dd></dl>
</div>
</div>
<a name="group___http_host_1gacba7af49f198c1ac13e6cadd2673956f"></a>
<div class="api">
<div class="prototype">
void
httpSetDefaultHost
(<a href="#group___http_host" class="ref">HttpHost</a> *host)
</div>
<div class="apiDetail">
<p>Set the default host for all servers.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">host</td><td>Host to define as the default host.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_host" class="ref">HttpHost</a>, <a href="#group___http_host_1gadcbb2c44a2ae32546fbdcccbfec64c0a" class="ref">httpAddRoute</a>, <a href="#group___http_host_1ga1fbea76e46959e0f9fd0c8f38090cb8b" class="ref">httpCloneHost</a>, <a href="#group___http_host_1ga3e6e98147b766aeff4cbfebe8146998b" class="ref">httpCreateHost</a>, <a href="#group___http_host_1gaaaa414cbf0f8cacd73ce305927b78efa" class="ref">httpResetRoutes</a>, <a href="#group___http_host_1ga9c33731fd3222d8eed376feeb3b115ad" class="ref">httpSetHostIpAddr</a>, <a href="#group___http_host_1ga446cc7ba87875c92e544e035a404f33f" class="ref">httpSetHostName</a>, <a href="#group___http_host_1ga0f04d9504cb2005ef7f0f4ba2d653581" class="ref">httpSetHostProtocol</a></dd></dl>
</div>
</div>
<a name="group___http_host_1ga393e177fad929d5ca96379e9270b6842"></a>
<div class="api">
<div class="prototype">
void
httpSetHostDefaultEndpoint
(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint)
</div>
<div class="apiDetail">
<p>Set the default endpoint for a host.</p>
<dl><dt><b>Description</b>:</dt><dd>The host may have a default endpoint that is used when doing redirections to http.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">host</td><td>Host to examine.</td>
<tr><td class="param">endpoint</td><td>Secure endpoint to use as the default.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_host" class="ref">HttpHost</a>, <a href="#group___http_host_1gadcbb2c44a2ae32546fbdcccbfec64c0a" class="ref">httpAddRoute</a>, <a href="#group___http_host_1ga1fbea76e46959e0f9fd0c8f38090cb8b" class="ref">httpCloneHost</a>, <a href="#group___http_host_1ga3e6e98147b766aeff4cbfebe8146998b" class="ref">httpCreateHost</a>, <a href="#group___http_host_1gaaaa414cbf0f8cacd73ce305927b78efa" class="ref">httpResetRoutes</a>, <a href="#group___http_host_1ga9c33731fd3222d8eed376feeb3b115ad" class="ref">httpSetHostIpAddr</a>, <a href="#group___http_host_1ga446cc7ba87875c92e544e035a404f33f" class="ref">httpSetHostName</a>, <a href="#group___http_host_1ga0f04d9504cb2005ef7f0f4ba2d653581" class="ref">httpSetHostProtocol</a></dd></dl>
</div>
</div>
<a name="group___http_host_1gae8d3b5ebddb6c740c738befee3c78efb"></a>
<div class="api">
<div class="prototype">
void
httpSetHostDefaultRoute
(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="#group___http_route" class="ref">HttpRoute</a> *route)
</div>
<div class="apiDetail">
<p>Set the default route for a host.</p>
<dl><dt><b>Description</b>:</dt><dd>The host has a default route which holds default configuration. Typically the default route is not directly used when routing URIs. Rather other routes inherit from the default route and are used to respond to client requests.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">host</td><td>Host to examine.</td>
<tr><td class="param">route</td><td>Route to define as the default.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_host" class="ref">HttpHost</a>, <a href="#group___http_host_1gadcbb2c44a2ae32546fbdcccbfec64c0a" class="ref">httpAddRoute</a>, <a href="#group___http_host_1ga1fbea76e46959e0f9fd0c8f38090cb8b" class="ref">httpCloneHost</a>, <a href="#group___http_host_1ga3e6e98147b766aeff4cbfebe8146998b" class="ref">httpCreateHost</a>, <a href="#group___http_host_1gaaaa414cbf0f8cacd73ce305927b78efa" class="ref">httpResetRoutes</a>, <a href="#group___http_host_1ga9c33731fd3222d8eed376feeb3b115ad" class="ref">httpSetHostIpAddr</a>, <a href="#group___http_host_1ga446cc7ba87875c92e544e035a404f33f" class="ref">httpSetHostName</a>, <a href="#group___http_host_1ga0f04d9504cb2005ef7f0f4ba2d653581" class="ref">httpSetHostProtocol</a></dd></dl>
</div>
</div>
<a name="group___http_host_1ga9c33731fd3222d8eed376feeb3b115ad"></a>
<div class="api">
<div class="prototype">
void
httpSetHostIpAddr
(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ip, int port)
</div>
<div class="apiDetail">
<p>Set the host internet address.</p>
<dl><dt><b>Description</b>:</dt><dd>Set the host IP and port address.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">host</td><td>HttpHost object.</td>
<tr><td class="param">ip</td><td>Internet address. This can be an IP address or a symbolic domain and host name.</td>
<tr><td class="param">port</td><td>Port number.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if the route can be added.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_host" class="ref">HttpHost</a>, <a href="#group___http_host_1gadcbb2c44a2ae32546fbdcccbfec64c0a" class="ref">httpAddRoute</a>, <a href="#group___http_host_1ga1fbea76e46959e0f9fd0c8f38090cb8b" class="ref">httpCloneHost</a>, <a href="#group___http_host_1ga3e6e98147b766aeff4cbfebe8146998b" class="ref">httpCreateHost</a>, <a href="#group___http_host_1gaaaa414cbf0f8cacd73ce305927b78efa" class="ref">httpResetRoutes</a>, <a href="#group___http_host_1ga446cc7ba87875c92e544e035a404f33f" class="ref">httpSetHostName</a>, <a href="#group___http_host_1ga0f04d9504cb2005ef7f0f4ba2d653581" class="ref">httpSetHostProtocol</a></dd></dl>
</div>
</div>
<a name="group___http_host_1ga446cc7ba87875c92e544e035a404f33f"></a>
<div class="api">
<div class="prototype">
void
httpSetHostName
(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
</div>
<div class="apiDetail">
<p>Set the host name.</p>
<dl><dt><b>Description</b>:</dt><dd>The host name is used when matching virtual hosts with the Http Host header. The host name is also used for some redirections. in order, so it is important to define routes in the order in which you wish to match them.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">host</td><td>HttpHost object.</td>
<tr><td class="param">name</td><td>Host name to use.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Zero if the route can be added.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_host" class="ref">HttpHost</a>, <a href="#group___http_host_1gadcbb2c44a2ae32546fbdcccbfec64c0a" class="ref">httpAddRoute</a>, <a href="#group___http_host_1ga1fbea76e46959e0f9fd0c8f38090cb8b" class="ref">httpCloneHost</a>, <a href="#group___http_host_1ga3e6e98147b766aeff4cbfebe8146998b" class="ref">httpCreateHost</a>, <a href="#group___http_host_1gaaaa414cbf0f8cacd73ce305927b78efa" class="ref">httpResetRoutes</a>, <a href="#group___http_host_1ga9c33731fd3222d8eed376feeb3b115ad" class="ref">httpSetHostIpAddr</a>, <a href="#group___http_host_1ga0f04d9504cb2005ef7f0f4ba2d653581" class="ref">httpSetHostProtocol</a></dd></dl>
</div>
</div>
<a name="group___http_host_1ga0f04d9504cb2005ef7f0f4ba2d653581"></a>
<div class="api">
<div class="prototype">
void
httpSetHostProtocol
(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *protocol)
</div>
<div class="apiDetail">
<p>Set the host HTTP protocol version.</p>
<dl><dt><b>Description</b>:</dt><dd>Set the host protocol version to either HTTP/1.0 or HTTP/1.1.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">host</td><td>HttpHost object.</td>
<tr><td class="param">protocol</td><td>Set to either HTTP/1.0 or HTTP/1.1.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_host" class="ref">HttpHost</a>, <a href="#group___http_host_1gadcbb2c44a2ae32546fbdcccbfec64c0a" class="ref">httpAddRoute</a>, <a href="#group___http_host_1ga1fbea76e46959e0f9fd0c8f38090cb8b" class="ref">httpCloneHost</a>, <a href="#group___http_host_1ga3e6e98147b766aeff4cbfebe8146998b" class="ref">httpCreateHost</a>, <a href="#group___http_host_1gaaaa414cbf0f8cacd73ce305927b78efa" class="ref">httpResetRoutes</a>, <a href="#group___http_host_1ga9c33731fd3222d8eed376feeb3b115ad" class="ref">httpSetHostIpAddr</a>, <a href="#group___http_host_1ga446cc7ba87875c92e544e035a404f33f" class="ref">httpSetHostName</a></dd></dl>
</div>
</div>
<a name="group___http_host_1ga2302c34632a1b72ec759533ee9d7ad10"></a>
<div class="api">
<div class="prototype">
void
httpSetHostRoot
(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *root)
</div>
<div class="apiDetail">
<p>Set the server root for a host.</p>
<dl><dt><b>Description</b>:</dt><dd>The server root is used as the default directory to locate configuration files for the host.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">host</td><td>HttpHost object.</td>
<tr><td class="param">root</td><td>Directory path for the host server root.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_host" class="ref">HttpHost</a>, <a href="#group___http_host_1gadcbb2c44a2ae32546fbdcccbfec64c0a" class="ref">httpAddRoute</a>, <a href="#group___http_host_1ga1fbea76e46959e0f9fd0c8f38090cb8b" class="ref">httpCloneHost</a>, <a href="#group___http_host_1ga3e6e98147b766aeff4cbfebe8146998b" class="ref">httpCreateHost</a>, <a href="#group___http_host_1gaaaa414cbf0f8cacd73ce305927b78efa" class="ref">httpResetRoutes</a>, <a href="#group___http_host_1ga9c33731fd3222d8eed376feeb3b115ad" class="ref">httpSetHostIpAddr</a>, <a href="#group___http_host_1ga446cc7ba87875c92e544e035a404f33f" class="ref">httpSetHostName</a>, <a href="#group___http_host_1ga0f04d9504cb2005ef7f0f4ba2d653581" class="ref">httpSetHostProtocol</a></dd></dl>
</div>
</div>
<a name="group___http_host_1ga0c90d5255c39ee470811df672867a6db"></a>
<div class="api">
<div class="prototype">
void
httpSetHostSecureEndpoint
(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="#group___http_endpoint" class="ref">HttpEndpoint</a> *endpoint)
</div>
<div class="apiDetail">
<p>Set the default secure endpoint for a host.</p>
<dl><dt><b>Description</b>:</dt><dd>The host may have a default secure endpoint that is used when doing redirections to https.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">host</td><td>Host to examine.</td>
<tr><td class="param">endpoint</td><td>Secure endpoint to use as the default.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_host" class="ref">HttpHost</a>, <a href="#group___http_host_1gadcbb2c44a2ae32546fbdcccbfec64c0a" class="ref">httpAddRoute</a>, <a href="#group___http_host_1ga1fbea76e46959e0f9fd0c8f38090cb8b" class="ref">httpCloneHost</a>, <a href="#group___http_host_1ga3e6e98147b766aeff4cbfebe8146998b" class="ref">httpCreateHost</a>, <a href="#group___http_host_1gaaaa414cbf0f8cacd73ce305927b78efa" class="ref">httpResetRoutes</a>, <a href="#group___http_host_1ga9c33731fd3222d8eed376feeb3b115ad" class="ref">httpSetHostIpAddr</a>, <a href="#group___http_host_1ga446cc7ba87875c92e544e035a404f33f" class="ref">httpSetHostName</a>, <a href="#group___http_host_1ga0f04d9504cb2005ef7f0f4ba2d653581" class="ref">httpSetHostProtocol</a></dd></dl>
</div>
</div>
<h1>HttpLimits</h1>
<a name="group___http_limits"></a>
<div class="api">
<div class="prototype">HttpLimits</div>
<div class="apiDetail">
<p>Http limits.</p>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_limits_1gaf6da4fb1c160ebf9ae4e5fbafcdd583c" class="ref">httpCreateLimits</a>, <a href="#group___http_limits_1ga936696874273efa3f816cc124dcf366b" class="ref">httpEaseLimits</a>, <a href="#group___http_limits_1gabf99e730cf6ee3ae898a4a88f8d60e2f" class="ref">httpInitLimits</a></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">ssize</td><td><td>bufferSize</td><td>
Maximum buffering by any pipeline stage.
</td>
<tr><td class="param">ssize</td><td><td>cacheItemSize</td><td>
Maximum size of a cachable item.
</td>
<tr><td class="param">ssize</td><td><td>chunkSize</td><td>
Maximum chunk size for transfer encoding.
</td>
<tr><td class="param">int</td><td><td>clientMax</td><td>
Maximum number of simultaneous clients endpoints.
</td>
<tr><td class="param">int</td><td><td>headerMax</td><td>
Maximum number of header lines.
</td>
<tr><td class="param">ssize</td><td><td>headerSize</td><td>
Maximum size of the total header.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" external="mpr.dtags">MprTicks</a></td><td><td>inactivityTimeout</td><td>
Timeout for keep-alive and idle requests (msec).
</td>
<tr><td class="param">int</td><td><td>keepAliveMax</td><td>
Maximum number of Keep-Alive requests to perform per socket.
</td>
<tr><td class="param">int</td><td><td>processMax</td><td>
Maximum number of processes (CGI).
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>receiveBodySize</td><td>
Maximum size of receive body data.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>receiveFormSize</td><td>
Maximum size of form data.
</td>
<tr><td class="param">int</td><td><td>requestMax</td><td>
Maximum number of simultaneous concurrent requests.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" external="mpr.dtags">MprTicks</a></td><td><td>requestParseTimeout</td><td>
Time a request can take to parse the request headers (msec).
</td>
<tr><td class="param">int</td><td><td>requestsPerClientMax</td><td>
Maximum number of requests per client IP.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" external="mpr.dtags">MprTicks</a></td><td><td>requestTimeout</td><td>
Time a request can take (msec).
</td>
<tr><td class="param">int</td><td><td>sessionMax</td><td>
Maximum number of sessions.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" external="mpr.dtags">MprTicks</a></td><td><td>sessionTimeout</td><td>
Time a session can persist (msec).
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>transmissionBodySize</td><td>
Maximum size of transmission body content.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>uploadSize</td><td>
Maximum size of an uploaded file.
</td>
<tr><td class="param">ssize</td><td><td>uriSize</td><td>
Maximum size of a uri.
</td>
<tr><td class="param">ssize</td><td><td>webSocketsFrameSize</td><td>
Maximum size of a WebSocket frame on the wire.
</td>
<tr><td class="param">int</td><td><td>webSocketsMax</td><td>
Maximum number of WebSockets.
</td>
<tr><td class="param">ssize</td><td><td>webSocketsMessageSize</td><td>
Maximum total size of a WebSocket message including all frames.
</td>
<tr><td class="param">ssize</td><td><td>webSocketsPacketSize</td><td>
Maximum size of a WebSocket packet exchanged with the user.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" external="mpr.dtags">MprTicks</a></td><td><td>webSocketsPing</td><td>
Time between pings.
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_limits_1gaf6da4fb1c160ebf9ae4e5fbafcdd583c"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_limits" class="ref">HttpLimits</a> *
httpCreateLimits
(int serverSide)
</div>
<div class="apiDetail">
<p>Create a new limits object.</p>
<dl><dt><b>Description</b>:</dt><dd>Create and initialize a new limits object with default values.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">serverSide</td><td>Set to &quot;true&quot; for server side limits. Set to &quot;false&quot; for client side default limits.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The allocated limits object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_limits" class="ref">HttpLimits</a>, <a href="#group___http_limits_1ga936696874273efa3f816cc124dcf366b" class="ref">httpEaseLimits</a>, <a href="#group___http_limits_1gabf99e730cf6ee3ae898a4a88f8d60e2f" class="ref">httpInitLimits</a></dd></dl>
</div>
</div>
<a name="group___http_limits_1ga936696874273efa3f816cc124dcf366b"></a>
<div class="api">
<div class="prototype">
void
httpEaseLimits
(<a href="#group___http_limits" class="ref">HttpLimits</a> *limits)
</div>
<div class="apiDetail">
<p>Ease the limits.</p>
<dl><dt><b>Description</b>:</dt><dd>This increases the receive body size, transmission body size and upload size to the maximum sizes supported by the system.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">limits</td><td>Limits object. This can be either HttpHost.limits HttpConn.limits or HttpEndpoint.limits.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_limits" class="ref">HttpLimits</a>, <a href="#group___http_limits_1gaf6da4fb1c160ebf9ae4e5fbafcdd583c" class="ref">httpCreateLimits</a>, <a href="#group___http_limits_1gabf99e730cf6ee3ae898a4a88f8d60e2f" class="ref">httpInitLimits</a></dd></dl>
</div>
</div>
<a name="group___http_limits_1gace43e7a431bfca0bece0ded59f125ee5"></a>
<div class="api">
<div class="prototype">
void
httpEnablePutMethod
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> on)
</div>
<div class="apiDetail">
<p>Enable use of the DELETE and PUT methods.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">on</td><td>Set to true to enable the DELETE and PUT Http methods.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_limits" class="ref">HttpLimits</a>, <a href="#group___http_limits_1gaf6da4fb1c160ebf9ae4e5fbafcdd583c" class="ref">httpCreateLimits</a>, <a href="#group___http_limits_1ga936696874273efa3f816cc124dcf366b" class="ref">httpEaseLimits</a>, <a href="#group___http_limits_1gabf99e730cf6ee3ae898a4a88f8d60e2f" class="ref">httpInitLimits</a></dd></dl>
</div>
</div>
<a name="group___http_limits_1gaf2ebb2fe7b68b07d3046751e8dd8fa78"></a>
<div class="api">
<div class="prototype">
void
httpEnableTraceMethod
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> on)
</div>
<div class="apiDetail">
<p>Enable use of the TRACE Http method.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">on</td><td>Set to true to enable the trace method.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_limits" class="ref">HttpLimits</a>, <a href="#group___http_limits_1gaf6da4fb1c160ebf9ae4e5fbafcdd583c" class="ref">httpCreateLimits</a>, <a href="#group___http_limits_1ga936696874273efa3f816cc124dcf366b" class="ref">httpEaseLimits</a>, <a href="#group___http_limits_1gabf99e730cf6ee3ae898a4a88f8d60e2f" class="ref">httpInitLimits</a></dd></dl>
</div>
</div>
<a name="group___http_limits_1gabf99e730cf6ee3ae898a4a88f8d60e2f"></a>
<div class="api">
<div class="prototype">
void
httpInitLimits
(<a href="#group___http_limits" class="ref">HttpLimits</a> *limits, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> serverSide)
</div>
<div class="apiDetail">
<p>Initialize a limits object with default values.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">limits</td><td>Limits object to modify.</td>
<tr><td class="param">serverSide</td><td>Set to &quot;true&quot; for server side limits. Set to &quot;false&quot; for client side default limits.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_limits" class="ref">HttpLimits</a>, <a href="#group___http_limits_1gaf6da4fb1c160ebf9ae4e5fbafcdd583c" class="ref">httpCreateLimits</a>, <a href="#group___http_limits_1ga936696874273efa3f816cc124dcf366b" class="ref">httpEaseLimits</a></dd></dl>
</div>
</div>
<h1>HttpPacket</h1>
<a name="group___http_packet"></a>
<div class="api">
<div class="prototype">HttpPacket</div>
<div class="apiDetail">
<p>Packet object.</p>
<dl><dt><b>Description</b>:</dt><dd>The request/response pipeline sends data and control information in HttpPacket objects. The output stream typically consists of a HEADER packet followed by zero or more data packets and terminated by an END packet. If the request has input data, the input stream consists of one or more data packets followed by an END packet. <br/><br/>
Packets contain data and optional prefix or suffix headers. Packets can be split, joined, filled, or emptied. The pipeline stages will fill or transform packet data as required.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900" class="ref">HttpFillProc</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_packet_1ga985c3c56f728ce5fa706bbd24021f190" class="ref">httpAdjustPacketEnd</a>, <a href="#group___http_packet_1gaa4276acfac070e26923c69125baf4959" class="ref">httpAdjustPacketStart</a>, <a href="#group___http_packet_1ga58a9502d7353a0cc11d43a5881d562cc" class="ref">httpClonePacket</a>, <a href="#group___http_packet_1gad491733e89bee8b1b64b47fa0e798931" class="ref">httpCreateDataPacket</a>, <a href="#group___http_packet_1ga5dd04a1c7f834f9acb5aa74488da5aad" class="ref">httpCreateEndPacket</a>, <a href="#group___http_packet_1ga5af4bd1a1d534e61d11ed1753c5f4a67" class="ref">httpCreateEntityPacket</a>, <a href="#group___http_packet_1ga24b80ddbcd324b10ac430c4465823190" class="ref">httpCreateHeaderPacket</a>, <a href="#group___http_packet_1ga736f27036a2f3752bc3aa5580f75eef7" class="ref">httpCreatePacket</a>, <a href="#group___http_queue_1ga289893521c40788edc06280530167a85" class="ref">httpGetPacket</a>, <a href="#group___http_packet_1ga76c32ea617916aed4174ef232df26fc3" class="ref">httpGetPacketLength</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_packet_1ga6c9a2e1da5b57252b7cf2e1958dcdc96" class="ref">httpJoinPacket</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_packet_1ga99ecd872c756327114f8470650da5af9" class="ref">httpSplitPacket</a></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">MprBuf *</td><td><td>content</td><td>
Chunk content.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>epos</td><td>
Data position in entity (file).
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>esize</td><td>
Data size in entity (file).
</td>
<tr><td class="param"><a class="ref" href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900">HttpFillProc</a></td><td><td>fill</td><td>
Callback to fill packet with data.
</td>
<tr><td class="param">uint</td><td><td>flags</td><td>
Packet flags.
</td>
<tr><td class="param">uint</td><td><td>last</td><td>
Last packet in a message.
</td>
<tr><td class="param">struct HttpPacket *</td><td><td>next</td><td>
Next packet in chain.
</td>
<tr><td class="param">MprBuf *</td><td><td>prefix</td><td>
Prefix message to be emitted before the content.
</td>
<tr><td class="param">uint</td><td><td>type</td><td>
Packet type extension.
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_packet_1ga985c3c56f728ce5fa706bbd24021f190"></a>
<div class="api">
<div class="prototype">
void
httpAdjustPacketEnd
(<a href="#group___http_packet" class="ref">HttpPacket</a> *packet, <a href="mprBare.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a> size)
</div>
<div class="apiDetail">
<p>Adjust the packet end position.</p>
<dl><dt><b>Description</b>:</dt><dd>This adjusts the packet content by the given size. The packet length (size) is decremented by the requested amount. If the packet describes entity data, the Packet.esize field is reduced by the requested size amount. If the packet has actual data buffered in Packet.content, the content buffer end position is reduced by by the size amount.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">packet</td><td>Packet to modify.</td>
<tr><td class="param">size</td><td>Size to adjust packet end position.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900" class="ref">HttpFillProc</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_packet_1gaa4276acfac070e26923c69125baf4959" class="ref">httpAdjustPacketStart</a>, <a href="#group___http_packet_1ga58a9502d7353a0cc11d43a5881d562cc" class="ref">httpClonePacket</a>, <a href="#group___http_packet_1gad491733e89bee8b1b64b47fa0e798931" class="ref">httpCreateDataPacket</a>, <a href="#group___http_packet_1ga5dd04a1c7f834f9acb5aa74488da5aad" class="ref">httpCreateEndPacket</a>, <a href="#group___http_packet_1ga5af4bd1a1d534e61d11ed1753c5f4a67" class="ref">httpCreateEntityPacket</a>, <a href="#group___http_packet_1ga24b80ddbcd324b10ac430c4465823190" class="ref">httpCreateHeaderPacket</a>, <a href="#group___http_packet_1ga736f27036a2f3752bc3aa5580f75eef7" class="ref">httpCreatePacket</a>, <a href="#group___http_queue_1ga289893521c40788edc06280530167a85" class="ref">httpGetPacket</a>, <a href="#group___http_packet_1ga76c32ea617916aed4174ef232df26fc3" class="ref">httpGetPacketLength</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_packet_1ga6c9a2e1da5b57252b7cf2e1958dcdc96" class="ref">httpJoinPacket</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_packet_1ga99ecd872c756327114f8470650da5af9" class="ref">httpSplitPacket</a></dd></dl>
</div>
</div>
<a name="group___http_packet_1gaa4276acfac070e26923c69125baf4959"></a>
<div class="api">
<div class="prototype">
void
httpAdjustPacketStart
(<a href="#group___http_packet" class="ref">HttpPacket</a> *packet, <a href="mprBare.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a> size)
</div>
<div class="apiDetail">
<p>Adjust the packet starting position.</p>
<dl><dt><b>Description</b>:</dt><dd>This adjusts the packet content by the given size. The packet position is incremented by start and the packet length (size) is decremented. If the packet describes entity data, the given size amount to the Packet.epos and decrements the Packet.esize fields. If the packet has actual data buffered in Packet.content, the content buffer start is incremeneted by the size amount.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">packet</td><td>Packet to modify.</td>
<tr><td class="param">size</td><td>Size to add to the packet current position.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900" class="ref">HttpFillProc</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_packet_1ga985c3c56f728ce5fa706bbd24021f190" class="ref">httpAdjustPacketEnd</a>, <a href="#group___http_packet_1ga58a9502d7353a0cc11d43a5881d562cc" class="ref">httpClonePacket</a>, <a href="#group___http_packet_1gad491733e89bee8b1b64b47fa0e798931" class="ref">httpCreateDataPacket</a>, <a href="#group___http_packet_1ga5dd04a1c7f834f9acb5aa74488da5aad" class="ref">httpCreateEndPacket</a>, <a href="#group___http_packet_1ga5af4bd1a1d534e61d11ed1753c5f4a67" class="ref">httpCreateEntityPacket</a>, <a href="#group___http_packet_1ga24b80ddbcd324b10ac430c4465823190" class="ref">httpCreateHeaderPacket</a>, <a href="#group___http_packet_1ga736f27036a2f3752bc3aa5580f75eef7" class="ref">httpCreatePacket</a>, <a href="#group___http_queue_1ga289893521c40788edc06280530167a85" class="ref">httpGetPacket</a>, <a href="#group___http_packet_1ga76c32ea617916aed4174ef232df26fc3" class="ref">httpGetPacketLength</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_packet_1ga6c9a2e1da5b57252b7cf2e1958dcdc96" class="ref">httpJoinPacket</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_packet_1ga99ecd872c756327114f8470650da5af9" class="ref">httpSplitPacket</a></dd></dl>
</div>
</div>
<a name="group___http_packet_1ga58a9502d7353a0cc11d43a5881d562cc"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_packet" class="ref">HttpPacket</a> *
httpClonePacket
(<a href="#group___http_packet" class="ref">HttpPacket</a> *orig)
</div>
<div class="apiDetail">
<p>Clone a packet.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">orig</td><td>Original packet to clone.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A new packet equivalent to the original.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900" class="ref">HttpFillProc</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_packet_1ga985c3c56f728ce5fa706bbd24021f190" class="ref">httpAdjustPacketEnd</a>, <a href="#group___http_packet_1gaa4276acfac070e26923c69125baf4959" class="ref">httpAdjustPacketStart</a>, <a href="#group___http_packet_1gad491733e89bee8b1b64b47fa0e798931" class="ref">httpCreateDataPacket</a>, <a href="#group___http_packet_1ga5dd04a1c7f834f9acb5aa74488da5aad" class="ref">httpCreateEndPacket</a>, <a href="#group___http_packet_1ga5af4bd1a1d534e61d11ed1753c5f4a67" class="ref">httpCreateEntityPacket</a>, <a href="#group___http_packet_1ga24b80ddbcd324b10ac430c4465823190" class="ref">httpCreateHeaderPacket</a>, <a href="#group___http_packet_1ga736f27036a2f3752bc3aa5580f75eef7" class="ref">httpCreatePacket</a>, <a href="#group___http_queue_1ga289893521c40788edc06280530167a85" class="ref">httpGetPacket</a>, <a href="#group___http_packet_1ga76c32ea617916aed4174ef232df26fc3" class="ref">httpGetPacketLength</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_packet_1ga6c9a2e1da5b57252b7cf2e1958dcdc96" class="ref">httpJoinPacket</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_packet_1ga99ecd872c756327114f8470650da5af9" class="ref">httpSplitPacket</a></dd></dl>
</div>
</div>
<a name="group___http_packet_1gad491733e89bee8b1b64b47fa0e798931"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_packet" class="ref">HttpPacket</a> *
httpCreateDataPacket
(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)
</div>
<div class="apiDetail">
<p>Create a data packet.</p>
<dl><dt><b>Description</b>:</dt><dd>Create a packet and set the HTTP_PACKET_DATA flag Data packets convey data through the response pipeline.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">size</td><td>Size of the package data storage.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>HttpPacket object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900" class="ref">HttpFillProc</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_packet_1ga985c3c56f728ce5fa706bbd24021f190" class="ref">httpAdjustPacketEnd</a>, <a href="#group___http_packet_1gaa4276acfac070e26923c69125baf4959" class="ref">httpAdjustPacketStart</a>, <a href="#group___http_packet_1ga58a9502d7353a0cc11d43a5881d562cc" class="ref">httpClonePacket</a>, <a href="#group___http_packet_1ga5dd04a1c7f834f9acb5aa74488da5aad" class="ref">httpCreateEndPacket</a>, <a href="#group___http_packet_1ga5af4bd1a1d534e61d11ed1753c5f4a67" class="ref">httpCreateEntityPacket</a>, <a href="#group___http_packet_1ga24b80ddbcd324b10ac430c4465823190" class="ref">httpCreateHeaderPacket</a>, <a href="#group___http_packet_1ga736f27036a2f3752bc3aa5580f75eef7" class="ref">httpCreatePacket</a>, <a href="#group___http_queue_1ga289893521c40788edc06280530167a85" class="ref">httpGetPacket</a>, <a href="#group___http_packet_1ga76c32ea617916aed4174ef232df26fc3" class="ref">httpGetPacketLength</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_packet_1ga6c9a2e1da5b57252b7cf2e1958dcdc96" class="ref">httpJoinPacket</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_packet_1ga99ecd872c756327114f8470650da5af9" class="ref">httpSplitPacket</a></dd></dl>
</div>
</div>
<a name="group___http_packet_1ga5dd04a1c7f834f9acb5aa74488da5aad"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_packet" class="ref">HttpPacket</a> *
httpCreateEndPacket
()
</div>
<div class="apiDetail">
<p>Create an end-of-stream packet.</p>
<dl><dt><b>Description</b>:</dt><dd>Create an end-of-stream packet and set the HTTP_PACKET_END flag. The end pack signifies the end of data. It is used on both incoming and outgoing streams through the request/response pipeline.</dd></dl>
<dl><dt>Returns:</dt><dd>HttpPacket object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900" class="ref">HttpFillProc</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_packet_1ga985c3c56f728ce5fa706bbd24021f190" class="ref">httpAdjustPacketEnd</a>, <a href="#group___http_packet_1gaa4276acfac070e26923c69125baf4959" class="ref">httpAdjustPacketStart</a>, <a href="#group___http_packet_1ga58a9502d7353a0cc11d43a5881d562cc" class="ref">httpClonePacket</a>, <a href="#group___http_packet_1gad491733e89bee8b1b64b47fa0e798931" class="ref">httpCreateDataPacket</a>, <a href="#group___http_packet_1ga5af4bd1a1d534e61d11ed1753c5f4a67" class="ref">httpCreateEntityPacket</a>, <a href="#group___http_packet_1ga24b80ddbcd324b10ac430c4465823190" class="ref">httpCreateHeaderPacket</a>, <a href="#group___http_packet_1ga736f27036a2f3752bc3aa5580f75eef7" class="ref">httpCreatePacket</a>, <a href="#group___http_queue_1ga289893521c40788edc06280530167a85" class="ref">httpGetPacket</a>, <a href="#group___http_packet_1ga76c32ea617916aed4174ef232df26fc3" class="ref">httpGetPacketLength</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_packet_1ga6c9a2e1da5b57252b7cf2e1958dcdc96" class="ref">httpJoinPacket</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_packet_1ga99ecd872c756327114f8470650da5af9" class="ref">httpSplitPacket</a></dd></dl>
</div>
</div>
<a name="group___http_packet_1ga5af4bd1a1d534e61d11ed1753c5f4a67"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_packet" class="ref">HttpPacket</a> *
httpCreateEntityPacket
(<a href="mprBare.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a> pos, <a href="mprBare.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a> size, <a href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900" class="ref">HttpFillProc</a> fill)
</div>
<div class="apiDetail">
<p>Create an entity data packet.</p>
<dl><dt><b>Description</b>:</dt><dd>Create an entity packet and set the HTTP_PACKET_DATA flag. Entity packets describe the resource (entity) to send to the client and provide a <a class="ref" href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900">HttpFillProc</a> procedure used to fill packets with data from the entity.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">pos</td><td>Position within the entity for packet data.</td>
<tr><td class="param">size</td><td>Size of the entity data.</td>
<tr><td class="param">fill</td><td>HttpFillProc callback to supply the entity data.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>HttpPacket object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900" class="ref">HttpFillProc</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_packet_1ga985c3c56f728ce5fa706bbd24021f190" class="ref">httpAdjustPacketEnd</a>, <a href="#group___http_packet_1gaa4276acfac070e26923c69125baf4959" class="ref">httpAdjustPacketStart</a>, <a href="#group___http_packet_1ga58a9502d7353a0cc11d43a5881d562cc" class="ref">httpClonePacket</a>, <a href="#group___http_packet_1gad491733e89bee8b1b64b47fa0e798931" class="ref">httpCreateDataPacket</a>, <a href="#group___http_packet_1ga5dd04a1c7f834f9acb5aa74488da5aad" class="ref">httpCreateEndPacket</a>, <a href="#group___http_packet_1ga24b80ddbcd324b10ac430c4465823190" class="ref">httpCreateHeaderPacket</a>, <a href="#group___http_packet_1ga736f27036a2f3752bc3aa5580f75eef7" class="ref">httpCreatePacket</a>, <a href="#group___http_queue_1ga289893521c40788edc06280530167a85" class="ref">httpGetPacket</a>, <a href="#group___http_packet_1ga76c32ea617916aed4174ef232df26fc3" class="ref">httpGetPacketLength</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_packet_1ga6c9a2e1da5b57252b7cf2e1958dcdc96" class="ref">httpJoinPacket</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_packet_1ga99ecd872c756327114f8470650da5af9" class="ref">httpSplitPacket</a></dd></dl>
</div>
</div>
<a name="group___http_packet_1ga24b80ddbcd324b10ac430c4465823190"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_packet" class="ref">HttpPacket</a> *
httpCreateHeaderPacket
()
</div>
<div class="apiDetail">
<p>Create a response header packet.</p>
<dl><dt><b>Description</b>:</dt><dd>Create a response header packet and set the HTTP_PACKET_HEADER flag. A header packet is used by the pipeline to hold the response headers.</dd></dl>
<dl><dt>Returns:</dt><dd>HttpPacket object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900" class="ref">HttpFillProc</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_packet_1ga985c3c56f728ce5fa706bbd24021f190" class="ref">httpAdjustPacketEnd</a>, <a href="#group___http_packet_1gaa4276acfac070e26923c69125baf4959" class="ref">httpAdjustPacketStart</a>, <a href="#group___http_packet_1ga58a9502d7353a0cc11d43a5881d562cc" class="ref">httpClonePacket</a>, <a href="#group___http_packet_1gad491733e89bee8b1b64b47fa0e798931" class="ref">httpCreateDataPacket</a>, <a href="#group___http_packet_1ga5dd04a1c7f834f9acb5aa74488da5aad" class="ref">httpCreateEndPacket</a>, <a href="#group___http_packet_1ga5af4bd1a1d534e61d11ed1753c5f4a67" class="ref">httpCreateEntityPacket</a>, <a href="#group___http_packet_1ga736f27036a2f3752bc3aa5580f75eef7" class="ref">httpCreatePacket</a>, <a href="#group___http_queue_1ga289893521c40788edc06280530167a85" class="ref">httpGetPacket</a>, <a href="#group___http_packet_1ga76c32ea617916aed4174ef232df26fc3" class="ref">httpGetPacketLength</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_packet_1ga6c9a2e1da5b57252b7cf2e1958dcdc96" class="ref">httpJoinPacket</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_packet_1ga99ecd872c756327114f8470650da5af9" class="ref">httpSplitPacket</a></dd></dl>
</div>
</div>
<a name="group___http_packet_1ga736f27036a2f3752bc3aa5580f75eef7"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_packet" class="ref">HttpPacket</a> *
httpCreatePacket
(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)
</div>
<div class="apiDetail">
<p>Create a data packet.</p>
<dl><dt><b>Description</b>:</dt><dd>Create a packet of the required size.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">size</td><td>Size of the package data storage.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>HttpPacket object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900" class="ref">HttpFillProc</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_packet_1ga985c3c56f728ce5fa706bbd24021f190" class="ref">httpAdjustPacketEnd</a>, <a href="#group___http_packet_1gaa4276acfac070e26923c69125baf4959" class="ref">httpAdjustPacketStart</a>, <a href="#group___http_packet_1ga58a9502d7353a0cc11d43a5881d562cc" class="ref">httpClonePacket</a>, <a href="#group___http_packet_1gad491733e89bee8b1b64b47fa0e798931" class="ref">httpCreateDataPacket</a>, <a href="#group___http_packet_1ga5dd04a1c7f834f9acb5aa74488da5aad" class="ref">httpCreateEndPacket</a>, <a href="#group___http_packet_1ga5af4bd1a1d534e61d11ed1753c5f4a67" class="ref">httpCreateEntityPacket</a>, <a href="#group___http_packet_1ga24b80ddbcd324b10ac430c4465823190" class="ref">httpCreateHeaderPacket</a>, <a href="#group___http_queue_1ga289893521c40788edc06280530167a85" class="ref">httpGetPacket</a>, <a href="#group___http_packet_1ga76c32ea617916aed4174ef232df26fc3" class="ref">httpGetPacketLength</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_packet_1ga6c9a2e1da5b57252b7cf2e1958dcdc96" class="ref">httpJoinPacket</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_packet_1ga99ecd872c756327114f8470650da5af9" class="ref">httpSplitPacket</a></dd></dl>
</div>
</div>
<a name="group___http_packet_1ga76c32ea617916aed4174ef232df26fc3"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpGetPacketLength
(<a href="#group___http_packet" class="ref">HttpPacket</a> *packet)
</div>
<div class="apiDetail">
<p>Get the length of the packet data contents.</p>
<dl><dt><b>Description</b>:</dt><dd>Get the content length of a packet. This does not include the prefix or virtual data length <ndash/> just the pure buffered data contents.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">packet</td><td>Packet to examine.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Count of bytes contained by the packet.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900" class="ref">HttpFillProc</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_packet_1ga985c3c56f728ce5fa706bbd24021f190" class="ref">httpAdjustPacketEnd</a>, <a href="#group___http_packet_1gaa4276acfac070e26923c69125baf4959" class="ref">httpAdjustPacketStart</a>, <a href="#group___http_packet_1ga58a9502d7353a0cc11d43a5881d562cc" class="ref">httpClonePacket</a>, <a href="#group___http_packet_1gad491733e89bee8b1b64b47fa0e798931" class="ref">httpCreateDataPacket</a>, <a href="#group___http_packet_1ga5dd04a1c7f834f9acb5aa74488da5aad" class="ref">httpCreateEndPacket</a>, <a href="#group___http_packet_1ga5af4bd1a1d534e61d11ed1753c5f4a67" class="ref">httpCreateEntityPacket</a>, <a href="#group___http_packet_1ga24b80ddbcd324b10ac430c4465823190" class="ref">httpCreateHeaderPacket</a>, <a href="#group___http_packet_1ga736f27036a2f3752bc3aa5580f75eef7" class="ref">httpCreatePacket</a>, <a href="#group___http_queue_1ga289893521c40788edc06280530167a85" class="ref">httpGetPacket</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_packet_1ga6c9a2e1da5b57252b7cf2e1958dcdc96" class="ref">httpJoinPacket</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_packet_1ga99ecd872c756327114f8470650da5af9" class="ref">httpSplitPacket</a></dd></dl>
</div>
</div>
<a name="group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpIsLastPacket
(<a href="#group___http_packet" class="ref">HttpPacket</a> *packet)
</div>
<div class="apiDetail">
<p>Test if the packet is the last in a logical message.</p>
<dl><dt><b>Description</b>:</dt><dd>Useful for WebSockets to test if the packet is the last frame in a message.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">packet</td><td>Packet to examine.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the packet is the last in a message.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900" class="ref">HttpFillProc</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_packet_1ga985c3c56f728ce5fa706bbd24021f190" class="ref">httpAdjustPacketEnd</a>, <a href="#group___http_packet_1gaa4276acfac070e26923c69125baf4959" class="ref">httpAdjustPacketStart</a>, <a href="#group___http_packet_1ga58a9502d7353a0cc11d43a5881d562cc" class="ref">httpClonePacket</a>, <a href="#group___http_packet_1gad491733e89bee8b1b64b47fa0e798931" class="ref">httpCreateDataPacket</a>, <a href="#group___http_packet_1ga5dd04a1c7f834f9acb5aa74488da5aad" class="ref">httpCreateEndPacket</a>, <a href="#group___http_packet_1ga5af4bd1a1d534e61d11ed1753c5f4a67" class="ref">httpCreateEntityPacket</a>, <a href="#group___http_packet_1ga24b80ddbcd324b10ac430c4465823190" class="ref">httpCreateHeaderPacket</a>, <a href="#group___http_packet_1ga736f27036a2f3752bc3aa5580f75eef7" class="ref">httpCreatePacket</a>, <a href="#group___http_queue_1ga289893521c40788edc06280530167a85" class="ref">httpGetPacket</a>, <a href="#group___http_packet_1ga76c32ea617916aed4174ef232df26fc3" class="ref">httpGetPacketLength</a>, <a href="#group___http_packet_1ga6c9a2e1da5b57252b7cf2e1958dcdc96" class="ref">httpJoinPacket</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_packet_1ga99ecd872c756327114f8470650da5af9" class="ref">httpSplitPacket</a></dd></dl>
</div>
</div>
<a name="group___http_packet_1ga6c9a2e1da5b57252b7cf2e1958dcdc96"></a>
<div class="api">
<div class="prototype">
int
httpJoinPacket
(<a href="#group___http_packet" class="ref">HttpPacket</a> *packet, <a href="#group___http_packet" class="ref">HttpPacket</a> *other)
</div>
<div class="apiDetail">
<p>Join two packets.</p>
<dl><dt><b>Description</b>:</dt><dd>Join the contents of one packet to another by copying the data from the other packet into the first packet.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">packet</td><td>Destination packet.</td>
<tr><td class="param">other</td><td>Other packet to copy data from.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if successful, otherwise a negative Mpr error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900" class="ref">HttpFillProc</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_packet_1ga985c3c56f728ce5fa706bbd24021f190" class="ref">httpAdjustPacketEnd</a>, <a href="#group___http_packet_1gaa4276acfac070e26923c69125baf4959" class="ref">httpAdjustPacketStart</a>, <a href="#group___http_packet_1ga58a9502d7353a0cc11d43a5881d562cc" class="ref">httpClonePacket</a>, <a href="#group___http_packet_1gad491733e89bee8b1b64b47fa0e798931" class="ref">httpCreateDataPacket</a>, <a href="#group___http_packet_1ga5dd04a1c7f834f9acb5aa74488da5aad" class="ref">httpCreateEndPacket</a>, <a href="#group___http_packet_1ga5af4bd1a1d534e61d11ed1753c5f4a67" class="ref">httpCreateEntityPacket</a>, <a href="#group___http_packet_1ga24b80ddbcd324b10ac430c4465823190" class="ref">httpCreateHeaderPacket</a>, <a href="#group___http_packet_1ga736f27036a2f3752bc3aa5580f75eef7" class="ref">httpCreatePacket</a>, <a href="#group___http_queue_1ga289893521c40788edc06280530167a85" class="ref">httpGetPacket</a>, <a href="#group___http_packet_1ga76c32ea617916aed4174ef232df26fc3" class="ref">httpGetPacketLength</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_packet_1ga99ecd872c756327114f8470650da5af9" class="ref">httpSplitPacket</a></dd></dl>
</div>
</div>
<a name="group___http_packet_1ga99ecd872c756327114f8470650da5af9"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_packet" class="ref">HttpPacket</a> *
httpSplitPacket
(<a href="#group___http_packet" class="ref">HttpPacket</a> *packet, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> offset)
</div>
<div class="apiDetail">
<p>Split a data packet.</p>
<dl><dt><b>Description</b>:</dt><dd>Split a data packet at the specified offset. Packets may need to be split so that downstream stages can digest their contents. If a packet is too large for the queue maximum size, it should be split. When the packet is split, a new packet is created containing the data after the offset. Any suffix headers are moved to the new packet.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">packet</td><td>Packet to split.</td>
<tr><td class="param">offset</td><td>Route in the original packet at which to split.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>New HttpPacket object containing the data after the offset. No need to free, unless you have a very long running request. Otherwise the packet memory will be released automatically when the request completes.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900" class="ref">HttpFillProc</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_packet_1ga985c3c56f728ce5fa706bbd24021f190" class="ref">httpAdjustPacketEnd</a>, <a href="#group___http_packet_1gaa4276acfac070e26923c69125baf4959" class="ref">httpAdjustPacketStart</a>, <a href="#group___http_packet_1ga58a9502d7353a0cc11d43a5881d562cc" class="ref">httpClonePacket</a>, <a href="#group___http_packet_1gad491733e89bee8b1b64b47fa0e798931" class="ref">httpCreateDataPacket</a>, <a href="#group___http_packet_1ga5dd04a1c7f834f9acb5aa74488da5aad" class="ref">httpCreateEndPacket</a>, <a href="#group___http_packet_1ga5af4bd1a1d534e61d11ed1753c5f4a67" class="ref">httpCreateEntityPacket</a>, <a href="#group___http_packet_1ga24b80ddbcd324b10ac430c4465823190" class="ref">httpCreateHeaderPacket</a>, <a href="#group___http_packet_1ga736f27036a2f3752bc3aa5580f75eef7" class="ref">httpCreatePacket</a>, <a href="#group___http_queue_1ga289893521c40788edc06280530167a85" class="ref">httpGetPacket</a>, <a href="#group___http_packet_1ga76c32ea617916aed4174ef232df26fc3" class="ref">httpGetPacketLength</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_packet_1ga6c9a2e1da5b57252b7cf2e1958dcdc96" class="ref">httpJoinPacket</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a></dd></dl>
</div>
</div>
<h1>HttpQueue</h1>
<a name="group___http_queue"></a>
<div class="api">
<div class="prototype">HttpQueue</div>
<div class="apiDetail">
<p>Queue object.</p>
<dl><dt><b>Description</b>:</dt><dd>The request pipeline consists of a full-duplex pipeline of stages. Each stage has two queues, one for outgoing data and one for incoming. A HttpQueue object manages the data flow for a request stage and has the ability to queue and process data, manage flow control, and schedule packets for service. <br/><br/>
Queue&apos;s provide open, close, put, and service methods. These methods manage and respond to incoming packets. A queue can respond immediately to an incoming packet by processing or dispatching a packet in its put() method. Alternatively, the queue can defer processing by queueing the packet on it&apos;s service queue and then waiting for it&apos;s service() method to be invoked. <br/><br/>
If a queue does not define a put() method, the default put() method will be used which queues data onto the service queue. The default incoming put() method joins incoming packets into a single packet on the service queue. <br/><br/>
Data flows downstream from one queue to the next queue linked via the nextQ field.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">HttpQueueClose</td><td><td>close</td><td>
Close the queue.
</td>
<tr><td class="param">struct HttpConn *</td><td><td>conn</td><td>
Connection owning this queue.
</td>
<tr><td class="param">ssize</td><td><td>count</td><td>
Bytes in queue (Does not include virt packet data).
</td>
<tr><td class="param">int</td><td><td>direction</td><td>
Flow direction.
</td>
<tr><td class="param">HttpPacket *</td><td><td>first</td><td>
First packet in queue (singly linked).
</td>
<tr><td class="param">int</td><td><td>flags</td><td>
Queue flags.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>ioCount</td><td>
Count of bytes in iovec including file I/O.
</td>
<tr><td class="param">int</td><td><td>ioFile</td><td>
Sending a file.
</td>
<tr><td class="param">int</td><td><td>ioIndex</td><td>
Next index into iovec.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>ioPos</td><td>
Position in file for sendfile.
</td>
<tr><td class="param">HttpPacket *</td><td><td>last</td><td>
Last packet in queue (tail pointer).
</td>
<tr><td class="param">ssize</td><td><td>low</td><td>
Low water mark for flow control.
</td>
<tr><td class="param">ssize</td><td><td>max</td><td>
Advisory maxiumum queue size.
</td>
<tr><td class="param">cchar *</td><td><td>name</td><td>
Queue name for debugging.
</td>
<tr><td class="param">struct HttpQueue *</td><td><td>nextQ</td><td>
Downstream queue for next stage.
</td>
<tr><td class="param">HttpQueueOpen</td><td><td>open</td><td>
Open the queue.
</td>
<tr><td class="param">ssize</td><td><td>packetSize</td><td>
Maximum acceptable packet size.
</td>
<tr><td class="param">struct HttpQueue *</td><td><td>pair</td><td>
Queue for the same stage in the opposite direction.
</td>
<tr><td class="param">struct HttpQueue *</td><td><td>prevQ</td><td>
Upstream queue for prior stage.
</td>
<tr><td class="param">HttpQueueData</td><td><td>put</td><td>
Callback to receive a packet.
</td>
<tr><td class="param">void *</td><td><td>queueData</td><td>
Stage instance data - must be a managed reference.
</td>
<tr><td class="param">struct HttpQueue *</td><td><td>scheduleNext</td><td>
Next linkage when queue is on the service queue.
</td>
<tr><td class="param">struct HttpQueue *</td><td><td>schedulePrev</td><td>
Previous linkage when queue is on the service queue.
</td>
<tr><td class="param">HttpQueueService</td><td><td>service</td><td>
Service the queue.
</td>
<tr><td class="param">int</td><td><td>servicing</td><td>
Currently being serviced.
</td>
<tr><td class="param">struct HttpStage *</td><td><td>stage</td><td>
Stage owning this queue.
</td>
<tr><td class="param">HttpQueueStart</td><td><td>start</td><td>
Start the queue.
</td>
<tr><td class="param">void *</td><td><td>staticData</td><td>
Stage instance data - must be an unmanaged reference.
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db"></a>
<div class="api">
<div class="prototype">
void
httpDisableQueue
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)
</div>
<div class="apiDetail">
<p>Disable a queue.</p>
<dl><dt><b>Description</b>:</dt><dd>Disable a queue so that it will not be scheduled for service. The queue will remain disabled until httpEnableQueue is called.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241"></a>
<div class="api">
<div class="prototype">
void
httpDiscardQueueData
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> removePackets)
</div>
<div class="apiDetail">
<p>Discard all data from the queue.</p>
<dl><dt><b>Description</b>:</dt><dd>Discard data from the queue. If removePackets (not yet implemented) is &quot;true&quot;, then remove the packets. Oherwise, just discard the data and preserve the packets.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
<tr><td class="param">removePackets</td><td>If &quot;true&quot;, the data packets will be removed from the queue.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga346146f107faba9923caa9e003c4d3a1"></a>
<div class="api">
<div class="prototype">
void
httpEnableQueue
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)
</div>
<div class="apiDetail">
<p>Enable a queue after it has been disabled.</p>
<dl><dt><b>Description</b>:</dt><dd>Enable a queue for service and schedule it to run. This will cause the service routine to run as soon as possible.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga668818c8040ad8157f0141b32b844897"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpFlushQueue
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> block)
</div>
<div class="apiDetail">
<p>Flush queue data.</p>
<dl><dt><b>Description</b>:</dt><dd>This initiates writing buffered queue data (flushes) by scheduling the queue and servicing all scheduled queues. If blocking is requested, the call will block until the queue count falls below the queue maximum. WARNING: Be very careful when using blocking == true. Should only be used by end applications and not by middleware.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue to flush.</td>
<tr><td class="param">block</td><td>If set to &quot;true&quot;, this call will block until the data has drained below the queue maximum.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;True&quot; if there is room for more data in the queue after flushing.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga289893521c40788edc06280530167a85"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_packet" class="ref">HttpPacket</a> *
httpGetPacket
(struct HttpQueue *q)
</div>
<div class="apiDetail">
<p>Get the next packet from a queue.</p>
<dl><dt><b>Description</b>:</dt><dd>Get the next packet. This will remove the packet from the queue and adjust the queue counts accordingly. If the queue is full and upstream queues are blocked, they will be enabled.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The packet removed from the queue.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpGetQueueRoom
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)
</div>
<div class="apiDetail">
<p>Get the room in the queue.</p>
<dl><dt><b>Description</b>:</dt><dd>Get the amount of data the queue can accept before being full.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A count of bytes that can be written to the queue.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga0312ce08a79bdfb49854b0693480b661"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpIsEof
(struct HttpConn *conn)
</div>
<div class="apiDetail">
<p>Test if the connection has received all incoming content.</p>
<dl><dt><b>Description</b>:</dt><dd>This tests if the connection is at an "End of File condition.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;True&quot; if all Receive content has been received.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpIsPacketTooBig
(struct HttpQueue *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet)
</div>
<div class="apiDetail">
<p>Test if a packet is too big.</p>
<dl><dt><b>Description</b>:</dt><dd>Test if a packet is too big to fit downstream. If the packet content exceeds the downstream queue&apos;s maximum or exceeds the downstream queue&apos;s requested packet size <ndash/> then this routine will return &quot;true&quot;.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
<tr><td class="param">packet</td><td>Packet to test.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;True&quot; if the packet is too big for the downstream queue.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1gacd6cd97710d608b988e9169637dec43c"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpIsQueueEmpty
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)
</div>
<div class="apiDetail">
<p>Determine if the queue is empty.</p>
<dl><dt><b>Description</b>:</dt><dd>Determine if the queue has no packets queued. This does not test if the queue has no data content.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;True&quot; if there are no packets queued.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga8b793cab9130802476c4f81626b9fafc"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpIsQueueSuspended
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)
</div>
<div class="apiDetail">
<p>Test if a queue is suspended.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the queue is suspended.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0"></a>
<div class="api">
<div class="prototype">
void
httpJoinPacketForService
(struct HttpQueue *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> serviceQ)
</div>
<div class="apiDetail">
<p>Join a packet onto the service queue.</p>
<dl><dt><b>Description</b>:</dt><dd>Add a packet to the service queue. If the queue already has data, then this packet will be joined (aggregated) into the existing packet. If serviceQ is true, the queue will be scheduled for service.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
<tr><td class="param">packet</td><td>Packet to join to the queue.</td>
<tr><td class="param">serviceQ</td><td>If true, schedule the queue for service.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga476c8e99e1c02292781748edd59190dc"></a>
<div class="api">
<div class="prototype">
void
httpJoinPackets
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)
</div>
<div class="apiDetail">
<p>Join packets together.</p>
<dl><dt><b>Description</b>:</dt><dd>This call joins data packets on the given queue into a single packet. The given size specifies the maximum size of data to be joined. The maximum size may also limited by the downstream queue maximum packet size.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue to examine.</td>
<tr><td class="param">size</td><td>The maximum-sized packet that will be created by joining queue packets is the minimum of the given size and the downstream queues maximum packet size. Note: this routine will not split packets and so the maximum is advisory only.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b"></a>
<div class="api">
<div class="prototype">
void
httpPutBackPacket
(struct HttpQueue *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet)
</div>
<div class="apiDetail">
<p>Put a packet back onto a queue.</p>
<dl><dt><b>Description</b>:</dt><dd>Put the packet back onto the front of the queue. The queue&apos;s put() method is not called. This is typically used by the queue&apos;s service routine when a packet cannot complete processing.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
<tr><td class="param">packet</td><td>Packet to put back.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c"></a>
<div class="api">
<div class="prototype">
void
httpPutForService
(struct HttpQueue *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> serviceQ)
</div>
<div class="apiDetail">
<p>Put a packet into the service queue for deferred processing.</p>
<dl><dt><b>Description</b>:</dt><dd>Add a packet to the service queue. If serviceQ is true, the queue will be scheduled for service.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
<tr><td class="param">packet</td><td>Packet to join to the queue.</td>
<tr><td class="param">serviceQ</td><td>If true, schedule the queue for service.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1gac4ad79496f9054044a6c999384669d6a"></a>
<div class="api">
<div class="prototype">
void
httpPutPacket
(struct HttpQueue *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet)
</div>
<div class="apiDetail">
<p>Put a packet to the queue.</p>
<dl><dt><b>Description</b>:</dt><dd>The packet is passed to the queue by invoking its put() callback. Note the receiving queue may immediately process the packet or it may choose to defer processing by putting to its service queue.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
<tr><td class="param">packet</td><td>Packet to put.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga15c957cd47313affb413d681767a4763"></a>
<div class="api">
<div class="prototype">
void
httpPutPacketToNext
(struct HttpQueue *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet)
</div>
<div class="apiDetail">
<p>Put a packet to the next queue downstream.</p>
<dl><dt><b>Description</b>:</dt><dd>Put a packet onto the next downstream queue by calling the downstream queue&apos;s put() method. Note the receiving queue may immediately process the packet or it may choose to defer processing by putting to its service queue.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
<tr><td class="param">q</td><td>Queue reference. The packet will not be queued on this queue, but rather on the queue downstream.</td>
<tr><td class="param">packet</td><td>Packet to put.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02"></a>
<div class="api">
<div class="prototype">
void
httpRemoveQueue
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)
</div>
<div class="apiDetail">
<p>Remove a queue.</p>
<dl><dt><b>Description</b>:</dt><dd>Remove a queue from the request/response pipeline. This will remove a queue so that it does not participate in the pipeline, effectively removing the processing stage from the pipeline. This is useful to remove unwanted filters and to speed up pipeline processing.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56"></a>
<div class="api">
<div class="prototype">
int
httpResizePacket
(struct HttpQueue *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)
</div>
<div class="apiDetail">
<p>Resize a packet.</p>
<dl><dt><b>Description</b>:</dt><dd>Resize a packet, if required, so that it fits in the downstream queue. This may split the packet if it is too big to fit in the downstream queue. If it is split, the tail portion is put back on the queue.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
<tr><td class="param">packet</td><td>Packet to put.</td>
<tr><td class="param">size</td><td>If size is &gt; 0, then also ensure the packet is not larger than this size.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if successful, otherwise a negative Mpr error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1gad9b3304f0b755f85d500c072b6812380"></a>
<div class="api">
<div class="prototype">
void
httpResumeQueue
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)
</div>
<div class="apiDetail">
<p>Resume a queue.</p>
<dl><dt><b>Description</b>:</dt><dd>Resume a queue for service and schedule it to run. This will cause the service routine to run as soon as possible. This is normally called automatically called by the pipeline when downstream congestion has cleared.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5"></a>
<div class="api">
<div class="prototype">
void
httpScheduleQueue
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)
</div>
<div class="apiDetail">
<p>Schedule a queue.</p>
<dl><dt><b>Description</b>:</dt><dd>Schedule a queue by adding it to the schedule queue. Queues are serviced FIFO.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77"></a>
<div class="api">
<div class="prototype">
void
httpServiceQueue
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)
</div>
<div class="apiDetail">
<p>Service a queue.</p>
<dl><dt><b>Description</b>:</dt><dd>Service a queue by invoking its service() routine.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce"></a>
<div class="api">
<div class="prototype">
void
httpSetQueueLimits
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> low, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> max)
</div>
<div class="apiDetail">
<p>Set a queue&apos;s flow control low and high water marks.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
<tr><td class="param">low</td><td>The low water mark. Typically 5% of the max.</td>
<tr><td class="param">max</td><td>The high water mark.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c"></a>
<div class="api">
<div class="prototype">
void
httpSuspendQueue
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)
</div>
<div class="apiDetail">
<p>Suspend a queue.</p>
<dl><dt><b>Description</b>:</dt><dd>Suspended a queue so that it will not be scheduled for service. The pipeline will will automatically call httpResumeQueue when the downstream queues are less congested.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpWillNextQueueAcceptPacket
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet)
</div>
<div class="apiDetail">
<p>Determine if the downstream queue will accept this packet.</p>
<dl><dt><b>Description</b>:</dt><dd>Test if the downstream queue will accept a packet. The packet will be resized, if required, in an attempt to get the downstream queue to accept it. If the downstream queue is full, disable this queue and mark the downstream queue as full, and service it immediately to try to relieve the congestion.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
<tr><td class="param">packet</td><td>Packet to put.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;True&quot; if the downstream queue will accept the packet. Use <a class="ref" href="#group___http_queue_1ga15c957cd47313affb413d681767a4763">httpPutPacketToNext</a> to send the packet downstream.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga1cc3389ca2a476dda61904b46d939740"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpWillNextQueueAcceptSize
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)
</div>
<div class="apiDetail">
<p>Determine if the downstream queue will accept a certain amount of data.</p>
<dl><dt><b>Description</b>:</dt><dd>Test if the downstream queue will accept data of a given size.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
<tr><td class="param">size</td><td>Size of data to test for.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;True&quot; if the downstream queue will accept the given sized data.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga5a91f11aad2cd85d6e59830d2ffaf5f5"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpWillQueueAcceptPacket
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> split)
</div>
<div class="apiDetail">
<p>Determine if the given queue will accept this packet.</p>
<dl><dt><b>Description</b>:</dt><dd>Test if the queue will accept a packet. The packet will be resized, if split is true, in an attempt to get the downstream queue to accept it.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
<tr><td class="param">packet</td><td>Packet to put.</td>
<tr><td class="param">split</td><td>Set to true to split the packet if required to fit into the queue.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;True&quot; if the queue will accept the packet.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1ga5599a178a2bab73929795952231d6e6a"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpWrite
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
</div>
<div class="apiDetail">
<p>Write a formatted string.</p>
<dl><dt><b>Description</b>:</dt><dd>Write a formatted string of data into packets onto the end of the queue. Data packets will be created as required to store the write data. This call always accepts all the data and will buffer as required. This call may block waiting for the downstream queue to drain if it is or becomes full. Data written after <a class="ref" href="#group___http_tx_1ga49edf0602dd2143b518c247f9cee8720">httpFinalizeOutput</a> or <a class="ref" href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be">httpError</a> is called will be ignored.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
<tr><td class="param">fmt</td><td>Printf style formatted string.</td>
<tr><td class="param">...</td><td>Arguments for fmt.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1gab3aa1e003e80d683e11c1641826da076"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpWriteBlock
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *buf, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size, int flags)
</div>
<div class="apiDetail">
<p>Write a block of data to the queue.</p>
<dl><dt><b>Description</b>:</dt><dd>Write a block of data onto the end of the queue. This will queue the data an may initiaite writing to the connection if the queue is full. Data will be appended to last packet in the queue if there is room. Otherwise, data packets will be created as required to store the write data. This call operates in buffering mode by default unless either the HTTP_BLOCK OR HTTP_NON_BLOCK flag is specified. When blocking, the call will either accept and write all the data or it will fail, it will never return &quot;short&quot; with a partial write. In blocking mode (HTTP_BLOCK), it block for up to the inactivity timeout specified in the conn-&gt;limits-&gt;inactivityTimeout value. In non-blocking mode (HTTP_NON_BLOCK), the call may return having written fewer bytes than requested. In buffering mode (HTTP_BUFFER), the data is always absorbed without blocking and queue size limits are ignored. Data written after <a class="ref" href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70">httpFinalize</a>, <a class="ref" href="#group___http_tx_1ga49edf0602dd2143b518c247f9cee8720">httpFinalizeOutput</a> or <a class="ref" href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be">httpError</a> is called will be ignored.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
<tr><td class="param">buf</td><td>Buffer containing the write data.</td>
<tr><td class="param">size</td><td>of the data in buf.</td>
<tr><td class="param">flags</td><td>Set to HTTP_BLOCK for blocking operation or HTTP_NON_BLOCK for non-blocking. Set to HTTP_BUFFER to buffer the data if required and never block. Set to zero will default to HTTP_BUFFER.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The size value if successful or a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7" class="ref">httpWriteString</a></dd></dl>
</div>
</div>
<a name="group___http_queue_1gad062a99a5fe2d4a79753b71d4be891d7"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpWriteString
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *s)
</div>
<div class="apiDetail">
<p>Write a string of data to the queue.</p>
Write a safe string of data to the queue
<dl><dt><b>Description</b>:</dt><dd>Write a string of data into packets onto the end of the queue. Data packets will be created as required to store the write data. This call may block waiting for the downstream queue to drain if it is or becomes full. Data written after <a class="ref" href="#group___http_tx_1ga49edf0602dd2143b518c247f9cee8720">httpFinalizeOutput</a> or <a class="ref" href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be">httpError</a> is called will be ignored.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
<tr><td class="param">s</td><td>String containing the data to write.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt><b>Description</b>:</dt><dd>This will escape any HTML sequences before writing the string into packets onto the end of the queue. Data packets will be created as required to store the write data. This call may block waiting for the downstream queue to drain if it is or becomes full. Data written after <a class="ref" href="#group___http_tx_1ga49edf0602dd2143b518c247f9cee8720">httpFinalizeOutput</a> or <a class="ref" href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be">httpError</a> is called will be ignored.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue reference.</td>
<tr><td class="param">s</td><td>String containing the data to write.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_queue_1ga9148e04c9f1e0be26f5c05fa069671db" class="ref">httpDisableQueue</a>, <a href="#group___http_queue_1ga344b2dc70ee303361d496d7bc13d0241" class="ref">httpDiscardQueueData</a>, <a href="#group___http_queue_1ga346146f107faba9923caa9e003c4d3a1" class="ref">httpEnableQueue</a>, <a href="#group___http_queue_1ga668818c8040ad8157f0141b32b844897" class="ref">httpFlushQueue</a>, <a href="#group___http_queue_1ga141d826d025030d4d8c6b3e29cc82b54" class="ref">httpGetQueueRoom</a>, <a href="#group___http_queue_1ga0312ce08a79bdfb49854b0693480b661" class="ref">httpIsEof</a>, <a href="#group___http_queue_1gafb4d0f9b9d5caa21b605e015154de36e" class="ref">httpIsPacketTooBig</a>, <a href="#group___http_queue_1gacd6cd97710d608b988e9169637dec43c" class="ref">httpIsQueueEmpty</a>, <a href="#group___http_queue_1ga8b793cab9130802476c4f81626b9fafc" class="ref">httpIsQueueSuspended</a>, <a href="#group___http_queue_1ga7ca69588fa498e117f23b73956ae66f0" class="ref">httpJoinPacketForService</a>, <a href="#group___http_queue_1ga476c8e99e1c02292781748edd59190dc" class="ref">httpJoinPackets</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_queue_1gaf2897449db2b3cb92cd701a14a0a0a02" class="ref">httpRemoveQueue</a>, <a href="#group___http_queue_1gafea79ab1e8d1bc8b9827594c4c1d2e56" class="ref">httpResizePacket</a>, <a href="#group___http_queue_1gad9b3304f0b755f85d500c072b6812380" class="ref">httpResumeQueue</a>, <a href="#group___http_queue_1ga3ea3dc316a3c5b968eac6e5b6069ccf5" class="ref">httpScheduleQueue</a>, <a href="#group___http_queue_1ga5ed409b0c87172597fa7f928df1e7e77" class="ref">httpServiceQueue</a>, <a href="#group___http_queue_1ga6461bb9287ebb39aa6f0b926116308ce" class="ref">httpSetQueueLimits</a>, <a href="#group___http_queue_1ga92b2f3b27c956c84e01a671eedec5e0c" class="ref">httpSuspendQueue</a>, <a href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7" class="ref">httpWillNextQueueAcceptPacket</a>, <a href="#group___http_queue_1ga1cc3389ca2a476dda61904b46d939740" class="ref">httpWillNextQueueAcceptSize</a>, <a href="#group___http_queue_1ga5599a178a2bab73929795952231d6e6a" class="ref">httpWrite</a>, <a href="#group___http_queue_1gab3aa1e003e80d683e11c1641826da076" class="ref">httpWriteBlock</a></dd></dl>
</div>
</div>
<h1>HttpRange</h1>
<a name="group___http_range"></a>
<div class="api">
<div class="prototype">HttpRange</div>
<div class="apiDetail">
<p>Content range structure.</p>
<dl><dt></dt><dd>Range: 0, 49 First 50 bytes Range: -1, -50 Last 50 bytes Range: 1, -1 Skip first byte then select content to the end.</dd></dl>
<dl><dt>See Also:</dt><dd>
</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>end</td><td>
End byte of range + 1.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>len</td><td>
Redundant range length.
</td>
<tr><td class="param">struct HttpRange *</td><td><td>next</td><td>
Next range.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>start</td><td>
Start of range.
</td>
</table></dd></dl>
</div>
</div>
<h1>HttpRoute</h1>
<a name="group___http_route"></a>
<div class="api">
<div class="prototype">HttpRoute</div>
<div class="apiDetail">
<p>Route Control.</p>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" c
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">HttpAuth *</td><td><td>auth</td><td>
Per route block authentication.
</td>
<tr><td class="param">int</td><td><td>autoDelete</td><td>
Automatically delete uploaded files.
</td>
<tr><td class="param">MprList *</td><td><td>caching</td><td>
Items to cache.
</td>
<tr><td class="param">MprList *</td><td><td>conditions</td><td>
Route conditions.
</td>
<tr><td class="param">HttpStage *</td><td><td>connector</td><td>
Network connector to use.
</td>
<tr><td class="param">void *</td><td><td>context</td><td>
Hosting context (Appweb == EjsPool).
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>data</td><td>
Hash of extra data configuration.
</td>
<tr><td class="param">char *</td><td><td>defaultLanguage</td><td>
Default language.
</td>
<tr><td class="param">char *</td><td><td>dir</td><td>
Documents directory.
</td>
<tr><td class="param">void *</td><td><td>eroute</td><td>
Extended route information for handler (only).
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>errorDocuments</td><td>
Set of error documents to use on errors.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>extensions</td><td>
Hash of handlers by extensions.
</td>
<tr><td class="param">int</td><td><td>flags</td><td>
Route flags.
</td>
<tr><td class="param">HttpStage *</td><td><td>handler</td><td>
Fixed handler.
</td>
<tr><td class="param">MprList *</td><td><td>handlers</td><td>
List of handlers for this route.
</td>
<tr><td class="param">MprList *</td><td><td>handlersByMatch</td><td>
List of handlers that match solely by their match routine.
</td>
<tr><td class="param">MprList *</td><td><td>headers</td><td>
Matching header values.
</td>
<tr><td class="param">char *</td><td><td>home</td><td>
Home directory for configuration files.
</td>
<tr><td class="param">struct HttpHost *</td><td><td>host</td><td>
Owning host.
</td>
<tr><td class="param">Http *</td><td><td>http</td><td>
Http service object (copy of appweb-&gt;http).
</td>
<tr><td class="param">int</td><td><td>ignoreEncodingErrors</td><td>
Ignore UTF8 encoding errors.
</td>
<tr><td class="param">MprList *</td><td><td>indicies</td><td>
Directory index documents.
</td>
<tr><td class="param">MprList *</td><td><td>inputStages</td><td>
Input stages.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>languages</td><td>
Languages supported.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" external="mpr.dtags">MprTicks</a></td><td><td>lifespan</td><td>
Default lifespan for all cache items in route.
</td>
<tr><td class="param">HttpLimits *</td><td><td>limits</td><td>
Host resource limits.
</td>
<tr><td class="param">MprFile *</td><td><td>log</td><td>
File object for access logging.
</td>
<tr><td class="param">int</td><td><td>logBackup</td><td>
Number of log backups.
</td>
<tr><td class="param">int</td><td><td>logFlags</td><td>
Log control flags (append|anew).
</td>
<tr><td class="param">char *</td><td><td>logFormat</td><td>
Access log format.
</td>
<tr><td class="param">char *</td><td><td>logPath</td><td>
Access log filename.
</td>
<tr><td class="param">ssize</td><td><td>logSize</td><td>
Max log size.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>methods</td><td>
Matching HTTP methods.
</td>
<tr><td class="param">char *</td><td><td>methodSpec</td><td>
Supported HTTP methods.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>mimeTypes</td><td>
Hash table of mime types (key is extension).
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_mutex" external="mpr.dtags">MprMutex</a> *</td><td><td>mutex</td><td>
Multithread sync.
</td>
<tr><td class="param">char *</td><td><td>name</td><td>
Route name.
</td>
<tr><td class="param">int</td><td><td>nextGroup</td><td>
Next route with a different startWith.
</td>
<tr><td class="param">char *</td><td><td>optimizedPattern</td><td>
Processed pattern (excludes prefix).
</td>
<tr><td class="param">MprList *</td><td><td>outputStages</td><td>
Output stages.
</td>
<tr><td class="param">MprList *</td><td><td>params</td><td>
Matching param field data.
</td>
<tr><td class="param">struct HttpRoute *</td><td><td>parent</td><td>
Parent route.
</td>
<tr><td class="param">char *</td><td><td>pattern</td><td>
Original matching URI pattern for the route (includes prefix).
</td>
<tr><td class="param">void *</td><td><td>patternCompiled</td><td>
Compiled pattern regular expression (not alloced).
</td>
<tr><td class="param">char *</td><td><td>prefix</td><td>
Application scriptName prefix.
</td>
<tr><td class="param">ssize</td><td><td>prefixLen</td><td>
Prefix length.
</td>
<tr><td class="param">int</td><td><td>responseStatus</td><td>
Response status code.
</td>
<tr><td class="param">char *</td><td><td>script</td><td>
Startup script for handlers serving this route.
</td>
<tr><td class="param">char *</td><td><td>scriptPath</td><td>
Startup script path for handlers serving this route.
</td>
<tr><td class="param">char *</td><td><td>sourceName</td><td>
Source name for route target.
</td>
<tr><td class="param">struct MprSsl *</td><td><td>ssl</td><td>
SSL configuration.
</td>
<tr><td class="param">char *</td><td><td>startSegment</td><td>
Starting literal segment of pattern (includes prefix).
</td>
<tr><td class="param">ssize</td><td><td>startSegmentLen</td><td>
Prefix length.
</td>
<tr><td class="param">char *</td><td><td>startWith</td><td>
Starting literal segment of pattern (includes prefix).
</td>
<tr><td class="param">ssize</td><td><td>startWithLen</td><td>
Length of startWith.
</td>
<tr><td class="param">char *</td><td><td>target</td><td>
Route target details.
</td>
<tr><td class="param">char *</td><td><td>targetRule</td><td>
Target rule.
</td>
<tr><td class="param">MprList *</td><td><td>tokens</td><td>
Tokens in pattern, {name}.
</td>
<tr><td class="param">char *</td><td><td>tplate</td><td>
URI template for forming links based on this route (includes prefix).
</td>
<tr><td class="param">HttpTrace</td><td><td>trace[2]</td><td>
Default route request tracing.
</td>
<tr><td class="param">int</td><td><td>traceMask</td><td>
Request/response trace mask.
</td>
<tr><td class="param">MprList *</td><td><td>updates</td><td>
Route and request updates.
</td>
<tr><td class="param">char *</td><td><td>uploadDir</td><td>
Upload directory.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>vars</td><td>
Route variables.
Used to expand Path ${token} refrerences.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" external="mpr.dtags">MprTicks</a></td><td><td>webSocketsPingPeriod</td><td>
Time between pings (msec).
</td>
<tr><td class="param">char *</td><td><td>webSocketsProtocol</td><td>
WebSockets sub-protocol.
</td>
<tr><td class="param">int</td><td><td>workers</td><td>
Number of workers to use for this route.
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_route_1gad9250fc3d08526ea7dc3b7ab9d6970e2"></a>
<div class="api">
<div class="prototype">
void
httpAddHomeRoute
(<a href="#group___http_route" class="ref">HttpRoute</a> *parent)
</div>
<div class="apiDetail">
<p>Add a route for the home page.</p>
<dl><dt><b>Description</b>:</dt><dd>This will add a home page to route ESP applications. This will add the following route: <table class='info'><tr><td>Name</td><td>Method</td><td>Pattern</td><td>Target </td></row><tr><td>home</td><td>GET,POST,PUT</td><td>^/$</td><td>index.esp </td></row></table></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">parent</td><td>Parent route from which to inherit configuration.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga07a96592710d8f7edc06546ab105856f"></a>
<div class="api">
<div class="prototype">
void
httpAddResource
(<a href="#group___http_route" class="ref">HttpRoute</a> *parent, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *resource)
</div>
<div class="apiDetail">
<p>Add routes for a resource.</p>
<dl><dt><b>Description</b>:</dt><dd>This routing adds a set of RESTful routes for a resource. It will add the following routes: <table class='info'><tr><td>Name</td><td>Method</td><td>Pattern</td><td>Action </td></row><tr><td>init</td><td>GET</td><td>/NAME/init$</td><td>init </td></row><tr><td>create</td><td>POST</td><td>/NAME(/)*$</td><td>create </td></row><tr><td>edit</td><td>GET</td><td>/NAME/edit$</td><td>edit </td></row><tr><td>show</td><td>GET</td><td>/NAME$</td><td>show </td></row><tr><td>update</td><td>PUT</td><td>/NAME$</td><td>update </td></row><tr><td>destroy</td><td>DELETE</td><td>/NAME$</td><td>destroy </td></row><tr><td>default</td><td>*</td><td>/NAME/{action}$</td><td>cmd-${action} </td></row></table></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">parent</td><td>Parent route from which to inherit configuration.</td>
<tr><td class="param">resource</td><td>Resource name. This should be a lower case, single word, alphabetic resource name.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1gad3d741f6f52178a9507db8ca240bba58"></a>
<div class="api">
<div class="prototype">
void
httpAddResourceGroup
(<a href="#group___http_route" class="ref">HttpRoute</a> *parent, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *resource)
</div>
<div class="apiDetail">
<p>Add routes for a group of resources.</p>
<dl><dt><b>Description</b>:</dt><dd>This routing adds a set of RESTful routes for a resource group. It will add the following routes: <table class='info'><tr><td>Name</td><td>Method</td><td>Pattern</td><td>Action </td></row><tr><td>list</td><td>GET</td><td>/NAME(/)*$</td><td>list </td></row><tr><td>init</td><td>GET</td><td>/NAME/init$</td><td>init </td></row><tr><td>create</td><td>POST</td><td>/NAME(/)*$</td><td>create </td></row><tr><td>edit</td><td>GET</td><td>/NAME/{id=[0-9]+}/edit$</td><td>edit </td></row><tr><td>show</td><td>GET</td><td>/NAME/{id=[0-9]+}$</td><td>show </td></row><tr><td>update</td><td>PUT</td><td>/NAME/{id=[0-9]+}$</td><td>update </td></row><tr><td>destroy</td><td>DELETE</td><td>/NAME/{id=[0-9]+}$</td><td>destroy </td></row><tr><td>custom</td><td>POST</td><td>/NAME/{action}/{id=[0-9]+}$</td><td>${action} </td></row><tr><td>default</td><td>*</td><td>/NAME/{action}$</td><td>cmd-${action} </td></row></table></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">parent</td><td>Parent route from which to inherit configuration.</td>
<tr><td class="param">resource</td><td>Resource name. This should be a lower case, single word, alphabetic resource name.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga770c1e7e867164b619baf4fc732e4932"></a>
<div class="api">
<div class="prototype">
int
httpAddRouteCondition
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *details, int flags)
</div>
<div class="apiDetail">
<p>Add a route condition.</p>
<dl><dt><b>Description</b>:</dt><dd>A route condition is run after matching the route pattern. For a route to be accepted, all conditions must match. Route conditions are built-in rules that can be applied to routes.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">name</td><td>Condition rule to add. Supported conditions are: &quot;auth&quot;, &quot;missing&quot;, &quot;directory&quot;, &quot;exists&quot;, and &quot;match&quot;. The &quot;auth&quot; rule is used internally to implement basic and digest authentication. <br/><br/>
The &quot;missing&quot; rule tests if the target filename is missing. The &quot;missing&quot; rule takes no arguments. <br/><br/>
The &quot;directory&quot; rule tests if the condition argument is a directory. The form of the &quot;directory&quot; rule is: &quot;directory pathString&quot;. For example: &quot;directory /stuff/${request:pathInfo}.txt&quot; <br/><br/>
The &quot;exists&quot; rule tests if the condition argument is present in the file system. The form of the &quot;exists&quot; rule is: &quot;exists pathString&quot;. For example: &quot;exists ${request.filename}.gz&quot;, <br/><br/>
The match directory tests a regular expression pattern against the rest of the condition arguments. The form of the match rule is: &quot;match RegExp string&quot;. For example: &quot;match https ${request.scheme}&quot;.</td>
<tr><td class="param">details</td><td>Condition parameters. See <a class="ref" href="#group___http_route_1ga7a2248e73a4b634e923c4e4faab2e4e7">httpSetRouteTarget</a> for a list of the token values that can be included in the condition rule details.</td>
<tr><td class="param">flags</td><td>Set to HTTP_ROUTE_NOT to negate the condition test.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#gro
</div>
</div>
<a name="group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9"></a>
<div class="api">
<div class="prototype">
void
httpAddRouteErrorDocument
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, int status, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri)
</div>
<div class="apiDetail">
<p>Add an error document.</p>
<dl><dt><b>Description</b>:</dt><dd>This defines an error document to be used when the requested document cannot be found. This definition is used by some handlers for error processing.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">status</td><td>The HTTP status code to use with the error document.</td>
<tr><td class="param">uri</td><td>URL describing the error document.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#group__
</div>
</div>
<a name="group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47"></a>
<div class="api">
<div class="prototype">
int
httpAddRouteFilter
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *extensions, int direction)
</div>
<div class="apiDetail">
<p>Add a route filter.</p>
<dl><dt><b>Description</b>:</dt><dd>This configures the route pipeline by adding processing filters for a request. must match. Route conditions are built-in rules that can be applied to routes.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">name</td><td>Filter name to add.</td>
<tr><td class="param">extensions</td><td>Request extensions for which the filter will be run. A request extension may come from the URI if present or from the corresponding filename.</td>
<tr><td class="param">direction</td><td>Set to HTTP_STAGE_TX for transmit direction and HTTP_STAGE_RX for receive data flow.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#
</div>
</div>
<a name="group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220"></a>
<div class="api">
<div class="prototype">
int
httpAddRouteHandler
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *extensions)
</div>
<div class="apiDetail">
<p>Add a route handler.</p>
<dl><dt><b>Description</b>:</dt><dd>This configures the route pipeline by adding the given handler. Must only be called at initialization time for the route.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">name</td><td>Filter name to add.</td>
<tr><td class="param">extensions</td><td>Request extensions for which the handler will be selected. A request extension may come from the URI if present or from the corresponding filename.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#g
</div>
</div>
<a name="group___http_route_1ga664691aa4ee19502e4c4506442361856"></a>
<div class="api">
<div class="prototype">
void
httpAddRouteHeader
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *header, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, int flags)
</div>
<div class="apiDetail">
<p>Add a route header check.</p>
<dl><dt><b>Description</b>:</dt><dd>This configures the route to match a request only if the specified header field matches a specific value.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">header</td><td>Header field to interrogate.</td>
<tr><td class="param">value</td><td>Header value that will match.</td>
<tr><td class="param">flags</td><td>Set to HTTP_ROUTE_NOT to negate the header test.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga72267ab0661f6536dd1ce5ea64a12dd0"></a>
<div class="api">
<div class="prototype">
void
httpAddRouteIndex
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)
</div>
<div class="apiDetail">
<p>Set the route index document.</p>
<dl><dt><b>Description</b>:</dt><dd>Set the name of the index document to serve. Index documents may be served when the request corresponds to a directory on the file system.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">path</td><td>Path name to the index document. If the path is a relative path, it may be joined to the route directory to create an absolute path.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A reference to the route data. Otherwise return null if the route data for the given key was not found.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a"></a>
<div class="api">
<div class="prototype">
int
httpAddRouteLanguageDir
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *language, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)
</div>
<div class="apiDetail">
<p>Add a route language directory.</p>
<dl><dt><b>Description</b>:</dt><dd>This configures the route pipeline by adding the given language content directory. When creating filenames for matching requests, the language directory is prepended to the request filename.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">language</td><td>Language symbolic name. For example: &quot;en&quot; for english.</td>
<tr><td class="param">path</td><td>File system directory to contain content for matching requests.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#group
</div>
</div>
<a name="group___http_route_1ga3ebbc195019c628fc5ec218556112941"></a>
<div class="api">
<div class="prototype">
int
httpAddRouteLanguageSuffix
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *language, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *suffix, int flags)
</div>
<div class="apiDetail">
<p>Add a route language suffix.</p>
<dl><dt><b>Description</b>:</dt><dd>This configures the route pipeline by adding the given language for request processing. The language definition includes a suffix which will be added to the request filename.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">language</td><td>Language symbolic name. For example: &quot;en&quot; for english.</td>
<tr><td class="param">suffix</td><td>Extension suffix to add when creating filenames for the request. For example: &quot;fr&quot; to add to &quot;index.html&quot; could produce: &quot;index.fr.html&quot;.</td>
<tr><td class="param">flags</td><td>Set to HTTP_LANG_BEFORE to insert the suffix before the filename extension. Set to HTTP_LANG_AFTER to append after the extension. For example: HTTP_LANG_AFTER would produce &quot;index.html.fr&quot;.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#group___
</div>
</div>
<a name="group___http_route_1ga04f240925c339ab35010e013bfa62c7a"></a>
<div class="api">
<div class="prototype">
void
httpAddRouteParam
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, int flags)
</div>
<div class="apiDetail">
<p>Add a route param check.</p>
<dl><dt><b>Description</b>:</dt><dd>This configures the route to match a request only if the specified param field matches a specific value.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">field</td><td>Param field to interrogate.</td>
<tr><td class="param">value</td><td>Header value that will match.</td>
<tr><td class="param">flags</td><td>Set to HTTP_ROUTE_NOT to negate the query test.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1gae5a3fe25fd0e8ed6038fc076f40aa2e6"></a>
<div class="api">
<div class="prototype">
void
httpAddRouteSet
(<a href="#group___http_route" class="ref">HttpRoute</a> *parent, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *set)
</div>
<div class="apiDetail">
<p>Add a route set package.</p>
<dl><dt><b>Description</b>:</dt><dd>This will add a set of routes suitable for some application paradigms. <table class='info'><tr><td>Name</td><td>Method</td><td>Pattern</td><td>Target </td></row><tr><td>home</td><td>GET,POST,PUT</td><td>^/$</td><td>index.esp </td></row><tr><td>static</td><td>GET</td><td>^/static(/(.)*$</td><td>$1 </td></row></table></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">parent</td><td>Parent route from which to inherit configuration.</td>
<tr><td class="param">set</td><td>Route set to select. Use &quot;simple&quot;, &quot;mvc&quot;, &quot;restful&quot; or &quot;none&quot;. <br/><br/>
The &quot;simple&quot; pack will invoke <a class="ref" href="#group___http_route_1gad9250fc3d08526ea7dc3b7ab9d6970e2">httpAddHomeRoute</a> and <a class="ref" href="#group___http_route_1ga4d72eb7b413175ed98b5726f4f0ad165">httpAddStaticRoute</a> to add &quot;home&quot;, and &quot;static&quot; routes. <br/><br/>
The &quot;mvc&quot; selection will add the default routes and then add the route: <table class='info'><tr><td>Name</td><td>Method</td><td>Pattern</td><td>Target </td></row><tr><td>default</td><td>*</td><td>^/{controller}(~/{action}~)$</td><td>${controller}-${action} </td></row></table><br/><br/></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5"></a>
<div class="api">
<div class="prototype">
int
httpAddRouteUpdate
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *details, int flags)
</div>
<div class="apiDetail">
<p>Add a route update rule.</p>
<dl><dt><b>Description</b>:</dt><dd>This configures the route pipeline by adding processing update rules for a request. Updates are built-in rules that can be applied to routes.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">name</td><td>Update rule to add. Supported update rules include: &quot;cmd&quot;, &quot;field&quot; and &quot;lang&quot;. <br/><br/>
The &quot;cmd&quot; rule is used to run external commands. For example: &quot;cmd touch /tmp/filename&quot;. <br/><br/>
The &quot;param&quot; rule is used to set values in the request param fields. For example: &quot;param priority high&quot;. <br/><br/>
The &quot;lang&quot; update rule is used internally to implement the various language options. See <a class="ref" href="#group___http_route_1ga7a2248e73a4b634e923c4e4faab2e4e7">httpSetRouteTarget</a> for a list of the token values that can be included in the condition rule details.</td>
<tr><td class="param">details</td><td>Update rule parameters.</td>
<tr><td class="param">flags</td><td>Reserved.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga4d72eb7b413175ed98b5726f4f0ad165"></a>
<div class="api">
<div class="prototype">
void
httpAddStaticRoute
(<a href="#group___http_route" class="ref">HttpRoute</a> *parent)
</div>
<div class="apiDetail">
<p>Add a route for static content under a &quot;static&quot; directory.</p>
This can be used for ESP applications. Use the EspDir appweb configuration file directive to modify the &quot;static&quot; directory
<dl><dt><b>Description</b>:</dt><dd>This will add a route for static content. This will add the following route: <table class='info'><tr><td>Name</td><td>Method</td><td>Pattern</td><td>Target </td></row><tr><td>static</td><td>GET</td><td>^/static(/(.)*$</td><td>$1 </td></row></table></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">parent</td><td>Parent route from which to inherit configuration.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga59e692e11ae01760285fb12ed39e2042"></a>
<div class="api">
<div class="prototype">
void
httpBackupRouteLog
(<a href="#group___http_route" class="ref">HttpRoute</a> *route)
</div>
<div class="apiDetail">
<p>Backup the route log if required.</p>
<dl><dt><b>Description</b>:</dt><dd>If the log file is greater than the maximum configured, or MPR_ANEW was set via httpSetRouteLog, then archive the log.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga978d9975cc129f54f995acef887f27f2"></a>
<div class="api">
<div class="prototype">
void
httpClearRouteStages
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, int direction)
</div>
<div class="apiDetail">
<p>Clear the pipeline stages for the route.</p>
<dl><dt><b>Description</b>:</dt><dd>This resets the configured pipeline stages for the route.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">direction</td><td>Set to HTTP_STAGE_TX for transmit direction and HTTP_STAGE_RX for receive data flow.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#gr
</div>
</div>
<a name="group___http_route_1ga5d648be4ce523b960d8385c09c832bc2"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_route" class="ref">HttpRoute</a> *
httpCreateActionRoute
(<a href="#group___http_route" class="ref">HttpRoute</a> *parent, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *pattern, <a href="#http_8h_1a6e7f146ca4c741ae204a7416090edc28" class="ref">HttpAction</a> action)
</div>
<div class="apiDetail">
<p>Create a route for use with the Action Handler.</p>
<dl><dt><b>Description</b>:</dt><dd>This call creates a route inheriting from a parent route. The new route is configured for use with the actionHandler and the given callback procedure.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">parent</td><td>Parent route from which to inherit.</td>
<tr><td class="param">pattern</td><td>Pattern to match URIs.</td>
<tr><td class="param">action</td><td>Action to invoke.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Newly created route.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_route" class="ref">HttpRoute</a> *
httpCreateAliasRoute
(<a href="#group___http_route" class="ref">HttpRoute</a> *parent, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *pattern, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, int status)
</div>
<div class="apiDetail">
<p>Create a route suitable for use as an alias.</p>
<dl><dt><b>Description</b>:</dt><dd>The parent supplies the owning host for the route. A route is not added to its owning host until it is finalized by calling <a class="ref" href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd">httpFinalizeRoute</a></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">parent</td><td>Parent route to inherit from.</td>
<tr><td class="param">pattern</td><td>Pattern to match URIs.</td>
<tr><td class="param">path</td><td>File system directory containing documents for this route.</td>
<tr><td class="param">status</td><td>Http redirect status for matching requests. Set to zero if not using redirects.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Allocated HttpRoute object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#gr
</div>
</div>
<a name="group___http_route_1gaacfd904666b9112759be6399e8e72f72"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_route" class="ref">HttpRoute</a> *
httpCreateConfiguredRoute
(struct HttpHost *host, int serverSide)
</div>
<div class="apiDetail">
<p>Create a configured route.</p>
<dl><dt><b>Description</b>:</dt><dd>This creates a route and configures the request pipeline with range, chunk and upload filters.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">host</td><td>HttpHost object owning the route.</td>
<tr><td class="param">serverSide</td><td>Set to &quot;true&quot; if this is a server side route. Set to &quot;false&quot; for client side.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Allocated HttpRoute object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1gaf28d21e91958f2d73f6cf7d485291171"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_route" class="ref">HttpRoute</a> *
httpCreateDefaultRoute
(struct HttpHost *host)
</div>
<div class="apiDetail">
<p>Create a default route for a host.</p>
<dl><dt><b>Description</b>:</dt><dd>When the route is fully configured, it should be finalized which will add it to its owning host.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">host</td><td>HttpHost object owning the route.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Allocated HttpRoute object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#grou
</div>
</div>
<a name="group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_route" class="ref">HttpRoute</a> *
httpCreateInheritedRoute
(<a href="#group___http_route" class="ref">HttpRoute</a> *route)
</div>
<div class="apiDetail">
<p>Create a route inherited from a parent route.</p>
<dl><dt><b>Description</b>:</dt><dd>When the route is fully configured, it should be finalized which will add it to its owning host.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Parent route from which to inherit.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Allocated HttpRoute object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#group_
</div>
</div>
<a name="group___http_route_1gadd8a97406d8776677dddf8107d570a69"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_route" class="ref">HttpRoute</a> *
httpCreateRoute
(struct HttpHost *host)
</div>
<div class="apiDetail">
<p>Create a route for a host.</p>
<dl><dt><b>Description</b>:</dt><dd>This call creates a bare route without inheriting from a parent route. When the route is fully configured, it should be finalized which will add it to its owning host.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">host</td><td>HttpHost object owning the route.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Allocated HttpRoute object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href
</div>
</div>
<a name="group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_route" class="ref">HttpRoute</a> *
httpDefineRoute
(<a href="#group___http_route" class="ref">HttpRoute</a> *parent, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *methods, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *pattern, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *target, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *source)
</div>
<div class="apiDetail">
<p>Define a route.</p>
<dl><dt><b>Description</b>:</dt><dd>This creates a route and then configures it using the given parameters. The route is finalized and added to the parent host.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">parent</td><td>Parent route from which to inherit configuration.</td>
<tr><td class="param">name</td><td>Route name to define.</td>
<tr><td class="param">methods</td><td>Http methods for which this route is active.</td>
<tr><td class="param">pattern</td><td>Matching URI pattern for which this route will qualify.</td>
<tr><td class="param">target</td><td>Route target string expression. This is used by handlers to determine the physical or virtual resource to serve.</td>
<tr><td class="param">source</td><td>Source file pattern containing the resource to activate or serve.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Created route.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href
</div>
</div>
<a name="group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424"></a>
<div class="api">
<div class="prototype">
void
httpDefineRouteCondition
(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="#http_8h_1a0f957adf7a453cc11f9622b40f1348eb" class="ref">HttpRouteProc</a> *proc)
</div>
<div class="apiDetail">
<p>Define a route condition rule.</p>
<dl><dt><b>Description</b>:</dt><dd>This creates a new condition rule.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">name</td><td>Condition name.</td>
<tr><td class="param">proc</td><td>Condition function to process the condition during route matching.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#group_
</div>
</div>
<a name="group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953"></a>
<div class="api">
<div class="prototype">
void
httpDefineRouteTarget
(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="#http_8h_1a0f957adf7a453cc11f9622b40f1348eb" class="ref">HttpRouteProc</a> *proc)
</div>
<div class="apiDetail">
<p>Define a route target rule.</p>
<dl><dt><b>Description</b>:</dt><dd>This creates a new target rule.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">name</td><td>Target name.</td>
<tr><td class="param">proc</td><td>Target function to process the target during route matching.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#gro
</div>
</div>
<a name="group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193"></a>
<div class="api">
<div class="prototype">
void
httpDefineRouteUpdate
(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="#http_8h_1a0f957adf7a453cc11f9622b40f1348eb" class="ref">HttpRouteProc</a> *proc)
</div>
<div class="apiDetail">
<p>Define a route update rule.</p>
<dl><dt><b>Description</b>:</dt><dd>This creates a new update rule.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">name</td><td>Update name.</td>
<tr><td class="param">proc</td><td>Update function to process the update during route matching.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#gro
</div>
</div>
<a name="group___http_route_1ga6e8c76164020f9dfdecf1c7338043264"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
httpExpandRouteVars
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *str)
</div>
<div class="apiDetail">
<p>Expand route variables in a string.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">str</td><td>String to expand.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd"></a>
<div class="api">
<div class="prototype">
void
httpFinalizeRoute
(<a href="#group___http_route" class="ref">HttpRoute</a> *route)
</div>
<div class="apiDetail">
<p>Finalize a route.</p>
<dl><dt><b>Description</b>:</dt><dd>A route must be finalized to add it to its owning hosts list of routes.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="
</div>
</div>
<a name="group___http_route_1gae3e560397e0fa36954827ff06d59f830"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_route" class="ref">HttpRoute</a> *
httpGetDefaultRoute
(<a href="#group___http_host" class="ref">HttpHost</a> *host)
</div>
<div class="apiDetail">
<p>Get the default route for a host.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">host</td><td>Host object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The default route for the host.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1gafb24a3384aa3724f4c01a8e6713060fc"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_route" class="ref">HttpRoute</a> *
httpGetHostDefaultRoute
(<a href="#group___http_host" class="ref">HttpHost</a> *host)
</div>
<div class="apiDetail">
<p>Return the default route for a host.</p>
<dl><dt><b>Description</b>:</dt><dd>The host has a default route which holds default configuration. Typically the default route is not directly used when routing URIs. Rather other routes inherit from the default route and are used to respond to client requests.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">host</td><td>Host to examine.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Default route object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga8623f5d6b994e273aee0e03f2303c666"></a>
<div class="api">
<div class="prototype">
void *
httpGetRouteData
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)
</div>
<div class="apiDetail">
<p>Get extra route data.</p>
<dl><dt><b>Description</b>:</dt><dd>Routes can store extra configuration information indexed by key. This is used by handlers, filters, connectors and updates to store additional information on a per-route basis.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">key</td><td>Unique string key to identify the data.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A reference to the route data. Otherwise return null if the route data for the given key was not found.</dd></dl>
<dl><dt>See Also:</dt><dd>
</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
</div>
</div>
<a name="group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
httpGetRouteDir
(<a href="#group___http_route" class="ref">HttpRoute</a> *route)
</div>
<div class="apiDetail">
<p>Get the route directory.</p>
<dl><dt><b>Description</b>:</dt><dd>Routes can define a default directory for documents to serve. This value may be used by target rules to calculate the response filename.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The route documents directory pathname.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href
</div>
</div>
<a name="group___http_route_1gad85523fe7fe6d5cd445f8568ccb68f22"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
httpGetRouteMethods
(<a href="#group___http_route" class="ref">HttpRoute</a> *route)
</div>
<div class="apiDetail">
<p>Get the route method list.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to examine.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The the list of support methods. Return NULL if not method list is defined.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga8471456108a6cd5322ba2fb4fbc6bbd1"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
httpGetRouteVar
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)
</div>
<div class="apiDetail">
<p>Get a path token variable.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to get.</td>
<tr><td class="param">key</td><td>Token key value.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga2b82eae86554fe49b2a170c462c56012"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_limits" class="ref">HttpLimits</a> *
httpGraduateLimits
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="#group___http_limits" class="ref">HttpLimits</a> *limits)
</div>
<div class="apiDetail">
<p>Graduate the limits from the parent route.</p>
<dl><dt><b>Description</b>:</dt><dd>This creates a unique limit structure for the route if it is currently inheriting its parents limits.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">limits</td><td>Limits to use if graduating.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga5b051e0b1cf729188162294091feca6d"></a>
<div class="api">
<div class="prototype">
char *
httpLink
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *target, <a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options)
</div>
<div class="apiDetail">
<p>Create a URI link.</p>
\par \b Description:
Create a URI link by expansions tokens based on the current request and route state. The target parameter may contain partial or complete URI information. The missing parts are supplied using the current request and route tables. The resulting URI is a normalized, server-local URI (that begins with &quot;/&quot;). The URI will include any defined route prefix, but will not include scheme, host or port components
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
<tr><td class="param">target</td><td>The URI target. The target parameter can be a URI string or JSON style set of options. The target will have any embedded &quot;{tokens}&quot; expanded by using token values from the request parameters. If the target has an absolute URI path, that path is used directly after tokenization. If the target begins with &quot;~&quot;, that character will be replaced with the route prefix. This is a very convenient way to create application top-level relative links. <br/><br/>
If the target is a string that begins with &quot;{AT}&quot; it will be interpreted as a controller/action pair of the form &quot;{AT}Controller/action&quot;. If the &quot;controller/&quot; portion is absent, the current controller is used. If the action component is missing, the &quot;list&quot; action is used. A bare &quot;{AT}&quot; refers to the &quot;list&quot; action of the current controller. <br/><br/>
If the target starts with &quot;{&quot; it is interpreted as being a JSON style set of options that describe the link. If the target is a relative URI path, it is appended to the current request URI path. <br/><br/>
If the is a JSON style of options, it can specify the URI components: scheme, host, port, path, reference and query. If these component properties are supplied, these will be combined to create a URI. <br/><br/>
If the target specifies either a controller/action or a JSON set of options, The URI will be created according to the route URI template. The template may be explicitly specified via a &quot;route&quot; target property. Otherwise, if an &quot;action&quot; property is specified, the route of the same name will be used. If these don&apos;t result in a usable route, the &quot;default&quot; route will be used. <br/><br/>
These are the properties supported in a JSON style &quot;{ ... }&quot; target: <ul><li>scheme String URI scheme portion </li><li>host String URI host portion </li><li>port Number URI port number </li><li>path String URI path portion </li><li>reference String URI path reference. Does not include &quot;#&quot; </li><li>query String URI query parameters. Does not include &quot;?&quot; </li><li>controller String Controller name if using a Controller-based route. This can also be specified via the action option. </li><li>action String Action to invoke. This can be a URI string or a Controller action of the form {AT}Controller/action. </li><li>route String Route name to use for the URI template </li></ul></td>
<tr><td class="param">options</td><td>Hash of option values for embedded tokens.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A normalized, server-local Uri string.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>Remarks:</dt><dd>Examples:<pre>
httpLink(conn, &quot;http://example.com/index.html&quot;, 0);
httpLink(conn, &quot;/path/to/index.html&quot;, 0);
httpLink(conn, &quot;../images/splash.png&quot;, 0);
httpLink(conn, &quot;~/static/images/splash.png&quot;, 0);
httpLink(conn, &quot;${app}/static/images/splash.png&quot;, 0);
httpLink(conn, &quot;@controller/checkout&quot;, 0);
httpLink(conn, &quot;@controller/&quot;) // Controller = Controller, action = index
httpLink(conn, &quot;@init&quot;) // Current controller, action = init
httpLink(conn, &quot;@&quot;) // Current controller, action = index
httpLink(conn, &quot;{ action: &apos;@post/create&apos; }&quot;, 0);
httpLink(conn, &quot;{ action: &apos;checkout&apos; }&quot;, 0);
httpLink(conn, &quot;{ action: &apos;logout&apos;, controller: &apos;admin&apos; }&quot;, 0);
httpLink(conn, &quot;{ action: &apos;admin/logout&apos;&quot;, 0);
httpLink(conn, &quot;{ product: &apos;candy&apos;, quantity: &apos;10&apos;, template: &apos;/cart/${product}/${quantity}&apos; }&quot;, 0);
httpLink(conn, &quot;{ route: &apos;~/STAR/edit&apos;, action: &apos;checkout&apos;, id: &apos;99&apos; }&quot;, 0);
httpLink(conn, &quot;{ template: &apos;~/static/images/${theme}/background.jpg&apos;, theme: &apos;blue&apos; }&quot;, 0);
</pre></dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>,
</div>
</div>
<a name="group___http_route_1ga6803769ee7bff322435d7e9e1d442e8b"></a>
<div class="api">
<div class="prototype">
void
httpLogRoutes
(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> full)
</div>
<div class="apiDetail">
<p>Show the current route table to the error log.</p>
<dl><dt><b>Description</b>:</dt><dd>This emits the currently defined route table for a host to the route table. If the &quot;full&quot; argument is true, a more-complete, multi-line output format will be used. Othewise, a one-line, abbreviated route description will be output.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">host</td><td>Host to examine.</td>
<tr><td class="param">full</td><td>Set to true for a &quot;fuller&quot; output route description.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga4b84369a2cbfbb36e37108ade6d11c4d"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_route" class="ref">HttpRoute</a> *
httpLookupRoute
(<a href="#group___http_host" class="ref">HttpHost</a> *host, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
</div>
<div class="apiDetail">
<p>Lookup a route by name.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">host</td><td>HttpHost object owning the route table.</td>
<tr><td class="param">name</td><td>Route name to find. If null or empty, look for &quot;default&quot;.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
httpLookupRouteErrorDocument
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, int status)
</div>
<div class="apiDetail">
<p>Lookup an error document by HTTP status code.</p>
<dl><dt><b>Description</b>:</dt><dd>This looks up error documents configured via <a class="ref" href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9">httpAddRouteErrorDocument</a></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">status</td><td>HTTP status code integer.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>URI associated with the error document for the requested status.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#group___ht
</div>
</div>
<a name="group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62"></a>
<div class="api">
<div class="prototype">
char *
httpMakePath
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)
</div>
<div class="apiDetail">
<p>Make a filename path.</p>
<dl><dt><b>Description</b>:</dt><dd>This makes a filename by expanding the tokens &quot;${token}&quot; and then normalizing the path and converting to an absolute path name. The supported tokens are: <ul><li>DOCUMENTS_DIR - for the default directory containing documents to serve </li><li>HOME_DIR - for the directory containing the web server configuration files </li><li>BIN_DIR - for the shared library directory. E.g. /usr/lib/appweb/bin </li><li>OS - for the operating system name. E.g. LINUX, MACOSX, VXWORKS, or WIN </li><li>PRODUCT - for the product name </li><li>VERSION - for the product version. E.g. 4.0.2 </li></ul>
Additional tokens can be defined via <a class="ref" href="#group___http_route_1ga3c0b5cdd207914add45a78054b96f9fe">httpSetRouteVar</a></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">path</td><td>Path name to examine.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>An absolute file name.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a h
</div>
</div>
<a name="group___http_route_1gac98fc3caa237cb475847573203bd3187"></a>
<div class="api">
<div class="prototype">
void
httpMapFile
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="#group___http_route" class="ref">HttpRoute</a> *route)
</div>
<div class="apiDetail">
<p>Map the request URI and route target to a filename.</p>
<dl><dt><b>Description</b>:</dt><dd>This sets the HttpTx filename, ext, etag and info fields.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
<tr><td class="param">route</td><td>Route to modify.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga425ffccf7078d669d08252a5234ddcba"></a>
<div class="api">
<div class="prototype">
int
httpMatchRoute
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="#group___http_route" class="ref">HttpRoute</a> *route)
</div>
<div class="apiDetail">
<p>Match a route against the current request.</p>
<dl><dt><b>Description</b>:</dt><dd>This tests if a route matches the current request on a connection. This call is automatically called by <a class="ref" href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4">httpRouteRequest</a> for incoming requests to a server.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
<tr><td class="param">route</td><td>Route to modify.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>HTTP_ROUTE_OK if the request matches. Return HTTP_ROUTE_REMATCH if the request has been modified and route matching must be restarted.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a hre
</div>
</div>
<a name="group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0"></a>
<div class="api">
<div class="prototype">
void
httpResetRoutePipeline
(<a href="#group___http_route" class="ref">HttpRoute</a> *route)
</div>
<div class="apiDetail">
<p>Reset the route pipeline.</p>
<dl><dt><b>Description</b>:</dt><dd>This completely resets the pipeline and discards inherited pipeline configuration. This resets the error documents, expiry cache values, extensions, handlers, input and output stage configuration.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#grou
</div>
</div>
<a name="group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66"></a>
<div class="api">
<div class="prototype">
void
httpSetRouteAuth
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="#group___http_auth" class="ref">HttpAuth</a> *auth)
</div>
<div class="apiDetail">
<p>Set the route authentication.</p>
<dl><dt><b>Description</b>:</dt><dd>This defines the authentication configuration for basic and digest authentication for the route.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">auth</td><td>Authentication object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href=
</div>
</div>
<a name="group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712"></a>
<div class="api">
<div class="prototype">
void
httpSetRouteAutoDelete
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> on)
</div>
<div class="apiDetail">
<p>Control file upload auto delete.</p>
<dl><dt><b>Description</b>:</dt><dd>This controls whether files are auto-deleted after the handler runs to service a request.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">on</td><td>Set to true to enable auto-delete. Auto-delete is enabled by default.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#grou
</div>
</div>
<a name="group___http_route_1ga15322e55dffb1723004814cf54636d02"></a>
<div class="api">
<div class="prototype">
void
httpSetRouteCompression
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, int flags)
</div>
<div class="apiDetail">
<p>Contol content compression for the route.</p>
<dl><dt><b>Description</b>:</dt><dd>This configures content compression for the route. Some handlers observe the content compression status and will attempt to use or compress content before transmitting to the client. The fileHandler is currently the only handler that uses this capability.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">flags</td><td>Set to HTTP_ROUTE_GZIP to enable the fileHandler to serve eqivalent compressed content with a &quot;gz&quot; extension.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#group
</div>
</div>
<a name="group___http_route_1gae23ba970b0dd2f137708089826a8875c"></a>
<div class="api">
<div class="prototype">
int
httpSetRouteConnector
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
</div>
<div class="apiDetail">
<p>Set the connector to use for a route.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">name</td><td>Connector name to use for this route.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#gro
</div>
</div>
<a name="group___http_route_1gaf63bed103e906efe134668c20e5338ef"></a>
<div class="api">
<div class="prototype">
void
httpSetRouteData
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, void *data)
</div>
<div class="apiDetail">
<p>Set route data.</p>
<dl><dt><b>Description</b>:</dt><dd>Routes can store extra configuration information indexed by key. This is used by handlers, filters, connectors and updates to store additional information on a per-route basis.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">key</td><td>Unique string to identify the data.</td>
<tr><td class="param">data</td><td>Data object. This must be allocated via mprAlloc.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href=
</div>
</div>
<a name="group___http_route_1ga627abf6aca15d77978176797a15c86f0"></a>
<div class="api">
<div class="prototype">
void
httpSetRouteDefaultLanguage
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *language)
</div>
<div class="apiDetail">
<p>Set the default language for the route.</p>
<dl><dt><b>Description</b>:</dt><dd>This call defines the default language to serve if the client does not provide an Accept HTTP header with language preference instructions.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">language</td><td>Language symbolic name. For example: &quot;en&quot; for english.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#group___h
</div>
</div>
<a name="group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b"></a>
<div class="api">
<div class="prototype">
void
httpSetRouteDir
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *dir)
</div>
<div class="apiDetail">
<p>Set the route directory.</p>
<dl><dt><b>Description</b>:</dt><dd>Routes can define a default directory for documents to serve. This value may be used by target rules to calculate the response filename.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">dir</td><td>Directory path name for the route content.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href
</div>
</div>
<a name="group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1"></a>
<div class="api">
<div class="prototype">
void
httpSetRouteFlags
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, int flags)
</div>
<div class="apiDetail">
<p>Update the route flags.</p>
<dl><dt><b>Description</b>:</dt><dd>Low level routine to manipulate the route flags.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">flags</td><td>Flags mask.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="
</div>
</div>
<a name="group___http_route_1ga7f7b642a70a41a659ce3094881b872b6"></a>
<div class="api">
<div class="prototype">
int
httpSetRouteHandler
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
</div>
<div class="apiDetail">
<p>Set the handler to use for a route.</p>
<dl><dt><b>Description</b>:</dt><dd>This defines the stage handler to use in the request pipline for requests matching this route. Note that you can also use httpAddRouteHandler which configures a set of handlers that will match by extension.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">name</td><td>Handler name to define.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#g
</div>
</div>
<a name="group___http_route_1ga9f09cf024514587e80203b9a74f7a61f"></a>
<div class="api">
<div class="prototype">
void
httpSetRouteHome
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *home)
</div>
<div class="apiDetail">
<p>Set the route directory for configuration files.</p>
<dl><dt><b>Description</b>:</dt><dd>Routes can define a default directory for configuration files.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">home</td><td>Directory path name for configuration files.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1gaab3c7073de79d8dde006efbd71d61e08"></a>
<div class="api">
<div class="prototype">
int
httpSetRouteLog
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size, int backup, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *format, int flags)
</div>
<div class="apiDetail">
<p>Configure the route access log.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">path</td><td>Path for route access log file.</td>
<tr><td class="param">size</td><td>Maximum size of the log file before archiving.</td>
<tr><td class="param">backup</td><td>Set to true to create a backup of the log file if archiving.</td>
<tr><td class="param">format</td><td>Log file format.</td>
<tr><td class="param">flags</td><td>Set to MPR_LOG_ANEW to archive the log when the application reboots.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c"></a>
<div class="api">
<div class="prototype">
void
httpSetRouteMethods
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *methods)
</div>
<div class="apiDetail">
<p>Define the methods for the route.</p>
<dl><dt><b>Description</b>:</dt><dd>This defines the set of valid HTTP methods for requests to match this route.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">methods</td><td>Set to a comma or space separated list of methods. Can also set to &quot;All&quot; or &quot;*&quot; for all possible methods. Standard methods include: &quot;DELETE, GET, OPTIONS, POST, PUT, TRACE&quot;.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#g
</div>
</div>
<a name="group___http_route_1ga2db04c0daac85896d559f98610b7b79f"></a>
<div class="api">
<div class="prototype">
void
httpSetRouteName
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
</div>
<div class="apiDetail">
<p>Set the route name.</p>
<dl><dt><b>Description</b>:</dt><dd>Symbolic route names are used by httpLink and when displaying route tables.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">name</td><td>Unique symbolic name for the route. If a name is not defined, the route pattern will be used as the name.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href=
</div>
</div>
<a name="group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155"></a>
<div class="api">
<div class="prototype">
void
httpSetRoutePattern
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *pattern, int flags)
</div>
<div class="apiDetail">
<p>Set the route pattern.</p>
<dl><dt><b>Description</b>:</dt><dd>This call defines the route regular expression pattern that is used to match against the request URI. The route pattern is an enhanced JavaScript-compatibile regular expression. It is enhanced by optionally embedding braced tokens &quot;{name}&quot; in the patter. During request URI matching, these tokens are extracted and defined in the request params and are available to the request. The normal regular expression repeat syntax also uses &quot;{}&quot;. To use the traditional (uncommon) repeat syntax, back quote with &quot;\\&quot;. Sub-expressions and token expressions are also available in various rules as numbered tokens &quot;$1&quot;. For example: the pattern &quot;/app/(.*)(.html)$&quot; will permit a file target &quot;$1.${request.Language=fr}.$2&quot;.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">pattern</td><td>Route regular expression pattern.</td>
<tr><td class="param">flags</td><td>Set to HTTP_ROUTE_NOT to negate the pattern match result.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#g
</div>
</div>
<a name="group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7"></a>
<div class="api">
<div class="prototype">
void
httpSetRoutePrefix
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *prefix)
</div>
<div class="apiDetail">
<p>Set the route prefix.</p>
<dl><dt><b>Description</b>:</dt><dd>Routes may have a prefix which will be stripped from the request URI if the request matches. The prefix is made available as the &quot;${request:prefix}&quot; token and also as the ScriptName via some handlers.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">prefix</td><td>URI prefix to define for the route.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#
</div>
</div>
<a name="group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7"></a>
<div class="api">
<div class="prototype">
void
httpSetRouteScript
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *script, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *scriptPath)
</div>
<div class="apiDetail">
<p>Set the script to service the route.</p>
<dl><dt><b>Description</b>:</dt><dd>This is used by handlers to add a per-route script for processing. Ejscript uses this to specify the server script. Either a literal script or a path to a script filename can be provided.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">script</td><td>Literal script to execute.</td>
<tr><td class="param">scriptPath</td><td>Pathname to the script file to execute.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8" class="ref">httpSetRouteSource</a>, <a href="#
</div>
</div>
<a name="group___http_route_1gac94ae4101cddb0a6db584f3f36501fa8"></a>
<div class="api">
<div class="prototype">
void
httpSetRouteSource
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *source)
</div>
<div class="apiDetail">
<p>Set the source code module for the route.</p>
<dl><dt><b>Description</b>:</dt><dd>Some handlers can dynamically load web applications and controllers to serve requests.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">source</td><td>Source path or description.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga7a2248e73a4b634e923c4e4faab2e4e7"></a>
<div class="api">
<div class="prototype">
int
httpSetRouteTarget
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *details)
</div>
<div class="apiDetail">
<p>Set a route target.</p>
<dl><dt><b>Description</b>:</dt><dd>This configures the route pipeline by defining a route target. The route target is interpreted by the selected route handler to process the request. Route targets can contain symbolic tokens that are expanded at run-time with their corresponding values. There are three classes of tokens: <ul><li>System and Route varibles - such as DOCUMENTS_DIR, HOME_DIR, BIN_DIR, PRODUCT, OS, VERSION. </li><li>Route URI tokens - these are the braced tokens in the route pattern. </li><li>Request fields - these are request state and property values. </li></ul>
System and URI tokens are of the form: &quot;${token}&quot; where &quot;token&quot; is the name of the variable or URI token. Request fields are of the form: &quot;${family:name=defaultValue}&quot; where the family defines a set of values. If the named field is not present, an optional default value &quot;=defaultValue&quot; will be used instead. These supported request field families are: <ul><li>header - for request HTTP header values </li><li>param - for request params </li><li>query - for request query field values </li><li>request - for request details </li><li>Any URI pattern token </li></ul>
For example: &quot;run ${header:User-Agent}&quot; to select the client&apos;s browser string passed in the HTTP headers. For example: &quot;run ${field:name}&quot; to select the client&apos;s browser string passed in the HTTP headers. For example: &quot;run ${name}.html&quot; where {name} was a token in the route pattern. For example: &quot;run ${name}.html&quot; where {name} was a token in the route pattern. The supported request key names are: <ul><li>clientAddress - The client IP address </li><li>clientPort - The client port number </li><li>error - Any request or connection error message </li><li>ext - The request extension </li><li>extraPath - The request extra path after the script extension </li><li>filename - The mapped request filename in physical storage </li><li>language - The selected language for the request </li><li>languageDir - The langauge directory </li><li>host - The host name owning the route for the request </li><li>method - The request HTTP method </li><li>originalUri - The original, pre-decoded URI </li><li>pathInfo - The path portion of the URI after the host and port information </li><li>prefix - The route prefix </li><li>query - The request query information </li><li>reference - The request reference fragment. This is the URI portion after &quot;#&quot; </li><li>scheme - The request protocol scheme. E.g. &quot;http&quot; </li><li>scriptName - The request script or application name </li><li>serverAddress - The server IP address </li><li>serverPort - The server port number </li><li>uri - The full request URI. May be modified by routes, handlers and filters </li></ul>
Also see <a class="ref" href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62">httpMakePath</a> for additional tokens (DOCUMENTS_DIR, HOME_DIR, BIN_DIR, PRODUCT, OS, VERSION).</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">name</td><td>Target rule to add. Supported update rules include: &quot;close&quot;, &quot;redirect&quot;, &quot;run&quot; and &quot;write&quot;. <br/><br/>
The &quot;close&quot; rule is used to do abortive closes for the request. This is useful for ward off known security attackers. For example: &quot;close immediate&quot;. The &quot;close&quot; rule takes no addition parameters. <br/><br/><br/><br/>
The &quot;redirect&quot; rule is used to redirect the request to a new resource. For example: &quot;redirect 302 /tryAgain.html&quot;. The &quot;redirect&quot; takes the form: &quot;redirect status URI&quot;. The status code is used as the HTTP response code. The URI can be a fully qualified URI beginning with &quot;http&quot; or it can be a relative URI. <br/><br/>
The &quot;run&quot; target is used to run the configured handler to respond to the request. For example: &quot;file ${DOCUMENTS}/${request.uri}.gz&quot;. <br/><br/>
The &quot;write&quot; rule is used to write literal data back to the client. For example: &quot;write 200 Hello World\r\n&quot;. The &quot;write&quot; rule takes the form: &quot;write [-r] status message&quot;. Write data is by default HTML encoded to help eliminate XSS security exposures. The &quot;-r&quot; option selects &quot;raw&quot; output and bypasses the HTML encoding of the write data string. <br/><br/>
WARNING: Take great care when using raw writes with tokens. Write data is not HTML encoded and echoing back to raw data to the client can cause XSS and other security issues. The status field defines the HTTP status code to use in the response.</td>
<tr><td class="param">details</td><td>Update rule parameters.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1gaa330ec51c47806576240547ab3f06c7c"></a>
<div class="api">
<div class="prototype">
void
httpSetRouteTemplate
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tplate)
</div>
<div class="apiDetail">
<p>Set the route template.</p>
<dl><dt><b>Description</b>:</dt><dd>Set the route URI template uses when constructing URIs via httpLink.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">tplate</td><td>URI template to use. Templates may contain embedded tokens &quot;{token}&quot; where the token names correspond to the token names in the route pattern.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga0fca8cb1a2151bde37febf28638f8f6c"></a>
<div class="api">
<div class="prototype">
void
httpSetRouteTraceFilter
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, int dir, int levels, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *include, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *exclude)
</div>
<div class="apiDetail">
<p>Set the route trace filter.</p>
<dl><dt><b>Description</b>:</dt><dd>Trace filters include or exclude trace items based on the request filename extension.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>HttpRoute object.</td>
<tr><td class="param">dir</td><td>Trace direction. Set to HTTP_TRACE_TX or HTTP_TRACE_RX.</td>
<tr><td class="param">levels</td><td>Trace class levels. Indicies are: HTTP_TRACE_CONN, HTTP_TRACE_FIRST, HTTP_TRACE_HEADER, HTTP_TRACE_BODY, HTTP_TRACE_LIMITS, HTTP_TRACE_TIME.</td>
<tr><td class="param">len</td><td>Maximum content length eligible for tracing.</td>
<tr><td class="param">include</td><td>Comma or space separated list of extensions to include in tracing.</td>
<tr><td class="param">exclude</td><td>Comma or space separated list of extensions to exclude from tracing.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga3c0b5cdd207914add45a78054b96f9fe"></a>
<div class="api">
<div class="prototype">
void
httpSetRouteVar
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *token, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
</div>
<div class="apiDetail">
<p>Define a path token variable.</p>
<dl><dt><b>Description</b>:</dt><dd>The <a class="ref" href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62">httpMakePath</a> routine and route conditions, updates, headers, fields and targets will expand tokenized expressions &quot;${token}&quot;. Additional tokens can be defined via this API.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">token</td><td>Name of the token to define.</td>
<tr><td class="param">value</td><td>Value of the token.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga6c7911ff918bc0a7eeedc0ab44e73749"></a>
<div class="api">
<div class="prototype">
void
httpSetRouteWorkers
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, int workers)
</div>
<div class="apiDetail">
<p>Define the maximum number of workers for a route.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">workers</td><td>Maximum number of workers for this route.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1ga9ed9a3687b90670fb6e12697f579e744"></a>
<div class="api">
<div class="prototype">
void
httpSetStageData
(struct HttpConn *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a5272042f7e0f5c53e2fd4b49ff47d92d" class="ref">cvoid</a> *data)
</div>
<div class="apiDetail">
<p>Set stage data.</p>
<dl><dt><b>Description</b>:</dt><dd>Stages can store extra configuration information indexed by key. This is used by handlers, filters, connectors and and handlers.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
<tr><td class="param">key</td><td>Key index into the stage data.</td>
<tr><td class="param">data</td><td>Reference to custom data allocated via mprAlloc.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1gae4b6d8eea6fd3315c15b353a1fd71753"></a>
<div class="api">
<div class="prototype">
char *
httpTemplate
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tplate, <a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *options)
</div>
<div class="apiDetail">
<p>Expand a template string using given options.</p>
<dl><dt><b>Description</b>:</dt><dd>This expands a string with embedded tokens of the form &quot;${token}&quot; using values from the given options.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">tplate</td><td>Template string to process.</td>
<tr><td class="param">options</td><td>Hash of option values for embedded tokens.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1gad3c617708c6209cddbad56f16e4d62e9"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpTokenize
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *str, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
</div>
<div class="apiDetail">
<p>Tokenize a string based on route data.</p>
<dl><dt><b>Description</b>:</dt><dd>This is a utility routine to parse a string into tokens given a format specifier. Mandatory tokens can be specified with &quot;%&quot; format specifier. Optional tokens are specified with &quot;?&quot; format. Supported tokens: <ul><li>B - Boolean. Parses: on/off, true/false, yes/no. </li><li>N - Number. Parses numbers in base 10. </li><li>S - String. Removes quotes. </li><li>P - Path string. Removes quotes and expands ${PathVars}. Resolved relative to host-&gt;dir (Home). </li><li>W - Parse words into a list </li><li>%! - Optional negate. Set value to HTTP_ROUTE_NOT present, otherwise zero. </li></ul>
Values wrapped in quotes will have the outermost quotes trimmed.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">str</td><td>String to expand.</td>
<tr><td class="param">fmt</td><td>Format string specifier.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the string can be successfully parsed.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1gacb87f172e58f3fdb1158eac01f3b4622"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpTokenizev
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *str, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, va_list args)
</div>
<div class="apiDetail">
<p>Tokenize a string based on route data.</p>
<dl><dt><b>Description</b>:</dt><dd>This is a utility routine to parse a string into tokens given a format specifier. This call is similar to <a class="ref" href="#group___http_route_1gad3c617708c6209cddbad56f16e4d62e9">httpTokenize</a> but uses a va_list argument.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">str</td><td>String to expand.</td>
<tr><td class="param">fmt</td><td>Format string specifier.</td>
<tr><td class="param">args</td><td>Varargs argument list.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the string can be successfully parsed.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<a name="group___http_route_1gad0242da72f0bd7cc5e200a85adae2e7b"></a>
<div class="api">
<div class="prototype">
void
httpWriteRouteLog
(<a href="#group___http_route" class="ref">HttpRoute</a> *route, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *buf, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len)
</div>
<div class="apiDetail">
<p>Write data to the route access log.</p>
<dl><dt><b>Description</b>:</dt><dd>Write data after archiving if required.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">route</td><td>Route to modify.</td>
<tr><td class="param">buf</td><td>Data buffer to write.</td>
<tr><td class="param">len</td><td>Size of the data buffer.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_route" class="ref">HttpRoute</a>, <a href="#group___http_route_1ga770c1e7e867164b619baf4fc732e4932" class="ref">httpAddRouteCondition</a>, <a href="#group___http_route_1ga88589290f2ddbebfdf376b86d171c9b9" class="ref">httpAddRouteErrorDocument</a>, <a href="#group___http_route_1ga339ef2fbff4a1ac81d8ee4f025535b47" class="ref">httpAddRouteFilter</a>, <a href="#group___http_route_1gaecaf4a188f4b0a1e638850ec858c0220" class="ref">httpAddRouteHandler</a>, <a href="#group___http_route_1ga664691aa4ee19502e4c4506442361856" class="ref">httpAddRouteHeader</a>, <a href="#group___http_route_1ga58417e1eb7442f7ad7ca7ec085a6eb7a" class="ref">httpAddRouteLanguageDir</a>, <a href="#group___http_route_1ga3ebbc195019c628fc5ec218556112941" class="ref">httpAddRouteLanguageSuffix</a>, <a href="#group___http_route_1ga54ef65d762f36ceb395b1a53defed1a5" class="ref">httpAddRouteUpdate</a>, <a href="#group___http_route_1ga978d9975cc129f54f995acef887f27f2" class="ref">httpClearRouteStages</a>, <a href="#group___http_route_1ga2d301112d0ee03a30a206ee0d8972ac4" class="ref">httpCreateAliasRoute</a>, <a href="#group___http_route_1gaf28d21e91958f2d73f6cf7d485291171" class="ref">httpCreateDefaultRoute</a>, <a href="#group___http_route_1ga4190cb538d908637fa3c7ea17384f1fa" class="ref">httpCreateInheritedRoute</a>, <a href="#group___http_route_1gadd8a97406d8776677dddf8107d570a69" class="ref">httpCreateRoute</a>, <a href="#group___http_route_1ga20b7156a3cfb5527c8f03ff6a197ec96" class="ref">httpDefineRoute</a>, <a href="#group___http_route_1ga52a045f7f1c4d8dc7a73727616c60424" class="ref">httpDefineRouteCondition</a>, <a href="#group___http_route_1gacbfd4b4af21c2f12f2ee4a49bef69953" class="ref">httpDefineRouteTarget</a>, <a href="#group___http_route_1gac2d98ba8d6f639ecfb65593a6e36b193" class="ref">httpDefineRouteUpdate</a>, <a href="#group___http_route_1ga49882cc0ce64dd3cc7dbef9105ee8fbd" class="ref">httpFinalizeRoute</a>, <a href="#group___http_route_1ga8623f5d6b994e273aee0e03f2303c666" class="ref">httpGetRouteData</a>, <a href="#group___http_route_1ga6cfb8dbdf1cc80d7e25fafa20aece99d" class="ref">httpGetRouteDir</a>, <a href="#group___http_route_1ga5b051e0b1cf729188162294091feca6d" class="ref">httpLink</a>, <a href="#group___http_route_1ga3e3f373a33571eb0b3b16bd1b1e2c93a" class="ref">httpLookupRouteErrorDocument</a>, <a href="#group___http_route_1ga9f8966bad2eac58725b4b5a0d2049b62" class="ref">httpMakePath</a>, <a href="#group___http_route_1ga425ffccf7078d669d08252a5234ddcba" class="ref">httpMatchRoute</a>, <a href="#group___http_route_1ga204e52b8069446315dc98f9e99dc1ad0" class="ref">httpResetRoutePipeline</a>, <a href="#group___http_route_1gaeb56c9f331ecf2f6af883eb842421b66" class="ref">httpSetRouteAuth</a>, <a href="#group___http_route_1gaddcc56c566e6857c3d1339f95fd5e712" class="ref">httpSetRouteAutoDelete</a>, <a href="#group___http_route_1ga15322e55dffb1723004814cf54636d02" class="ref">httpSetRouteCompression</a>, <a href="#group___http_route_1gae23ba970b0dd2f137708089826a8875c" class="ref">httpSetRouteConnector</a>, <a href="#group___http_route_1gaf63bed103e906efe134668c20e5338ef" class="ref">httpSetRouteData</a>, <a href="#group___http_route_1ga627abf6aca15d77978176797a15c86f0" class="ref">httpSetRouteDefaultLanguage</a>, <a href="#group___http_route_1gae8804a5214733a203a6d6dc3c98aa91b" class="ref">httpSetRouteDir</a>, <a href="#group___http_route_1gacba5a4bea1af4b6e833b7b7fc4e922b1" class="ref">httpSetRouteFlags</a>, <a href="#group___http_route_1ga7f7b642a70a41a659ce3094881b872b6" class="ref">httpSetRouteHandler</a>, <a href="#group___http_route_1gaf72c2d2934d0a63780dfb97b4cf2ad3c" class="ref">httpSetRouteMethods</a>, <a href="#group___http_route_1ga2db04c0daac85896d559f98610b7b79f" class="ref">httpSetRouteName</a>, <a href="#group___http_route_1ga9cd46ebcbf14e69a701ad4f4f8eb0155" class="ref">httpSetRoutePattern</a>, <a href="#group___http_route_1ga5ff2380ef7e8cabca57e85c67563c7d7" class="ref">httpSetRoutePrefix</a>, <a href="#group___http_route_1gae797cd54af2ee6cafccb89b1590feeb7" class="ref">httpSetRouteScript</a>, <a href="#
</div>
</div>
<h1>HttpRx</h1>
<a name="group___http_rx"></a>
<div class="api">
<div class="prototype">HttpRx</div>
<div class="apiDetail">
<p>Http Rx.</p>
<dl><dt><b>Description</b>:</dt><dd>Most of the APIs in the rx group still take a HttpConn object as their first parameter. This is to make the API easier to remember - APIs take a connection object rather than a rx or tx object.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">char *</td><td><td>accept</td><td>
Accept header.
</td>
<tr><td class="param">char *</td><td><td>acceptCharset</td><td>
Accept-Charset header.
</td>
<tr><td class="param">char *</td><td><td>acceptEncoding</td><td>
Accept-Encoding header.
</td>
<tr><td class="param">char *</td><td><td>acceptLanguage</td><td>
Accept-Language header.
</td>
<tr><td class="param">char *</td><td><td>authDetails</td><td>
Header details: authorization|www-authenticate provided by peer.
</td>
<tr><td class="param">int</td><td><td>authenticated</td><td>
Request has been authenticated.
</td>
<tr><td class="param">int</td><td><td>autoDelete</td><td>
Automatically delete uploaded files.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>bytesRead</td><td>
Length of content read by user.
</td>
<tr><td class="param">int</td><td><td>chunkState</td><td>
Chunk encoding state.
</td>
<tr><td class="param">HttpConn *</td><td><td>conn</td><td>
Connection object.
</td>
<tr><td class="param">char *</td><td><td>connection</td><td>
Connection header.
</td>
<tr><td class="param">char *</td><td><td>contentLength</td><td>
Content length string value.
</td>
<tr><td class="param">char *</td><td><td>cookie</td><td>
Cookie header.
</td>
<tr><td class="param">int</td><td><td>eof</td><td>
All read data has been received (eof).
</td>
<tr><td class="param">MprList *</td><td><td>etags</td><td>
Document etag to uniquely identify the document version.
</td>
<tr><td class="param">char *</td><td><td>extraPath</td><td>
Extra path information (CGI|PHP).
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>files</td><td>
Uploaded files.
Managed by the upload filter.
</td>
<tr><td class="param">int</td><td><td>flags</td><td>
Rx modifiers.
</td>
<tr><td class="param">int</td><td><td>form</td><td>
Using mime-type application/x-www-form-urlencoded.
</td>
<tr><td class="param">HttpPacket *</td><td><td>headerPacket</td><td>
HTTP headers.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>headers</td><td>
Header variables.
</td>
<tr><td class="param">char *</td><td><td>hostHeader</td><td>
Client supplied host name header.
</td>
<tr><td class="param">bool</td><td><td>ifMatch</td><td>
If-Match processing requested.
</td>
<tr><td class="param">bool</td><td><td>ifModified</td><td>
If-Modified processing requested.
</td>
<tr><td class="param">MprList *</td><td><td>inputPipeline</td><td>
Input processing.
</td>
<tr><td class="param">HttpRange *</td><td><td>inputRange</td><td>
Specified range for rx (post) data.
</td>
<tr><td class="param"><a class="ref" href="#struct_http_lang">HttpLang</a> *</td><td><td>lang</td><td>
Selected language.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>length</td><td>
Content length header value (ENV: CONTENT_LENGTH).
</td>
<tr><td class="param">char *</td><td><td>method</td><td>
Request method.
</td>
<tr><td class="param">char *</td><td><td>mimeType</td><td>
Mime type of the request payload (ENV: CONTENT_TYPE).
</td>
<tr><td class="param">int</td><td><td>needInputPipeline</td><td>
Input pipeline required to process received data.
</td>
<tr><td class="param">char *</td><td><td>origin</td><td>
Origin header (not used).
</td>
<tr><td class="param">char *</td><td><td>originalMethod</td><td>
Original method from the client.
</td>
<tr><td class="param">char *</td><td><td>originalUri</td><td>
Original URI passed by the client.
</td>
<tr><td class="param">int</td><td><td>ownParams</td><td>
Do own parameter handling.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>params</td><td>
Request params (Query and post data variables).
</td>
<tr><td class="param">char *</td><td><td>paramString</td><td>
Cached param data as a string.
</td>
<tr><td class="param">HttpUri *</td><td><td>parsedUri</td><td>
Parsed request uri.
</td>
<tr><td class="param">char *</td><td><td>passDigest</td><td>
User password digest for authentication.
</td>
<tr><td class="param">char *</td><td><td>pathInfo</td><td>
Path information after the scriptName (Decoded and normalized).
</td>
<tr><td class="param">char *</td><td><td>pragma</td><td>
Pragma header.
</td>
<tr><td class="param">char *</td><td><td>redirect</td><td>
Redirect route header.
</td>
<tr><td class="param">char *</td><td><td>referrer</td><td>
Refering URL.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>remainingContent</td><td>
Remaining content data to read (in next chunk if chunked).
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>requestData</td><td>
General request data storage.
Users must create hash table if required.
</td>
<tr><td class="param">HttpRoute *</td><td><td>route</td><td>
Route for request.
</td>
<tr><td class="param">char *</td><td><td>scriptName</td><td>
ScriptName portion of the uri (Decoded).
May be empty or start with &quot;/&quot;.
</td>
<tr><td class="param">char *</td><td><td>securityToken</td><td>
Security form token.
</td>
<tr><td class="param">HttpSession *</td><td><td>session</td><td>
Session for request.
</td>
<tr><td class="param">int</td><td><td>sessionProbed</td><td>
Session has been resolved.
</td>
<tr><td class="param">MprTime</td><td><td>since</td><td>
If-Modified date.
</td>
<tr><td class="param">int</td><td><td>status</td><td>
HTTP response status.
</td>
<tr><td class="param">char *</td><td><td>statusMessage</td><td>
HTTP Response status message.
</td>
<tr><td class="param">int</td><td><td>streaming</td><td>
Stream incoming content.
Forms typically buffer and dont stream.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>svars</td><td>
Server variables.
</td>
<tr><td class="param">char *</td><td><td>target</td><td>
Route target.
</td>
<tr><td class="param">int</td><td><td>traceLevel</td><td>
General trace level for header level info.
</td>
<tr><td class="param">char *</td><td><td>upgrade</td><td>
Protocol upgrade header.
</td>
<tr><td class="param">int</td><td><td>upload</td><td>
Request is using file upload.
</td>
<tr><td class="param">char *</td><td><td>uploadDir</td><td>
Upload directory.
</td>
<tr><td class="param">char *</td><td><td>uri</td><td>
Current URI (not decoded, may be rewritten).
</td>
<tr><td class="param">char *</td><td><td>userAgent</td><td>
User-Agent header.
</td>
<tr><td class="param">struct HttpWebSocket *</td><td><td>webSocket</td><td>
WebSocket state.
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga2efe9d742affc69062599605bc6edf11"></a>
<div class="api">
<div class="prototype">
void
httpAddParams
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Add query and form body data to params.</p>
<dl><dt><b>Description</b>:</dt><dd>This adds query data and posted body data to the request params.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga59e938b0437fb2fde01885946058efb6"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpContentNotModified
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Test if the content has not been modified.</p>
<dl><dt><b>Description</b>:</dt><dd>This call tests if the file content to be served has been modified since the client last requested this resource. The client must provide an Etag and Since or If-Modified headers.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the content is current and has not been modified.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65"></a>
<div class="api">
<div class="prototype">
void
httpCreateCGIParams
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Create CGI parameters.</p>
<dl><dt><b>Description</b>:</dt><dd>This call creates request params corresponding to the standard CGI/1.1 environment variables. This is used by the CGI and PHP handlers. It may also be useful to handlers that wish to expose CGI style environment variables through the form vars interface.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a>
httpGetContentLength
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the receive body content length.</p>
<dl><dt><b>Description</b>:</dt><dd>Get the length of the receive body content (if any). This is used in servers to get the length of posted data and in clients to get the response body length.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A count of the response content data in bytes.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1gab765b374148bc401f8c2b88a92732421"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
httpGetCookies
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the request cookies.</p>
<dl><dt><b>Description</b>:</dt><dd>Get the cookies defined in the current requeset.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Return a string containing the cookies sent in the Http header of the last request.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga8972473e3610bed271f76e27d04af473"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
httpGetHeader
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)
</div>
<div class="apiDetail">
<p>Get an rx http header.</p>
<dl><dt><b>Description</b>:</dt><dd>Get a http response header for a given header key.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">key</td><td>Name of the header to retrieve. This should be a lower case header name. For example: &quot;Connection&quot;.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Value associated with the header key or null if the key did not exist in the response.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *
httpGetHeaderHash
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the hash table of rx Http headers.</p>
<dl><dt><b>Description</b>:</dt><dd>Get the internal hash table of rx headers.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Hash table. See <a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> for how to access the hash table.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1"></a>
<div class="api">
<div class="prototype">
char *
httpGetHeaders
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get all the request http headers.</p>
<dl><dt><b>Description</b>:</dt><dd>Get all the rx headers. The returned string formats all the headers in the form: key: value\nkey2: value2\n.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>String containing all the headers. The caller must free this returned string.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga6c8ec95383e146c74f7ec0c1580147d8"></a>
<div class="api">
<div class="prototype">
char *
httpGetHeadersFromHash
(<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *hash)
</div>
<div class="apiDetail">
<p>Get a header string from the given hash.</p>
<dl><dt><b>Description</b>:</dt><dd>This returns a set of &quot;key: value&quot; lines in HTTP header format.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">hash</td><td>Hash table to examine.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a"></a>
<div class="api">
<div class="prototype">
int
httpGetIntParam
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, int defaultValue)
</div>
<div class="apiDetail">
<p>Get a form variable as an integer.</p>
<dl><dt><b>Description</b>:</dt><dd>Get the value of a named form variable as an integer. Form variables are define via www-urlencoded query or post data contained in the request.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
<tr><td class="param">var</td><td>Name of the form variable to retrieve.</td>
<tr><td class="param">defaultValue</td><td>Default value to return if the variable is not defined. Can be null.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Integer containing the form variable&apos;s value.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga3034c56a903aa338c56cba7301c7b687"></a>
<div class="api">
<div class="prototype">
<a href="#struct_http_lang" class="ref">HttpLang</a> *
httpGetLanguage
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *spoken, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *defaultLang)
</div>
<div class="apiDetail">
<p>Get the language to use for the request.</p>
<dl><dt><b>Description</b>:</dt><dd>This call tests if the file content to be served has been modified since the client last requested this resource. The client must provide an Etag and Since or If-Modified headers.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
<tr><td class="param">spoken</td><td>Hash table of <a class="ref" href="#struct_http_lang">HttpLang</a> records. This is typically route-&gt;languages.</td>
<tr><td class="param">defaultLang</td><td>Default language to use if none specified in the request Accept-Language header.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A <a class="ref" href="#struct_http_lang">HttpLang</a> reference, or null if no language requested or no language found in the spoken table.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
httpGetParam
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *defaultValue)
</div>
<div class="apiDetail">
<p>Get a request param.</p>
<dl><dt><b>Description</b>:</dt><dd>Get the value of a named request param. Form variables are define via www-urlencoded query or post data contained in the request.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
<tr><td class="param">var</td><td>Name of the request param to retrieve.</td>
<tr><td class="param">defaultValue</td><td>Default value to return if the variable is not defined. Can be null.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>String containing the request param&apos;s value. Caller should not free.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *
httpGetParams
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the request params table.</p>
<dl><dt><b>Description</b>:</dt><dd>This call gets the form var table for the current request. Query data and www-url encoded form data is entered into the table after decoding. Use <a class="ref" href="#group___mpr_hash_1ga28eaf688ae47d09abd9552fe003cedbb" external="mpr.dtags">mprLookupKey</a> to retrieve data from the table.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> instance containing the form vars.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga792bb74969da2e9f5e53adef69e9b311"></a>
<div class="api">
<div class="prototype">
char *
httpGetParamsString
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the request params table as a string.</p>
<dl><dt><b>Description</b>:</dt><dd>This call gets the request params encoded as a string. The params are always in the same order regardless of the form parameter order. Request parameters include query parameters, form data and routing parameters.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A string representation in www-urlencoded format.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1gaff1c1e4974e913cfe273b7ddfc79b1cd"></a>
<div class="api">
<div class="prototype">
char *
httpGetPathExt
(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)
</div>
<div class="apiDetail">
<p>Get a path extension.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">path</td><td>File pathname to examine.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The path extension sans &quot;.&quot;.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
httpGetQueryString
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the request query string.</p>
<dl><dt><b>Description</b>:</dt><dd>Get query string sent with the current request.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>String containing the request query string. Caller should not free.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpGetReadCount
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the number of bytes that can be read from the read queue.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The number of bytes available in the read queue for the connection.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1gab3115e46e00ffbc29ec9c8c4a9f8fc61"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a5272042f7e0f5c53e2fd4b49ff47d92d" class="ref">cvoid</a> *
httpGetStageData
(struct HttpConn *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)
</div>
<div class="apiDetail">
<p>Get stage data.</p>
<dl><dt><b>Description</b>:</dt><dd>Stages can store extra configuration information indexed by key. This is used by handlers, filters, connectors and and handlers.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
<tr><td class="param">key</td><td>Key index into the stage data.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A reference to the stage data. Otherwise return null if the route data for the given key was not found.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a"></a>
<div class="api">
<div class="prototype">
int
httpGetStatus
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the response status.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>An integer Http response code. Typically 200 is success.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a"></a>
<div class="api">
<div class="prototype">
char *
httpGetStatusMessage
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the Http response status message.</p>
The Http status message is supplied on the first line of the Http response
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A Http status message.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpMatchParam
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *expected)
</div>
<div class="apiDetail">
<p>Match a form variable with an expected value.</p>
<dl><dt><b>Description</b>:</dt><dd>Compare a form variable and return true if it exists and its value matches.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
<tr><td class="param">var</td><td>Name of the form variable.</td>
<tr><td class="param">expected</td><td>Expected value to match with.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the value matches.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1gabec750f9be88c9321ffe026fdabf7b90"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpPumpRequest
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet)
</div>
<div class="apiDetail">
<p>Pump the Http engine for a request.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
<tr><td class="param">packet</td><td>Optional packet of input data. Set to NULL if calling from user handlers.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the request is completed successfully.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpRead
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, char *buffer, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)
</div>
<div class="apiDetail">
<p>Read rx body data.</p>
This will read available body data. If in sync mode, this call may block. If in async mode, the call will not block and will return with whatever data is available
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">buffer</td><td>Buffer to receive read data.</td>
<tr><td class="param">size</td><td>Size of buffer.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The number of bytes read.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b"></a>
<div class="api">
<div class="prototype">
char *
httpReadString
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Read response data as a string.</p>
This will read all rx body and return a string that the caller should free. This will block and should not be used in async mode
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A string containing the rx body. Caller should free.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb"></a>
<div class="api">
<div class="prototype">
void
httpSetIntParam
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, int value)
</div>
<div class="apiDetail">
<p>Set an integer request param value.</p>
<dl><dt><b>Description</b>:</dt><dd>Set the value of a named request param to an integer value. Form variables are define via www-urlencoded query or post data contained in the request.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
<tr><td class="param">var</td><td>Name of the request param to retrieve.</td>
<tr><td class="param">value</td><td>Default value to return if the variable is not defined. Can be null.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga246c59aa7888e4eabb40b09d3420f4fe"></a>
<div class="api">
<div class="prototype">
void
httpSetMethod
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *method)
</div>
<div class="apiDetail">
<p>Set a new HTTP method for processing.</p>
<dl><dt><b>Description</b>:</dt><dd>This modifies the request method to alter request processing. The original method is preserved in the HttpRx.originalMethod field. This is only useful to do before request routing has matched a route.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
<tr><td class="param">method</td><td>New method to use.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb"></a>
<div class="api">
<div class="prototype">
void
httpSetParam
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
</div>
<div class="apiDetail">
<p>Set a request param value.</p>
<dl><dt><b>Description</b>:</dt><dd>Set the value of a named request param to a string value. Form variables are define via www-urlencoded query or post data contained in the request.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
<tr><td class="param">var</td><td>Name of the request param to retrieve.</td>
<tr><td class="param">value</td><td>Default value to return if the variable is not defined. Can be null.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga54599ee797e007a48bbabb81eed36936"></a>
<div class="api">
<div class="prototype">
int
httpSetUri
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri)
</div>
<div class="apiDetail">
<p>Set a new URI for processing.</p>
<dl><dt><b>Description</b>:</dt><dd>This modifies the request URI to alter request processing. The original URI is preserved in the HttpRx.originalUri field. This is only useful to do before request routing has matched a route.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
<tr><td class="param">uri</td><td>New URI to use. The URI can be fully qualified starting with a scheme (&quot;http&quot;) or it can be a partial/relative URI. Missing portions of the URI will be completed with equivalent portions from the current URI. For example: if the current request URI was <ulink url="http://example.com:7777/index.html,">http://example.com:7777/index.html,</ulink> then a call to httpSetUri(conn, &quot;/new.html&quot;, 0) will set the request URI to <ulink url="http://example.com:7777/new.html">http://example.com:7777/new.html</ulink>. The request script name will be reset and the pathInfo will be set to the path portion of the URI.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae"></a>
<div class="api">
<div class="prototype">
int
httpTestParam
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var)
</div>
<div class="apiDetail">
<p>Test if a request param is defined.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
<tr><td class="param">var</td><td>Name of the request param to retrieve.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the request param is defined.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d" class="ref">httpTrimExtraPath</a></dd></dl>
</div>
</div>
<a name="group___http_rx_1ga0ac0fdda7fc8cf2738b5083e3517707d"></a>
<div class="api">
<div class="prototype">
void
httpTrimExtraPath
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Trim extra path from the URI.</p>
<dl><dt><b>Description</b>:</dt><dd>This call trims extra path information after the uri extension. This is used by CGI and PHP. The strategy is to heuristically find the script name in the uri. This is assumed to be the original uri up to and including first path component containing a &quot;.&quot; Any path information after that is regarded as extra path. WARNING: Extra path is an old, unreliable, CGI specific technique. Do not use directories with embedded periods.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_rx_1ga59e938b0437fb2fde01885946058efb6" class="ref">httpContentNotModified</a>, <a href="#group___http_rx_1ga88695d5677cbd4f42889c09fa7d43a65" class="ref">httpCreateCGIParams</a>, <a href="#group___http_rx_1gadafdace3fe2bdbbd5e62b6942af088c5" class="ref">httpGetContentLength</a>, <a href="#group___http_rx_1gab765b374148bc401f8c2b88a92732421" class="ref">httpGetCookies</a>, <a href="#group___http_rx_1ga8972473e3610bed271f76e27d04af473" class="ref">httpGetHeader</a>, <a href="#group___http_rx_1ga3c065c5a2be0bf2ac90ef94f972f2494" class="ref">httpGetHeaderHash</a>, <a href="#group___http_rx_1ga2bfb4c582aa38c8a34c028b5f4547ef1" class="ref">httpGetHeaders</a>, <a href="#group___http_rx_1ga4e52e60e13d1c4b8a67db629068eaa2a" class="ref">httpGetIntParam</a>, <a href="#group___http_rx_1ga3034c56a903aa338c56cba7301c7b687" class="ref">httpGetLanguage</a>, <a href="#group___http_rx_1ga0bccc6d844d84b424a2b770c61a4e604" class="ref">httpGetParam</a>, <a href="#group___http_rx_1ga4bfb3ffc672bef6813ac5a555fbb0ba4" class="ref">httpGetParams</a>, <a href="#group___http_rx_1ga1b77e1b5b3f6a24f691f80c0278cecd9" class="ref">httpGetQueryString</a>, <a href="#group___http_rx_1ga53cc0c3dcaf6e6da30c0975064d6bcbc" class="ref">httpGetReadCount</a>, <a href="#group___http_rx_1gaf7d28c87e2d92899991228c32eeca10a" class="ref">httpGetStatus</a>, <a href="#group___http_rx_1ga5e5417c28bda8b93d5ea80e5f889a83a" class="ref">httpGetStatusMessage</a>, <a href="#group___http_rx_1ga5bfd6791a6b71fbf6891dd565a41dd5d" class="ref">httpMatchParam</a>, <a href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff" class="ref">httpRead</a>, <a href="#group___http_rx_1gab7d21bd58ae2f0cb64ae8c9e7c01208b" class="ref">httpReadString</a>, <a href="#group___http_rx_1ga65544de95f88799ed0390fe6d468b2eb" class="ref">httpSetIntParam</a>, <a href="#group___http_rx_1ga818d335c49dd7f45ba3a45aa397c63cb" class="ref">httpSetParam</a>, <a href="#group___http_rx_1ga54599ee797e007a48bbabb81eed36936" class="ref">httpSetUri</a>, <a href="#group___http_rx_1ga5a1ddb99bdfc515bed222f18381505ae" class="ref">httpTestParam</a></dd></dl>
</div>
</div>
<h1>HttpSession</h1>
<a name="group___http_session"></a>
<div class="api">
<div class="prototype">HttpSession</div>
<div class="apiDetail">
<p>Session state object.</p>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_session_1ga8eb6b74c4f7ce9cad48eb099de634dcd" class="ref">httpAllocSession</a>, <a href="#group___http_session_1gaa1e5bfdfe87a7ef0d8ca2bf649099ee3" class="ref">httpCreateSession</a>, <a href="#group___http_session_1ga63006fbfd2772ecf03d0fd390fc31b7e" class="ref">httpDestroySession</a>, <a href="#group___http_session_1gac941465ecd0d3d0e3f4e6ccc66ec6605" class="ref">httpGetSession</a>, <a href="#group___http_session_1ga2244ff502745aa576f670dd91ff13a3a" class="ref">httpGetSessionID</a>, <a href="#group___http_session_1ga8fd2d595fcee3a662e328af72c036b53" class="ref">httpGetSessionObj</a>, <a href="#group___http_session_1ga6a57161d51de33ecfb2bf127ffcc1048" class="ref">httpRemoveSessionVar</a>, <a href="#group___http_session_1ga56c600614329fbd1ba3537d2cc809488" class="ref">httpSetSessionObj</a>, <a href="#group___http_session_1gae968a01773107fba5909a62e8b5b8b27" class="ref">httpSetSessionVar</a></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">MprCache *</td><td><td>cache</td><td>
Cache store reference.
</td>
<tr><td class="param">HttpConn *</td><td><td>conn</td><td>
Owning connection.
</td>
<tr><td class="param">char *</td><td><td>id</td><td>
Session ID key.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" external="mpr.dtags">MprTicks</a></td><td><td>lifespan</td><td>
Session inactivity timeout (msecs).
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_session_1ga8eb6b74c4f7ce9cad48eb099de634dcd"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_session" class="ref">HttpSession</a> *
httpAllocSession
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *id, <a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> lifespan)
</div>
<div class="apiDetail">
<p>Allocate a new session state object.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>Http connection object.</td>
<tr><td class="param">id</td><td>Unique session state ID.</td>
<tr><td class="param">lifespan</td><td>Session lifespan in ticks.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A session state object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_session_1gaa1e5bfdfe87a7ef0d8ca2bf649099ee3" class="ref">httpCreateSession</a>, <a href="#group___http_session_1ga63006fbfd2772ecf03d0fd390fc31b7e" class="ref">httpDestroySession</a>, <a href="#group___http_session_1gac941465ecd0d3d0e3f4e6ccc66ec6605" class="ref">httpGetSession</a>, <a href="#group___http_session_1ga2244ff502745aa576f670dd91ff13a3a" class="ref">httpGetSessionID</a>, <a href="#group___http_session_1ga8fd2d595fcee3a662e328af72c036b53" class="ref">httpGetSessionObj</a>, <a href="#group___http_session_1ga6a57161d51de33ecfb2bf127ffcc1048" class="ref">httpRemoveSessionVar</a>, <a href="#group___http_session_1ga56c600614329fbd1ba3537d2cc809488" class="ref">httpSetSessionObj</a>, <a href="#group___http_session_1gae968a01773107fba5909a62e8b5b8b27" class="ref">httpSetSessionVar</a></dd></dl>
</div>
</div>
<a name="group___http_session_1gaa1e5bfdfe87a7ef0d8ca2bf649099ee3"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_session" class="ref">HttpSession</a> *
httpCreateSession
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Create a session object.</p>
<dl><dt><b>Description</b>:</dt><dd>This call creates a session object. If one already exists, it is destroyed and a fresh session is created. Use httpGetSession to retrieve an existing session object.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>Http connection object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A session state object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_session_1ga8eb6b74c4f7ce9cad48eb099de634dcd" class="ref">httpAllocSession</a>, <a href="#group___http_session_1ga63006fbfd2772ecf03d0fd390fc31b7e" class="ref">httpDestroySession</a>, <a href="#group___http_session_1gac941465ecd0d3d0e3f4e6ccc66ec6605" class="ref">httpGetSession</a>, <a href="#group___http_session_1ga2244ff502745aa576f670dd91ff13a3a" class="ref">httpGetSessionID</a>, <a href="#group___http_session_1ga8fd2d595fcee3a662e328af72c036b53" class="ref">httpGetSessionObj</a>, <a href="#group___http_session_1ga6a57161d51de33ecfb2bf127ffcc1048" class="ref">httpRemoveSessionVar</a>, <a href="#group___http_session_1ga56c600614329fbd1ba3537d2cc809488" class="ref">httpSetSessionObj</a>, <a href="#group___http_session_1gae968a01773107fba5909a62e8b5b8b27" class="ref">httpSetSessionVar</a></dd></dl>
</div>
</div>
<a name="group___http_session_1ga63006fbfd2772ecf03d0fd390fc31b7e"></a>
<div class="api">
<div class="prototype">
void
httpDestroySession
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Destroy a session state object.</p>
This destroys a session. It will emit an expired cookie to force the client to remove the old session cookie
<dl><dt><b>Description</b>:</dt><dd></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>Http connection object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_session_1ga8eb6b74c4f7ce9cad48eb099de634dcd" class="ref">httpAllocSession</a>, <a href="#group___http_session_1gaa1e5bfdfe87a7ef0d8ca2bf649099ee3" class="ref">httpCreateSession</a>, <a href="#group___http_session_1gac941465ecd0d3d0e3f4e6ccc66ec6605" class="ref">httpGetSession</a>, <a href="#group___http_session_1ga2244ff502745aa576f670dd91ff13a3a" class="ref">httpGetSessionID</a>, <a href="#group___http_session_1ga8fd2d595fcee3a662e328af72c036b53" class="ref">httpGetSessionObj</a>, <a href="#group___http_session_1ga6a57161d51de33ecfb2bf127ffcc1048" class="ref">httpRemoveSessionVar</a>, <a href="#group___http_session_1ga56c600614329fbd1ba3537d2cc809488" class="ref">httpSetSessionObj</a>, <a href="#group___http_session_1gae968a01773107fba5909a62e8b5b8b27" class="ref">httpSetSessionVar</a></dd></dl>
</div>
</div>
<a name="group___http_session_1gac941465ecd0d3d0e3f4e6ccc66ec6605"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_session" class="ref">HttpSession</a> *
httpGetSession
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int create)
</div>
<div class="apiDetail">
<p>Get a session state object.</p>
This will optionally create a session if one does not already exist. It will not re-create a session that exists
<dl><dt><b>Description</b>:</dt><dd></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>Http connection object.</td>
<tr><td class="param">create</td><td>Set to &quot;true&quot; to create a session state object if one does not already exist for this client.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A session state object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_session_1ga8eb6b74c4f7ce9cad48eb099de634dcd" class="ref">httpAllocSession</a>, <a href="#group___http_session_1gaa1e5bfdfe87a7ef0d8ca2bf649099ee3" class="ref">httpCreateSession</a>, <a href="#group___http_session_1ga63006fbfd2772ecf03d0fd390fc31b7e" class="ref">httpDestroySession</a>, <a href="#group___http_session_1ga2244ff502745aa576f670dd91ff13a3a" class="ref">httpGetSessionID</a>, <a href="#group___http_session_1ga8fd2d595fcee3a662e328af72c036b53" class="ref">httpGetSessionObj</a>, <a href="#group___http_session_1ga6a57161d51de33ecfb2bf127ffcc1048" class="ref">httpRemoveSessionVar</a>, <a href="#group___http_session_1ga56c600614329fbd1ba3537d2cc809488" class="ref">httpSetSessionObj</a>, <a href="#group___http_session_1gae968a01773107fba5909a62e8b5b8b27" class="ref">httpSetSessionVar</a></dd></dl>
</div>
</div>
<a name="group___http_session_1ga2244ff502745aa576f670dd91ff13a3a"></a>
<div class="api">
<div class="prototype">
char *
httpGetSessionID
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the session ID.</p>
<dl><dt><b>Description</b>:</dt><dd></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>Http connection object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The session ID string.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_session_1ga8eb6b74c4f7ce9cad48eb099de634dcd" class="ref">httpAllocSession</a>, <a href="#group___http_session_1gaa1e5bfdfe87a7ef0d8ca2bf649099ee3" class="ref">httpCreateSession</a>, <a href="#group___http_session_1ga63006fbfd2772ecf03d0fd390fc31b7e" class="ref">httpDestroySession</a>, <a href="#group___http_session_1gac941465ecd0d3d0e3f4e6ccc66ec6605" class="ref">httpGetSession</a>, <a href="#group___http_session_1ga8fd2d595fcee3a662e328af72c036b53" class="ref">httpGetSessionObj</a>, <a href="#group___http_session_1ga6a57161d51de33ecfb2bf127ffcc1048" class="ref">httpRemoveSessionVar</a>, <a href="#group___http_session_1ga56c600614329fbd1ba3537d2cc809488" class="ref">httpSetSessionObj</a>, <a href="#group___http_session_1gae968a01773107fba5909a62e8b5b8b27" class="ref">httpSetSessionVar</a></dd></dl>
</div>
</div>
<a name="group___http_session_1ga8fd2d595fcee3a662e328af72c036b53"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *
httpGetSessionObj
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)
</div>
<div class="apiDetail">
<p>Get an object from the session state store.</p>
<dl><dt><b>Description</b>:</dt><dd>Retrieve an object from the session state store by deserializing all properties.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>Http connection object.</td>
<tr><td class="param">key</td><td>Session state key.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_session_1ga8eb6b74c4f7ce9cad48eb099de634dcd" class="ref">httpAllocSession</a>, <a href="#group___http_session_1gaa1e5bfdfe87a7ef0d8ca2bf649099ee3" class="ref">httpCreateSession</a>, <a href="#group___http_session_1ga63006fbfd2772ecf03d0fd390fc31b7e" class="ref">httpDestroySession</a>, <a href="#group___http_session_1gac941465ecd0d3d0e3f4e6ccc66ec6605" class="ref">httpGetSession</a>, <a href="#group___http_session_1ga2244ff502745aa576f670dd91ff13a3a" class="ref">httpGetSessionID</a>, <a href="#group___http_session_1ga6a57161d51de33ecfb2bf127ffcc1048" class="ref">httpRemoveSessionVar</a>, <a href="#group___http_session_1ga56c600614329fbd1ba3537d2cc809488" class="ref">httpSetSessionObj</a>, <a href="#group___http_session_1gae968a01773107fba5909a62e8b5b8b27" class="ref">httpSetSessionVar</a></dd></dl>
</div>
</div>
<a name="group___http_session_1ga5ca28737a741dcf69eb0090640c09930"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
httpGetSessionVar
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *defaultValue)
</div>
<div class="apiDetail">
<p>Get a session state variable.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>Http connection object.</td>
<tr><td class="param">name</td><td>Variable name to get.</td>
<tr><td class="param">defaultValue</td><td>If the variable does not exist, return the defaultValue.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The variable value or defaultValue if it does not exist.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_session_1ga8eb6b74c4f7ce9cad48eb099de634dcd" class="ref">httpAllocSession</a>, <a href="#group___http_session_1gaa1e5bfdfe87a7ef0d8ca2bf649099ee3" class="ref">httpCreateSession</a>, <a href="#group___http_session_1ga63006fbfd2772ecf03d0fd390fc31b7e" class="ref">httpDestroySession</a>, <a href="#group___http_session_1gac941465ecd0d3d0e3f4e6ccc66ec6605" class="ref">httpGetSession</a>, <a href="#group___http_session_1ga2244ff502745aa576f670dd91ff13a3a" class="ref">httpGetSessionID</a>, <a href="#group___http_session_1ga8fd2d595fcee3a662e328af72c036b53" class="ref">httpGetSessionObj</a>, <a href="#group___http_session_1ga6a57161d51de33ecfb2bf127ffcc1048" class="ref">httpRemoveSessionVar</a>, <a href="#group___http_session_1ga56c600614329fbd1ba3537d2cc809488" class="ref">httpSetSessionObj</a>, <a href="#group___http_session_1gae968a01773107fba5909a62e8b5b8b27" class="ref">httpSetSessionVar</a></dd></dl>
</div>
</div>
<a name="group___http_session_1ga6a57161d51de33ecfb2bf127ffcc1048"></a>
<div class="api">
<div class="prototype">
int
httpRemoveSessionVar
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
</div>
<div class="apiDetail">
<p>Remove a session state variable.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>Http connection object.</td>
<tr><td class="param">name</td><td>Variable name to remove.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_session_1ga8eb6b74c4f7ce9cad48eb099de634dcd" class="ref">httpAllocSession</a>, <a href="#group___http_session_1gaa1e5bfdfe87a7ef0d8ca2bf649099ee3" class="ref">httpCreateSession</a>, <a href="#group___http_session_1ga63006fbfd2772ecf03d0fd390fc31b7e" class="ref">httpDestroySession</a>, <a href="#group___http_session_1gac941465ecd0d3d0e3f4e6ccc66ec6605" class="ref">httpGetSession</a>, <a href="#group___http_session_1ga2244ff502745aa576f670dd91ff13a3a" class="ref">httpGetSessionID</a>, <a href="#group___http_session_1ga8fd2d595fcee3a662e328af72c036b53" class="ref">httpGetSessionObj</a>, <a href="#group___http_session_1ga56c600614329fbd1ba3537d2cc809488" class="ref">httpSetSessionObj</a>, <a href="#group___http_session_1gae968a01773107fba5909a62e8b5b8b27" class="ref">httpSetSessionVar</a></dd></dl>
</div>
</div>
<a name="group___http_session_1ga56c600614329fbd1ba3537d2cc809488"></a>
<div class="api">
<div class="prototype">
int
httpSetSessionObj
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *value)
</div>
<div class="apiDetail">
<p>Set an object into the session state store.</p>
<dl><dt><b>Description</b>:</dt><dd>Store an object in the session state store by serializing all properties.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>Http connection object.</td>
<tr><td class="param">key</td><td>Session state key.</td>
<tr><td class="param">value</td><td>Object to serialize.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_session_1ga8eb6b74c4f7ce9cad48eb099de634dcd" class="ref">httpAllocSession</a>, <a href="#group___http_session_1gaa1e5bfdfe87a7ef0d8ca2bf649099ee3" class="ref">httpCreateSession</a>, <a href="#group___http_session_1ga63006fbfd2772ecf03d0fd390fc31b7e" class="ref">httpDestroySession</a>, <a href="#group___http_session_1gac941465ecd0d3d0e3f4e6ccc66ec6605" class="ref">httpGetSession</a>, <a href="#group___http_session_1ga2244ff502745aa576f670dd91ff13a3a" class="ref">httpGetSessionID</a>, <a href="#group___http_session_1ga8fd2d595fcee3a662e328af72c036b53" class="ref">httpGetSessionObj</a>, <a href="#group___http_session_1ga6a57161d51de33ecfb2bf127ffcc1048" class="ref">httpRemoveSessionVar</a>, <a href="#group___http_session_1gae968a01773107fba5909a62e8b5b8b27" class="ref">httpSetSessionVar</a></dd></dl>
</div>
</div>
<a name="group___http_session_1gae968a01773107fba5909a62e8b5b8b27"></a>
<div class="api">
<div class="prototype">
int
httpSetSessionVar
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
</div>
<div class="apiDetail">
<p>Set a session variable.</p>
<dl><dt><b>Description</b>:</dt><dd></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>Http connection object.</td>
<tr><td class="param">name</td><td>Variable name to set.</td>
<tr><td class="param">value</td><td>Variable value to use.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A session state object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_session_1ga8eb6b74c4f7ce9cad48eb099de634dcd" class="ref">httpAllocSession</a>, <a href="#group___http_session_1gaa1e5bfdfe87a7ef0d8ca2bf649099ee3" class="ref">httpCreateSession</a>, <a href="#group___http_session_1ga63006fbfd2772ecf03d0fd390fc31b7e" class="ref">httpDestroySession</a>, <a href="#group___http_session_1gac941465ecd0d3d0e3f4e6ccc66ec6605" class="ref">httpGetSession</a>, <a href="#group___http_session_1ga2244ff502745aa576f670dd91ff13a3a" class="ref">httpGetSessionID</a>, <a href="#group___http_session_1ga8fd2d595fcee3a662e328af72c036b53" class="ref">httpGetSessionObj</a>, <a href="#group___http_session_1ga6a57161d51de33ecfb2bf127ffcc1048" class="ref">httpRemoveSessionVar</a>, <a href="#group___http_session_1ga56c600614329fbd1ba3537d2cc809488" class="ref">httpSetSessionObj</a></dd></dl>
</div>
</div>
<h1>HttpStage</h1>
<a name="group___http_stage"></a>
<div class="api">
<div class="prototype">HttpStage</div>
<div class="apiDetail">
<p>Pipeline Stages.</p>
<dl><dt><b>Description</b>:</dt><dd>The request pipeline consists of a full-duplex pipeline of stages. Stages are used to process client HTTP requests in a modular fashion. Each stage either creates, filters or consumes data packets. The HttpStage structure describes the stage capabilities and callbacks. Each stage has two queues, one for outgoing data and one for incoming data. <br/><br/>
Stages provide callback methods for parsing configuration, matching requests, open/close, run and the acceptance and service of incoming and outgoing data.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_stage_1ga8971850225994ea96daf05429c001c7c" class="ref">httpCloneStage</a>, <a href="#group___http_stage_1ga5a62ae78862a15a0ca8c192f7d5a048c" class="ref">httpCreateConnector</a>, <a href="#group___http_stage_1gab1e3174087a5e78598b66abe7ac5887e" class="ref">httpCreateFilter</a>, <a href="#group___http_stage_1ga238f5fb9f76203fdcb07fd6227ae383f" class="ref">httpCreateHandler</a>, <a href="#group___http_stage_1gad9a57a81fd836d1ec4322d60bf0d56c7" class="ref">httpCreateStage</a>, <a href="#group___http_stage_1ga635121f5f5fa104bb218796fd47178fe" class="ref">httpDefaultOutgoingServiceStage</a>, <a href="#group___http_rx_1gab3115e46e00ffbc29ec9c8c4a9f8fc61" class="ref">httpGetStageData</a>, <a href="#group___http_stage_1ga289f62101d0dbc4a88465af5b40e11eb" class="ref">httpHandleOptionsTrace</a>, <a href="#group___http_stage_1ga890b60bd78dd3099a51898b885cb26ea" class="ref">httpLookupStage</a>, <a href="#group___http_stage_1gafcc686a0a347d0ec14370c7eef99bcf0" class="ref">httpLookupStageData</a>, <a href="#group___http_route_1ga9ed9a3687b90670fb6e12697f579e744" class="ref">httpSetStageData</a></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">void(*</td><td><td>close)(HttpQueue *q)</td><td>
Close the stage.
<simplesect kind="par"><b>Description</b>:Close the stage and cleanup any request resources. </simplesect><parameterlist kind="param"><parameteritem><parameternamelist><parametername>q</parametername></parameternamelist><parameterdescription>Queue instance object</parameterdescription></parameteritem></parameterlist><simplesect kind="par"><b>API</b> Stability:Evolving </simplesect>
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>extensions</td><td>
Matching extensions for this filter.
</td>
<tr><td class="param">int</td><td><td>flags</td><td>
Stage flags.
</td>
<tr><td class="param">void(*</td><td><td>incoming)(HttpQueue *q, HttpPacket *packet)</td><td>
Process incoming data.
<simplesect kind="par"><b>Description</b>:Accept an incoming packet of data. Filters and handlers recieve packets via their incoming callback. They can choose to immediately process or forward the packet, or they can queue the packet on their queue and schedule their incomingService callback for batch processing of all queued packets. This is a common pattern where the incoming routine is not used and packets are automatically queued and the incomingService callback is used to process. Not used by connectors. </simplesect><parameterlist kind="param"><parameteritem><parameternamelist><parametername>q</parametername></parameternamelist><parameterdescription>Queue instance object </parameterdescription></parameteritem><parameteritem><parameternamelist><parametername>packet</parametername></parameternamelist><parameterdescription>Packet of data</parameterdescription></parameteritem></parameterlist><simplesect kind="par"><b>API</b> Stability:Evolving </simplesect>
</td>
<tr><td class="param">void(*</td><td><td>incomingService)(HttpQueue *q)</td><td>
Service the incoming data queue.
<simplesect kind="par"><b>Description</b>:This callback should service packets on the queue and process or forward as appropriate. A service routine should check upstream queues by calling <a class="ref" href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7">httpWillNextQueueAcceptPacket</a> before forwarding packets to ensure they do not overfow upstream queues. </simplesect><parameterlist kind="param"><parameteritem><parameternamelist><parametername>q</parametername></parameternamelist><parameterdescription>Queue instance object</parameterdescription></parameteritem></parameterlist><simplesect kind="par"><b>API</b> Stability:Evolving </simplesect>
</td>
<tr><td class="param">int(*</td><td><td>match)(struct HttpConn *conn, struct HttpRoute *route, int dir)</td><td>
Match a request.
<simplesect kind="par"><b>Description</b>:This routine is invoked to see if the stage wishes to handle the request. For handlers, the match callback is invoked when selecting the appropriate route for the request. For filters, the callback is invoked subsequently when constructing the request pipeline. If a filter declines to handle a request, the filter will be removed from the pipeline for the specified direction. The direction argument should be ignored for handlers. Handlers and filters must not actually handle the request in the match callback and must not call httpError. Errors can be reported via mprError. Handlers can defer error reporting until their start callback. </simplesect><parameterlist kind="param"><parameteritem><parameternamelist><parametername>conn</parametername></parameternamelist><parameterdescription>HttpConn connection object </parameterdescription></parameteritem><parameteritem><parameternamelist><parametername>route</parametername></parameternamelist><parameterdescription>Route object </parameterdescription></parameteritem><parameteritem><parameternamelist><parametername>dir</parametername></parameternamelist><parameterdescription>Queue direction. Set to HTTP_QUEUE_TX or HTTP_QUEUE_RX. Always set to HTTP_QUEUE_TX for handlers. </parameterdescription></parameteritem></parameterlist><simplesect kind="return">HTTP_ROUTE_OK if the request is acceptable. Return HTTP_ROUTE_REROUTE if the request has been rewritten. Return HTTP_ROUTE_REJECT it the request is not acceptable.</simplesect><simplesect kind="par"><b>API</b> Stability:Evolving </simplesect>
</td>
<tr><td class="param">MprModule *</td><td><td>module</td><td>
Backing module.
</td>
<tr><td class="param">char *</td><td><td>name</td><td>
Stage name.
</td>
<tr><td class="param">void(*</td><td><td>open)(HttpQueue *q)</td><td>
Open the stage.
<simplesect kind="par"><b>Description</b>:Open the stage for this request instance. A handler may service the request in the open routine and may call <a class="ref" href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be">httpError</a> if required. </simplesect><parameterlist kind="param"><parameteritem><parameternamelist><parametername>q</parametername></parameternamelist><parameterdescription>Queue instance object</parameterdescription></parameteritem></parameterlist><simplesect kind="par"><b>API</b> Stability:Evolving </simplesect>
</td>
<tr><td class="param">void(*</td><td><td>outgoing)(HttpQueue *q, HttpPacket *packet)</td><td>
Process outgoing data.
<simplesect kind="par"><b>Description</b>:Accept a packet as outgoing data. Not used by handlers as handler generate packets internally. Filters will use this entry point to accept outgoing packets. Filters can choose to immediately process or forward the packet, or they can queue the packet on their queue and schedule their outgoingService callback for batch processing of all queued packets. This is a common pattern where the outgoing routine is not used and packets are automatically queued and the outgoingService callback is used to process data. </simplesect><parameterlist kind="param"><parameteritem><parameternamelist><parametername>q</parametername></parameternamelist><parameterdescription>Queue instance object </parameterdescription></parameteritem><parameteritem><parameternamelist><parametername>packet</parametername></parameternamelist><parameterdescription>Packet of data</parameterdescription></parameteritem></parameterlist><simplesect kind="par"><b>API</b> Stability:Evolving </simplesect>
</td>
<tr><td class="param">void(*</td><td><td>outgoingService)(HttpQueue *q)</td><td>
Service the outgoing data queue.
<simplesect kind="par"><b>Description</b>:This callback should service packets on the queue and process or forward as appropriate. A service routine should check downstream queues by calling <a class="ref" href="#group___http_queue_1ga5bd57d28f2fbce408fc8232e4c8cc7b7">httpWillNextQueueAcceptPacket</a> before forwarding packets to ensure they do not overfow downstream queues. </simplesect><parameterlist kind="param"><parameteritem><parameternamelist><parametername>q</parametername></parameternamelist><parameterdescription>Queue instance object</parameterdescription></parameteritem></parameterlist><simplesect kind="par"><b>API</b> Stability:Evolving </simplesect>
</td>
<tr><td class="param">char *</td><td><td>path</td><td>
Backing module path (from LoadModule).
</td>
<tr><td class="param">void(*</td><td><td>ready)(HttpQueue *q)</td><td>
The request is now fully ready.
<simplesect kind="par"><b>Description</b>:This callback will be invoked when all incoming data has been received. The ready callback will not be called if the request already has an error. If a handler finishes processing the request, it should call <a class="ref" href="#group___http_tx_1ga49edf0602dd2143b518c247f9cee8720">httpFinalizeOutput</a> in the ready routine. </simplesect><parameterlist kind="param"><parameteritem><parameternamelist><parametername>q</parametername></parameternamelist><parameterdescription>Queue instance object</parameterdescription></parameteritem></parameterlist><simplesect kind="par"><b>API</b> Stability:Evolving </simplesect>
</td>
<tr><td class="param">void *</td><td><td>stageData</td><td>
Private stage data.
</td>
<tr><td class="param">void(*</td><td><td>start)(HttpQueue *q)</td><td>
Start the handler.
<simplesect kind="par"><b>Description</b>:The start callback is primarily responsible for starting the request processing. Depending on the request Content Type, the request will be started at different times. Form requests with a Content-Type of &quot;application/x-www-form-urlencoded&quot;, will be started after fully receiving all input data. Other requests will be started immediately after the request headers have been parsed and before receiving input data. This enables such requests to stream large quantities of input data without buffering. The handler start callback should test the HTTP method in conn-&gt;rx-&gt;method and only respond to supported HTTP methods. It should call httpError for unsupported methods. The start callback will not be called if the request already has an error. </simplesect><parameterlist kind="param"><parameteritem><parameternamelist><parametername>q</parametername></parameternamelist><parameterdescription>Queue instance object</parameterdescription></parameteritem></parameterlist><simplesect kind="par"><b>API</b> Stability:Evolving </simplesect>
</td>
<tr><td class="param">void(*</td><td><td>writable)(HttpQueue *q)</td><td>
The outgoing pipeline is writable and can accept more response data.
<simplesect kind="par"><b>Description</b>:This callback will be invoked after all incoming data has been receeived and whenever the outgoing pipeline can absorb more output data (writable). As such, it may be called multiple times and can be effectively used for non-blocking generation of a response. The writable callback will not be invoked if the request output has been finalized or if an error has occurred. </simplesect><parameterlist kind="param"><parameteritem><parameternamelist><parametername>q</parametername></parameternamelist><parameterdescription>Queue instance object</parameterdescription></parameteritem></parameterlist><simplesect kind="par"><b>API</b> Stability:Evolving </simplesect>
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_stage_1ga8971850225994ea96daf05429c001c7c"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_stage" class="ref">HttpStage</a> *
httpCloneStage
(<a href="#group___http" class="ref">Http</a> *http, <a href="#group___http_stage" class="ref">HttpStage</a> *stage)
</div>
<div class="apiDetail">
<p>Create a clone of an existing state.</p>
This is used when creating filters configured to match certain extensions
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http object returned from <a class="ref" href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f">httpCreate</a></td>
<tr><td class="param">stage</td><td>Stage object to clone.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A new stage object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_stage_1ga5a62ae78862a15a0ca8c192f7d5a048c" class="ref">httpCreateConnector</a>, <a href="#group___http_stage_1gab1e3174087a5e78598b66abe7ac5887e" class="ref">httpCreateFilter</a>, <a href="#group___http_stage_1ga238f5fb9f76203fdcb07fd6227ae383f" class="ref">httpCreateHandler</a>, <a href="#group___http_stage_1gad9a57a81fd836d1ec4322d60bf0d56c7" class="ref">httpCreateStage</a>, <a href="#group___http_stage_1ga635121f5f5fa104bb218796fd47178fe" class="ref">httpDefaultOutgoingServiceStage</a>, <a href="#group___http_rx_1gab3115e46e00ffbc29ec9c8c4a9f8fc61" class="ref">httpGetStageData</a>, <a href="#group___http_stage_1ga289f62101d0dbc4a88465af5b40e11eb" class="ref">httpHandleOptionsTrace</a>, <a href="#group___http_stage_1ga890b60bd78dd3099a51898b885cb26ea" class="ref">httpLookupStage</a>, <a href="#group___http_stage_1gafcc686a0a347d0ec14370c7eef99bcf0" class="ref">httpLookupStageData</a>, <a href="#group___http_route_1ga9ed9a3687b90670fb6e12697f579e744" class="ref">httpSetStageData</a></dd></dl>
</div>
</div>
<a name="group___http_stage_1ga5a62ae78862a15a0ca8c192f7d5a048c"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_stage" class="ref">HttpStage</a> *
httpCreateConnector
(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#group___mpr_module" class="ref">MprModule</a> *module)
</div>
<div class="apiDetail">
<p>Create a connector stage.</p>
<dl><dt><b>Description</b>:</dt><dd>Create a new connector. Connectors are the final stage for outgoing data. Their job is to transmit outgoing data to the client.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http object returned from <a class="ref" href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f">httpCreate</a></td>
<tr><td class="param">name</td><td>Name of connector stage.</td>
<tr><td class="param">module</td><td>Optional module object for loadable stages.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A new stage object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_stage_1ga8971850225994ea96daf05429c001c7c" class="ref">httpCloneStage</a>, <a href="#group___http_stage_1gab1e3174087a5e78598b66abe7ac5887e" class="ref">httpCreateFilter</a>, <a href="#group___http_stage_1ga238f5fb9f76203fdcb07fd6227ae383f" class="ref">httpCreateHandler</a>, <a href="#group___http_stage_1gad9a57a81fd836d1ec4322d60bf0d56c7" class="ref">httpCreateStage</a>, <a href="#group___http_stage_1ga635121f5f5fa104bb218796fd47178fe" class="ref">httpDefaultOutgoingServiceStage</a>, <a href="#group___http_rx_1gab3115e46e00ffbc29ec9c8c4a9f8fc61" class="ref">httpGetStageData</a>, <a href="#group___http_stage_1ga289f62101d0dbc4a88465af5b40e11eb" class="ref">httpHandleOptionsTrace</a>, <a href="#group___http_stage_1ga890b60bd78dd3099a51898b885cb26ea" class="ref">httpLookupStage</a>, <a href="#group___http_stage_1gafcc686a0a347d0ec14370c7eef99bcf0" class="ref">httpLookupStageData</a>, <a href="#group___http_route_1ga9ed9a3687b90670fb6e12697f579e744" class="ref">httpSetStageData</a></dd></dl>
</div>
</div>
<a name="group___http_stage_1gab1e3174087a5e78598b66abe7ac5887e"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_stage" class="ref">HttpStage</a> *
httpCreateFilter
(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#group___mpr_module" class="ref">MprModule</a> *module)
</div>
<div class="apiDetail">
<p>Create a filter stage.</p>
<dl><dt><b>Description</b>:</dt><dd>Create a new filter. Filters transform data generated by handlers and before connectors transmit to the client. Filters can apply transformations to incoming, outgoing or bi-directional data.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http object.</td>
<tr><td class="param">name</td><td>Name of connector stage.</td>
<tr><td class="param">module</td><td>Optional module object for loadable stages.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A new stage object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_stage_1ga8971850225994ea96daf05429c001c7c" class="ref">httpCloneStage</a>, <a href="#group___http_stage_1ga5a62ae78862a15a0ca8c192f7d5a048c" class="ref">httpCreateConnector</a>, <a href="#group___http_stage_1ga238f5fb9f76203fdcb07fd6227ae383f" class="ref">httpCreateHandler</a>, <a href="#group___http_stage_1gad9a57a81fd836d1ec4322d60bf0d56c7" class="ref">httpCreateStage</a>, <a href="#group___http_stage_1ga635121f5f5fa104bb218796fd47178fe" class="ref">httpDefaultOutgoingServiceStage</a>, <a href="#group___http_rx_1gab3115e46e00ffbc29ec9c8c4a9f8fc61" class="ref">httpGetStageData</a>, <a href="#group___http_stage_1ga289f62101d0dbc4a88465af5b40e11eb" class="ref">httpHandleOptionsTrace</a>, <a href="#group___http_stage_1ga890b60bd78dd3099a51898b885cb26ea" class="ref">httpLookupStage</a>, <a href="#group___http_stage_1gafcc686a0a347d0ec14370c7eef99bcf0" class="ref">httpLookupStageData</a>, <a href="#group___http_route_1ga9ed9a3687b90670fb6e12697f579e744" class="ref">httpSetStageData</a></dd></dl>
</div>
</div>
<a name="group___http_stage_1ga238f5fb9f76203fdcb07fd6227ae383f"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_stage" class="ref">HttpStage</a> *
httpCreateHandler
(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#group___mpr_module" class="ref">MprModule</a> *module)
</div>
<div class="apiDetail">
<p>Create a request handler stage.</p>
<dl><dt><b>Description</b>:</dt><dd>Create a new handler. Handlers generate outgoing data and are the final stage for incoming data. Their job is to process requests and send outgoing data downstream toward the client consumer. There is ever only one handler for a request.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http object.</td>
<tr><td class="param">name</td><td>Name of connector stage.</td>
<tr><td class="param">module</td><td>Optional module object for loadable stages.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A new stage object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_stage_1ga8971850225994ea96daf05429c001c7c" class="ref">httpCloneStage</a>, <a href="#group___http_stage_1ga5a62ae78862a15a0ca8c192f7d5a048c" class="ref">httpCreateConnector</a>, <a href="#group___http_stage_1gab1e3174087a5e78598b66abe7ac5887e" class="ref">httpCreateFilter</a>, <a href="#group___http_stage_1gad9a57a81fd836d1ec4322d60bf0d56c7" class="ref">httpCreateStage</a>, <a href="#group___http_stage_1ga635121f5f5fa104bb218796fd47178fe" class="ref">httpDefaultOutgoingServiceStage</a>, <a href="#group___http_rx_1gab3115e46e00ffbc29ec9c8c4a9f8fc61" class="ref">httpGetStageData</a>, <a href="#group___http_stage_1ga289f62101d0dbc4a88465af5b40e11eb" class="ref">httpHandleOptionsTrace</a>, <a href="#group___http_stage_1ga890b60bd78dd3099a51898b885cb26ea" class="ref">httpLookupStage</a>, <a href="#group___http_stage_1gafcc686a0a347d0ec14370c7eef99bcf0" class="ref">httpLookupStageData</a>, <a href="#group___http_route_1ga9ed9a3687b90670fb6e12697f579e744" class="ref">httpSetStageData</a></dd></dl>
</div>
</div>
<a name="group___http_stage_1gad9a57a81fd836d1ec4322d60bf0d56c7"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_stage" class="ref">HttpStage</a> *
httpCreateStage
(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, int flags, <a href="mprBare.html#group___mpr_module" class="ref">MprModule</a> *module)
</div>
<div class="apiDetail">
<p>Create a connector stage.</p>
<dl><dt><b>Description</b>:</dt><dd>Create a new stage.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http object returned from <a class="ref" href="#group___http_1ga26dea264af06335774c8abc9fbe7c44f">httpCreate</a></td>
<tr><td class="param">name</td><td>Name of connector stage.</td>
<tr><td class="param">flags</td><td>Stage flags.</td>
<tr><td class="param">module</td><td>Optional module object for loadable stages.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A new stage object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_stage_1ga8971850225994ea96daf05429c001c7c" class="ref">httpCloneStage</a>, <a href="#group___http_stage_1ga5a62ae78862a15a0ca8c192f7d5a048c" class="ref">httpCreateConnector</a>, <a href="#group___http_stage_1gab1e3174087a5e78598b66abe7ac5887e" class="ref">httpCreateFilter</a>, <a href="#group___http_stage_1ga238f5fb9f76203fdcb07fd6227ae383f" class="ref">httpCreateHandler</a>, <a href="#group___http_stage_1ga635121f5f5fa104bb218796fd47178fe" class="ref">httpDefaultOutgoingServiceStage</a>, <a href="#group___http_rx_1gab3115e46e00ffbc29ec9c8c4a9f8fc61" class="ref">httpGetStageData</a>, <a href="#group___http_stage_1ga289f62101d0dbc4a88465af5b40e11eb" class="ref">httpHandleOptionsTrace</a>, <a href="#group___http_stage_1ga890b60bd78dd3099a51898b885cb26ea" class="ref">httpLookupStage</a>, <a href="#group___http_stage_1gafcc686a0a347d0ec14370c7eef99bcf0" class="ref">httpLookupStageData</a>, <a href="#group___http_route_1ga9ed9a3687b90670fb6e12697f579e744" class="ref">httpSetStageData</a></dd></dl>
</div>
</div>
<a name="group___http_stage_1ga635121f5f5fa104bb218796fd47178fe"></a>
<div class="api">
<div class="prototype">
void
httpDefaultOutgoingServiceStage
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q)
</div>
<div class="apiDetail">
<p>Default outgoing data handling.</p>
<dl><dt><b>Description</b>:</dt><dd>This routine provides default handling of outgoing data for stages. It simply sends all packets downstream.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_stage_1ga8971850225994ea96daf05429c001c7c" class="ref">httpCloneStage</a>, <a href="#group___http_stage_1ga5a62ae78862a15a0ca8c192f7d5a048c" class="ref">httpCreateConnector</a>, <a href="#group___http_stage_1gab1e3174087a5e78598b66abe7ac5887e" class="ref">httpCreateFilter</a>, <a href="#group___http_stage_1ga238f5fb9f76203fdcb07fd6227ae383f" class="ref">httpCreateHandler</a>, <a href="#group___http_stage_1gad9a57a81fd836d1ec4322d60bf0d56c7" class="ref">httpCreateStage</a>, <a href="#group___http_rx_1gab3115e46e00ffbc29ec9c8c4a9f8fc61" class="ref">httpGetStageData</a>, <a href="#group___http_stage_1ga289f62101d0dbc4a88465af5b40e11eb" class="ref">httpHandleOptionsTrace</a>, <a href="#group___http_stage_1ga890b60bd78dd3099a51898b885cb26ea" class="ref">httpLookupStage</a>, <a href="#group___http_stage_1gafcc686a0a347d0ec14370c7eef99bcf0" class="ref">httpLookupStageData</a>, <a href="#group___http_route_1ga9ed9a3687b90670fb6e12697f579e744" class="ref">httpSetStageData</a></dd></dl>
</div>
</div>
<a name="group___http_stage_1ga289f62101d0dbc4a88465af5b40e11eb"></a>
<div class="api">
<div class="prototype">
void
httpHandleOptionsTrace
(struct HttpConn *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *methods)
</div>
<div class="apiDetail">
<p>Handle a Http Trace or Options method request.</p>
<dl><dt><b>Description</b>:</dt><dd>Convenience routine to respond to an OPTIONS or TRACE request.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">methods</td><td>Comma separated list of supported methods excluding OPTIONS and TRACE which are automatically added if the route supports these methods.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_stage_1ga8971850225994ea96daf05429c001c7c" class="ref">httpCloneStage</a>, <a href="#group___http_stage_1ga5a62ae78862a15a0ca8c192f7d5a048c" class="ref">httpCreateConnector</a>, <a href="#group___http_stage_1gab1e3174087a5e78598b66abe7ac5887e" class="ref">httpCreateFilter</a>, <a href="#group___http_stage_1ga238f5fb9f76203fdcb07fd6227ae383f" class="ref">httpCreateHandler</a>, <a href="#group___http_stage_1gad9a57a81fd836d1ec4322d60bf0d56c7" class="ref">httpCreateStage</a>, <a href="#group___http_stage_1ga635121f5f5fa104bb218796fd47178fe" class="ref">httpDefaultOutgoingServiceStage</a>, <a href="#group___http_rx_1gab3115e46e00ffbc29ec9c8c4a9f8fc61" class="ref">httpGetStageData</a>, <a href="#group___http_stage_1ga890b60bd78dd3099a51898b885cb26ea" class="ref">httpLookupStage</a>, <a href="#group___http_stage_1gafcc686a0a347d0ec14370c7eef99bcf0" class="ref">httpLookupStageData</a>, <a href="#group___http_route_1ga9ed9a3687b90670fb6e12697f579e744" class="ref">httpSetStageData</a></dd></dl>
</div>
</div>
<a name="group___http_stage_1ga890b60bd78dd3099a51898b885cb26ea"></a>
<div class="api">
<div class="prototype">
struct HttpStage *
HttpStage* httpLookupStage
(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
</div>
<div class="apiDetail">
<p>Lookup a stage by name.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http object.</td>
<tr><td class="param">name</td><td>Name of stage to locate.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Stage or NULL if not found.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_stage_1ga8971850225994ea96daf05429c001c7c" class="ref">httpCloneStage</a>, <a href="#group___http_stage_1ga5a62ae78862a15a0ca8c192f7d5a048c" class="ref">httpCreateConnector</a>, <a href="#group___http_stage_1gab1e3174087a5e78598b66abe7ac5887e" class="ref">httpCreateFilter</a>, <a href="#group___http_stage_1ga238f5fb9f76203fdcb07fd6227ae383f" class="ref">httpCreateHandler</a>, <a href="#group___http_stage_1gad9a57a81fd836d1ec4322d60bf0d56c7" class="ref">httpCreateStage</a>, <a href="#group___http_stage_1ga635121f5f5fa104bb218796fd47178fe" class="ref">httpDefaultOutgoingServiceStage</a>, <a href="#group___http_rx_1gab3115e46e00ffbc29ec9c8c4a9f8fc61" class="ref">httpGetStageData</a>, <a href="#group___http_stage_1ga289f62101d0dbc4a88465af5b40e11eb" class="ref">httpHandleOptionsTrace</a>, <a href="#group___http_stage_1gafcc686a0a347d0ec14370c7eef99bcf0" class="ref">httpLookupStageData</a>, <a href="#group___http_route_1ga9ed9a3687b90670fb6e12697f579e744" class="ref">httpSetStageData</a></dd></dl>
</div>
</div>
<a name="group___http_stage_1gafcc686a0a347d0ec14370c7eef99bcf0"></a>
<div class="api">
<div class="prototype">
void *
httpLookupStageData
(<a href="#group___http" class="ref">Http</a> *http, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
</div>
<div class="apiDetail">
<p>Lookup stage data.</p>
<dl><dt><b>Description</b>:</dt><dd>This looks up the stage by name and returns the private stage data.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">http</td><td>Http object.</td>
<tr><td class="param">name</td><td>Name of the stage concerned.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Reference to the stage data block.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_stage_1ga8971850225994ea96daf05429c001c7c" class="ref">httpCloneStage</a>, <a href="#group___http_stage_1ga5a62ae78862a15a0ca8c192f7d5a048c" class="ref">httpCreateConnector</a>, <a href="#group___http_stage_1gab1e3174087a5e78598b66abe7ac5887e" class="ref">httpCreateFilter</a>, <a href="#group___http_stage_1ga238f5fb9f76203fdcb07fd6227ae383f" class="ref">httpCreateHandler</a>, <a href="#group___http_stage_1gad9a57a81fd836d1ec4322d60bf0d56c7" class="ref">httpCreateStage</a>, <a href="#group___http_stage_1ga635121f5f5fa104bb218796fd47178fe" class="ref">httpDefaultOutgoingServiceStage</a>, <a href="#group___http_rx_1gab3115e46e00ffbc29ec9c8c4a9f8fc61" class="ref">httpGetStageData</a>, <a href="#group___http_stage_1ga289f62101d0dbc4a88465af5b40e11eb" class="ref">httpHandleOptionsTrace</a>, <a href="#group___http_stage_1ga890b60bd78dd3099a51898b885cb26ea" class="ref">httpLookupStage</a>, <a href="#group___http_route_1ga9ed9a3687b90670fb6e12697f579e744" class="ref">httpSetStageData</a></dd></dl>
</div>
</div>
<h1>HttpStats</h1>
<a name="group___http_stats"></a>
<div class="api">
<div class="prototype">HttpStats</div>
<div class="apiDetail">
<p>HttpStats.</p>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">int</td><td><td>activeClients</td><td>
Current active client IPs.
</td>
<tr><td class="param">int</td><td><td>activeConnections</td><td>
Current active connections.
</td>
<tr><td class="param">int</td><td><td>activeProcesses</td><td>
Current active processes.
</td>
<tr><td class="param">int</td><td><td>activeRequests</td><td>
Current active requests.
</td>
<tr><td class="param">int</td><td><td>activeSessions</td><td>
Current active sessions.
</td>
<tr><td class="param">int</td><td><td>activeVMs</td><td>
Current ejs VMs.
</td>
<tr><td class="param">uint64</td><td><td>heap</td><td>
Current application heap memory.
</td>
<tr><td class="param">uint64</td><td><td>heapFree</td><td>
Current heap memory available.
</td>
<tr><td class="param">uint64</td><td><td>heapUsed</td><td>
Current heap memory in use.
</td>
<tr><td class="param">uint64</td><td><td>mem</td><td>
Current application memory.
</td>
<tr><td class="param">uint64</td><td><td>memMax</td><td>
Memory maximum permitted.
</td>
<tr><td class="param">uint64</td><td><td>memRedline</td><td>
Memory redline limit.
</td>
<tr><td class="param">int</td><td><td>pendingRequests</td><td>
Pending requests waiting to be served.
</td>
<tr><td class="param">int</td><td><td>regions</td><td>
Current memory region count.
</td>
<tr><td class="param">uint64</td><td><td>totalConnections</td><td>
Total connections accepted.
</td>
<tr><td class="param">uint64</td><td><td>totalRequests</td><td>
Total requests served.
</td>
<tr><td class="param">uint64</td><td><td>totalSweeps</td><td>
Total GC sweeps.
</td>
<tr><td class="param">int</td><td><td>workersBusy</td><td>
Current busy worker threads.
</td>
<tr><td class="param">int</td><td><td>workersIdle</td><td>
Current idle worker threads.
</td>
<tr><td class="param">int</td><td><td>workersMax</td><td>
Maximum number of workers in the thread pool.
</td>
<tr><td class="param">int</td><td><td>workersYielded</td><td>
Number of busy workers that are yielded for GC.
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_stats_1ga346ba34e0ea1e88c6e9fb8c7be7afb55"></a>
<div class="api">
<div class="prototype">
void
httpGetStats
(<a href="#group___http_stats" class="ref">HttpStats</a> *sp)
</div>
<div class="apiDetail">
<p>Get the Http performance statistics.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">sp</td><td>Reference to a HttpStats structure.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
</dd></dl>
</div>
</div>
<a name="group___http_stats_1ga7895265873d5e93a5da00d2423ccb886"></a>
<div class="api">
<div class="prototype">
char *
httpStatsReport
(int flags)
</div>
<div class="apiDetail">
<p>Get an Http performance report.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">flags</td><td>reserved.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>String containing the report.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
</dd></dl>
</div>
</div>
<h1>HttpTrace</h1>
<a name="group___http_trace"></a>
<div class="api">
<div class="prototype">HttpTrace</div>
<div class="apiDetail">
<p>Trace management structure.</p>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">int</td><td><td>disable</td><td>
If tracing is disabled for this request.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>exclude</td><td>
Extensions to exclude from trace.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>include</td><td>
Extensions to include in trace.
</td>
<tr><td class="param">int</td><td><td>levels[HTTP_TRACE_MAX_ITEM]</td><td>
Level at which to trace this item.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>size</td><td>
Maximum size of content to trace.
</td>
</table></dd></dl>
</div>
</div>
<h1>HttpTx</h1>
<a name="group___http_tx"></a>
<div class="api">
<div class="prototype">HttpTx</div>
<div class="apiDetail">
<p>Http Tx.</p>
<dl><dt><b>Description</b>:</dt><dd>The tx object controls the transmission of data. This may be client requests or responses to client requests. Most of the APIs in the Response group still take a HttpConn object as their first parameter. This is to make the API easier to remember - APIs take a connection object rather than a rx or transmission object.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">char *</td><td><td>altBody</td><td>
Alternate transmission for errors.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>bytesWritten</td><td>
Bytes written including headers.
</td>
<tr><td class="param">HttpCache *</td><td><td>cache</td><td>
Cache control entry (only set if this request is being cached).
</td>
<tr><td class="param">MprBuf *</td><td><td>cacheBuffer</td><td>
Response caching buffer.
</td>
<tr><td class="param">ssize</td><td><td>cacheBufferLength</td><td>
Current size of the cache buffer data.
</td>
<tr><td class="param">cchar *</td><td><td>cachedContent</td><td>
Retrieved cached response to send.
</td>
<tr><td class="param">ssize</td><td><td>chunkSize</td><td>
Chunk size to use when using transfer encoding.
Zero for unchunked.
</td>
<tr><td class="param">struct HttpConn *</td><td><td>conn</td><td>
Current connection object.
</td>
<tr><td class="param">HttpStage *</td><td><td>connector</td><td>
Network connector to send / receive socket data.
</td>
<tr><td class="param">HttpRange *</td><td><td>currentRange</td><td>
Current range being fullfilled.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>entityLength</td><td>
Original content length before range subsetting.
</td>
<tr><td class="param">cchar *</td><td><td>errorDocument</td><td>
Error document to render.
</td>
<tr><td class="param">char *</td><td><td>etag</td><td>
Unique identifier tag.
</td>
<tr><td class="param">cchar *</td><td><td>ext</td><td>
Filename extension.
</td>
<tr><td class="param">MprFile *</td><td><td>file</td><td>
File to be served.
</td>
<tr><td class="param">MprPath</td><td><td>fileInfo</td><td>
File information if there is a real file to serve.
</td>
<tr><td class="param">char *</td><td><td>filename</td><td>
Name of a real file being served (typically pathInfo mapped).
</td>
<tr><td class="param">int</td><td><td>finalized</td><td>
Request response generated and handler processing is complete.
</td>
<tr><td class="param">int</td><td><td>finalizedConnector</td><td>
Connector has finished sending the response.
</td>
<tr><td class="param">int</td><td><td>finalizedOutput</td><td>
Handler or surrogate has finished writing output response.
</td>
<tr><td class="param">int</td><td><td>flags</td><td>
Response flags.
</td>
<tr><td class="param">HttpStage *</td><td><td>handler</td><td>
Final handler serving the request.
</td>
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>headers</td><td>
Transmission headers.
</td>
<tr><td class="param">ssize</td><td><td>headerSize</td><td>
Size of the header written.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>length</td><td>
Transmission content length.
</td>
<tr><td class="param">char *</td><td><td>method</td><td>
Client request method GET, HEAD, POST, DELETE, OPTIONS, PUT, TRACE.
</td>
<tr><td class="param">MprList *</td><td><td>outputPipeline</td><td>
Output processing.
</td>
<tr><td class="param">HttpRange *</td><td><td>outputRanges</td><td>
Data ranges for tx data.
</td>
<tr><td class="param">HttpUri *</td><td><td>parsedUri</td><td>
Client request uri.
</td>
<tr><td class="param">int</td><td><td>pendingFinalize</td><td>
Call httpFinalize again once the Tx pipeline is created.
</td>
<tr><td class="param">HttpQueue *</td><td><td>queue[2]</td><td>
Pipeline queue heads.
</td>
<tr><td class="param">char *</td><td><td>rangeBoundary</td><td>
Inter-range boundary.
</td>
<tr><td class="param"><a class="ref" href="#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" external="mpr.dtags">MprOff</a></td><td><td>rangePos</td><td>
Current range I/O position in response data.
</td>
<tr><td class="param">int</td><td><td>responded</td><td>
The request has started to respond.
Some output has been initiated.
</td>
<tr><td class="param">int</td><td><td>started</td><td>
Handler has started.
</td>
<tr><td class="param">int</td><td><td>status</td><td>
HTTP response status.
</td>
<tr><td class="param">int</td><td><td>traceMethods</td><td>
Handler methods supported.
</td>
<tr><td class="param">char *</td><td><td>webSockKey</td><td>
Sec-WebSocket-Key header.
</td>
<tr><td class="param">int</td><td><td>writeBlocked</td><td>
Transmission writing is blocked.
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_tx_1gad5dca875772159f2b761107af687f949"></a>
<div class="api">
<div class="prototype">
void
httpAddHeader
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
</div>
<div class="apiDetail">
<p>Add a header to the transmission using a format string.</p>
<dl><dt><b>Description</b>:</dt><dd>Add a header if it does not already exits.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">key</td><td>Http response header key.</td>
<tr><td class="param">fmt</td><td>Printf style formatted string to use as the header key value.</td>
<tr><td class="param">...</td><td>Arguments for fmt.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if successful, otherwise a negative MPR error code. Returns MPR_ERR_ALREADY_EXISTS if the header already exists.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef"></a>
<div class="api">
<div class="prototype">
void
httpAddHeaderString
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
</div>
<div class="apiDetail">
<p>Add a header to the transmission.</p>
<dl><dt><b>Description</b>:</dt><dd>Add a header if it does not already exits.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">key</td><td>Http response header key.</td>
<tr><td class="param">value</td><td>Value to set for the header.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code. Returns MPR_ERR_ALREADY_EXISTS if the header already exists.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c"></a>
<div class="api">
<div class="prototype">
void
httpAppendHeader
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
</div>
<div class="apiDetail">
<p>Append a transmission header.</p>
<dl><dt><b>Description</b>:</dt><dd>Set the header if it does not already exists. Append with a &quot;, &quot; separator if the header already exists.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">key</td><td>Http response header key.</td>
<tr><td class="param">fmt</td><td>Printf style formatted string to use as the header key value.</td>
<tr><td class="param">...</td><td>Arguments for fmt.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203"></a>
<div class="api">
<div class="prototype">
void
httpAppendHeaderString
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
</div>
<div class="apiDetail">
<p>Append a transmission header string.</p>
<dl><dt><b>Description</b>:</dt><dd>Set the header if it does not already exists. Append with a &quot;, &quot; separator if the header already exists.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">key</td><td>Http response header key.</td>
<tr><td class="param">value</td><td>Value to set for the header.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1gadba30be09e4243956f33008bac4ec148"></a>
<div class="api">
<div class="prototype">
int
httpConnect
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *method, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri, struct MprSsl *ssl)
</div>
<div class="apiDetail">
<p>Connect to a server and issue Http client request.</p>
<dl><dt><b>Description</b>:</dt><dd>Start a new Http request on the http object and return. This routine does not block. After starting the request, you can use <a class="ref" href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8">httpWait</a> to wait for the request to achieve a certain state or to complete.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">method</td><td>Http method to use. Valid methods include: &quot;GET&quot;, &quot;POST&quot;, &quot;PUT&quot;, &quot;DELETE&quot;, &quot;OPTIONS&quot; and &quot;TRACE&quot;.</td>
<tr><td class="param">uri</td><td>URI to fetch.</td>
<tr><td class="param">ssl</td><td>SSL configuration to use if a secure connection.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if the request was successfully sent to the server. Otherwise a negative MPR error code is returned.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga289ebcb743528efa13b8c247917b6541"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_tx" class="ref">HttpTx</a> *
httpCreateTx
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#struct_mpr_hash" class="ref">MprHash</a> *headers)
</div>
<div class="apiDetail">
<p>Create the tx object.</p>
This is used internally by the http library
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">headers</td><td>Optional headers to use for the transmission.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A tx object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c"></a>
<div class="api">
<div class="prototype">
void
httpDestroyTx
(<a href="#group___http_tx" class="ref">HttpTx</a> *tx)
</div>
<div class="apiDetail">
<p>Destroy the tx object.</p>
<dl><dt><b>Description</b>:</dt><dd>This is called when the garbage collector frees a connection. It should not be called manually.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">tx</td><td>Tx object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70"></a>
<div class="api">
<div class="prototype">
void
httpFinalize
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Indicate the request is finalized.</p>
<dl><dt><b>Description</b>:</dt><dd>Calling this routine indicates that the handler has fully finished processing the request including generating a full response and any other required processing. This call will invoke <a class="ref" href="#group___http_tx_1ga49edf0602dd2143b518c247f9cee8720">httpFinalizeOutput</a> and then set the request finalized flag. If the request is already finalized, this call does nothing. A handler MUST call httpFinalize when it has completed processing a request.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga49edf0602dd2143b518c247f9cee8720"></a>
<div class="api">
<div class="prototype">
void
httpFinalizeOutput
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Finalize transmission of the http response.</p>
<dl><dt><b>Description</b>:</dt><dd>This routine will force the transmission of buffered content to the peer. It should be called by clients and Handlers to signify the end of the body content being sent with the request or response body. HttpFinalize will set the finalizedOutput flag and write a final chunk trailer if using chunked transfers. If the request output is already finalized, this call does nothing. Note that after finalization, incoming content may continue to be processed. i.e. httpFinalize can be called before all incoming data has been received.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d"></a>
<div class="api">
<div class="prototype">
void
httpFlush
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Flush tx data.</p>
This writes any buffered data
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd"></a>
<div class="api">
<div class="prototype">
void
httpFollowRedirects
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> follow)
</div>
<div class="apiDetail">
<p>Follow redirctions.</p>
<dl><dt><b>Description</b>:</dt><dd>Enabling follow redirects enables the Http service to transparently follow 301 and 302 redirections and fetch the redirected URI.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">follow</td><td>Set to true to enable transparent redirections.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7"></a>
<div class="api">
<div class="prototype">
void
httpFormatError
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int status, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
</div>
<div class="apiDetail">
<p>Format an error transmission.</p>
<dl><dt><b>Description</b>:</dt><dd>Format an error message to use instead of data generated by the request processing pipeline. This is typically used to send errors and redirections. The message is also sent to the error log.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">status</td><td>Http response status code.</td>
<tr><td class="param">fmt</td><td>Printf style formatted string. This string may contain HTML tags and is not HTML encoded before sending to the user. NOTE: Do not send user input back to the client using this method. Otherwise you open large security holes.</td>
<tr><td class="param">...</td><td>Arguments for fmt.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A count of the number of bytes in the transmission body.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpFormatResponse
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
</div>
<div class="apiDetail">
<p>Format an alternate response.</p>
<dl><dt><b>Description</b>:</dt><dd>Format a response to use instead of data generated by the request processing pipeline. This is used for alternate responses that are not errors.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">fmt</td><td>Printf style formatted string. This string may contain HTML tags and is not HTML encoded before sending to the user. NOTE: Do not send user input back to the client using this method. Otherwise you open large security holes.</td>
<tr><td class="param">...</td><td>Arguments for fmt.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A count of the number of bytes in the transmission body.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpFormatResponseBody
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *title, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
</div>
<div class="apiDetail">
<p>Format a response body.</p>
<dl><dt><b>Description</b>:</dt><dd>Format a transmission body to use instead of data generated by the request processing pipeline. The body will be created in HTML or in plain text depending on the value of the request Accept header. This call is used for alternate responses that are not errors.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">title</td><td>Title string to format into the HTML transmission body.</td>
<tr><td class="param">fmt</td><td>Printf style formatted string. This string may contain HTML tags and is not HTML encoded before sending to the user. NOTE: Do not send user input back to the client using this method. Otherwise you open large security holes.</td>
<tr><td class="param">...</td><td>Arguments for fmt.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A count of the number of bytes in the transmission body.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpFormatResponsev
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, va_list args)
</div>
<div class="apiDetail">
<p>Format an alternate response.</p>
<dl><dt><b>Description</b>:</dt><dd>Format a response to use instead of data generated by the request processing pipeline. This is similar to <a class="ref" href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8">httpFormatResponse</a></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">fmt</td><td>Printf style formatted string. This string may contain HTML tags and is not HTML encoded before sending to the user. NOTE: Do not send user input back to the client using this method. Otherwise you open large security holes.</td>
<tr><td class="param">args</td><td>Varargs style list of arguments.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A count of the number of bytes in the transmission body.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8"></a>
<div class="api">
<div class="prototype">
int
httpIsChunked
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Return whether transfer chunked encoding will be used on this request.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if chunk encoding will be used.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1gaddcc759faff073cc695a204e29b2642e"></a>
<div class="api">
<div class="prototype">
int
httpIsFinalized
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Test if request has been finalized.</p>
<dl><dt><b>Description</b>:</dt><dd>This call tests if <a class="ref" href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70">httpFinalize</a> has been called.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2"></a>
<div class="api">
<div class="prototype">
int
httpIsOutputFinalized
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Test if request response has been fully generated.</p>
<dl><dt><b>Description</b>:</dt><dd>This call tests if all transmit data has been generated and finalized. Handlers call <a class="ref" href="#group___http_tx_1ga49edf0602dd2143b518c247f9cee8720">httpFinalizeOutput</a> to signify the end of transmit data.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga64b9dc878c9207fedc57c32791384144"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpNeedRetry
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, char **url)
</div>
<div class="apiDetail">
<p>Determine if the transmission needs a transparent retry to implement authentication or redirection.</p>
This is used by client requests. If authentication is required, a request must first be tried once to receive some authentication key information that must be resubmitted to gain access
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">url</td><td>Reference to a string to receive a redirection URL. Set to NULL if not redirection is required.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the request needs to be retried.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5"></a>
<div class="api">
<div class="prototype">
void
httpRedirect
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int status, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri)
</div>
<div class="apiDetail">
<p>Redirect the client.</p>
<dl><dt><b>Description</b>:</dt><dd>Redirect the client to a new uri.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">status</td><td>Http status code to send with the response.</td>
<tr><td class="param">uri</td><td>New uri for the client.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a"></a>
<div class="api">
<div class="prototype">
int
httpRemoveHeader
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)
</div>
<div class="apiDetail">
<p>Remove a header from the transmission.</p>
<dl><dt><b>Description</b>:</dt><dd>Remove a header if present.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">key</td><td>Http response header key.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d"></a>
<div class="api">
<div class="prototype">
void
httpSetContentLength
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a> length)
</div>
<div class="apiDetail">
<p>Define a content length header in the transmission.</p>
This will define a &quot;Content-Length: NNN&quot; request header and set Tx.length
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">length</td><td>Numeric value for the content length header.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f"></a>
<div class="api">
<div class="prototype">
void
httpSetContentType
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *mimeType)
</div>
<div class="apiDetail">
<p>Set the transmission (response) content mime type.</p>
<dl><dt><b>Description</b>:</dt><dd>Set the mime type Http header in the transmission.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">mimeType</td><td>Mime type string.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147"></a>
<div class="api">
<div class="prototype">
void
httpSetCookie
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *domain, <a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> lifespan, int flags)
</div>
<div class="apiDetail">
<p>Set a transmission cookie.</p>
<dl><dt><b>Description</b>:</dt><dd>Define a cookie to send in the transmission Http header.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">name</td><td>Cookie name.</td>
<tr><td class="param">value</td><td>Cookie value.</td>
<tr><td class="param">path</td><td>URI path to which the cookie applies.</td>
<tr><td class="param">domain</td><td>Domain in which the cookie applies. Must have 2-3 dots.</td>
<tr><td class="param">lifespan</td><td>Duration for the cookie to persist in msec.</td>
<tr><td class="param">flags</td><td>Cookie options mask. The following options are supported: <ul><li>HTTP_COOKIE_SECURE - Set the &apos;Secure&apos; attribute on the cookie. </li><li>HTTP_COOKIE_HTTP - Set the &apos;HttpOnly&apos; attribute on the cookie. See RFC 6265 for details about the &apos;Secure&apos; and &apos;HttpOnly&apos; cookie attributes.</li></ul></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd"></a>
<div class="api">
<div class="prototype">
void
httpSetEntityLength
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a> len)
</div>
<div class="apiDetail">
<p>Define the length of the transmission content.</p>
When static content is used for the transmission body, defining the entity length permits the request pipeline to know when all the data has been sent
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">len</td><td>Transmission body length in bytes.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1gadc3a395967972fb839f0639f8cd66c61"></a>
<div class="api">
<div class="prototype">
void
httpSetHeader
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
</div>
<div class="apiDetail">
<p>Set a transmission header.</p>
<dl><dt><b>Description</b>:</dt><dd>Set a Http header to send with the request. If the header already exists, it its value is overwritten.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">key</td><td>Http response header key.</td>
<tr><td class="param">fmt</td><td>Printf style formatted string to use as the header key value.</td>
<tr><td class="param">...</td><td>Arguments for fmt.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06"></a>
<div class="api">
<div class="prototype">
void
httpSetHeaderString
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
</div>
<div class="apiDetail">
<p>Set a simple key/value transmission header.</p>
<dl><dt><b>Description</b>:</dt><dd>Set a Http header to send with the request. If the header already exists, it its value is overwritten.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">key</td><td>Http response header key.</td>
<tr><td class="param">value</td><td>String value for the key.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e"></a>
<div class="api">
<div class="prototype">
void
httpSetResponded
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Set the responded flag for the request.</p>
<dl><dt><b>Description</b>:</dt><dd>This call sets the requests responded status. Once status has been defined, headers generated or some output has been generated, the request is regarded as having &quot;responded&quot; in-part to the client.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee"></a>
<div class="api">
<div class="prototype">
void
httpSetStatus
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int status)
</div>
<div class="apiDetail">
<p>Set a Http response status.</p>
<dl><dt><b>Description</b>:</dt><dd>Set the Http response status for the request. This defaults to 200 (OK).</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">status</td><td>Http status code.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb"></a>
<div class="api">
<div class="prototype">
void
httpSocketBlocked
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Indicate that the transmission socket is blocked.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>Http connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga41b659331b27770caefc4a2920f0aad8"></a>
<div class="api">
<div class="prototype">
int
httpWait
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int state, <a href="mprBare.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> timeout)
</div>
<div class="apiDetail">
<p>Wait for the connection to achieve the requested state.</p>
<dl><dt><b>Description</b>:</dt><dd>This call blocks until the connection reaches the desired state. It creates a wait handler and services any events while waiting. This is useful for blocking client requests.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">state</td><td>HTTP_STATE_XXX to wait for.</td>
<tr><td class="param">timeout</td><td>Timeout in milliseconds to wait. Set to -1 to use the default inactivity timeout. Set to zero to wait for ever.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if successful. Otherwise return a negative MPR error code. Specific returns include: MPR_ERR_TIMEOUT and MPR_ERR_BAD_STATE.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be" class="ref">httpWriteHeaders</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<a name="group___http_tx_1ga20eb87622c81a8f3130c1aa50f8742be"></a>
<div class="api">
<div class="prototype">
void
httpWriteHeaders
(<a href="#group___http_queue" class="ref">HttpQueue</a> *q, <a href="#group___http_packet" class="ref">HttpPacket</a> *packet)
</div>
<div class="apiDetail">
<p>Write the transmission headers into the given packet.</p>
<dl><dt><b>Description</b>:</dt><dd>Write the Http transmission headers into the given packet. This should only be called by connectors just prior to sending output to the client. It should be delayed as long as possible if the content length is not yet known to give the pipeline a chance to determine the transmission length. This way, a non-chunked transmission can be sent with a content-length header. This is the fastest HTTP transmission.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue owning the packet.</td>
<tr><td class="param">packet</td><td>Packet into which to place the headers.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_tx_1gad5dca875772159f2b761107af687f949" class="ref">httpAddHeader</a>, <a href="#group___http_tx_1ga06c3aabb158f60fb557c57ba5925d0ef" class="ref">httpAddHeaderString</a>, <a href="#group___http_tx_1ga0c2d9ecdf26061816f4875cd4065255c" class="ref">httpAppendHeader</a>, <a href="#group___http_tx_1ga92bfaabfacf0c6462e1ce2b414618203" class="ref">httpAppendHeaderString</a>, <a href="#group___http_tx_1gadba30be09e4243956f33008bac4ec148" class="ref">httpConnect</a>, <a href="#group___http_tx_1ga289ebcb743528efa13b8c247917b6541" class="ref">httpCreateTx</a>, <a href="#group___http_tx_1ga351f2b5e5ee7b801d1dea081652a914c" class="ref">httpDestroyTx</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" class="ref">httpFinalize</a>, <a href="#group___http_tx_1ga23c2dd9ef6d1b76a146bb93731fa7b7d" class="ref">httpFlush</a>, <a href="#group___http_tx_1ga425dd50ea1e631687c47f93e9bcf69dd" class="ref">httpFollowRedirects</a>, <a href="#group___http_tx_1gadd185b67da26c5ffdc76a755b89fe0d7" class="ref">httpFormatError</a>, <a href="#group___http_tx_1ga995a6fe8623518240e9e371ecf1173a8" class="ref">httpFormatResponse</a>, <a href="#group___http_tx_1ga2b15b9734780f796c9bcb9815984a52f" class="ref">httpFormatResponseBody</a>, <a href="#group___http_tx_1ga4b88ecb6665f67efeba03e6a395fa3a7" class="ref">httpFormatResponsev</a>, <a href="#group___http_tx_1ga37ed60f67d995067657abc8d7b26d2a8" class="ref">httpIsChunked</a>, <a href="#group___http_tx_1gace8d824cbe4a9f11448faea3b5d890a2" class="ref">httpIsOutputFinalized</a>, <a href="#group___http_tx_1ga64b9dc878c9207fedc57c32791384144" class="ref">httpNeedRetry</a>, <a href="#group___http_tx_1ga616290c9e8fe95419d3a31f6fbb870b5" class="ref">httpRedirect</a>, <a href="#group___http_tx_1ga38e1fcae578fdda33c7cf2f697ef732a" class="ref">httpRemoveHeader</a>, <a href="#group___http_tx_1ga6ddf505606e2c7e5341cb383e843267d" class="ref">httpSetContentLength</a>, <a href="#group___http_tx_1ga469181e95b6a0b276d2d28d63ca46a4f" class="ref">httpSetContentType</a>, <a href="#group___http_tx_1ga90ec75fb3e35ce351e132d0e933e0147" class="ref">httpSetCookie</a>, <a href="#group___http_tx_1gaed30459991e9ceb3e3406d88f909eedd" class="ref">httpSetEntityLength</a>, <a href="#group___http_tx_1gadc3a395967972fb839f0639f8cd66c61" class="ref">httpSetHeader</a>, <a href="#group___http_tx_1gaa1869e4617b44b032f64c2227d0c3f06" class="ref">httpSetHeaderString</a>, <a href="#group___http_tx_1ga41733f7a4cee8677b0ef213484309d8e" class="ref">httpSetResponded</a>, <a href="#group___http_tx_1gab965a17de1c0a823eec176bdf95b2bee" class="ref">httpSetStatus</a>, <a href="#group___http_tx_1ga7440761f7e29c5b5bf026bd83da0f2fb" class="ref">httpSocketBlocked</a>, <a href="#group___http_tx_1ga41b659331b27770caefc4a2920f0aad8" class="ref">httpWait</a>, <a href="#group___http_conn_1ga952ec74db373dc7994cfa238905f5244" class="ref">httpWriteUploadData</a></dd></dl>
</div>
</div>
<h1>HttpUploadFile</h1>
<a name="group___http_upload_file"></a>
<div class="api">
<div class="prototype">HttpUploadFile</div>
<div class="apiDetail">
<p>Upload File.</p>
<dl><dt><b>Description</b>:</dt><dd>Each uploaded file has an HttpUploadedFile entry. This is managed by the upload handler.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_upload_file_1gae80cebe62ea47eaf3e45d9a09c14bec4" class="ref">httpAddUploadFile</a>, <a href="#group___http_upload_file_1gaf0783c034eabeefdde3e194e7f773711" class="ref">httpRemoveAllUploadedFiles</a>, <a href="#group___http_upload_file_1ga4bb0929fd70a3247ea1f0d13a57cfc19" class="ref">httpRemoveUploadFile</a></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">cchar *</td><td><td>clientFilename</td><td>
Client side name of the file.
</td>
<tr><td class="param">cchar *</td><td><td>contentType</td><td>
Content type.
</td>
<tr><td class="param">cchar *</td><td><td>filename</td><td>
Local (temp) name of the file.
</td>
<tr><td class="param">ssize</td><td><td>size</td><td>
Uploaded file size.
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_upload_file_1gae80cebe62ea47eaf3e45d9a09c14bec4"></a>
<div class="api">
<div class="prototype">
void
httpAddUploadFile
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *id, <a href="#group___http_upload_file" class="ref">HttpUploadFile</a> *file)
</div>
<div class="apiDetail">
<p>Add an Uploaded file.</p>
<dl><dt><b>Description</b>:</dt><dd>Add an uploaded file to the Rx.files collection.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">id</td><td>Unique identifier for the file.</td>
<tr><td class="param">file</td><td>Instance of HttpUploadFile.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_upload_file_1gaf0783c034eabeefdde3e194e7f773711" class="ref">httpRemoveAllUploadedFiles</a>, <a href="#group___http_upload_file_1ga4bb0929fd70a3247ea1f0d13a57cfc19" class="ref">httpRemoveUploadFile</a></dd></dl>
</div>
</div>
<a name="group___http_upload_file_1gaf0783c034eabeefdde3e194e7f773711"></a>
<div class="api">
<div class="prototype">
void
httpRemoveAllUploadedFiles
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Remove all uploaded files.</p>
<dl><dt><b>Description</b>:</dt><dd>Remove all uploaded files from the temporary file store.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_upload_file_1gae80cebe62ea47eaf3e45d9a09c14bec4" class="ref">httpAddUploadFile</a>, <a href="#group___http_upload_file_1ga4bb0929fd70a3247ea1f0d13a57cfc19" class="ref">httpRemoveUploadFile</a></dd></dl>
</div>
</div>
<a name="group___http_upload_file_1ga4bb0929fd70a3247ea1f0d13a57cfc19"></a>
<div class="api">
<div class="prototype">
void
httpRemoveUploadFile
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *id)
</div>
<div class="apiDetail">
<p>Remove an uploaded file.</p>
<dl><dt><b>Description</b>:</dt><dd>Remove an uploaded file from the temporary file store.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">id</td><td>Identifier used with <a class="ref" href="#group___http_upload_file_1gae80cebe62ea47eaf3e45d9a09c14bec4">httpAddUploadFile</a> for the file.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_upload_file_1gae80cebe62ea47eaf3e45d9a09c14bec4" class="ref">httpAddUploadFile</a>, <a href="#group___http_upload_file_1gaf0783c034eabeefdde3e194e7f773711" class="ref">httpRemoveAllUploadedFiles</a></dd></dl>
</div>
</div>
<h1>HttpUri</h1>
<a name="group___http_uri"></a>
<div class="api">
<div class="prototype">HttpUri</div>
<div class="apiDetail">
<p>URI management.</p>
<dl><dt><b>Description</b>:</dt><dd>The HTTP provides routines for formatting and parsing URIs. Routines are also provided to escape dangerous characters for URIs as well as HTML content and shell commands.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_uri_1gadd399e69d65d719663f7f9b51933c521" class="ref">httpCloneUri</a>, <a href="#group___http_uri_1ga87cace641a89a7bc7675e650d9e17640" class="ref">httpCompleteUri</a>, <a href="#group___http_uri_1ga3def4a0e93965e1fac2c38e6e5272081" class="ref">httpCreateUri</a>, <a href="#group___http_uri_1gadcc4702f652977af0efb6abceb17566b" class="ref">httpCreateUriFromParts</a>, <a href="#group___http_uri_1ga1c87f3e7e694435939d05e5a112e56fd" class="ref">httpFormatUri</a>, <a href="#group___http_uri_1ga8932b843125d3ba77523ee407f71089f" class="ref">httpGetRelativeUri</a>, <a href="#group___http_uri_1ga7336eda33f8949dc4f552cc5e4ab606c" class="ref">httpJoinUri</a>, <a href="#group___http_uri_1gaa591d6219b0eaa3d61a83770dd604fce" class="ref">httpJoinUriPath</a>, <a href="#group___http_uri_1gaf7793eaed546ea5d187691db728f1703" class="ref">httpLookupMimeType</a>, <a href="#group___http_uri_1ga76afee77d12a6c52896af0ea658c301d" class="ref">httpMakeUriLocal</a>, <a href="#group___http_uri_1ga662c0fad256c2517e276758efb1bb04d" class="ref">httpNormalizeUriPath</a>, <a href="#group___http_uri_1ga53a807f2a2750df3f88d4f4b2ac89fa2" class="ref">httpResolveUri</a>, <a href="#group___http_uri_1ga9ea785faccf155c6bd3b2650d5245d11" class="ref">httpUriToString</a></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">char *</td><td><td>ext</td><td>
Document extension.
</td>
<tr><td class="param">char *</td><td><td>host</td><td>
Host name.
</td>
<tr><td class="param">char *</td><td><td>path</td><td>
Uri path (without scheme, host, query or fragements).
</td>
<tr><td class="param">int</td><td><td>port</td><td>
Port number.
</td>
<tr><td class="param">char *</td><td><td>query</td><td>
Query string.
</td>
<tr><td class="param">char *</td><td><td>reference</td><td>
Reference fragment within the specified resource.
</td>
<tr><td class="param">char *</td><td><td>scheme</td><td>
URI scheme (http|https|...).
</td>
<tr><td class="param">int</td><td><td>secure</td><td>
Using https.
</td>
<tr><td class="param">char *</td><td><td>uri</td><td>
Original URI (not decoded).
</td>
<tr><td class="param">int</td><td><td>webSockets</td><td>
Using web sockets.
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_uri_1gadd399e69d65d719663f7f9b51933c521"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_uri" class="ref">HttpUri</a> *
httpCloneUri
(<a href="#group___http_uri" class="ref">HttpUri</a> *base, int flags)
</div>
<div class="apiDetail">
<p>Clone a URI.</p>
<dl><dt><b>Description</b>:</dt><dd>This call copies the base URI and optionally completes missing fields in the URI.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">base</td><td>Base URI to copy.</td>
<tr><td class="param">flags</td><td>Set to HTTP_COMPLETE_URI to add missing components. ie. Add scheme, host and port if not supplied.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A new URI object.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_uri_1ga87cace641a89a7bc7675e650d9e17640" class="ref">httpCompleteUri</a>, <a href="#group___http_uri_1ga3def4a0e93965e1fac2c38e6e5272081" class="ref">httpCreateUri</a>, <a href="#group___http_uri_1gadcc4702f652977af0efb6abceb17566b" class="ref">httpCreateUriFromParts</a>, <a href="#group___http_uri_1ga1c87f3e7e694435939d05e5a112e56fd" class="ref">httpFormatUri</a>, <a href="#group___http_uri_1ga8932b843125d3ba77523ee407f71089f" class="ref">httpGetRelativeUri</a>, <a href="#group___http_uri_1ga7336eda33f8949dc4f552cc5e4ab606c" class="ref">httpJoinUri</a>, <a href="#group___http_uri_1gaa591d6219b0eaa3d61a83770dd604fce" class="ref">httpJoinUriPath</a>, <a href="#group___http_uri_1gaf7793eaed546ea5d187691db728f1703" class="ref">httpLookupMimeType</a>, <a href="#group___http_uri_1ga76afee77d12a6c52896af0ea658c301d" class="ref">httpMakeUriLocal</a>, <a href="#group___http_uri_1ga662c0fad256c2517e276758efb1bb04d" class="ref">httpNormalizeUriPath</a>, <a href="#group___http_uri_1ga53a807f2a2750df3f88d4f4b2ac89fa2" class="ref">httpResolveUri</a>, <a href="#group___http_uri_1ga9ea785faccf155c6bd3b2650d5245d11" class="ref">httpUriToString</a></dd></dl>
</div>
</div>
<a name="group___http_uri_1ga87cace641a89a7bc7675e650d9e17640"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_uri" class="ref">HttpUri</a> *
httpCompleteUri
(<a href="#group___http_uri" class="ref">HttpUri</a> *uri, <a href="#group___http_uri" class="ref">HttpUri</a> *other)
</div>
<div class="apiDetail">
<p>Complete the given URI.</p>
<dl><dt><b>Description</b>:</dt><dd>Complete the URI supplying missing URI components from the other URI. This modifies the supplied URI and does not allocate or create a new URI.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">uri</td><td>URI to complete.</td>
<tr><td class="param">other</td><td>Other URI to supply the missing components.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The supplied URI.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_uri_1gadd399e69d65d719663f7f9b51933c521" class="ref">httpCloneUri</a>, <a href="#group___http_uri_1ga3def4a0e93965e1fac2c38e6e5272081" class="ref">httpCreateUri</a>, <a href="#group___http_uri_1gadcc4702f652977af0efb6abceb17566b" class="ref">httpCreateUriFromParts</a>, <a href="#group___http_uri_1ga1c87f3e7e694435939d05e5a112e56fd" class="ref">httpFormatUri</a>, <a href="#group___http_uri_1ga8932b843125d3ba77523ee407f71089f" class="ref">httpGetRelativeUri</a>, <a href="#group___http_uri_1ga7336eda33f8949dc4f552cc5e4ab606c" class="ref">httpJoinUri</a>, <a href="#group___http_uri_1gaa591d6219b0eaa3d61a83770dd604fce" class="ref">httpJoinUriPath</a>, <a href="#group___http_uri_1gaf7793eaed546ea5d187691db728f1703" class="ref">httpLookupMimeType</a>, <a href="#group___http_uri_1ga76afee77d12a6c52896af0ea658c301d" class="ref">httpMakeUriLocal</a>, <a href="#group___http_uri_1ga662c0fad256c2517e276758efb1bb04d" class="ref">httpNormalizeUriPath</a>, <a href="#group___http_uri_1ga53a807f2a2750df3f88d4f4b2ac89fa2" class="ref">httpResolveUri</a>, <a href="#group___http_uri_1ga9ea785faccf155c6bd3b2650d5245d11" class="ref">httpUriToString</a></dd></dl>
</div>
</div>
<a name="group___http_uri_1ga3def4a0e93965e1fac2c38e6e5272081"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_uri" class="ref">HttpUri</a> *
httpCreateUri
(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri, int flags)
</div>
<div class="apiDetail">
<p>Create and initialize a URI.</p>
<dl><dt><b>Description</b>:</dt><dd>Parse a uri and return a tokenized HttpUri structure.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">uri</td><td>Uri string to parse.</td>
<tr><td class="param">flags</td><td>Set to HTTP_COMPLETE_URI to add missing components. ie. Add scheme, host and port if not supplied.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A newly allocated HttpUri structure.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_uri_1gadd399e69d65d719663f7f9b51933c521" class="ref">httpCloneUri</a>, <a href="#group___http_uri_1ga87cace641a89a7bc7675e650d9e17640" class="ref">httpCompleteUri</a>, <a href="#group___http_uri_1gadcc4702f652977af0efb6abceb17566b" class="ref">httpCreateUriFromParts</a>, <a href="#group___http_uri_1ga1c87f3e7e694435939d05e5a112e56fd" class="ref">httpFormatUri</a>, <a href="#group___http_uri_1ga8932b843125d3ba77523ee407f71089f" class="ref">httpGetRelativeUri</a>, <a href="#group___http_uri_1ga7336eda33f8949dc4f552cc5e4ab606c" class="ref">httpJoinUri</a>, <a href="#group___http_uri_1gaa591d6219b0eaa3d61a83770dd604fce" class="ref">httpJoinUriPath</a>, <a href="#group___http_uri_1gaf7793eaed546ea5d187691db728f1703" class="ref">httpLookupMimeType</a>, <a href="#group___http_uri_1ga76afee77d12a6c52896af0ea658c301d" class="ref">httpMakeUriLocal</a>, <a href="#group___http_uri_1ga662c0fad256c2517e276758efb1bb04d" class="ref">httpNormalizeUriPath</a>, <a href="#group___http_uri_1ga53a807f2a2750df3f88d4f4b2ac89fa2" class="ref">httpResolveUri</a>, <a href="#group___http_uri_1ga9ea785faccf155c6bd3b2650d5245d11" class="ref">httpUriToString</a></dd></dl>
</div>
</div>
<a name="group___http_uri_1gadcc4702f652977af0efb6abceb17566b"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_uri" class="ref">HttpUri</a> *
httpCreateUriFromParts
(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *scheme, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *host, int port, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *reference, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *query, int flags)
</div>
<div class="apiDetail">
<p>Create a URI from parts.</p>
<dl><dt><b>Description</b>:</dt><dd>This call constructs a URI from the given parts. Various URI parts can be omitted by setting to null. The URI path is the only mandatory parameter.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">scheme</td><td>The URI scheme. This is typically &quot;http&quot; or &quot;https&quot;.</td>
<tr><td class="param">host</td><td>The URI host name portion. This can be a textual host and domain name or it can be an IP address.</td>
<tr><td class="param">port</td><td>The URI port number. Set to zero to accept the default value for the selected scheme.</td>
<tr><td class="param">path</td><td>The URI path to the requested document.</td>
<tr><td class="param">reference</td><td>URI reference with an HTML document. This is the URI component after the &quot;#&quot; in the URI path.</td>
<tr><td class="param">query</td><td>URI query component. This is the URI component after the &quot;?&quot; in the URI.</td>
<tr><td class="param">flags</td><td>Set to HTTP_COMPLETE_URI to add missing components. ie. Add scheme, host and port if not supplied.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A new URI.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_uri_1gadd399e69d65d719663f7f9b51933c521" class="ref">httpCloneUri</a>, <a href="#group___http_uri_1ga87cace641a89a7bc7675e650d9e17640" class="ref">httpCompleteUri</a>, <a href="#group___http_uri_1ga3def4a0e93965e1fac2c38e6e5272081" class="ref">httpCreateUri</a>, <a href="#group___http_uri_1ga1c87f3e7e694435939d05e5a112e56fd" class="ref">httpFormatUri</a>, <a href="#group___http_uri_1ga8932b843125d3ba77523ee407f71089f" class="ref">httpGetRelativeUri</a>, <a href="#group___http_uri_1ga7336eda33f8949dc4f552cc5e4ab606c" class="ref">httpJoinUri</a>, <a href="#group___http_uri_1gaa591d6219b0eaa3d61a83770dd604fce" class="ref">httpJoinUriPath</a>, <a href="#group___http_uri_1gaf7793eaed546ea5d187691db728f1703" class="ref">httpLookupMimeType</a>, <a href="#group___http_uri_1ga76afee77d12a6c52896af0ea658c301d" class="ref">httpMakeUriLocal</a>, <a href="#group___http_uri_1ga662c0fad256c2517e276758efb1bb04d" class="ref">httpNormalizeUriPath</a>, <a href="#group___http_uri_1ga53a807f2a2750df3f88d4f4b2ac89fa2" class="ref">httpResolveUri</a>, <a href="#group___http_uri_1ga9ea785faccf155c6bd3b2650d5245d11" class="ref">httpUriToString</a></dd></dl>
</div>
</div>
<a name="group___http_uri_1ga1c87f3e7e694435939d05e5a112e56fd"></a>
<div class="api">
<div class="prototype">
char *
httpFormatUri
(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *scheme, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *host, int port, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ref, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *query, int flags)
</div>
<div class="apiDetail">
<p>Format a URI.</p>
<dl><dt><b>Description</b>:</dt><dd>Format a URI string using the input components.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">scheme</td><td>Protocol string for the uri. Example: &quot;http&quot;.</td>
<tr><td class="param">host</td><td>Host or IP address.</td>
<tr><td class="param">port</td><td>TCP/IP port number.</td>
<tr><td class="param">path</td><td>URL path.</td>
<tr><td class="param">ref</td><td>URL reference fragment.</td>
<tr><td class="param">query</td><td>Additiona query parameters.</td>
<tr><td class="param">flags</td><td>Set to HTTP_COMPLETE_URI to add missing components. ie. Add scheme, host and port if not supplied.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A newly allocated uri string.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_uri_1gadd399e69d65d719663f7f9b51933c521" class="ref">httpCloneUri</a>, <a href="#group___http_uri_1ga87cace641a89a7bc7675e650d9e17640" class="ref">httpCompleteUri</a>, <a href="#group___http_uri_1ga3def4a0e93965e1fac2c38e6e5272081" class="ref">httpCreateUri</a>, <a href="#group___http_uri_1gadcc4702f652977af0efb6abceb17566b" class="ref">httpCreateUriFromParts</a>, <a href="#group___http_uri_1ga8932b843125d3ba77523ee407f71089f" class="ref">httpGetRelativeUri</a>, <a href="#group___http_uri_1ga7336eda33f8949dc4f552cc5e4ab606c" class="ref">httpJoinUri</a>, <a href="#group___http_uri_1gaa591d6219b0eaa3d61a83770dd604fce" class="ref">httpJoinUriPath</a>, <a href="#group___http_uri_1gaf7793eaed546ea5d187691db728f1703" class="ref">httpLookupMimeType</a>, <a href="#group___http_uri_1ga76afee77d12a6c52896af0ea658c301d" class="ref">httpMakeUriLocal</a>, <a href="#group___http_uri_1ga662c0fad256c2517e276758efb1bb04d" class="ref">httpNormalizeUriPath</a>, <a href="#group___http_uri_1ga53a807f2a2750df3f88d4f4b2ac89fa2" class="ref">httpResolveUri</a>, <a href="#group___http_uri_1ga9ea785faccf155c6bd3b2650d5245d11" class="ref">httpUriToString</a></dd></dl>
</div>
</div>
<a name="group___http_uri_1ga8932b843125d3ba77523ee407f71089f"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_uri" class="ref">HttpUri</a> *
httpGetRelativeUri
(<a href="#group___http_uri" class="ref">HttpUri</a> *base, <a href="#group___http_uri" class="ref">HttpUri</a> *target, int clone)
</div>
<div class="apiDetail">
<p>Get a relative URI from the base to the target.</p>
<dl><dt><b>Description</b>:</dt><dd>If the target is null, an absolute URI, or if a relative URI from the base cannot be constructed, then the target will be returned. If clone is true, then a clone of the target will be returned.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">base</td><td>The base URI considered to be the current URI. Think of this as the current directory.</td>
<tr><td class="param">target</td><td>The destination URI for which a relative URI will be crafted to reach.</td>
<tr><td class="param">clone</td><td>If true, the target URI will be cloned if the target is an absolute URI or if a relative URI cannot be constructed.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_uri_1gadd399e69d65d719663f7f9b51933c521" class="ref">httpCloneUri</a>, <a href="#group___http_uri_1ga87cace641a89a7bc7675e650d9e17640" class="ref">httpCompleteUri</a>, <a href="#group___http_uri_1ga3def4a0e93965e1fac2c38e6e5272081" class="ref">httpCreateUri</a>, <a href="#group___http_uri_1gadcc4702f652977af0efb6abceb17566b" class="ref">httpCreateUriFromParts</a>, <a href="#group___http_uri_1ga1c87f3e7e694435939d05e5a112e56fd" class="ref">httpFormatUri</a>, <a href="#group___http_uri_1ga7336eda33f8949dc4f552cc5e4ab606c" class="ref">httpJoinUri</a>, <a href="#group___http_uri_1gaa591d6219b0eaa3d61a83770dd604fce" class="ref">httpJoinUriPath</a>, <a href="#group___http_uri_1gaf7793eaed546ea5d187691db728f1703" class="ref">httpLookupMimeType</a>, <a href="#group___http_uri_1ga76afee77d12a6c52896af0ea658c301d" class="ref">httpMakeUriLocal</a>, <a href="#group___http_uri_1ga662c0fad256c2517e276758efb1bb04d" class="ref">httpNormalizeUriPath</a>, <a href="#group___http_uri_1ga53a807f2a2750df3f88d4f4b2ac89fa2" class="ref">httpResolveUri</a>, <a href="#group___http_uri_1ga9ea785faccf155c6bd3b2650d5245d11" class="ref">httpUriToString</a></dd></dl>
</div>
</div>
<a name="group___http_uri_1ga7336eda33f8949dc4f552cc5e4ab606c"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_uri" class="ref">HttpUri</a> *
httpJoinUri
(<a href="#group___http_uri" class="ref">HttpUri</a> *base, int argc, <a href="#group___http_uri" class="ref">HttpUri</a> **others)
</div>
<div class="apiDetail">
<p>Join URIs.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">base</td><td>Base URI to being with.</td>
<tr><td class="param">argc</td><td>Count of URIs in others.</td>
<tr><td class="param">others</td><td>Array of URIs to join to the base.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The resulting, joined URI.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_uri_1gadd399e69d65d719663f7f9b51933c521" class="ref">httpCloneUri</a>, <a href="#group___http_uri_1ga87cace641a89a7bc7675e650d9e17640" class="ref">httpCompleteUri</a>, <a href="#group___http_uri_1ga3def4a0e93965e1fac2c38e6e5272081" class="ref">httpCreateUri</a>, <a href="#group___http_uri_1gadcc4702f652977af0efb6abceb17566b" class="ref">httpCreateUriFromParts</a>, <a href="#group___http_uri_1ga1c87f3e7e694435939d05e5a112e56fd" class="ref">httpFormatUri</a>, <a href="#group___http_uri_1ga8932b843125d3ba77523ee407f71089f" class="ref">httpGetRelativeUri</a>, <a href="#group___http_uri_1gaa591d6219b0eaa3d61a83770dd604fce" class="ref">httpJoinUriPath</a>, <a href="#group___http_uri_1gaf7793eaed546ea5d187691db728f1703" class="ref">httpLookupMimeType</a>, <a href="#group___http_uri_1ga76afee77d12a6c52896af0ea658c301d" class="ref">httpMakeUriLocal</a>, <a href="#group___http_uri_1ga662c0fad256c2517e276758efb1bb04d" class="ref">httpNormalizeUriPath</a>, <a href="#group___http_uri_1ga53a807f2a2750df3f88d4f4b2ac89fa2" class="ref">httpResolveUri</a>, <a href="#group___http_uri_1ga9ea785faccf155c6bd3b2650d5245d11" class="ref">httpUriToString</a></dd></dl>
</div>
</div>
<a name="group___http_uri_1gaa591d6219b0eaa3d61a83770dd604fce"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_uri" class="ref">HttpUri</a> *
httpJoinUriPath
(<a href="#group___http_uri" class="ref">HttpUri</a> *result, <a href="#group___http_uri" class="ref">HttpUri</a> *base, <a href="#group___http_uri" class="ref">HttpUri</a> *other)
</div>
<div class="apiDetail">
<p>Join a URI path.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">result</td><td>URI that will be modified with a joined path.</td>
<tr><td class="param">base</td><td>URI supplying the base path.</td>
<tr><td class="param">other</td><td>Other URI whose path is joined to the base.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The result URI.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_uri_1gadd399e69d65d719663f7f9b51933c521" class="ref">httpCloneUri</a>, <a href="#group___http_uri_1ga87cace641a89a7bc7675e650d9e17640" class="ref">httpCompleteUri</a>, <a href="#group___http_uri_1ga3def4a0e93965e1fac2c38e6e5272081" class="ref">httpCreateUri</a>, <a href="#group___http_uri_1gadcc4702f652977af0efb6abceb17566b" class="ref">httpCreateUriFromParts</a>, <a href="#group___http_uri_1ga1c87f3e7e694435939d05e5a112e56fd" class="ref">httpFormatUri</a>, <a href="#group___http_uri_1ga8932b843125d3ba77523ee407f71089f" class="ref">httpGetRelativeUri</a>, <a href="#group___http_uri_1ga7336eda33f8949dc4f552cc5e4ab606c" class="ref">httpJoinUri</a>, <a href="#group___http_uri_1gaf7793eaed546ea5d187691db728f1703" class="ref">httpLookupMimeType</a>, <a href="#group___http_uri_1ga76afee77d12a6c52896af0ea658c301d" class="ref">httpMakeUriLocal</a>, <a href="#group___http_uri_1ga662c0fad256c2517e276758efb1bb04d" class="ref">httpNormalizeUriPath</a>, <a href="#group___http_uri_1ga53a807f2a2750df3f88d4f4b2ac89fa2" class="ref">httpResolveUri</a>, <a href="#group___http_uri_1ga9ea785faccf155c6bd3b2650d5245d11" class="ref">httpUriToString</a></dd></dl>
</div>
</div>
<a name="group___http_uri_1gaf7793eaed546ea5d187691db728f1703"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
httpLookupMimeType
(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *ext)
</div>
<div class="apiDetail">
<p>Get the mime type for an extension.</p>
This call will return the mime type from a limited internal set of mime types for the given path or extension
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">ext</td><td>Path or extension to examine.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Mime type. This is a static string.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_uri_1gadd399e69d65d719663f7f9b51933c521" class="ref">httpCloneUri</a>, <a href="#group___http_uri_1ga87cace641a89a7bc7675e650d9e17640" class="ref">httpCompleteUri</a>, <a href="#group___http_uri_1ga3def4a0e93965e1fac2c38e6e5272081" class="ref">httpCreateUri</a>, <a href="#group___http_uri_1gadcc4702f652977af0efb6abceb17566b" class="ref">httpCreateUriFromParts</a>, <a href="#group___http_uri_1ga1c87f3e7e694435939d05e5a112e56fd" class="ref">httpFormatUri</a>, <a href="#group___http_uri_1ga8932b843125d3ba77523ee407f71089f" class="ref">httpGetRelativeUri</a>, <a href="#group___http_uri_1ga7336eda33f8949dc4f552cc5e4ab606c" class="ref">httpJoinUri</a>, <a href="#group___http_uri_1gaa591d6219b0eaa3d61a83770dd604fce" class="ref">httpJoinUriPath</a>, <a href="#group___http_uri_1ga76afee77d12a6c52896af0ea658c301d" class="ref">httpMakeUriLocal</a>, <a href="#group___http_uri_1ga662c0fad256c2517e276758efb1bb04d" class="ref">httpNormalizeUriPath</a>, <a href="#group___http_uri_1ga53a807f2a2750df3f88d4f4b2ac89fa2" class="ref">httpResolveUri</a>, <a href="#group___http_uri_1ga9ea785faccf155c6bd3b2650d5245d11" class="ref">httpUriToString</a></dd></dl>
</div>
</div>
<a name="group___http_uri_1ga76afee77d12a6c52896af0ea658c301d"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_uri" class="ref">HttpUri</a> *
httpMakeUriLocal
(<a href="#group___http_uri" class="ref">HttpUri</a> *uri)
</div>
<div class="apiDetail">
<p>Make a URI local.</p>
<dl><dt><b>Description</b>:</dt><dd>This routine removes the scheme, host and port portions of a URI.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">uri</td><td>URI to modify.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The given URI.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_uri_1gadd399e69d65d719663f7f9b51933c521" class="ref">httpCloneUri</a>, <a href="#group___http_uri_1ga87cace641a89a7bc7675e650d9e17640" class="ref">httpCompleteUri</a>, <a href="#group___http_uri_1ga3def4a0e93965e1fac2c38e6e5272081" class="ref">httpCreateUri</a>, <a href="#group___http_uri_1gadcc4702f652977af0efb6abceb17566b" class="ref">httpCreateUriFromParts</a>, <a href="#group___http_uri_1ga1c87f3e7e694435939d05e5a112e56fd" class="ref">httpFormatUri</a>, <a href="#group___http_uri_1ga8932b843125d3ba77523ee407f71089f" class="ref">httpGetRelativeUri</a>, <a href="#group___http_uri_1ga7336eda33f8949dc4f552cc5e4ab606c" class="ref">httpJoinUri</a>, <a href="#group___http_uri_1gaa591d6219b0eaa3d61a83770dd604fce" class="ref">httpJoinUriPath</a>, <a href="#group___http_uri_1gaf7793eaed546ea5d187691db728f1703" class="ref">httpLookupMimeType</a>, <a href="#group___http_uri_1ga662c0fad256c2517e276758efb1bb04d" class="ref">httpNormalizeUriPath</a>, <a href="#group___http_uri_1ga53a807f2a2750df3f88d4f4b2ac89fa2" class="ref">httpResolveUri</a>, <a href="#group___http_uri_1ga9ea785faccf155c6bd3b2650d5245d11" class="ref">httpUriToString</a></dd></dl>
</div>
</div>
<a name="group___http_uri_1gab6de6ed30c95a9e9a3b8f9bf7acaf625"></a>
<div class="api">
<div class="prototype">
void
httpNormalizeUri
(<a href="#group___http_uri" class="ref">HttpUri</a> *uri)
</div>
<div class="apiDetail">
<p>Normalize a URI.</p>
<dl><dt><b>Description</b>:</dt><dd>Validate and canonicalize a URI. This invokes httpNormalizeUriPath to normalize the URI path.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">uri</td><td>URI object to normalize.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_uri_1gadd399e69d65d719663f7f9b51933c521" class="ref">httpCloneUri</a>, <a href="#group___http_uri_1ga87cace641a89a7bc7675e650d9e17640" class="ref">httpCompleteUri</a>, <a href="#group___http_uri_1ga3def4a0e93965e1fac2c38e6e5272081" class="ref">httpCreateUri</a>, <a href="#group___http_uri_1gadcc4702f652977af0efb6abceb17566b" class="ref">httpCreateUriFromParts</a>, <a href="#group___http_uri_1ga1c87f3e7e694435939d05e5a112e56fd" class="ref">httpFormatUri</a>, <a href="#group___http_uri_1ga8932b843125d3ba77523ee407f71089f" class="ref">httpGetRelativeUri</a>, <a href="#group___http_uri_1ga7336eda33f8949dc4f552cc5e4ab606c" class="ref">httpJoinUri</a>, <a href="#group___http_uri_1gaa591d6219b0eaa3d61a83770dd604fce" class="ref">httpJoinUriPath</a>, <a href="#group___http_uri_1gaf7793eaed546ea5d187691db728f1703" class="ref">httpLookupMimeType</a>, <a href="#group___http_uri_1ga76afee77d12a6c52896af0ea658c301d" class="ref">httpMakeUriLocal</a>, <a href="#group___http_uri_1ga662c0fad256c2517e276758efb1bb04d" class="ref">httpNormalizeUriPath</a>, <a href="#group___http_uri_1ga53a807f2a2750df3f88d4f4b2ac89fa2" class="ref">httpResolveUri</a>, <a href="#group___http_uri_1ga9ea785faccf155c6bd3b2650d5245d11" class="ref">httpUriToString</a></dd></dl>
</div>
</div>
<a name="group___http_uri_1ga662c0fad256c2517e276758efb1bb04d"></a>
<div class="api">
<div class="prototype">
char *
httpNormalizeUriPath
(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri)
</div>
<div class="apiDetail">
<p>Normalize a URI.</p>
<dl><dt><b>Description</b>:</dt><dd>Validate and canonicalize a URI path. This removes redundant &quot;./&quot; sequences and simplifies &quot;../dir&quot; references.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">uri</td><td>Uri path string to normalize. This is the URI path portion without scheme, host and port components.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A new validated uri string.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_uri_1gadd399e69d65d719663f7f9b51933c521" class="ref">httpCloneUri</a>, <a href="#group___http_uri_1ga87cace641a89a7bc7675e650d9e17640" class="ref">httpCompleteUri</a>, <a href="#group___http_uri_1ga3def4a0e93965e1fac2c38e6e5272081" class="ref">httpCreateUri</a>, <a href="#group___http_uri_1gadcc4702f652977af0efb6abceb17566b" class="ref">httpCreateUriFromParts</a>, <a href="#group___http_uri_1ga1c87f3e7e694435939d05e5a112e56fd" class="ref">httpFormatUri</a>, <a href="#group___http_uri_1ga8932b843125d3ba77523ee407f71089f" class="ref">httpGetRelativeUri</a>, <a href="#group___http_uri_1ga7336eda33f8949dc4f552cc5e4ab606c" class="ref">httpJoinUri</a>, <a href="#group___http_uri_1gaa591d6219b0eaa3d61a83770dd604fce" class="ref">httpJoinUriPath</a>, <a href="#group___http_uri_1gaf7793eaed546ea5d187691db728f1703" class="ref">httpLookupMimeType</a>, <a href="#group___http_uri_1ga76afee77d12a6c52896af0ea658c301d" class="ref">httpMakeUriLocal</a>, <a href="#group___http_uri_1ga53a807f2a2750df3f88d4f4b2ac89fa2" class="ref">httpResolveUri</a>, <a href="#group___http_uri_1ga9ea785faccf155c6bd3b2650d5245d11" class="ref">httpUriToString</a></dd></dl>
</div>
</div>
<a name="group___http_uri_1ga53a807f2a2750df3f88d4f4b2ac89fa2"></a>
<div class="api">
<div class="prototype">
<a href="#group___http_uri" class="ref">HttpUri</a> *
httpResolveUri
(<a href="#group___http_uri" class="ref">HttpUri</a> *base, int argc, <a href="#group___http_uri" class="ref">HttpUri</a> **others, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> local)
</div>
<div class="apiDetail">
<p>Resolve URIs relative to a base.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">base</td><td>Base URI to begin with.</td>
<tr><td class="param">argc</td><td>Count of URIs in the others array.</td>
<tr><td class="param">others</td><td>Array of URIs that are sucessively resolved relative to the base.</td>
<tr><td class="param">local</td><td>If true, the base scheme, host and port are ignored.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_uri_1gadd399e69d65d719663f7f9b51933c521" class="ref">httpCloneUri</a>, <a href="#group___http_uri_1ga87cace641a89a7bc7675e650d9e17640" class="ref">httpCompleteUri</a>, <a href="#group___http_uri_1ga3def4a0e93965e1fac2c38e6e5272081" class="ref">httpCreateUri</a>, <a href="#group___http_uri_1gadcc4702f652977af0efb6abceb17566b" class="ref">httpCreateUriFromParts</a>, <a href="#group___http_uri_1ga1c87f3e7e694435939d05e5a112e56fd" class="ref">httpFormatUri</a>, <a href="#group___http_uri_1ga8932b843125d3ba77523ee407f71089f" class="ref">httpGetRelativeUri</a>, <a href="#group___http_uri_1ga7336eda33f8949dc4f552cc5e4ab606c" class="ref">httpJoinUri</a>, <a href="#group___http_uri_1gaa591d6219b0eaa3d61a83770dd604fce" class="ref">httpJoinUriPath</a>, <a href="#group___http_uri_1gaf7793eaed546ea5d187691db728f1703" class="ref">httpLookupMimeType</a>, <a href="#group___http_uri_1ga76afee77d12a6c52896af0ea658c301d" class="ref">httpMakeUriLocal</a>, <a href="#group___http_uri_1ga662c0fad256c2517e276758efb1bb04d" class="ref">httpNormalizeUriPath</a>, <a href="#group___http_uri_1ga9ea785faccf155c6bd3b2650d5245d11" class="ref">httpUriToString</a></dd></dl>
</div>
</div>
<a name="group___http_uri_1ga9ea785faccf155c6bd3b2650d5245d11"></a>
<div class="api">
<div class="prototype">
char *
httpUriToString
(<a href="#group___http_uri" class="ref">HttpUri</a> *uri, int flags)
</div>
<div class="apiDetail">
<p>Convert a Uri to a string.</p>
<dl><dt><b>Description</b>:</dt><dd>Convert the given Uri to a string, optionally completing missing parts such as the host, port and path.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">uri</td><td>A Uri object created via httpCreateUri.</td>
<tr><td class="param">flags</td><td>Set to HTTP_COMPLETE_URI to add missing components. ie. Add scheme, host and port if not supplied.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>A newly allocated uri string.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_uri_1gadd399e69d65d719663f7f9b51933c521" class="ref">httpCloneUri</a>, <a href="#group___http_uri_1ga87cace641a89a7bc7675e650d9e17640" class="ref">httpCompleteUri</a>, <a href="#group___http_uri_1ga3def4a0e93965e1fac2c38e6e5272081" class="ref">httpCreateUri</a>, <a href="#group___http_uri_1gadcc4702f652977af0efb6abceb17566b" class="ref">httpCreateUriFromParts</a>, <a href="#group___http_uri_1ga1c87f3e7e694435939d05e5a112e56fd" class="ref">httpFormatUri</a>, <a href="#group___http_uri_1ga8932b843125d3ba77523ee407f71089f" class="ref">httpGetRelativeUri</a>, <a href="#group___http_uri_1ga7336eda33f8949dc4f552cc5e4ab606c" class="ref">httpJoinUri</a>, <a href="#group___http_uri_1gaa591d6219b0eaa3d61a83770dd604fce" class="ref">httpJoinUriPath</a>, <a href="#group___http_uri_1gaf7793eaed546ea5d187691db728f1703" class="ref">httpLookupMimeType</a>, <a href="#group___http_uri_1ga76afee77d12a6c52896af0ea658c301d" class="ref">httpMakeUriLocal</a>, <a href="#group___http_uri_1ga662c0fad256c2517e276758efb1bb04d" class="ref">httpNormalizeUriPath</a>, <a href="#group___http_uri_1ga53a807f2a2750df3f88d4f4b2ac89fa2" class="ref">httpResolveUri</a></dd></dl>
</div>
</div>
<h1>HttpWebSocket</h1>
<a name="group___http_web_socket"></a>
<div class="api">
<div class="prototype">HttpWebSocket</div>
<div class="apiDetail">
<p>WebSocket Service to implement the WebSockets RFC 6455 specification for client and server communications.</p>
<dl><dt><b>Description</b>:</dt><dd>WebSockets is a technology providing interactive communication between a server and client. Normal HTML connections follow a request / response paradigm and do not easily support asynchronous communications or unsolicited data pushed from the server to the client. WebSockets solves this by supporting bi-directional, full-duplex communications over persistent connections. A WebSocket connection is established over a standard HTTP connection and is then upgraded without impacting the original connection. This means it will work with existing networking infrastructure including firewalls and proxies.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_web_socket_1ga6c1a4a4b4d9cfc2ce626bb5fd005e6ac" class="ref">httpGetWebSocketCloseReason</a>, <a href="#group___http_web_socket_1ga1b12513bad90a3d388527ed9ad304c3f" class="ref">httpGetWebSocketMessageLength</a>, <a href="#group___http_web_socket_1gad908e15f337a359e0f90258621d1329b" class="ref">httpGetWebSocketProtocol</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_web_socket_1ga038d5c42a1ef5bce910dc617987a222c" class="ref">httpSend</a>, <a href="#group___http_web_socket_1ga139827d860ee64824f15ebfeb15478cc" class="ref">httpSendBlock</a>, <a href="#group___http_web_socket_1gadb22d418a67109b699890888ca66053a" class="ref">httpSendClose</a>, <a href="#group___http_web_socket_1ga96f8cb3db541d8a1340caf0d2afbbb1f" class="ref">httpSetWebSocketProtocols</a>, <a href="#group___http_web_socket_1gacb7184072bfb15ebf2c95f9ef6d0ba8c" class="ref">httpWebSocketOrderlyClosed</a></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">char *</td><td><td>closeReason</td><td>
Reason for closure.
</td>
<tr><td class="param">int</td><td><td>closeStatus</td><td>
Close status provided by peer.
</td>
<tr><td class="param">int</td><td><td>closing</td><td>
Started closing sequnce.
</td>
<tr><td class="param">HttpPacket *</td><td><td>currentFrame</td><td>
Pending message frame.
</td>
<tr><td class="param">HttpPacket *</td><td><td>currentMessage</td><td>
Pending message frame.
</td>
<tr><td class="param">uchar</td><td><td>dataMask[4]</td><td>
Mask for data.
</td>
<tr><td class="param">ssize</td><td><td>frameLength</td><td>
Length of the current frame.
</td>
<tr><td class="param">int</td><td><td>frameState</td><td>
Message frame state.
</td>
<tr><td class="param">int</td><td><td>maskOffset</td><td>
Offset in dataMask.
</td>
<tr><td class="param">ssize</td><td><td>messageLength</td><td>
Length of the current message.
</td>
<tr><td class="param">MprEvent *</td><td><td>pingEvent</td><td>
Ping timer event.
</td>
<tr><td class="param">int</td><td><td>state</td><td>
State.
</td>
<tr><td class="param">char *</td><td><td>subProtocol</td><td>
Application level sub-protocol.
</td>
</table></dd></dl>
</div>
</div>
<a name="group___http_web_socket_1ga6c1a4a4b4d9cfc2ce626bb5fd005e6ac"></a>
<div class="api">
<div class="prototype">
char *
httpGetWebSocketCloseReason
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the close reason supplied by the peer.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The reason string supplied by the peer when closing the web socket.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_web_socket_1ga1b12513bad90a3d388527ed9ad304c3f" class="ref">httpGetWebSocketMessageLength</a>, <a href="#group___http_web_socket_1gad908e15f337a359e0f90258621d1329b" class="ref">httpGetWebSocketProtocol</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_web_socket_1ga038d5c42a1ef5bce910dc617987a222c" class="ref">httpSend</a>, <a href="#group___http_web_socket_1ga139827d860ee64824f15ebfeb15478cc" class="ref">httpSendBlock</a>, <a href="#group___http_web_socket_1gadb22d418a67109b699890888ca66053a" class="ref">httpSendClose</a>, <a href="#group___http_web_socket_1ga96f8cb3db541d8a1340caf0d2afbbb1f" class="ref">httpSetWebSocketProtocols</a>, <a href="#group___http_web_socket_1gacb7184072bfb15ebf2c95f9ef6d0ba8c" class="ref">httpWebSocketOrderlyClosed</a></dd></dl>
</div>
</div>
<a name="group___http_web_socket_1ga1b12513bad90a3d388527ed9ad304c3f"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpGetWebSocketMessageLength
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the message length for the current message.</p>
<dl><dt><b>Description</b>:</dt><dd>The message length will be updated as the message frames are received. The message length is only valid when the last frame has been received. See <a class="ref" href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774">httpIsLastPacket</a></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The size of the message.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_web_socket_1ga6c1a4a4b4d9cfc2ce626bb5fd005e6ac" class="ref">httpGetWebSocketCloseReason</a>, <a href="#group___http_web_socket_1gad908e15f337a359e0f90258621d1329b" class="ref">httpGetWebSocketProtocol</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_web_socket_1ga038d5c42a1ef5bce910dc617987a222c" class="ref">httpSend</a>, <a href="#group___http_web_socket_1ga139827d860ee64824f15ebfeb15478cc" class="ref">httpSendBlock</a>, <a href="#group___http_web_socket_1gadb22d418a67109b699890888ca66053a" class="ref">httpSendClose</a>, <a href="#group___http_web_socket_1ga96f8cb3db541d8a1340caf0d2afbbb1f" class="ref">httpSetWebSocketProtocols</a>, <a href="#group___http_web_socket_1gacb7184072bfb15ebf2c95f9ef6d0ba8c" class="ref">httpWebSocketOrderlyClosed</a></dd></dl>
</div>
</div>
<a name="group___http_web_socket_1gad908e15f337a359e0f90258621d1329b"></a>
<div class="api">
<div class="prototype">
char *
httpGetWebSocketProtocol
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the selected web socket protocol selected by the server.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The web socket protocol string.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_web_socket_1ga6c1a4a4b4d9cfc2ce626bb5fd005e6ac" class="ref">httpGetWebSocketCloseReason</a>, <a href="#group___http_web_socket_1ga1b12513bad90a3d388527ed9ad304c3f" class="ref">httpGetWebSocketMessageLength</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_web_socket_1ga038d5c42a1ef5bce910dc617987a222c" class="ref">httpSend</a>, <a href="#group___http_web_socket_1ga139827d860ee64824f15ebfeb15478cc" class="ref">httpSendBlock</a>, <a href="#group___http_web_socket_1gadb22d418a67109b699890888ca66053a" class="ref">httpSendClose</a>, <a href="#group___http_web_socket_1ga96f8cb3db541d8a1340caf0d2afbbb1f" class="ref">httpSetWebSocketProtocols</a>, <a href="#group___http_web_socket_1gacb7184072bfb15ebf2c95f9ef6d0ba8c" class="ref">httpWebSocketOrderlyClosed</a></dd></dl>
</div>
</div>
<a name="group___http_web_socket_1ga026b733296a4ce32bd0e71902a26db8b"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpGetWebSocketState
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the WebSocket state.</p>
<dl><dt>Returns:</dt><dd>The web socket state. Will be WS_STATE_CONNECTING, WS_STATE_OPEN, WS_STATE_CLOSING or WS_STATE_CLOSED.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_web_socket_1ga6c1a4a4b4d9cfc2ce626bb5fd005e6ac" class="ref">httpGetWebSocketCloseReason</a>, <a href="#group___http_web_socket_1ga1b12513bad90a3d388527ed9ad304c3f" class="ref">httpGetWebSocketMessageLength</a>, <a href="#group___http_web_socket_1gad908e15f337a359e0f90258621d1329b" class="ref">httpGetWebSocketProtocol</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_web_socket_1ga038d5c42a1ef5bce910dc617987a222c" class="ref">httpSend</a>, <a href="#group___http_web_socket_1ga139827d860ee64824f15ebfeb15478cc" class="ref">httpSendBlock</a>, <a href="#group___http_web_socket_1gadb22d418a67109b699890888ca66053a" class="ref">httpSendClose</a>, <a href="#group___http_web_socket_1ga96f8cb3db541d8a1340caf0d2afbbb1f" class="ref">httpSetWebSocketProtocols</a>, <a href="#group___http_web_socket_1gacb7184072bfb15ebf2c95f9ef6d0ba8c" class="ref">httpWebSocketOrderlyClosed</a></dd></dl>
</div>
</div>
<a name="group___http_web_socket_1ga038d5c42a1ef5bce910dc617987a222c"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpSend
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
</div>
<div class="apiDetail">
<p>Send a UTF-8 text message to the web socket peer.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">fmt</td><td>Printf style formatted string.</td>
<tr><td class="param">...</td><td>Arguments for the format.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Number of bytes written.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_web_socket_1ga6c1a4a4b4d9cfc2ce626bb5fd005e6ac" class="ref">httpGetWebSocketCloseReason</a>, <a href="#group___http_web_socket_1ga1b12513bad90a3d388527ed9ad304c3f" class="ref">httpGetWebSocketMessageLength</a>, <a href="#group___http_web_socket_1gad908e15f337a359e0f90258621d1329b" class="ref">httpGetWebSocketProtocol</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_web_socket_1ga139827d860ee64824f15ebfeb15478cc" class="ref">httpSendBlock</a>, <a href="#group___http_web_socket_1gadb22d418a67109b699890888ca66053a" class="ref">httpSendClose</a>, <a href="#group___http_web_socket_1ga96f8cb3db541d8a1340caf0d2afbbb1f" class="ref">httpSetWebSocketProtocols</a>, <a href="#group___http_web_socket_1gacb7184072bfb15ebf2c95f9ef6d0ba8c" class="ref">httpWebSocketOrderlyClosed</a></dd></dl>
</div>
</div>
<a name="group___http_web_socket_1ga139827d860ee64824f15ebfeb15478cc"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
httpSendBlock
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int type, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *buf, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> len, int flags)
</div>
<div class="apiDetail">
<p>Send a message of a given type to the web socket peer.</p>
<dl><dt><b>Description</b>:</dt><dd>This call operates in blocking mode by default unless the HTTP_NON_BLOCK flag is specified. When blocking, the call will either accept and write all the data or it will fail, it will never return &quot;short&quot; with a partial write. The call may block for up to the inactivity timeout specified in the conn-&gt;limits-&gt;inactivityTimeout value.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">type</td><td>Web socket message type. Choose from WS_MSG_TEXT, WS_MSG_BINARY or WS_MSG_PING. Use httpSendClose to send a close message. Do not send a WS_MSG_PONG message as it is generated internally by the Web Sockets module.</td>
<tr><td class="param">buf</td><td>Data buffer to send.</td>
<tr><td class="param">len</td><td>Length of buf.</td>
<tr><td class="param">flags</td><td>Set to HTTP_BLOCK for blocking operation or HTTP_NON_BLOCK for non-blocking. Set to HTTP_BUFFER to buffer the data if required and never block. Set to zero will default to HTTP_BUFFER.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Number of data message bytes written. Should equal len if successful, otherwise returns a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_web_socket_1ga6c1a4a4b4d9cfc2ce626bb5fd005e6ac" class="ref">httpGetWebSocketCloseReason</a>, <a href="#group___http_web_socket_1ga1b12513bad90a3d388527ed9ad304c3f" class="ref">httpGetWebSocketMessageLength</a>, <a href="#group___http_web_socket_1gad908e15f337a359e0f90258621d1329b" class="ref">httpGetWebSocketProtocol</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_web_socket_1ga038d5c42a1ef5bce910dc617987a222c" class="ref">httpSend</a>, <a href="#group___http_web_socket_1gadb22d418a67109b699890888ca66053a" class="ref">httpSendClose</a>, <a href="#group___http_web_socket_1ga96f8cb3db541d8a1340caf0d2afbbb1f" class="ref">httpSetWebSocketProtocols</a>, <a href="#group___http_web_socket_1gacb7184072bfb15ebf2c95f9ef6d0ba8c" class="ref">httpWebSocketOrderlyClosed</a></dd></dl>
</div>
</div>
<a name="group___http_web_socket_1gadb22d418a67109b699890888ca66053a"></a>
<div class="api">
<div class="prototype">
void
httpSendClose
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, int status, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *reason)
</div>
<div class="apiDetail">
<p>Send a close message to the web socket peer.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">status</td><td>Web socket status.</td>
<tr><td class="param">reason</td><td>Optional reason text message. The reason must be less than 124 bytes in length.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Number of data message bytes written. Should equal len if successful, otherwise returns a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_web_socket_1ga6c1a4a4b4d9cfc2ce626bb5fd005e6ac" class="ref">httpGetWebSocketCloseReason</a>, <a href="#group___http_web_socket_1ga1b12513bad90a3d388527ed9ad304c3f" class="ref">httpGetWebSocketMessageLength</a>, <a href="#group___http_web_socket_1gad908e15f337a359e0f90258621d1329b" class="ref">httpGetWebSocketProtocol</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_web_socket_1ga038d5c42a1ef5bce910dc617987a222c" class="ref">httpSend</a>, <a href="#group___http_web_socket_1ga139827d860ee64824f15ebfeb15478cc" class="ref">httpSendBlock</a>, <a href="#group___http_web_socket_1ga96f8cb3db541d8a1340caf0d2afbbb1f" class="ref">httpSetWebSocketProtocols</a>, <a href="#group___http_web_socket_1gacb7184072bfb15ebf2c95f9ef6d0ba8c" class="ref">httpWebSocketOrderlyClosed</a></dd></dl>
</div>
</div>
<a name="group___http_web_socket_1ga96f8cb3db541d8a1340caf0d2afbbb1f"></a>
<div class="api">
<div class="prototype">
void
httpSetWebSocketProtocols
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn, <a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *protocols)
</div>
<div class="apiDetail">
<p>Set a list of application-level protocols supported by the client.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">protocols</td><td>Comma separated list of application-level protocols.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_web_socket_1ga6c1a4a4b4d9cfc2ce626bb5fd005e6ac" class="ref">httpGetWebSocketCloseReason</a>, <a href="#group___http_web_socket_1ga1b12513bad90a3d388527ed9ad304c3f" class="ref">httpGetWebSocketMessageLength</a>, <a href="#group___http_web_socket_1gad908e15f337a359e0f90258621d1329b" class="ref">httpGetWebSocketProtocol</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_web_socket_1ga038d5c42a1ef5bce910dc617987a222c" class="ref">httpSend</a>, <a href="#group___http_web_socket_1ga139827d860ee64824f15ebfeb15478cc" class="ref">httpSendBlock</a>, <a href="#group___http_web_socket_1gadb22d418a67109b699890888ca66053a" class="ref">httpSendClose</a>, <a href="#group___http_web_socket_1gacb7184072bfb15ebf2c95f9ef6d0ba8c" class="ref">httpWebSocketOrderlyClosed</a></dd></dl>
</div>
</div>
<a name="group___http_web_socket_1ga3456efbc36a0e27b3dde28462ef88d90"></a>
<div class="api">
<div class="prototype">
int
httpUpgradeWebSocket
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Upgrade a client HTTP connection connection to use WebSockets.</p>
<dl><dt><b>Description</b>:</dt><dd>This requests an upgrade to use WebSockets. Note this is the upgrade request and the confirmation handshake response must still be received and validated. The connection must be upgraded before sending any data to the server.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Return Zero if the connection upgrade can be requested.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_web_socket_1ga6c1a4a4b4d9cfc2ce626bb5fd005e6ac" class="ref">httpGetWebSocketCloseReason</a>, <a href="#group___http_web_socket_1ga1b12513bad90a3d388527ed9ad304c3f" class="ref">httpGetWebSocketMessageLength</a>, <a href="#group___http_web_socket_1gad908e15f337a359e0f90258621d1329b" class="ref">httpGetWebSocketProtocol</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_web_socket_1ga038d5c42a1ef5bce910dc617987a222c" class="ref">httpSend</a>, <a href="#group___http_web_socket_1ga139827d860ee64824f15ebfeb15478cc" class="ref">httpSendBlock</a>, <a href="#group___http_web_socket_1gadb22d418a67109b699890888ca66053a" class="ref">httpSendClose</a>, <a href="#group___http_web_socket_1ga96f8cb3db541d8a1340caf0d2afbbb1f" class="ref">httpSetWebSocketProtocols</a>, <a href="#group___http_web_socket_1gacb7184072bfb15ebf2c95f9ef6d0ba8c" class="ref">httpWebSocketOrderlyClosed</a></dd></dl>
</div>
</div>
<a name="group___http_web_socket_1gacb7184072bfb15ebf2c95f9ef6d0ba8c"></a>
<div class="api">
<div class="prototype">
<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
httpWebSocketOrderlyClosed
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Test if web socket connection was orderly closed by sending an acknowledged close message.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the web socket was orderly closed.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_web_socket_1ga6c1a4a4b4d9cfc2ce626bb5fd005e6ac" class="ref">httpGetWebSocketCloseReason</a>, <a href="#group___http_web_socket_1ga1b12513bad90a3d388527ed9ad304c3f" class="ref">httpGetWebSocketMessageLength</a>, <a href="#group___http_web_socket_1gad908e15f337a359e0f90258621d1329b" class="ref">httpGetWebSocketProtocol</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_web_socket_1ga038d5c42a1ef5bce910dc617987a222c" class="ref">httpSend</a>, <a href="#group___http_web_socket_1ga139827d860ee64824f15ebfeb15478cc" class="ref">httpSendBlock</a>, <a href="#group___http_web_socket_1gadb22d418a67109b699890888ca66053a" class="ref">httpSendClose</a>, <a href="#group___http_web_socket_1ga96f8cb3db541d8a1340caf0d2afbbb1f" class="ref">httpSetWebSocketProtocols</a></dd></dl>
</div>
</div>
<h2>Functions</h2>
<a name="http_8h_1a97b87c9cd5010bbd1188abfa67296768"></a>
<div class="api">
<div class="prototype">
void
httpDefineAction
(<a href="mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mprBare.html#mpr_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri, <a href="#http_8h_1a6e7f146ca4c741ae204a7416090edc28" class="ref">HttpAction</a> fun)
</div>
<div class="apiDetail">
<p>Define a function procedure to invoke when the specified URI is requested.</p>
<dl><dt><b>Description</b>:</dt><dd>This creates the role with given abilities. Ability words can also be other roles.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">uri</td><td>URI to bind with. When this URI is requested, the callback will be invoked if the procHandler is configured for the request route.</td>
<tr><td class="param">fun</td><td>Callback function procedure.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
</div>
</div>
<a name="http_8h_1ae23809132f4fe55bfd6996e5b46b4a31"></a>
<div class="api">
<div class="prototype">
void *
httpGetQueueData
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Get the queue data for the connection.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The private queue data object.</dd></dl>
</div>
</div>
<a name="http_8h_1ad9c7997f9f2a3dfa3060e85896dc94dd"></a>
<div class="api">
<div class="prototype">
void
httpOmitBody
(<a href="#group___http_conn" class="ref">HttpConn</a> *conn)
</div>
<div class="apiDetail">
<p>Tell the tx to omit sending any body.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
</div>
</div>
<h2>Typedefs</h2>
<a name="http_8h_1a0f957adf7a453cc11f9622b40f1348eb"></a>
<div class="api">
<div class="prototype">
typedef int( HttpRouteProc)(HttpConn *conn, HttpRoute *route, HttpRouteOp *item).
</div>
<div class="apiDetail">
<p>General route procedure.</p>
Used by targets, conditions and updates
</div>
</div>
<a name="group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78"></a>
<div class="api">
<div class="prototype">
typedef void(* HttpAskLogin)(HttpConn *conn).
</div>
<div class="apiDetail">
<p>AuthType callback to generate a response requesting the user login This should call httpError if such a response cannot be generated.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9"></a>
<div class="api">
<div class="prototype">
typedef int(* HttpParseAuth)(HttpConn *conn).
</div>
<div class="apiDetail">
<p>AuthType callback to parse the HTTP &apos;Authorize&apos; (client) and &apos;www-authenticate&apos; (server) headers.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1ga9cbfc016784b5bad7de3e889265db572"></a>
<div class="api">
<div class="prototype">
typedef bool(* HttpSetAuth)(HttpConn *conn).
</div>
<div class="apiDetail">
<p>AuthType callback to set the necessary HTTP authorization headers for a client request.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the authorization headers can be set.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3" class="ref">HttpVerifyUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_auth_1gaa8654219d81f48f4285ecba65ce2f4e3"></a>
<div class="api">
<div class="prototype">
typedef bool(* HttpVerifyUser)(HttpConn *conn).
</div>
<div class="apiDetail">
<p>AuthStore callback Verify the user credentials.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>True if the user credentials can validate.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78" class="ref">HttpAskLogin</a>, <a href="#group___http_auth" class="ref">HttpAuth</a>, <a href="#struct_http_auth_store" class="ref">HttpAuthStore</a>, <a href="#struct_http_auth_type" class="ref">HttpAuthType</a>, <a href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9" class="ref">HttpParseAuth</a>, <a href="#struct_http_role" class="ref">HttpRole</a>, <a href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572" class="ref">HttpSetAuth</a>, <a href="#struct_http_user" class="ref">HttpUser</a>, <a href="#group___http_auth_1ga45bc2a7e2f94d716a02e9be574c70b85" class="ref">httpAddAuthStore</a>, <a href="#group___http_auth_1ga8bedb88f456b5d781ec40766c075bf5d" class="ref">httpAddAuthType</a>, <a href="#group___http_auth_1ga817c321a931cb42635e628b60c99b67a" class="ref">httpAddRole</a>, <a href="#group___http_auth_1ga736054573c6dbbd1c834264155dab253" class="ref">httpAddUser</a>, <a href="#group___http_auth_1gafff6e3bcbaf04802a09aab292bbe9760" class="ref">httpCanUser</a>, <a href="#group___http_auth_1gac6f7bac3b10aae27334e40c6ba1d50f3" class="ref">httpComputeAllUserAbilities</a>, <a href="#group___http_auth_1ga88c540df406da40a20f77d7d7d089c8b" class="ref">httpComputeUserAbilities</a>, <a href="#group___http_auth_1ga9b67b82baec4f1a4fd9d17d8a25e0d07" class="ref">httpCreateAuth</a>, <a href="#group___http_auth_1ga880fa20529b90237898ad1d9bbc434a5" class="ref">httpCreateRole</a>, <a href="#group___http_auth_1ga68bce2a5bdd8905a120c418104a8a270" class="ref">httpCreateUser</a>, <a href="#group___http_auth_1ga0858b254138c27234d8ab0fccba459ad" class="ref">httpIsAuthenticated</a>, <a href="#group___http_auth_1ga3f7a2b88d4f779e6df86ebf658a6eec3" class="ref">httpLogin</a>, <a href="#group___http_auth_1gac4f5313df3a2b59227b861b8be616319" class="ref">httpRemoveRole</a>, <a href="#group___http_auth_1ga401567ded11d00adf55087b78ed45757" class="ref">httpRemoveUser</a>, <a href="#group___http_auth_1gabf2b0674a9842fedd01ecd6048c89388" class="ref">httpSetAuthAllow</a>, <a href="#group___http_auth_1ga1e3860c07cf1b53066349912ba604c11" class="ref">httpSetAuthAnyValidUser</a>, <a href="#group___http_auth_1gae576cd7f63ccda3ec204f8dc215d6191" class="ref">httpSetAuthAutoLogin</a>, <a href="#group___http_auth_1ga46484036ce6079882051e393d7f2e655" class="ref">httpSetAuthDeny</a>, <a href="#group___http_auth_1gaaf0ae0b82b673a187c18da4e864cc19a" class="ref">httpSetAuthForm</a>, <a href="#group___http_auth_1gaca051ee0de660c150b2fe37572cb8526" class="ref">httpSetAuthOrder</a>, <a href="#group___http_auth_1ga19171e8760e89aa482673959b3d60938" class="ref">httpSetAuthPermittedUsers</a>, <a href="#group___http_auth_1ga9695c6e6ecdafb77dd70b192edbddcd5" class="ref">httpSetAuthQop</a>, <a href="#group___http_auth_1gaf068156faee2f2be74fe08455a715187" class="ref">httpSetAuthRealm</a>, <a href="#group___http_auth_1ga8d095857a74b8786bd83f9e3aa4fb6ab" class="ref">httpSetAuthRequiredAbilities</a>, <a href="#group___http_auth_1ga9edb29a658e66f66df80100308a1aa73" class="ref">httpSetAuthStore</a>, <a href="#group___http_auth_1gaef35c77fbe3aab1e8c0b85e77cb0e377" class="ref">httpSetAuthType</a></dd></dl>
</div>
</div>
<a name="group___http_conn_1ga2e2bbf16b2266d475a349187e735827d"></a>
<div class="api">
<div class="prototype">
typedef void(* HttpEnvCallback)(struct HttpConn *conn).
</div>
<div class="apiDetail">
<p>Set environment vars callback.</p>
Invoked per request to permit custom form var definition
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" cl
</div>
</div>
<a name="group___http_conn_1gaf11f6724913441eab0f9c8a6e139569e"></a>
<div class="api">
<div class="prototype">
typedef int(* HttpHeadersCallback)(void *arg).
</div>
<div class="apiDetail">
<p>Callback to fill headers.</p>
<dl><dt><b>Description</b>:</dt><dd>If defined, the headers callback will run before the standard response headers are generated. This gives an opportunity to pre-populate the response headers.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">arg</td><td>Argument provided to httpSetHeadersCallback when the callback was established.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1ga90233a1163fa6772c60c86588b01e803"></a>
<div class="api">
<div class="prototype">
typedef void(* HttpIOCallback)(struct HttpConn *conn, MprEvent *event).
</div>
<div class="apiDetail">
<p>I/O callback for connections.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">event</td><td>Event object describing the I/O event.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3"></a>
<div class="api">
<div class="prototype">
typedef int(* HttpListenCallback)(struct HttpEndpoint *endpoint).
</div>
<div class="apiDetail">
<p>Listen callback.</p>
Invoked after listening on a socket endpoint
<dl><dt>Returns:</dt><dd>&quot;Zero&quot; if the listening endpoint can be opened for service. Otherwise, return a negative MPR error code.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" class
</div>
</div>
<a name="group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb"></a>
<div class="api">
<div class="prototype">
typedef void(* HttpNotifier)(struct HttpConn *conn, int event, int arg).
</div>
<div class="apiDetail">
<p>Connection Http state change notification callback.</p>
<dl><dt><b>Description</b>:</dt><dd>The notifier callback is invoked for state changes and I/O events. A user notifier function can respond to these events with any desired custom code. There are four valid event types: <ul><li>HTTP_EVENT_STATE. The connection object has changed state. See conn-&gt;state. </li><li>HTTP_EVENT_READABLE. The input queue has I/O to read. See conn-&gt;readq. Use <a class="ref" href="#group___http_rx_1gad0b2d6713dd793d832e822fa9f9852ff">httpRead</a> to read the data. For WebSockets, use <a class="ref" href="#group___http_queue_1ga289893521c40788edc06280530167a85">httpGetPacket</a>. </li><li>HTTP_EVENT_WRITABLE. The output queue is now writable. </li><li>HTTP_EVENT_ERROR. The connection or request has an error. </li></ul></dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">event</td><td>Http state.</td>
<tr><td class="param">arg</td><td>Per-event information.</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c"
</div>
</div>
<a name="group___http_conn_1ga92e83045579e22719e2092667dd97bd8"></a>
<div class="api">
<div class="prototype">
typedef cchar*(* HttpRedirectCallback)(struct HttpConn *conn, int *code, struct HttpUri *uri).
</div>
<div class="apiDetail">
<p>Define an callback for IO events on this connection.</p>
<dl><dt><b>Description</b>:</dt><dd>The event callback will be invoked in response to I/O events.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
<tr><td class="param">fn</td><td>Callback function.</td>
<tr><td class="param">arg</td><td>Data argument to provide to the callback function.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The redirected URI string to use.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class="ref">httpSetConnNotifier</a>, <a href="#group___http_conn_1gad6a93d697a3ae0fcba2ef78579fecf3c" class="
</div>
</div>
<a name="group___http_conn_1ga742ae2f2bdc26e0c841da4f692ef25e6"></a>
<div class="api">
<div class="prototype">
typedef void(* HttpTimeoutCallback)(struct HttpConn *conn).
</div>
<div class="apiDetail">
<p>Timeout callback.</p>
<dl><dt><b>Description</b>:</dt><dd>The timeout callback for the request inactivity and duration timeouts.</dd></dl>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa">httpCreateConn</a></td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_conn" class="ref">HttpConn</a>, <a href="#group___http_conn_1ga2e2bbf16b2266d475a349187e735827d" class="ref">HttpEnvCallback</a>, <a href="#group___http_conn_1ga4d060d366219e2deac858ac50ee5f7f3" class="ref">HttpListenCallback</a>, <a href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_conn_1ga92e83045579e22719e2092667dd97bd8" class="ref">HttpRedirectCallback</a>, <a href="#group___http_rx" class="ref">HttpRx</a>, <a href="#group___http_stage" class="ref">HttpStage</a>, <a href="#group___http_tx" class="ref">HttpTx</a>, <a href="#group___http_conn_1ga5db87311f54d073407479bcee8f195b7" class="ref">httpAfterEvent</a>, <a href="#group___http_conn_1ga79c3904ac79edd205ceb769cc7a9b14f" class="ref">httpCallEvent</a>, <a href="#group___http_conn_1ga6072cd1886d95bf7d4c7e5953ca1d14f" class="ref">httpCloseConn</a>, <a href="#group___http_conn_1ga4036c3e7d17f9757a3fa83a91de54629" class="ref">httpConnTimeout</a>, <a href="#group___http_conn_1ga0523a9be63f479ce193073c1de0b1cfa" class="ref">httpCreateConn</a>, <a href="#group___http_conn_1ga5dc8b0a31873a12c7661e16ca8769d66" class="ref">httpCreateRxPipeline</a>, <a href="#group___http_conn_1ga41b6211f9fc174ea4e70281363696722" class="ref">httpCreateTxPipeline</a>, <a href="#group___http_conn_1gab86627c7d6a6e9b513f54cbf01c56ab9" class="ref">httpDestroyConn</a>, <a href="#group___http_conn_1gaee426d7d2aaad28a62b4d8bb0c909a37" class="ref">httpDestroyPipeline</a>, <a href="#group___http_conn_1ga95daeb1c8a91b734ed2027592c41f17f" class="ref">httpDiscardData</a>, <a href="#group___http_conn_1ga1051c82d629ad9f36daa48746398ed2b" class="ref">httpDisconnect</a>, <a href="#group___http_conn_1gab8bf67adeb5cf8484998dd818f98e9c0" class="ref">httpEnableUpload</a>, <a href="#group___http_conn_1ga9f730354501b53a97b7678a91273a3be" class="ref">httpError</a>, <a href="#group___http_conn_1ga11f9e50765d2cc174c40aa50d378eeaf" class="ref">httpEvent</a>, <a href="#group___http_conn_1gacfcd2c95c8988e79c314d0b336857e90" class="ref">httpFinalizeConnector</a>, <a href="#group___http_conn_1gaf9174526ff9a050731b6949351085ba9" class="ref">httpGetAsync</a>, <a href="#group___http_conn_1ga450dd7b36119bc30ee4060d5916deb31" class="ref">httpGetChunkSize</a>, <a href="#group___http_conn_1ga1b290e206ee150c531a0bee0e8dece5d" class="ref">httpGetConnContext</a>, <a href="#group___http_conn_1ga7c1aa954d3f4c1b09cebb2a46c6ef42a" class="ref">httpGetConnHost</a>, <a href="#group___http_conn_1ga62003481a3b7f89618f1bd5f2c19016e" class="ref">httpGetError</a>, <a href="#group___http_conn_1ga1f813846717d49e0cde05f8a196fcf61" class="ref">httpGetExt</a>, <a href="#group___http_conn_1gaa2099f58db09458014bab94511635438" class="ref">httpGetKeepAliveCount</a>, <a href="#group___http_conn_1ga50c5f8d87dd5ada21612f28d2d6fd782" class="ref">httpGetMoreOutput</a>, <a href="#group___http_conn_1ga00caa53532192c9e3f7bedb51ab77aca" class="ref">httpGetWriteQueueCount</a>, <a href="#group___http_conn_1ga989b6ee0325e432a5aa86f288fce23d0" class="ref">httpMatchHost</a>, <a href="#group___http_conn_1ga375dce8ba63d90a2fb4e8eb573b52366" class="ref">httpMemoryError</a>, <a href="#group___http_conn_1gae24ec30899bb6b77e4840e6090aa2289" class="ref">httpPrepClientConn</a>, <a href="#group___http_conn_1gafc31fb0e49b2f9ecad11297fe6a3d616" class="ref">httpResetCredentials</a>, <a href="#group___http_conn_1ga38b4d85fd8306384270ad7385bdd3fe4" class="ref">httpRouteRequest</a>, <a href="#group___http_conn_1ga167b27caf19d14a614670451fd3ef921" class="ref">httpServiceQueues</a>, <a href="#group___http_conn_1ga16da6b1da5602c6a7c249669a48da4dc" class="ref">httpSetAsync</a>, <a href="#group___http_conn_1ga5340e1fa6a075c9c2fe98c0aae8b83a7" class="ref">httpSetChunkSize</a>, <a href="#group___http_conn_1ga39282985fac34e40c0497453463a6fa0" class="ref">httpSetConnContext</a>, <a href="#group___http_conn_1gab61d7700aca88dca556c6a128bb7c9f8" class="ref">httpSetConnHost</a>, <a href="#group___http_conn_1ga6c39eab8e8b50e632f7e5620fce05318" class=
</div>
</div>
<a name="group___http_packet_1gab3ccaf14fc20ba8e592a2ea3a54ab900"></a>
<div class="api">
<div class="prototype">
typedef ssize(* HttpFillProc)(struct HttpQueue *q, struct HttpPacket *packet, MprOff pos, ssize size).
</div>
<div class="apiDetail">
<p>Callback procedure to fill a packet with data.</p>
<dl><dt>Parameters:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">q</td><td>Queue owning the packet.</td>
<tr><td class="param">packet</td><td>The packet to fill.</td>
<tr><td class="param">off</td><td>Offset in the packet to fill with data.</td>
<tr><td class="param">size</td><td>Size of packet from the offset to fill.</td>
</table></dd></dl>
<dl><dt>Returns:</dt><dd>The number of bytes copied into the packet.</dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_packet" class="ref">HttpPacket</a>, <a href="#group___http_queue" class="ref">HttpQueue</a>, <a href="#group___http_packet_1ga985c3c56f728ce5fa706bbd24021f190" class="ref">httpAdjustPacketEnd</a>, <a href="#group___http_packet_1gaa4276acfac070e26923c69125baf4959" class="ref">httpAdjustPacketStart</a>, <a href="#group___http_packet_1ga58a9502d7353a0cc11d43a5881d562cc" class="ref">httpClonePacket</a>, <a href="#group___http_packet_1gad491733e89bee8b1b64b47fa0e798931" class="ref">httpCreateDataPacket</a>, <a href="#group___http_packet_1ga5dd04a1c7f834f9acb5aa74488da5aad" class="ref">httpCreateEndPacket</a>, <a href="#group___http_packet_1ga5af4bd1a1d534e61d11ed1753c5f4a67" class="ref">httpCreateEntityPacket</a>, <a href="#group___http_packet_1ga24b80ddbcd324b10ac430c4465823190" class="ref">httpCreateHeaderPacket</a>, <a href="#group___http_packet_1ga736f27036a2f3752bc3aa5580f75eef7" class="ref">httpCreatePacket</a>, <a href="#group___http_queue_1ga289893521c40788edc06280530167a85" class="ref">httpGetPacket</a>, <a href="#group___http_packet_1ga76c32ea617916aed4174ef232df26fc3" class="ref">httpGetPacketLength</a>, <a href="#group___http_packet_1gaa25ed1b46cc6df6db57bc4abd2813774" class="ref">httpIsLastPacket</a>, <a href="#group___http_packet_1ga6c9a2e1da5b57252b7cf2e1958dcdc96" class="ref">httpJoinPacket</a>, <a href="#group___http_queue_1ga8bdb0b39ec10ee344c8e65179800836b" class="ref">httpPutBackPacket</a>, <a href="#group___http_queue_1ga34d9cc6e8919398d18a1359ae72a821c" class="ref">httpPutForService</a>, <a href="#group___http_queue_1gac4ad79496f9054044a6c999384669d6a" class="ref">httpPutPacket</a>, <a href="#group___http_queue_1ga15c957cd47313affb413d681767a4763" class="ref">httpPutPacketToNext</a>, <a href="#group___http_packet_1ga99ecd872c756327114f8470650da5af9" class="ref">httpSplitPacket</a></dd></dl>
</div>
</div>
<a name="struct_http_auth_store"></a>
<div class="api">
<div class="prototype">HttpAuthStore</div>
<div class="apiDetail">
<p>Password backend store.</p>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">char *</td><td><td>name</td><td>
Authentication password store name: &apos;system&apos;, &apos;file&apos;.
</td>
</table></dd></dl>
</div>
</div>
<a name="struct_http_auth_type"></a>
<div class="api">
<div class="prototype">HttpAuthType</div>
<div class="apiDetail">
<p>Authentication Protocol.</p>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param"><a class="ref" href="#group___http_auth_1gae7a912f0cf523519e08eee96c8b48d78">HttpAskLogin</a></td><td><td>askLogin</td><td>
Callback to generate a client login response.
</td>
<tr><td class="param">char *</td><td><td>name</td><td>
Authentication protocol name: &apos;basic&apos;, &apos;digest&apos;, &apos;post&apos;.
</td>
<tr><td class="param"><a class="ref" href="#group___http_auth_1ga1b926452cd86d3c7b5b125bbdcb74ba9">HttpParseAuth</a></td><td><td>parseAuth</td><td>
Callback to parse the HTTP authentication headers.
</td>
<tr><td class="param"><a class="ref" href="#group___http_auth_1ga9cbfc016784b5bad7de3e889265db572">HttpSetAuth</a></td><td><td>setAuth</td><td>
Callback to set the HTTP response authentication headers.
</td>
</table></dd></dl>
</div>
</div>
<a name="struct_http_lang"></a>
<div class="api">
<div class="prototype">HttpLang</div>
<div class="apiDetail">
<p>Language definition record for routes.</p>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">int</td><td><td>flags</td><td>
Control suffix position.
</td>
<tr><td class="param">char *</td><td><td>path</td><td>
Document directory for the language.
</td>
<tr><td class="param">char *</td><td><td>suffix</td><td>
Suffix to add to filenames.
</td>
</table></dd></dl>
</div>
</div>
<a name="struct_http_role"></a>
<div class="api">
<div class="prototype">HttpRole</div>
<div class="apiDetail">
<p>Authorization Roles.</p>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth" class="ref">HttpAuth</a></dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>abilities</td><td>
Role&apos;s abilities.
</td>
<tr><td class="param">char *</td><td><td>name</td><td>
Role name.
</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
</div>
</div>
<a name="struct_http_route_op"></a>
<div class="api">
<div class="prototype">HttpRouteOp</div>
<div class="apiDetail">
<p>Route operation record.</p>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param">char *</td><td><td>details</td><td>
General route operation details.
</td>
<tr><td class="param">int</td><td><td>flags</td><td>
Route flags to control freeing mdata.
</td>
<tr><td class="param">void *</td><td><td>mdata</td><td>
pcre_ data managed by malloc().
</td>
<tr><td class="param">char *</td><td><td>name</td><td>
Name of route operation.
</td>
<tr><td class="param">char *</td><td><td>value</td><td>
Value to assign to var.
</td>
<tr><td class="param">char *</td><td><td>var</td><td>
Var to set.
</td>
</table></dd></dl>
</div>
</div>
<a name="struct_http_user"></a>
<div class="api">
<div class="prototype">HttpUser</div>
<div class="apiDetail">
<p>User Authorization.</p>
<dl><dt>See Also:</dt><dd>
<a href="#group___http_auth" class="ref">HttpAuth</a></dd></dl>
<dl><dt>Fields:</dt><dd>
<table class="parameters" title="Parameters">
<tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>abilities</td><td>
User abilities.
</td>
<tr><td class="param">char *</td><td><td>name</td><td>
User name.
</td>
<tr><td class="param">char *</td><td><td>password</td><td>
User password.
</td>
<tr><td class="param">char *</td><td><td>roles</td><td>
Original list of roles.
</td>
</table></dd></dl>
<dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
</div>
</div>