Sophie

Sophie

distrib > Fedora > 20 > x86_64 > media > updates > by-pkgid > c579c38484b8ffa244858626df1128ca > files > 240

libhtp-doc-0.5.6-3.fc20.noarch.rpm

\hypertarget{htp__private_8h}{\section{htp\-\_\-private.\-h File Reference}
\label{htp__private_8h}\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}}
}
{\ttfamily \#include $<$ctype.\-h$>$}\\*
{\ttfamily \#include $<$errno.\-h$>$}\\*
{\ttfamily \#include $<$iconv.\-h$>$}\\*
{\ttfamily \#include $<$inttypes.\-h$>$}\\*
{\ttfamily \#include $<$stdarg.\-h$>$}\\*
{\ttfamily \#include $<$stdio.\-h$>$}\\*
{\ttfamily \#include $<$stdlib.\-h$>$}\\*
{\ttfamily \#include $<$unistd.\-h$>$}\\*
{\ttfamily \#include \char`\"{}htp.\-h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}htp\-\_\-config\-\_\-private.\-h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}htp\-\_\-connection\-\_\-parser\-\_\-private.\-h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}htp\-\_\-connection\-\_\-private.\-h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}htp\-\_\-list\-\_\-private.\-h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}htp\-\_\-multipart\-\_\-private.\-h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}htp\-\_\-table\-\_\-private.\-h\char`\"{}}\\*
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{htp__private_8h_a876ce77f3c672c7162658151e648389e}{C\-R}~'\textbackslash{}r'
\item 
\#define \hyperlink{htp__private_8h_a350c9d6cb81908d59427ee96844d1a9c}{L\-F}~'\textbackslash{}n'
\item 
\#define \hyperlink{htp__private_8h_a29c67bed9658016a901d99d71011700a}{H\-T\-P\-\_\-\-F\-I\-E\-L\-D\-\_\-\-L\-I\-M\-I\-T\-\_\-\-H\-A\-R\-D}~18000
\item 
\#define \hyperlink{htp__private_8h_a4fd5c36dacc1521d41f9e4955038da0a}{H\-T\-P\-\_\-\-F\-I\-E\-L\-D\-\_\-\-L\-I\-M\-I\-T\-\_\-\-S\-O\-F\-T}~9000
\item 
\#define \hyperlink{htp__private_8h_ace800f6da4de3bb31504180690d743e0}{H\-T\-P\-\_\-\-V\-A\-L\-I\-D\-\_\-\-S\-T\-A\-T\-U\-S\-\_\-\-M\-I\-N}~100
\item 
\#define \hyperlink{htp__private_8h_ae96c608f3d54bc3d2c24fc99cbede431}{H\-T\-P\-\_\-\-V\-A\-L\-I\-D\-\_\-\-S\-T\-A\-T\-U\-S\-\_\-\-M\-A\-X}~999
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_ae4a3e37c2a1e728db9f80cca8e53c6fa}{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-I\-D\-L\-E} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_acfb131d9a3925c753f4beffad0f07e84}{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-L\-I\-N\-E} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a801f66183cf5693361eca92d66607314}{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-P\-R\-O\-T\-O\-C\-O\-L} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_af7b83f68a53afa0a16e0d78300b63a46}{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-H\-E\-A\-D\-E\-R\-S} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a3e8c194c19ebdaaa21fe107e328e3a75}{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-C\-O\-N\-N\-E\-C\-T\-\_\-\-C\-H\-E\-C\-K} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_ac6178cc04104e5e5e469489f5e77c04d}{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-C\-O\-N\-N\-E\-C\-T\-\_\-\-W\-A\-I\-T\-\_\-\-R\-E\-S\-P\-O\-N\-S\-E} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_ad207aff5c7e4a68d2a539ffd9e3fd623}{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-D\-E\-T\-E\-R\-M\-I\-N\-E} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_aa5ab1e26414167266d8d0b98eb712723}{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a78975b59c610a8b5cd834b6c7ad7524b}{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-L\-E\-N\-G\-T\-H} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_ac07a4f5062908c573d2b78f6f3ddc743}{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a24a112bbe8db96d22a8d421a6ea6ac74}{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A\-\_\-\-E\-N\-D} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a2702260435d65d58ff1ef824cfdc1091}{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-F\-I\-N\-A\-L\-I\-Z\-E} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a984918ce8cdd5c6d42c74294a1c7cc18}{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-I\-G\-N\-O\-R\-E\-\_\-\-D\-A\-T\-A\-\_\-\-A\-F\-T\-E\-R\-\_\-\-H\-T\-T\-P\-\_\-0\-\_\-9} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a1b95d113c24de4c93db72889c738275d}{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-I\-D\-L\-E} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a45043cdc1b581e62abbf2423be76ea2a}{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-L\-I\-N\-E} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a92faf3d17df2d54dd67bd7fbe80fb525}{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-H\-E\-A\-D\-E\-R\-S} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a5bf0430de9af721db6e03c90ec63adf6}{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-D\-E\-T\-E\-R\-M\-I\-N\-E} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a35978034dd65239e911dd33f7c751332}{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y\-\_\-\-C\-L\-\_\-\-K\-N\-O\-W\-N} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a2c9732ce72c12038353a4483475e180c}{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y\-\_\-\-S\-T\-R\-E\-A\-M\-\_\-\-C\-L\-O\-S\-E} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_ab601564fadb2bb9ff37cd75b448a03d7}{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-L\-E\-N\-G\-T\-H} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_ae160ab80f3c9d3c3aad67b7a34a498ab}{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a028530726a98edc10fc5adf8a050b349}{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A\-\_\-\-E\-N\-D} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a779958ef7d3b3742be8b13170c0a8977}{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-F\-I\-N\-A\-L\-I\-Z\-E} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a02add732118572070ba289abd8a4cd66}{htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-generic} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a53bf758c818ba5d2554eba3ba380fb36}{htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-generic\-\_\-ex} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp, int nul\-\_\-terminates)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a942dcbfae19b6ceb5c070cb84dc50bce}{htp\-\_\-parse\-\_\-request\-\_\-header\-\_\-generic} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp, \hyperlink{structhtp__header__t}{htp\-\_\-header\-\_\-t} $\ast$h, unsigned char $\ast$data, size\-\_\-t len)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a4a3399cfc120ef7bc532821f41bbc7e0}{htp\-\_\-process\-\_\-request\-\_\-header\-\_\-generic} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$, unsigned char $\ast$data, size\-\_\-t len)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a84210ba8a498e578ab7f99914911b8e5}{htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-apache\-\_\-2\-\_\-2} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a56dfd3147fee6124ab7c7a1e58b5ff27}{htp\-\_\-process\-\_\-request\-\_\-header\-\_\-apache\-\_\-2\-\_\-2} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$, unsigned char $\ast$data, size\-\_\-t len)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a94a11f3a575e297f071076f396fe3117}{htp\-\_\-parse\-\_\-response\-\_\-line\-\_\-generic} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_acbf864cbe06ef50937cb271c79261d18}{htp\-\_\-parse\-\_\-response\-\_\-header\-\_\-generic} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp, \hyperlink{structhtp__header__t}{htp\-\_\-header\-\_\-t} $\ast$h, unsigned char $\ast$data, size\-\_\-t len)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a7c9e1963cfe2008b92889c5e1e4f0bb1}{htp\-\_\-process\-\_\-response\-\_\-header\-\_\-generic} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp, unsigned char $\ast$data, size\-\_\-t len)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a76675e7e250e24c1ac47c49b4181aff8}{htp\-\_\-tx\-\_\-state\-\_\-response\-\_\-complete\-\_\-ex} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx, int hybrid\-\_\-mode)
\item 
int \hyperlink{htp__private_8h_ad43c81727dd2888a32e4fc692b472249}{htp\-\_\-convert\-\_\-method\-\_\-to\-\_\-number} (\hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$)
\item 
int \hyperlink{htp__private_8h_a01068fcd4418a90ea81a2ad5e4eb8c81}{htp\-\_\-is\-\_\-lws} (int c)
\item 
int \hyperlink{htp__private_8h_a238c39a6d7fd7f35735f9c97a1b2aa66}{htp\-\_\-is\-\_\-separator} (int c)
\item 
int \hyperlink{htp__private_8h_acd9999e11e39f8434023b786416fdc43}{htp\-\_\-is\-\_\-text} (int c)
\item 
int \hyperlink{htp__private_8h_a7a0e47fdda476b38045a7d3406fb51ee}{htp\-\_\-is\-\_\-token} (int c)
\item 
int \hyperlink{htp__private_8h_aa5e02fbff064b8409e1307bd30fffab8}{htp\-\_\-chomp} (unsigned char $\ast$data, size\-\_\-t $\ast$len)
\item 
int \hyperlink{htp__private_8h_a8154aaa13d12e1fea9b066e0881bd125}{htp\-\_\-is\-\_\-space} (int c)
\item 
int \hyperlink{htp__private_8h_a237aaf4069198820e21015a9efb28ed6}{htp\-\_\-parse\-\_\-protocol} (\hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$protocol)
\item 
int \hyperlink{htp__private_8h_aa515e1e25cc42162e95469b4d6c575c9}{htp\-\_\-is\-\_\-line\-\_\-empty} (unsigned char $\ast$data, size\-\_\-t len)
\item 
int \hyperlink{htp__private_8h_a8b599459708fac234b83e8d8fe58b258}{htp\-\_\-is\-\_\-line\-\_\-whitespace} (unsigned char $\ast$data, size\-\_\-t len)
\item 
int \hyperlink{htp__private_8h_a6328d9ce315c36afc0a3396f28b482a5}{htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-folded} (unsigned char $\ast$data, size\-\_\-t len)
\item 
int \hyperlink{htp__private_8h_a9e2d1a484a0504ed6475a9d89a6608a3}{htp\-\_\-is\-\_\-folding\-\_\-char} (int c)
\item 
int \hyperlink{htp__private_8h_a90ec198a62babe0db3d63024ec9d5118}{htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-terminator} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp, unsigned char $\ast$data, size\-\_\-t len)
\item 
int \hyperlink{htp__private_8h_a1497c1d24aca2e016fc04475d48616c7}{htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-ignorable} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp, unsigned char $\ast$data, size\-\_\-t len)
\item 
int \hyperlink{htp__private_8h_a330b435a16a1f366eed76bf7b7bddba6}{htp\-\_\-parse\-\_\-uri} (\hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$input, \hyperlink{structhtp__uri__t}{htp\-\_\-uri\-\_\-t} $\ast$$\ast$uri)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_aedc19799e102c068dfce83c4ccd0961a}{htp\-\_\-parse\-\_\-hostport} (\hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$authority, \hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$$\ast$hostname, int $\ast$port, int $\ast$invalid)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a145d256c0c6a6fff2bfb3dbb02ae656b}{htp\-\_\-parse\-\_\-header\-\_\-hostport} (\hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$authority, \hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$$\ast$hostname, int $\ast$port, uint64\-\_\-t $\ast$flags)
\item 
int \hyperlink{htp__private_8h_a31cca701d490472a8cdb778a6c0e6560}{htp\-\_\-validate\-\_\-hostname} (\hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$hostname)
\item 
int \hyperlink{htp__private_8h_a8fbfa6b24b1c5ffb1f1d9de3d3834c6c}{htp\-\_\-parse\-\_\-uri\-\_\-hostport} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp, \hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$input, \hyperlink{structhtp__uri__t}{htp\-\_\-uri\-\_\-t} $\ast$uri)
\item 
int \hyperlink{htp__private_8h_a0b18b82f32e1f78aede068a2aafc4632}{htp\-\_\-normalize\-\_\-parsed\-\_\-uri} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx, \hyperlink{structhtp__uri__t}{htp\-\_\-uri\-\_\-t} $\ast$parsed\-\_\-uri\-\_\-incomplete, \hyperlink{structhtp__uri__t}{htp\-\_\-uri\-\_\-t} $\ast$parsed\-\_\-uri)
\item 
\hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$ \hyperlink{htp__private_8h_a7e8991ba87da71aa0b14c2955da46b25}{htp\-\_\-normalize\-\_\-hostname\-\_\-inplace} (\hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$input)
\item 
void \hyperlink{htp__private_8h_a68a568e948b5a609fb4900152498142b}{htp\-\_\-replace\-\_\-hostname} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp, \hyperlink{structhtp__uri__t}{htp\-\_\-uri\-\_\-t} $\ast$parsed\-\_\-uri, \hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$hostname)
\item 
int \hyperlink{htp__private_8h_ae7cca7a4e5e553b0a1da8d305dd7bae6}{htp\-\_\-is\-\_\-uri\-\_\-unreserved} (unsigned char c)
\item 
int \hyperlink{htp__private_8h_a854ce501c5216103458afecdadb82d0b}{htp\-\_\-decode\-\_\-path\-\_\-inplace} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx, \hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$path)
\item 
void \hyperlink{htp__private_8h_af2d18313ab65aaed7a524b589369912c}{htp\-\_\-uriencoding\-\_\-normalize\-\_\-inplace} (\hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$s)
\item 
int \hyperlink{htp__private_8h_a35a353bcc0a6c767d5f2880b9707ebf2}{htp\-\_\-prenormalize\-\_\-uri\-\_\-path\-\_\-inplace} (\hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$s, int $\ast$flags, int case\-\_\-insensitive, int backslash, int decode\-\_\-separators, int remove\-\_\-consecutive)
\item 
void \hyperlink{htp__private_8h_ae3b688cf78f951a218afde6d2bb3b763}{htp\-\_\-normalize\-\_\-uri\-\_\-path\-\_\-inplace} (\hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$s)
\item 
void \hyperlink{htp__private_8h_ac19fd0827df78d7618a6360a0a9e2ac2}{htp\-\_\-utf8\-\_\-decode\-\_\-path\-\_\-inplace} (\hyperlink{structhtp__cfg__t}{htp\-\_\-cfg\-\_\-t} $\ast$cfg, \hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx, \hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$path)
\item 
void \hyperlink{htp__private_8h_a75ad702e0957be72f80dc27900f83ec7}{htp\-\_\-utf8\-\_\-validate\-\_\-path} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx, \hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$path)
\item 
int64\-\_\-t \hyperlink{htp__private_8h_a50d9fb619fe71bfee3ab812d96ba0b6c}{htp\-\_\-parse\-\_\-content\-\_\-length} (\hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$b)
\item 
int64\-\_\-t \hyperlink{htp__private_8h_abe97fa5fa00905db42afe94366adcc6a}{htp\-\_\-parse\-\_\-chunked\-\_\-length} (unsigned char $\ast$data, size\-\_\-t len)
\item 
int64\-\_\-t \hyperlink{htp__private_8h_ae73f7889b2bec1d7c2605c154cc4ecda}{htp\-\_\-parse\-\_\-positive\-\_\-integer\-\_\-whitespace} (unsigned char $\ast$data, size\-\_\-t len, int base)
\item 
int \hyperlink{htp__private_8h_a2ad81779ba8a5a89d48455078d5aedc9}{htp\-\_\-parse\-\_\-status} (\hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$status)
\item 
int \hyperlink{htp__private_8h_a0ce81b909ad3720c21dc675f35b95767}{htp\-\_\-parse\-\_\-authorization\-\_\-digest} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp, \hyperlink{structhtp__header__t}{htp\-\_\-header\-\_\-t} $\ast$auth\-\_\-header)
\item 
int \hyperlink{htp__private_8h_a83f1fbe81d55cb3ef6402bc069b5baca}{htp\-\_\-parse\-\_\-authorization\-\_\-basic} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp, \hyperlink{structhtp__header__t}{htp\-\_\-header\-\_\-t} $\ast$auth\-\_\-header)
\item 
void \hyperlink{htp__private_8h_ac27d9ef825468ab08cf316b9b527a8cc}{htp\-\_\-print\-\_\-log} (F\-I\-L\-E $\ast$stream, \hyperlink{structhtp__log__t}{htp\-\_\-log\-\_\-t} $\ast$log)
\item 
void \hyperlink{htp__private_8h_a1dfe07ee3d981b6bfaaf6c88d01224b0}{fprint\-\_\-bstr} (F\-I\-L\-E $\ast$stream, const char $\ast$name, \hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$b)
\item 
void \hyperlink{htp__private_8h_a0ec8330cb428004d467f69e7c6acdb84}{fprint\-\_\-raw\-\_\-data} (F\-I\-L\-E $\ast$stream, const char $\ast$name, const void $\ast$data, size\-\_\-t len)
\item 
void \hyperlink{htp__private_8h_a9bd7382b55286e62a10aac00bc630af1}{fprint\-\_\-raw\-\_\-data\-\_\-ex} (F\-I\-L\-E $\ast$stream, const char $\ast$name, const void $\ast$data, size\-\_\-t offset, size\-\_\-t len)
\item 
char $\ast$ \hyperlink{htp__private_8h_a81fca26cac57032120c6796bda2a660c}{htp\-\_\-connp\-\_\-in\-\_\-state\-\_\-as\-\_\-string} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
char $\ast$ \hyperlink{htp__private_8h_af31ead38ae0851c906b72d93d9a29d5a}{htp\-\_\-connp\-\_\-out\-\_\-state\-\_\-as\-\_\-string} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
char $\ast$ \hyperlink{htp__private_8h_a7745dfd28ae341b34cde2bb1f333b1b8}{htp\-\_\-tx\-\_\-request\-\_\-progress\-\_\-as\-\_\-string} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx)
\item 
char $\ast$ \hyperlink{htp__private_8h_a9469285f23ba429b8358c9385ccd6eef}{htp\-\_\-tx\-\_\-response\-\_\-progress\-\_\-as\-\_\-string} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx)
\item 
\hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$ \hyperlink{htp__private_8h_a556b54577b8787f15a9d98955ba6b1a7}{htp\-\_\-unparse\-\_\-uri\-\_\-noencode} (\hyperlink{structhtp__uri__t}{htp\-\_\-uri\-\_\-t} $\ast$uri)
\item 
int \hyperlink{htp__private_8h_a989808ba8cacae96e9c5e0e052a73a3c}{htp\-\_\-treat\-\_\-response\-\_\-line\-\_\-as\-\_\-body} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_ae9186694fa6cb9d4985d3c66698f0968}{htp\-\_\-req\-\_\-run\-\_\-hook\-\_\-body\-\_\-data} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp, \hyperlink{structhtp__tx__data__t}{htp\-\_\-tx\-\_\-data\-\_\-t} $\ast$d)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_aa60cc60143dfb38260549c4df5219727}{htp\-\_\-res\-\_\-run\-\_\-hook\-\_\-body\-\_\-data} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp, \hyperlink{structhtp__tx__data__t}{htp\-\_\-tx\-\_\-data\-\_\-t} $\ast$d)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a4e9f7160e5042d277db88170780998dd}{htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-body\-\_\-data} (\hyperlink{structhtp__tx__data__t}{htp\-\_\-tx\-\_\-data\-\_\-t} $\ast$d)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_ac4a784badfbaddb77f6f6e1582fee11e}{htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-headers} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a2ad3aba77f1ebdcc30f1dea10068386f}{htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-line} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a7ec64e252d77945deded415a91bae392}{htp\-\_\-ch\-\_\-multipart\-\_\-callback\-\_\-request\-\_\-body\-\_\-data} (\hyperlink{structhtp__tx__data__t}{htp\-\_\-tx\-\_\-data\-\_\-t} $\ast$d)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a5828725587fa5f395faa80e7d2059194}{htp\-\_\-ch\-\_\-multipart\-\_\-callback\-\_\-request\-\_\-headers} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_aa2d2ad08d21713822f1d32dc58881caf}{htp\-\_\-php\-\_\-parameter\-\_\-processor} (\hyperlink{structhtp__param__t}{htp\-\_\-param\-\_\-t} $\ast$p)
\item 
int \hyperlink{htp__private_8h_a31718600e56773087712711de6710492}{htp\-\_\-transcode\-\_\-params} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp, \hyperlink{structhtp__table__t}{htp\-\_\-table\-\_\-t} $\ast$$\ast$params, int destroy\-\_\-old)
\item 
int \hyperlink{htp__private_8h_a86a9a18ddecb35422b934bf270bfccbd}{htp\-\_\-transcode\-\_\-bstr} (iconv\-\_\-t cd, \hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$input, \hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$$\ast$output)
\item 
int \hyperlink{htp__private_8h_aa8aeab7a6f7948a8ee81cc37dbcbe28c}{htp\-\_\-parse\-\_\-single\-\_\-cookie\-\_\-v0} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp, unsigned char $\ast$data, size\-\_\-t len)
\item 
int \hyperlink{htp__private_8h_a13fe2f6ba397741dd91abeaafce2c5e6}{htp\-\_\-parse\-\_\-cookies\-\_\-v0} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
int \hyperlink{htp__private_8h_a8acc6c49e7f95eb1cbdf088dc5df9ae4}{htp\-\_\-parse\-\_\-authorization} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a0ca5d553420839786a3102bc3ab3cb80}{htp\-\_\-extract\-\_\-quoted\-\_\-string\-\_\-as\-\_\-bstr} (unsigned char $\ast$data, size\-\_\-t len, \hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$$\ast$out, size\-\_\-t $\ast$endoffset)
\item 
\hyperlink{structhtp__header__t}{htp\-\_\-header\-\_\-t} $\ast$ \hyperlink{htp__private_8h_af27fd03498aa68a9c02ed3f3172cd5c3}{htp\-\_\-connp\-\_\-header\-\_\-parse} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$, unsigned char $\ast$, size\-\_\-t)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a3742fd84a15ebfa867623dd7bf26c0e9}{htp\-\_\-parse\-\_\-ct\-\_\-header} (\hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$header, \hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$$\ast$ct)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_af19c954da72e0921d9e3ae2e79bccfb5}{htp\-\_\-connp\-\_\-req\-\_\-receiver\-\_\-finalize\-\_\-clear} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_aa608348db7f36d05e7cb77790387b279}{htp\-\_\-connp\-\_\-res\-\_\-receiver\-\_\-finalize\-\_\-clear} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a9256c1eaab954ec27241d1ad51067b55}{htp\-\_\-tx\-\_\-finalize} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx)
\item 
int \hyperlink{htp__private_8h_a88c6e5a1d12435394c5bad42cf6fbe5b}{htp\-\_\-tx\-\_\-is\-\_\-complete} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a094a6a35a7a937d160a2785e2e6e3269}{htp\-\_\-tx\-\_\-state\-\_\-request\-\_\-complete\-\_\-partial} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx)
\item 
void \hyperlink{htp__private_8h_ae33f3c887843a95a8a6650ed2c737dc6}{htp\-\_\-connp\-\_\-tx\-\_\-remove} (\hyperlink{structhtp__connp__t}{htp\-\_\-connp\-\_\-t} $\ast$connp, \hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx)
\item 
void \hyperlink{htp__private_8h_a0d9bedcb7fd819340ebd8e8271263191}{htp\-\_\-tx\-\_\-destroy\-\_\-incomplete} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a13e830ded4af725cc7160b1406023d89}{htp\-\_\-tx\-\_\-req\-\_\-process\-\_\-body\-\_\-data\-\_\-ex} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx, const void $\ast$data, size\-\_\-t len)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a219a0b24ed95d84a3fb9ad7c07cac511}{htp\-\_\-tx\-\_\-res\-\_\-process\-\_\-body\-\_\-data\-\_\-ex} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx, const void $\ast$data, size\-\_\-t len)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a14e44933747475b68b36ea4b4ec7f1eb}{htp\-\_\-tx\-\_\-urldecode\-\_\-uri\-\_\-inplace} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx, \hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$input)
\item 
\hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__private_8h_a3290cc3c0233d21dd5c3e8e97883ea18}{htp\-\_\-tx\-\_\-urldecode\-\_\-params\-\_\-inplace} (\hyperlink{structhtp__tx__t}{htp\-\_\-tx\-\_\-t} $\ast$tx, \hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$input)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
\begin{DoxyAuthor}{Author}
Ivan Ristic \href{mailto:ivanr@webkreator.com}{\tt ivanr@webkreator.\-com} 
\end{DoxyAuthor}


\subsection{Macro Definition Documentation}
\hypertarget{htp__private_8h_a876ce77f3c672c7162658151e648389e}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!C\-R@{C\-R}}
\index{C\-R@{C\-R}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{C\-R}]{\setlength{\rightskip}{0pt plus 5cm}\#define C\-R~'\textbackslash{}r'}}\label{htp__private_8h_a876ce77f3c672c7162658151e648389e}
\hypertarget{htp__private_8h_a29c67bed9658016a901d99d71011700a}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!H\-T\-P\-\_\-\-F\-I\-E\-L\-D\-\_\-\-L\-I\-M\-I\-T\-\_\-\-H\-A\-R\-D@{H\-T\-P\-\_\-\-F\-I\-E\-L\-D\-\_\-\-L\-I\-M\-I\-T\-\_\-\-H\-A\-R\-D}}
\index{H\-T\-P\-\_\-\-F\-I\-E\-L\-D\-\_\-\-L\-I\-M\-I\-T\-\_\-\-H\-A\-R\-D@{H\-T\-P\-\_\-\-F\-I\-E\-L\-D\-\_\-\-L\-I\-M\-I\-T\-\_\-\-H\-A\-R\-D}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{H\-T\-P\-\_\-\-F\-I\-E\-L\-D\-\_\-\-L\-I\-M\-I\-T\-\_\-\-H\-A\-R\-D}]{\setlength{\rightskip}{0pt plus 5cm}\#define H\-T\-P\-\_\-\-F\-I\-E\-L\-D\-\_\-\-L\-I\-M\-I\-T\-\_\-\-H\-A\-R\-D~18000}}\label{htp__private_8h_a29c67bed9658016a901d99d71011700a}
\hypertarget{htp__private_8h_a4fd5c36dacc1521d41f9e4955038da0a}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!H\-T\-P\-\_\-\-F\-I\-E\-L\-D\-\_\-\-L\-I\-M\-I\-T\-\_\-\-S\-O\-F\-T@{H\-T\-P\-\_\-\-F\-I\-E\-L\-D\-\_\-\-L\-I\-M\-I\-T\-\_\-\-S\-O\-F\-T}}
\index{H\-T\-P\-\_\-\-F\-I\-E\-L\-D\-\_\-\-L\-I\-M\-I\-T\-\_\-\-S\-O\-F\-T@{H\-T\-P\-\_\-\-F\-I\-E\-L\-D\-\_\-\-L\-I\-M\-I\-T\-\_\-\-S\-O\-F\-T}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{H\-T\-P\-\_\-\-F\-I\-E\-L\-D\-\_\-\-L\-I\-M\-I\-T\-\_\-\-S\-O\-F\-T}]{\setlength{\rightskip}{0pt plus 5cm}\#define H\-T\-P\-\_\-\-F\-I\-E\-L\-D\-\_\-\-L\-I\-M\-I\-T\-\_\-\-S\-O\-F\-T~9000}}\label{htp__private_8h_a4fd5c36dacc1521d41f9e4955038da0a}
\hypertarget{htp__private_8h_ae96c608f3d54bc3d2c24fc99cbede431}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!H\-T\-P\-\_\-\-V\-A\-L\-I\-D\-\_\-\-S\-T\-A\-T\-U\-S\-\_\-\-M\-A\-X@{H\-T\-P\-\_\-\-V\-A\-L\-I\-D\-\_\-\-S\-T\-A\-T\-U\-S\-\_\-\-M\-A\-X}}
\index{H\-T\-P\-\_\-\-V\-A\-L\-I\-D\-\_\-\-S\-T\-A\-T\-U\-S\-\_\-\-M\-A\-X@{H\-T\-P\-\_\-\-V\-A\-L\-I\-D\-\_\-\-S\-T\-A\-T\-U\-S\-\_\-\-M\-A\-X}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{H\-T\-P\-\_\-\-V\-A\-L\-I\-D\-\_\-\-S\-T\-A\-T\-U\-S\-\_\-\-M\-A\-X}]{\setlength{\rightskip}{0pt plus 5cm}\#define H\-T\-P\-\_\-\-V\-A\-L\-I\-D\-\_\-\-S\-T\-A\-T\-U\-S\-\_\-\-M\-A\-X~999}}\label{htp__private_8h_ae96c608f3d54bc3d2c24fc99cbede431}
\hypertarget{htp__private_8h_ace800f6da4de3bb31504180690d743e0}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!H\-T\-P\-\_\-\-V\-A\-L\-I\-D\-\_\-\-S\-T\-A\-T\-U\-S\-\_\-\-M\-I\-N@{H\-T\-P\-\_\-\-V\-A\-L\-I\-D\-\_\-\-S\-T\-A\-T\-U\-S\-\_\-\-M\-I\-N}}
\index{H\-T\-P\-\_\-\-V\-A\-L\-I\-D\-\_\-\-S\-T\-A\-T\-U\-S\-\_\-\-M\-I\-N@{H\-T\-P\-\_\-\-V\-A\-L\-I\-D\-\_\-\-S\-T\-A\-T\-U\-S\-\_\-\-M\-I\-N}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{H\-T\-P\-\_\-\-V\-A\-L\-I\-D\-\_\-\-S\-T\-A\-T\-U\-S\-\_\-\-M\-I\-N}]{\setlength{\rightskip}{0pt plus 5cm}\#define H\-T\-P\-\_\-\-V\-A\-L\-I\-D\-\_\-\-S\-T\-A\-T\-U\-S\-\_\-\-M\-I\-N~100}}\label{htp__private_8h_ace800f6da4de3bb31504180690d743e0}
\hypertarget{htp__private_8h_a350c9d6cb81908d59427ee96844d1a9c}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!L\-F@{L\-F}}
\index{L\-F@{L\-F}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{L\-F}]{\setlength{\rightskip}{0pt plus 5cm}\#define L\-F~'\textbackslash{}n'}}\label{htp__private_8h_a350c9d6cb81908d59427ee96844d1a9c}


\subsection{Function Documentation}
\hypertarget{htp__private_8h_a1dfe07ee3d981b6bfaaf6c88d01224b0}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!fprint\-\_\-bstr@{fprint\-\_\-bstr}}
\index{fprint\-\_\-bstr@{fprint\-\_\-bstr}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{fprint\-\_\-bstr}]{\setlength{\rightskip}{0pt plus 5cm}void fprint\-\_\-bstr (
\begin{DoxyParamCaption}
\item[{F\-I\-L\-E $\ast$}]{stream, }
\item[{const char $\ast$}]{name, }
\item[{{\bf bstr} $\ast$}]{b}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a1dfe07ee3d981b6bfaaf6c88d01224b0}
\hypertarget{htp__private_8h_a0ec8330cb428004d467f69e7c6acdb84}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!fprint\-\_\-raw\-\_\-data@{fprint\-\_\-raw\-\_\-data}}
\index{fprint\-\_\-raw\-\_\-data@{fprint\-\_\-raw\-\_\-data}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{fprint\-\_\-raw\-\_\-data}]{\setlength{\rightskip}{0pt plus 5cm}void fprint\-\_\-raw\-\_\-data (
\begin{DoxyParamCaption}
\item[{F\-I\-L\-E $\ast$}]{stream, }
\item[{const char $\ast$}]{name, }
\item[{const void $\ast$}]{data, }
\item[{size\-\_\-t}]{len}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a0ec8330cb428004d467f69e7c6acdb84}
\hypertarget{htp__private_8h_a9bd7382b55286e62a10aac00bc630af1}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!fprint\-\_\-raw\-\_\-data\-\_\-ex@{fprint\-\_\-raw\-\_\-data\-\_\-ex}}
\index{fprint\-\_\-raw\-\_\-data\-\_\-ex@{fprint\-\_\-raw\-\_\-data\-\_\-ex}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{fprint\-\_\-raw\-\_\-data\-\_\-ex}]{\setlength{\rightskip}{0pt plus 5cm}void fprint\-\_\-raw\-\_\-data\-\_\-ex (
\begin{DoxyParamCaption}
\item[{F\-I\-L\-E $\ast$}]{stream, }
\item[{const char $\ast$}]{name, }
\item[{const void $\ast$}]{data, }
\item[{size\-\_\-t}]{offset, }
\item[{size\-\_\-t}]{len}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a9bd7382b55286e62a10aac00bc630af1}
\hypertarget{htp__private_8h_a7ec64e252d77945deded415a91bae392}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-ch\-\_\-multipart\-\_\-callback\-\_\-request\-\_\-body\-\_\-data@{htp\-\_\-ch\-\_\-multipart\-\_\-callback\-\_\-request\-\_\-body\-\_\-data}}
\index{htp\-\_\-ch\-\_\-multipart\-\_\-callback\-\_\-request\-\_\-body\-\_\-data@{htp\-\_\-ch\-\_\-multipart\-\_\-callback\-\_\-request\-\_\-body\-\_\-data}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-ch\-\_\-multipart\-\_\-callback\-\_\-request\-\_\-body\-\_\-data}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-ch\-\_\-multipart\-\_\-callback\-\_\-request\-\_\-body\-\_\-data (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-data\-\_\-t} $\ast$}]{d}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a7ec64e252d77945deded415a91bae392}
Finalize Multipart processing.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em d} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on success, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on failure. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a5828725587fa5f395faa80e7d2059194}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-ch\-\_\-multipart\-\_\-callback\-\_\-request\-\_\-headers@{htp\-\_\-ch\-\_\-multipart\-\_\-callback\-\_\-request\-\_\-headers}}
\index{htp\-\_\-ch\-\_\-multipart\-\_\-callback\-\_\-request\-\_\-headers@{htp\-\_\-ch\-\_\-multipart\-\_\-callback\-\_\-request\-\_\-headers}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-ch\-\_\-multipart\-\_\-callback\-\_\-request\-\_\-headers}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-ch\-\_\-multipart\-\_\-callback\-\_\-request\-\_\-headers (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a5828725587fa5f395faa80e7d2059194}
Inspect request headers and register the Multipart request data hook if it contains a multipart/form-\/data body.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K if a new parser has been setup, H\-T\-P\-\_\-\-D\-E\-C\-L\-I\-N\-E\-D if the M\-I\-M\-E type is not appropriate for this parser, and H\-T\-P\-\_\-\-E\-R\-R\-O\-R on failure. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a4e9f7160e5042d277db88170780998dd}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-body\-\_\-data@{htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-body\-\_\-data}}
\index{htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-body\-\_\-data@{htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-body\-\_\-data}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-body\-\_\-data}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-body\-\_\-data (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-data\-\_\-t} $\ast$}]{d}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a4e9f7160e5042d277db88170780998dd}
This callback function feeds request body data to a Urlencoded parser and, later, feeds the parsed parameters to the correct structures.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em d} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on success, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on failure. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_ac4a784badfbaddb77f6f6e1582fee11e}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-headers@{htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-headers}}
\index{htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-headers@{htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-headers}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-headers}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-headers (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_ac4a784badfbaddb77f6f6e1582fee11e}
Determine if the request has a Urlencoded body, and, if it does, create and attach an instance of the Urlencoded parser to the transaction.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K if a new parser has been setup, H\-T\-P\-\_\-\-D\-E\-C\-L\-I\-N\-E\-D if the M\-I\-M\-E type is not appropriate for this parser, and H\-T\-P\-\_\-\-E\-R\-R\-O\-R on failure. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a2ad3aba77f1ebdcc30f1dea10068386f}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-line@{htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-line}}
\index{htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-line@{htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-line}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-line}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-ch\-\_\-urlencoded\-\_\-callback\-\_\-request\-\_\-line (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a2ad3aba77f1ebdcc30f1dea10068386f}
Parses request query string, if present.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\mbox{\tt in}  & {\em raw\-\_\-data} & \\
\hline
\mbox{\tt in}  & {\em raw\-\_\-len} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K if query string was parsed, H\-T\-P\-\_\-\-D\-E\-C\-L\-I\-N\-E\-D if there was no query string, and H\-T\-P\-\_\-\-E\-R\-R\-O\-R on failure. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_aa5e02fbff064b8409e1307bd30fffab8}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-chomp@{htp\-\_\-chomp}}
\index{htp\-\_\-chomp@{htp\-\_\-chomp}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-chomp}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-chomp (
\begin{DoxyParamCaption}
\item[{unsigned char $\ast$}]{data, }
\item[{size\-\_\-t $\ast$}]{len}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_aa5e02fbff064b8409e1307bd30fffab8}
Remove all line terminators (L\-F or C\-R\-L\-F) from the end of the line provided as input.

\begin{DoxyReturn}{Returns}
0 if nothing was removed, 1 if one or more L\-F characters were removed, or 2 if one or more C\-R and/or L\-F characters were removed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_af27fd03498aa68a9c02ed3f3172cd5c3}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-header\-\_\-parse@{htp\-\_\-connp\-\_\-header\-\_\-parse}}
\index{htp\-\_\-connp\-\_\-header\-\_\-parse@{htp\-\_\-connp\-\_\-header\-\_\-parse}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-header\-\_\-parse}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-header\-\_\-t}$\ast$ htp\-\_\-connp\-\_\-header\-\_\-parse (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{, }
\item[{unsigned char $\ast$}]{, }
\item[{size\-\_\-t}]{}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_af27fd03498aa68a9c02ed3f3172cd5c3}
\hypertarget{htp__private_8h_a81fca26cac57032120c6796bda2a660c}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-in\-\_\-state\-\_\-as\-\_\-string@{htp\-\_\-connp\-\_\-in\-\_\-state\-\_\-as\-\_\-string}}
\index{htp\-\_\-connp\-\_\-in\-\_\-state\-\_\-as\-\_\-string@{htp\-\_\-connp\-\_\-in\-\_\-state\-\_\-as\-\_\-string}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-in\-\_\-state\-\_\-as\-\_\-string}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ htp\-\_\-connp\-\_\-in\-\_\-state\-\_\-as\-\_\-string (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a81fca26cac57032120c6796bda2a660c}
\hypertarget{htp__private_8h_a6328d9ce315c36afc0a3396f28b482a5}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-folded@{htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-folded}}
\index{htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-folded@{htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-folded}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-folded}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-folded (
\begin{DoxyParamCaption}
\item[{unsigned char $\ast$}]{data, }
\item[{size\-\_\-t}]{len}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a6328d9ce315c36afc0a3396f28b482a5}
Determines if the given line is a continuation (of some previous line).


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em data} & \\
\hline
\mbox{\tt in}  & {\em len} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 or 1 for false and true, respectively. Returns -\/1 on error (N\-U\-L\-L pointer or length zero). 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a1497c1d24aca2e016fc04475d48616c7}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-ignorable@{htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-ignorable}}
\index{htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-ignorable@{htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-ignorable}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-ignorable}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-ignorable (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp, }
\item[{unsigned char $\ast$}]{data, }
\item[{size\-\_\-t}]{len}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a1497c1d24aca2e016fc04475d48616c7}
Determines if the given line can be ignored when it appears before a request.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\mbox{\tt in}  & {\em data} & \\
\hline
\mbox{\tt in}  & {\em len} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 or 1 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a90ec198a62babe0db3d63024ec9d5118}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-terminator@{htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-terminator}}
\index{htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-terminator@{htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-terminator}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-terminator}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-connp\-\_\-is\-\_\-line\-\_\-terminator (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp, }
\item[{unsigned char $\ast$}]{data, }
\item[{size\-\_\-t}]{len}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a90ec198a62babe0db3d63024ec9d5118}
Determines if the given line is a request terminator.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\mbox{\tt in}  & {\em data} & \\
\hline
\mbox{\tt in}  & {\em len} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 or 1 
\end{DoxyReturn}
\hypertarget{htp__private_8h_af31ead38ae0851c906b72d93d9a29d5a}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-out\-\_\-state\-\_\-as\-\_\-string@{htp\-\_\-connp\-\_\-out\-\_\-state\-\_\-as\-\_\-string}}
\index{htp\-\_\-connp\-\_\-out\-\_\-state\-\_\-as\-\_\-string@{htp\-\_\-connp\-\_\-out\-\_\-state\-\_\-as\-\_\-string}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-out\-\_\-state\-\_\-as\-\_\-string}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ htp\-\_\-connp\-\_\-out\-\_\-state\-\_\-as\-\_\-string (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_af31ead38ae0851c906b72d93d9a29d5a}
\hypertarget{htp__private_8h_ac07a4f5062908c573d2b78f6f3ddc743}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_ac07a4f5062908c573d2b78f6f3ddc743}
Processes a chunk of data.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a24a112bbe8db96d22a8d421a6ea6ac74}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A\-\_\-\-E\-N\-D@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A\-\_\-\-E\-N\-D}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A\-\_\-\-E\-N\-D@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A\-\_\-\-E\-N\-D}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A\-\_\-\-E\-N\-D}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A\-\_\-\-E\-N\-D (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a24a112bbe8db96d22a8d421a6ea6ac74}
Consumes bytes until the end of the current line.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a78975b59c610a8b5cd834b6c7ad7524b}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-L\-E\-N\-G\-T\-H@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-L\-E\-N\-G\-T\-H}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-L\-E\-N\-G\-T\-H@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-L\-E\-N\-G\-T\-H}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-L\-E\-N\-G\-T\-H}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-L\-E\-N\-G\-T\-H (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a78975b59c610a8b5cd834b6c7ad7524b}
Extracts chunk length.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_ad207aff5c7e4a68d2a539ffd9e3fd623}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-D\-E\-T\-E\-R\-M\-I\-N\-E@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-D\-E\-T\-E\-R\-M\-I\-N\-E}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-D\-E\-T\-E\-R\-M\-I\-N\-E@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-D\-E\-T\-E\-R\-M\-I\-N\-E}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-D\-E\-T\-E\-R\-M\-I\-N\-E}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-D\-E\-T\-E\-R\-M\-I\-N\-E (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_ad207aff5c7e4a68d2a539ffd9e3fd623}
Determines presence (and encoding) of a request body.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_aa5ab1e26414167266d8d0b98eb712723}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_aa5ab1e26414167266d8d0b98eb712723}
Processes identity request body.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a3e8c194c19ebdaaa21fe107e328e3a75}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-C\-O\-N\-N\-E\-C\-T\-\_\-\-C\-H\-E\-C\-K@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-C\-O\-N\-N\-E\-C\-T\-\_\-\-C\-H\-E\-C\-K}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-C\-O\-N\-N\-E\-C\-T\-\_\-\-C\-H\-E\-C\-K@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-C\-O\-N\-N\-E\-C\-T\-\_\-\-C\-H\-E\-C\-K}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-C\-O\-N\-N\-E\-C\-T\-\_\-\-C\-H\-E\-C\-K}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-C\-O\-N\-N\-E\-C\-T\-\_\-\-C\-H\-E\-C\-K (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a3e8c194c19ebdaaa21fe107e328e3a75}
Performs a check for a C\-O\-N\-N\-E\-C\-T transaction to decide whether inbound parsing needs to be suspended.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K if the request does not use C\-O\-N\-N\-E\-C\-T, H\-T\-P\-\_\-\-D\-A\-T\-A\-\_\-\-O\-T\-H\-E\-R if inbound parsing needs to be suspended until we hear from the other side 
\end{DoxyReturn}
\hypertarget{htp__private_8h_ac6178cc04104e5e5e469489f5e77c04d}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-C\-O\-N\-N\-E\-C\-T\-\_\-\-W\-A\-I\-T\-\_\-\-R\-E\-S\-P\-O\-N\-S\-E@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-C\-O\-N\-N\-E\-C\-T\-\_\-\-W\-A\-I\-T\-\_\-\-R\-E\-S\-P\-O\-N\-S\-E}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-C\-O\-N\-N\-E\-C\-T\-\_\-\-W\-A\-I\-T\-\_\-\-R\-E\-S\-P\-O\-N\-S\-E@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-C\-O\-N\-N\-E\-C\-T\-\_\-\-W\-A\-I\-T\-\_\-\-R\-E\-S\-P\-O\-N\-S\-E}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-C\-O\-N\-N\-E\-C\-T\-\_\-\-W\-A\-I\-T\-\_\-\-R\-E\-S\-P\-O\-N\-S\-E}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-C\-O\-N\-N\-E\-C\-T\-\_\-\-W\-A\-I\-T\-\_\-\-R\-E\-S\-P\-O\-N\-S\-E (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_ac6178cc04104e5e5e469489f5e77c04d}
Determines whether inbound parsing, which was suspended after encountering a C\-O\-N\-N\-E\-C\-T transaction, can proceed (after receiving the response).


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K if the parser can resume parsing, H\-T\-P\-\_\-\-D\-A\-T\-A\-\_\-\-O\-T\-H\-E\-R if it needs to continue waiting. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a2702260435d65d58ff1ef824cfdc1091}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-F\-I\-N\-A\-L\-I\-Z\-E@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-F\-I\-N\-A\-L\-I\-Z\-E}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-F\-I\-N\-A\-L\-I\-Z\-E@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-F\-I\-N\-A\-L\-I\-Z\-E}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-F\-I\-N\-A\-L\-I\-Z\-E}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-F\-I\-N\-A\-L\-I\-Z\-E (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a2702260435d65d58ff1ef824cfdc1091}
\hypertarget{htp__private_8h_af7b83f68a53afa0a16e0d78300b63a46}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-H\-E\-A\-D\-E\-R\-S@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-H\-E\-A\-D\-E\-R\-S}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-H\-E\-A\-D\-E\-R\-S@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-H\-E\-A\-D\-E\-R\-S}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-H\-E\-A\-D\-E\-R\-S}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-H\-E\-A\-D\-E\-R\-S (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_af7b83f68a53afa0a16e0d78300b63a46}
Parses request headers.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_ae4a3e37c2a1e728db9f80cca8e53c6fa}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-I\-D\-L\-E@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-I\-D\-L\-E}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-I\-D\-L\-E@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-I\-D\-L\-E}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-I\-D\-L\-E}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-I\-D\-L\-E (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_ae4a3e37c2a1e728db9f80cca8e53c6fa}
The idle state is where the parser will end up after a transaction is processed. If there is more data available, a new request will be started.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a984918ce8cdd5c6d42c74294a1c7cc18}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-I\-G\-N\-O\-R\-E\-\_\-\-D\-A\-T\-A\-\_\-\-A\-F\-T\-E\-R\-\_\-\-H\-T\-T\-P\-\_\-0\-\_\-9@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-I\-G\-N\-O\-R\-E\-\_\-\-D\-A\-T\-A\-\_\-\-A\-F\-T\-E\-R\-\_\-\-H\-T\-T\-P\-\_\-0\-\_\-9}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-I\-G\-N\-O\-R\-E\-\_\-\-D\-A\-T\-A\-\_\-\-A\-F\-T\-E\-R\-\_\-\-H\-T\-T\-P\-\_\-0\-\_\-9@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-I\-G\-N\-O\-R\-E\-\_\-\-D\-A\-T\-A\-\_\-\-A\-F\-T\-E\-R\-\_\-\-H\-T\-T\-P\-\_\-0\-\_\-9}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-I\-G\-N\-O\-R\-E\-\_\-\-D\-A\-T\-A\-\_\-\-A\-F\-T\-E\-R\-\_\-\-H\-T\-T\-P\-\_\-0\-\_\-9}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-I\-G\-N\-O\-R\-E\-\_\-\-D\-A\-T\-A\-\_\-\-A\-F\-T\-E\-R\-\_\-\-H\-T\-T\-P\-\_\-0\-\_\-9 (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a984918ce8cdd5c6d42c74294a1c7cc18}
\hypertarget{htp__private_8h_acfb131d9a3925c753f4beffad0f07e84}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-L\-I\-N\-E@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-L\-I\-N\-E}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-L\-I\-N\-E@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-L\-I\-N\-E}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-L\-I\-N\-E}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-L\-I\-N\-E (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_acfb131d9a3925c753f4beffad0f07e84}
Parses request line.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a801f66183cf5693361eca92d66607314}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-P\-R\-O\-T\-O\-C\-O\-L@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-P\-R\-O\-T\-O\-C\-O\-L}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-P\-R\-O\-T\-O\-C\-O\-L@{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-P\-R\-O\-T\-O\-C\-O\-L}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-P\-R\-O\-T\-O\-C\-O\-L}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-Q\-\_\-\-P\-R\-O\-T\-O\-C\-O\-L (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a801f66183cf5693361eca92d66607314}
Determines request protocol.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_af19c954da72e0921d9e3ae2e79bccfb5}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-req\-\_\-receiver\-\_\-finalize\-\_\-clear@{htp\-\_\-connp\-\_\-req\-\_\-receiver\-\_\-finalize\-\_\-clear}}
\index{htp\-\_\-connp\-\_\-req\-\_\-receiver\-\_\-finalize\-\_\-clear@{htp\-\_\-connp\-\_\-req\-\_\-receiver\-\_\-finalize\-\_\-clear}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-req\-\_\-receiver\-\_\-finalize\-\_\-clear}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-req\-\_\-receiver\-\_\-finalize\-\_\-clear (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_af19c954da72e0921d9e3ae2e79bccfb5}
Finalizes an existing data receiver hook by sending any outstanding data to it. The hook is then removed so that it receives no more data.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K, or a value returned from a callback. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_ae160ab80f3c9d3c3aad67b7a34a498ab}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_ae160ab80f3c9d3c3aad67b7a34a498ab}
Processes a chunk of data.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a028530726a98edc10fc5adf8a050b349}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A\-\_\-\-E\-N\-D@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A\-\_\-\-E\-N\-D}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A\-\_\-\-E\-N\-D@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A\-\_\-\-E\-N\-D}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A\-\_\-\-E\-N\-D}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-D\-A\-T\-A\-\_\-\-E\-N\-D (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a028530726a98edc10fc5adf8a050b349}
Consumes bytes until the end of the current line.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_ab601564fadb2bb9ff37cd75b448a03d7}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-L\-E\-N\-G\-T\-H@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-L\-E\-N\-G\-T\-H}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-L\-E\-N\-G\-T\-H@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-L\-E\-N\-G\-T\-H}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-L\-E\-N\-G\-T\-H}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-C\-H\-U\-N\-K\-E\-D\-\_\-\-L\-E\-N\-G\-T\-H (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_ab601564fadb2bb9ff37cd75b448a03d7}
Extracts chunk length.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a5bf0430de9af721db6e03c90ec63adf6}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-D\-E\-T\-E\-R\-M\-I\-N\-E@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-D\-E\-T\-E\-R\-M\-I\-N\-E}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-D\-E\-T\-E\-R\-M\-I\-N\-E@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-D\-E\-T\-E\-R\-M\-I\-N\-E}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-D\-E\-T\-E\-R\-M\-I\-N\-E}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-D\-E\-T\-E\-R\-M\-I\-N\-E (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a5bf0430de9af721db6e03c90ec63adf6}
Determines presence (and encoding) of a response body.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a35978034dd65239e911dd33f7c751332}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y\-\_\-\-C\-L\-\_\-\-K\-N\-O\-W\-N@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y\-\_\-\-C\-L\-\_\-\-K\-N\-O\-W\-N}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y\-\_\-\-C\-L\-\_\-\-K\-N\-O\-W\-N@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y\-\_\-\-C\-L\-\_\-\-K\-N\-O\-W\-N}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y\-\_\-\-C\-L\-\_\-\-K\-N\-O\-W\-N}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y\-\_\-\-C\-L\-\_\-\-K\-N\-O\-W\-N (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a35978034dd65239e911dd33f7c751332}
Processes an identity response body of known length.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a2c9732ce72c12038353a4483475e180c}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y\-\_\-\-S\-T\-R\-E\-A\-M\-\_\-\-C\-L\-O\-S\-E@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y\-\_\-\-S\-T\-R\-E\-A\-M\-\_\-\-C\-L\-O\-S\-E}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y\-\_\-\-S\-T\-R\-E\-A\-M\-\_\-\-C\-L\-O\-S\-E@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y\-\_\-\-S\-T\-R\-E\-A\-M\-\_\-\-C\-L\-O\-S\-E}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y\-\_\-\-S\-T\-R\-E\-A\-M\-\_\-\-C\-L\-O\-S\-E}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-B\-O\-D\-Y\-\_\-\-I\-D\-E\-N\-T\-I\-T\-Y\-\_\-\-S\-T\-R\-E\-A\-M\-\_\-\-C\-L\-O\-S\-E (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a2c9732ce72c12038353a4483475e180c}
Processes identity response body of unknown length. In this case, we assume the response body consumes all data until the end of the stream.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a779958ef7d3b3742be8b13170c0a8977}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-F\-I\-N\-A\-L\-I\-Z\-E@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-F\-I\-N\-A\-L\-I\-Z\-E}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-F\-I\-N\-A\-L\-I\-Z\-E@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-F\-I\-N\-A\-L\-I\-Z\-E}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-F\-I\-N\-A\-L\-I\-Z\-E}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-F\-I\-N\-A\-L\-I\-Z\-E (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a779958ef7d3b3742be8b13170c0a8977}
\hypertarget{htp__private_8h_a92faf3d17df2d54dd67bd7fbe80fb525}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-H\-E\-A\-D\-E\-R\-S@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-H\-E\-A\-D\-E\-R\-S}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-H\-E\-A\-D\-E\-R\-S@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-H\-E\-A\-D\-E\-R\-S}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-H\-E\-A\-D\-E\-R\-S}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-H\-E\-A\-D\-E\-R\-S (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a92faf3d17df2d54dd67bd7fbe80fb525}
Parses response headers.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a1b95d113c24de4c93db72889c738275d}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-I\-D\-L\-E@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-I\-D\-L\-E}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-I\-D\-L\-E@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-I\-D\-L\-E}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-I\-D\-L\-E}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-I\-D\-L\-E (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a1b95d113c24de4c93db72889c738275d}
The response idle state will initialize response processing, as well as finalize each transactions after we are done with it.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a45043cdc1b581e62abbf2423be76ea2a}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-L\-I\-N\-E@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-L\-I\-N\-E}}
\index{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-L\-I\-N\-E@{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-L\-I\-N\-E}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-L\-I\-N\-E}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-\-R\-E\-S\-\_\-\-L\-I\-N\-E (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a45043cdc1b581e62abbf2423be76ea2a}
Parses response line.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on state change, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error, or H\-T\-P\-\_\-\-D\-A\-T\-A when more data is needed. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_aa608348db7f36d05e7cb77790387b279}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-res\-\_\-receiver\-\_\-finalize\-\_\-clear@{htp\-\_\-connp\-\_\-res\-\_\-receiver\-\_\-finalize\-\_\-clear}}
\index{htp\-\_\-connp\-\_\-res\-\_\-receiver\-\_\-finalize\-\_\-clear@{htp\-\_\-connp\-\_\-res\-\_\-receiver\-\_\-finalize\-\_\-clear}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-res\-\_\-receiver\-\_\-finalize\-\_\-clear}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-connp\-\_\-res\-\_\-receiver\-\_\-finalize\-\_\-clear (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_aa608348db7f36d05e7cb77790387b279}
Finalizes an existing data receiver hook by sending any outstanding data to it. The hook is then removed so that it receives no more data.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K, or a value returned from a callback. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_ae33f3c887843a95a8a6650ed2c737dc6}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-connp\-\_\-tx\-\_\-remove@{htp\-\_\-connp\-\_\-tx\-\_\-remove}}
\index{htp\-\_\-connp\-\_\-tx\-\_\-remove@{htp\-\_\-connp\-\_\-tx\-\_\-remove}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-connp\-\_\-tx\-\_\-remove}]{\setlength{\rightskip}{0pt plus 5cm}void htp\-\_\-connp\-\_\-tx\-\_\-remove (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp, }
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_ae33f3c887843a95a8a6650ed2c737dc6}
Removes references to the supplied transaction.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\mbox{\tt in}  & {\em tx} & \\
\hline
\end{DoxyParams}
\hypertarget{htp__private_8h_ad43c81727dd2888a32e4fc692b472249}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-convert\-\_\-method\-\_\-to\-\_\-number@{htp\-\_\-convert\-\_\-method\-\_\-to\-\_\-number}}
\index{htp\-\_\-convert\-\_\-method\-\_\-to\-\_\-number@{htp\-\_\-convert\-\_\-method\-\_\-to\-\_\-number}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-convert\-\_\-method\-\_\-to\-\_\-number}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-convert\-\_\-method\-\_\-to\-\_\-number (
\begin{DoxyParamCaption}
\item[{{\bf bstr} $\ast$}]{method}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_ad43c81727dd2888a32e4fc692b472249}
Converts request method, given as a string, into a number.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em method} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Method number of M\-\_\-\-U\-N\-K\-N\-O\-W\-N 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a854ce501c5216103458afecdadb82d0b}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-decode\-\_\-path\-\_\-inplace@{htp\-\_\-decode\-\_\-path\-\_\-inplace}}
\index{htp\-\_\-decode\-\_\-path\-\_\-inplace@{htp\-\_\-decode\-\_\-path\-\_\-inplace}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-decode\-\_\-path\-\_\-inplace}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-decode\-\_\-path\-\_\-inplace (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx, }
\item[{{\bf bstr} $\ast$}]{path}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a854ce501c5216103458afecdadb82d0b}
Decode a request path according to the settings in the provided configuration structure.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em cfg} & \\
\hline
\mbox{\tt in}  & {\em tx} & \\
\hline
\mbox{\tt in}  & {\em path} & \\
\hline
\end{DoxyParams}
\hypertarget{htp__private_8h_a0ca5d553420839786a3102bc3ab3cb80}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-extract\-\_\-quoted\-\_\-string\-\_\-as\-\_\-bstr@{htp\-\_\-extract\-\_\-quoted\-\_\-string\-\_\-as\-\_\-bstr}}
\index{htp\-\_\-extract\-\_\-quoted\-\_\-string\-\_\-as\-\_\-bstr@{htp\-\_\-extract\-\_\-quoted\-\_\-string\-\_\-as\-\_\-bstr}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-extract\-\_\-quoted\-\_\-string\-\_\-as\-\_\-bstr}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-extract\-\_\-quoted\-\_\-string\-\_\-as\-\_\-bstr (
\begin{DoxyParamCaption}
\item[{unsigned char $\ast$}]{data, }
\item[{size\-\_\-t}]{len, }
\item[{{\bf bstr} $\ast$$\ast$}]{out, }
\item[{size\-\_\-t $\ast$}]{endoffset}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a0ca5d553420839786a3102bc3ab3cb80}
Parses the provided memory region, extracting the double-\/quoted string.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em data} & \\
\hline
\mbox{\tt in}  & {\em len} & \\
\hline
\mbox{\tt out}  & {\em out} & \\
\hline
\mbox{\tt out}  & {\em endoffset} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on success, H\-T\-P\-\_\-\-D\-E\-C\-L\-I\-N\-E\-D if the input is not well formed, and H\-T\-P\-\_\-\-E\-R\-R\-O\-R on fatal errors. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a9e2d1a484a0504ed6475a9d89a6608a3}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-is\-\_\-folding\-\_\-char@{htp\-\_\-is\-\_\-folding\-\_\-char}}
\index{htp\-\_\-is\-\_\-folding\-\_\-char@{htp\-\_\-is\-\_\-folding\-\_\-char}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-is\-\_\-folding\-\_\-char}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-is\-\_\-folding\-\_\-char (
\begin{DoxyParamCaption}
\item[{int}]{c}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a9e2d1a484a0504ed6475a9d89a6608a3}
\hypertarget{htp__private_8h_aa515e1e25cc42162e95469b4d6c575c9}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-is\-\_\-line\-\_\-empty@{htp\-\_\-is\-\_\-line\-\_\-empty}}
\index{htp\-\_\-is\-\_\-line\-\_\-empty@{htp\-\_\-is\-\_\-line\-\_\-empty}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-is\-\_\-line\-\_\-empty}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-is\-\_\-line\-\_\-empty (
\begin{DoxyParamCaption}
\item[{unsigned char $\ast$}]{data, }
\item[{size\-\_\-t}]{len}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_aa515e1e25cc42162e95469b4d6c575c9}
Is the given line empty? This function expects the line to have a terminating L\-F.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em data} & \\
\hline
\mbox{\tt in}  & {\em len} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 or 1 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a8b599459708fac234b83e8d8fe58b258}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-is\-\_\-line\-\_\-whitespace@{htp\-\_\-is\-\_\-line\-\_\-whitespace}}
\index{htp\-\_\-is\-\_\-line\-\_\-whitespace@{htp\-\_\-is\-\_\-line\-\_\-whitespace}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-is\-\_\-line\-\_\-whitespace}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-is\-\_\-line\-\_\-whitespace (
\begin{DoxyParamCaption}
\item[{unsigned char $\ast$}]{data, }
\item[{size\-\_\-t}]{len}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a8b599459708fac234b83e8d8fe58b258}
Does line consist entirely of whitespace characters?


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em data} & \\
\hline
\mbox{\tt in}  & {\em len} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 or 1 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a01068fcd4418a90ea81a2ad5e4eb8c81}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-is\-\_\-lws@{htp\-\_\-is\-\_\-lws}}
\index{htp\-\_\-is\-\_\-lws@{htp\-\_\-is\-\_\-lws}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-is\-\_\-lws}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-is\-\_\-lws (
\begin{DoxyParamCaption}
\item[{int}]{c}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a01068fcd4418a90ea81a2ad5e4eb8c81}
Is character a linear white space character?


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em c} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 or 1 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a238c39a6d7fd7f35735f9c97a1b2aa66}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-is\-\_\-separator@{htp\-\_\-is\-\_\-separator}}
\index{htp\-\_\-is\-\_\-separator@{htp\-\_\-is\-\_\-separator}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-is\-\_\-separator}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-is\-\_\-separator (
\begin{DoxyParamCaption}
\item[{int}]{c}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a238c39a6d7fd7f35735f9c97a1b2aa66}
Is character a separator character?


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em c} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 or 1 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a8154aaa13d12e1fea9b066e0881bd125}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-is\-\_\-space@{htp\-\_\-is\-\_\-space}}
\index{htp\-\_\-is\-\_\-space@{htp\-\_\-is\-\_\-space}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-is\-\_\-space}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-is\-\_\-space (
\begin{DoxyParamCaption}
\item[{int}]{c}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a8154aaa13d12e1fea9b066e0881bd125}
Is character a white space character?


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em c} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 or 1 
\end{DoxyReturn}
\hypertarget{htp__private_8h_acd9999e11e39f8434023b786416fdc43}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-is\-\_\-text@{htp\-\_\-is\-\_\-text}}
\index{htp\-\_\-is\-\_\-text@{htp\-\_\-is\-\_\-text}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-is\-\_\-text}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-is\-\_\-text (
\begin{DoxyParamCaption}
\item[{int}]{c}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_acd9999e11e39f8434023b786416fdc43}
Is character a text character?


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em c} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 or 1 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a7a0e47fdda476b38045a7d3406fb51ee}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-is\-\_\-token@{htp\-\_\-is\-\_\-token}}
\index{htp\-\_\-is\-\_\-token@{htp\-\_\-is\-\_\-token}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-is\-\_\-token}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-is\-\_\-token (
\begin{DoxyParamCaption}
\item[{int}]{c}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a7a0e47fdda476b38045a7d3406fb51ee}
Is character a token character?


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em c} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 or 1 
\end{DoxyReturn}
\hypertarget{htp__private_8h_ae7cca7a4e5e553b0a1da8d305dd7bae6}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-is\-\_\-uri\-\_\-unreserved@{htp\-\_\-is\-\_\-uri\-\_\-unreserved}}
\index{htp\-\_\-is\-\_\-uri\-\_\-unreserved@{htp\-\_\-is\-\_\-uri\-\_\-unreserved}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-is\-\_\-uri\-\_\-unreserved}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-is\-\_\-uri\-\_\-unreserved (
\begin{DoxyParamCaption}
\item[{unsigned char}]{c}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_ae7cca7a4e5e553b0a1da8d305dd7bae6}
\hypertarget{htp__private_8h_a7e8991ba87da71aa0b14c2955da46b25}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-normalize\-\_\-hostname\-\_\-inplace@{htp\-\_\-normalize\-\_\-hostname\-\_\-inplace}}
\index{htp\-\_\-normalize\-\_\-hostname\-\_\-inplace@{htp\-\_\-normalize\-\_\-hostname\-\_\-inplace}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-normalize\-\_\-hostname\-\_\-inplace}]{\setlength{\rightskip}{0pt plus 5cm}{\bf bstr}$\ast$ htp\-\_\-normalize\-\_\-hostname\-\_\-inplace (
\begin{DoxyParamCaption}
\item[{{\bf bstr} $\ast$}]{hostname}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a7e8991ba87da71aa0b14c2955da46b25}
Normalize request hostname. Convert all characters to lowercase and remove trailing dots from the end, if present.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em hostname} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Normalized hostname. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a0b18b82f32e1f78aede068a2aafc4632}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-normalize\-\_\-parsed\-\_\-uri@{htp\-\_\-normalize\-\_\-parsed\-\_\-uri}}
\index{htp\-\_\-normalize\-\_\-parsed\-\_\-uri@{htp\-\_\-normalize\-\_\-parsed\-\_\-uri}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-normalize\-\_\-parsed\-\_\-uri}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-normalize\-\_\-parsed\-\_\-uri (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx, }
\item[{{\bf htp\-\_\-uri\-\_\-t} $\ast$}]{incomplete, }
\item[{{\bf htp\-\_\-uri\-\_\-t} $\ast$}]{normalized}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a0b18b82f32e1f78aede068a2aafc4632}
Normalize a previously-\/parsed request U\-R\-I.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\mbox{\tt in}  & {\em incomplete} & \\
\hline
\mbox{\tt in}  & {\em normalized} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K or H\-T\-P\-\_\-\-E\-R\-R\-O\-R 
\end{DoxyReturn}
\hypertarget{htp__private_8h_ae3b688cf78f951a218afde6d2bb3b763}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-normalize\-\_\-uri\-\_\-path\-\_\-inplace@{htp\-\_\-normalize\-\_\-uri\-\_\-path\-\_\-inplace}}
\index{htp\-\_\-normalize\-\_\-uri\-\_\-path\-\_\-inplace@{htp\-\_\-normalize\-\_\-uri\-\_\-path\-\_\-inplace}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-normalize\-\_\-uri\-\_\-path\-\_\-inplace}]{\setlength{\rightskip}{0pt plus 5cm}void htp\-\_\-normalize\-\_\-uri\-\_\-path\-\_\-inplace (
\begin{DoxyParamCaption}
\item[{{\bf bstr} $\ast$}]{s}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_ae3b688cf78f951a218afde6d2bb3b763}
Normalize U\-R\-L path. This function implements the remove dot segments algorithm specified in R\-F\-C 3986, section 5.\-2.\-4.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em s} & \\
\hline
\end{DoxyParams}
\hypertarget{htp__private_8h_a8acc6c49e7f95eb1cbdf088dc5df9ae4}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-authorization@{htp\-\_\-parse\-\_\-authorization}}
\index{htp\-\_\-parse\-\_\-authorization@{htp\-\_\-parse\-\_\-authorization}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-authorization}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-parse\-\_\-authorization (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a8acc6c49e7f95eb1cbdf088dc5df9ae4}
Parses Authorization request header.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\hypertarget{htp__private_8h_a83f1fbe81d55cb3ef6402bc069b5baca}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-authorization\-\_\-basic@{htp\-\_\-parse\-\_\-authorization\-\_\-basic}}
\index{htp\-\_\-parse\-\_\-authorization\-\_\-basic@{htp\-\_\-parse\-\_\-authorization\-\_\-basic}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-authorization\-\_\-basic}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-parse\-\_\-authorization\-\_\-basic (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp, }
\item[{{\bf htp\-\_\-header\-\_\-t} $\ast$}]{auth\-\_\-header}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a83f1fbe81d55cb3ef6402bc069b5baca}
Parses Basic Authorization request header.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\mbox{\tt in}  & {\em auth\-\_\-header} & \\
\hline
\end{DoxyParams}
\hypertarget{htp__private_8h_a0ce81b909ad3720c21dc675f35b95767}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-authorization\-\_\-digest@{htp\-\_\-parse\-\_\-authorization\-\_\-digest}}
\index{htp\-\_\-parse\-\_\-authorization\-\_\-digest@{htp\-\_\-parse\-\_\-authorization\-\_\-digest}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-authorization\-\_\-digest}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-parse\-\_\-authorization\-\_\-digest (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp, }
\item[{{\bf htp\-\_\-header\-\_\-t} $\ast$}]{auth\-\_\-header}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a0ce81b909ad3720c21dc675f35b95767}
Parses Digest Authorization request header.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\mbox{\tt in}  & {\em auth\-\_\-header} & \\
\hline
\end{DoxyParams}
\hypertarget{htp__private_8h_abe97fa5fa00905db42afe94366adcc6a}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-chunked\-\_\-length@{htp\-\_\-parse\-\_\-chunked\-\_\-length}}
\index{htp\-\_\-parse\-\_\-chunked\-\_\-length@{htp\-\_\-parse\-\_\-chunked\-\_\-length}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-chunked\-\_\-length}]{\setlength{\rightskip}{0pt plus 5cm}int64\-\_\-t htp\-\_\-parse\-\_\-chunked\-\_\-length (
\begin{DoxyParamCaption}
\item[{unsigned char $\ast$}]{data, }
\item[{size\-\_\-t}]{len}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_abe97fa5fa00905db42afe94366adcc6a}
Parses chunk length (positive hexadecimal number). White space is allowed before and after the number. An error will be returned if the chunk length is greater than I\-N\-T32\-\_\-\-M\-A\-X.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em data} & \\
\hline
\mbox{\tt in}  & {\em len} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Chunk length, or a negative number on error. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a50d9fb619fe71bfee3ab812d96ba0b6c}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-content\-\_\-length@{htp\-\_\-parse\-\_\-content\-\_\-length}}
\index{htp\-\_\-parse\-\_\-content\-\_\-length@{htp\-\_\-parse\-\_\-content\-\_\-length}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-content\-\_\-length}]{\setlength{\rightskip}{0pt plus 5cm}int64\-\_\-t htp\-\_\-parse\-\_\-content\-\_\-length (
\begin{DoxyParamCaption}
\item[{{\bf bstr} $\ast$}]{b}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a50d9fb619fe71bfee3ab812d96ba0b6c}
Parses Content-\/\-Length string (positive decimal number). White space is allowed before and after the number.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em b} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Content-\/\-Length as a number, or -\/1 on error. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a13fe2f6ba397741dd91abeaafce2c5e6}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-cookies\-\_\-v0@{htp\-\_\-parse\-\_\-cookies\-\_\-v0}}
\index{htp\-\_\-parse\-\_\-cookies\-\_\-v0@{htp\-\_\-parse\-\_\-cookies\-\_\-v0}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-cookies\-\_\-v0}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-parse\-\_\-cookies\-\_\-v0 (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a13fe2f6ba397741dd91abeaafce2c5e6}
Parses the Cookie request header in v0 format.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on success, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a3742fd84a15ebfa867623dd7bf26c0e9}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-ct\-\_\-header@{htp\-\_\-parse\-\_\-ct\-\_\-header}}
\index{htp\-\_\-parse\-\_\-ct\-\_\-header@{htp\-\_\-parse\-\_\-ct\-\_\-header}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-ct\-\_\-header}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-parse\-\_\-ct\-\_\-header (
\begin{DoxyParamCaption}
\item[{{\bf bstr} $\ast$}]{header, }
\item[{{\bf bstr} $\ast$$\ast$}]{ct}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a3742fd84a15ebfa867623dd7bf26c0e9}
\hypertarget{htp__private_8h_a145d256c0c6a6fff2bfb3dbb02ae656b}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-header\-\_\-hostport@{htp\-\_\-parse\-\_\-header\-\_\-hostport}}
\index{htp\-\_\-parse\-\_\-header\-\_\-hostport@{htp\-\_\-parse\-\_\-header\-\_\-hostport}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-header\-\_\-hostport}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-parse\-\_\-header\-\_\-hostport (
\begin{DoxyParamCaption}
\item[{{\bf bstr} $\ast$}]{hostport, }
\item[{{\bf bstr} $\ast$$\ast$}]{hostname, }
\item[{int $\ast$}]{port, }
\item[{uint64\-\_\-t $\ast$}]{flags}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a145d256c0c6a6fff2bfb3dbb02ae656b}
Parses hostport provided in the Host header.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em hostport} & \\
\hline
\mbox{\tt out}  & {\em hostname} & \\
\hline
\mbox{\tt out}  & {\em port} & \\
\hline
\mbox{\tt out}  & {\em flags} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on success or H\-T\-P\-\_\-\-E\-R\-R\-O\-R error. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_aedc19799e102c068dfce83c4ccd0961a}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-hostport@{htp\-\_\-parse\-\_\-hostport}}
\index{htp\-\_\-parse\-\_\-hostport@{htp\-\_\-parse\-\_\-hostport}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-hostport}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-parse\-\_\-hostport (
\begin{DoxyParamCaption}
\item[{{\bf bstr} $\ast$}]{hostport, }
\item[{{\bf bstr} $\ast$$\ast$}]{hostname, }
\item[{int $\ast$}]{port, }
\item[{int $\ast$}]{invalid}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_aedc19799e102c068dfce83c4ccd0961a}
Parses an authority string, which consists of a hostname with an optional port number; username and password are not allowed and will not be handled.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em hostport} & \\
\hline
\mbox{\tt out}  & {\em hostname} & A bstring containing the hostname, or N\-U\-L\-L if the hostname is invalid. If this value is not N\-U\-L\-L, the caller assumes responsibility for memory management. \\
\hline
\mbox{\tt out}  & {\em port} & Port number, or -\/1 if the port is not present or invalid. \\
\hline
\mbox{\tt out}  & {\em invalid} & Set to 1 if any part of the authority is invalid. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on success, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on memory allocation failure. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_ae73f7889b2bec1d7c2605c154cc4ecda}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-positive\-\_\-integer\-\_\-whitespace@{htp\-\_\-parse\-\_\-positive\-\_\-integer\-\_\-whitespace}}
\index{htp\-\_\-parse\-\_\-positive\-\_\-integer\-\_\-whitespace@{htp\-\_\-parse\-\_\-positive\-\_\-integer\-\_\-whitespace}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-positive\-\_\-integer\-\_\-whitespace}]{\setlength{\rightskip}{0pt plus 5cm}int64\-\_\-t htp\-\_\-parse\-\_\-positive\-\_\-integer\-\_\-whitespace (
\begin{DoxyParamCaption}
\item[{unsigned char $\ast$}]{data, }
\item[{size\-\_\-t}]{len, }
\item[{int}]{base}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_ae73f7889b2bec1d7c2605c154cc4ecda}
A somewhat forgiving parser for a positive integer in a given base. Only L\-W\-S is allowed before and after the number.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em data} & \\
\hline
\mbox{\tt in}  & {\em len} & \\
\hline
\mbox{\tt in}  & {\em base} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The parsed number on success; a negative number on error. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a237aaf4069198820e21015a9efb28ed6}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-protocol@{htp\-\_\-parse\-\_\-protocol}}
\index{htp\-\_\-parse\-\_\-protocol@{htp\-\_\-parse\-\_\-protocol}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-protocol}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-parse\-\_\-protocol (
\begin{DoxyParamCaption}
\item[{{\bf bstr} $\ast$}]{protocol}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a237aaf4069198820e21015a9efb28ed6}
Determines protocol number from a textual representation (i.\-e., \char`\"{}\-H\-T\-T\-P/1.\-1\char`\"{}). This function will only understand a properly formatted protocol information. It does not try to be flexible.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em protocol} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Protocol version or P\-R\-O\-T\-O\-C\-O\-L\-\_\-\-U\-N\-K\-N\-O\-W\-N. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a942dcbfae19b6ceb5c070cb84dc50bce}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-request\-\_\-header\-\_\-generic@{htp\-\_\-parse\-\_\-request\-\_\-header\-\_\-generic}}
\index{htp\-\_\-parse\-\_\-request\-\_\-header\-\_\-generic@{htp\-\_\-parse\-\_\-request\-\_\-header\-\_\-generic}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-request\-\_\-header\-\_\-generic}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-parse\-\_\-request\-\_\-header\-\_\-generic (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp, }
\item[{{\bf htp\-\_\-header\-\_\-t} $\ast$}]{h, }
\item[{unsigned char $\ast$}]{data, }
\item[{size\-\_\-t}]{len}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a942dcbfae19b6ceb5c070cb84dc50bce}
Generic request header parser.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\mbox{\tt in}  & {\em h} & \\
\hline
\mbox{\tt in}  & {\em data} & \\
\hline
\mbox{\tt in}  & {\em len} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K or H\-T\-P\-\_\-\-E\-R\-R\-O\-R 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a84210ba8a498e578ab7f99914911b8e5}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-apache\-\_\-2\-\_\-2@{htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-apache\-\_\-2\-\_\-2}}
\index{htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-apache\-\_\-2\-\_\-2@{htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-apache\-\_\-2\-\_\-2}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-apache\-\_\-2\-\_\-2}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-apache\-\_\-2\-\_\-2 (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a84210ba8a498e578ab7f99914911b8e5}
Parse request line as Apache 2.\-2 does.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K or H\-T\-P\-\_\-\-E\-R\-R\-O\-R 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a02add732118572070ba289abd8a4cd66}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-generic@{htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-generic}}
\index{htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-generic@{htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-generic}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-generic}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-generic (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a02add732118572070ba289abd8a4cd66}
Generic request line parser.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K or H\-T\-P\-\_\-\-E\-R\-R\-O\-R 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a53bf758c818ba5d2554eba3ba380fb36}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-generic\-\_\-ex@{htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-generic\-\_\-ex}}
\index{htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-generic\-\_\-ex@{htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-generic\-\_\-ex}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-generic\-\_\-ex}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-parse\-\_\-request\-\_\-line\-\_\-generic\-\_\-ex (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp, }
\item[{int}]{nul\-\_\-terminates}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a53bf758c818ba5d2554eba3ba380fb36}
\hypertarget{htp__private_8h_acbf864cbe06ef50937cb271c79261d18}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-response\-\_\-header\-\_\-generic@{htp\-\_\-parse\-\_\-response\-\_\-header\-\_\-generic}}
\index{htp\-\_\-parse\-\_\-response\-\_\-header\-\_\-generic@{htp\-\_\-parse\-\_\-response\-\_\-header\-\_\-generic}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-response\-\_\-header\-\_\-generic}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-parse\-\_\-response\-\_\-header\-\_\-generic (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp, }
\item[{{\bf htp\-\_\-header\-\_\-t} $\ast$}]{h, }
\item[{unsigned char $\ast$}]{data, }
\item[{size\-\_\-t}]{len}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_acbf864cbe06ef50937cb271c79261d18}
Generic response header parser.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\mbox{\tt in}  & {\em h} & \\
\hline
\mbox{\tt in}  & {\em data} & \\
\hline
\mbox{\tt in}  & {\em len} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P status 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a94a11f3a575e297f071076f396fe3117}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-response\-\_\-line\-\_\-generic@{htp\-\_\-parse\-\_\-response\-\_\-line\-\_\-generic}}
\index{htp\-\_\-parse\-\_\-response\-\_\-line\-\_\-generic@{htp\-\_\-parse\-\_\-response\-\_\-line\-\_\-generic}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-response\-\_\-line\-\_\-generic}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-parse\-\_\-response\-\_\-line\-\_\-generic (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a94a11f3a575e297f071076f396fe3117}
Generic response line parser.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P status 
\end{DoxyReturn}
\hypertarget{htp__private_8h_aa8aeab7a6f7948a8ee81cc37dbcbe28c}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-single\-\_\-cookie\-\_\-v0@{htp\-\_\-parse\-\_\-single\-\_\-cookie\-\_\-v0}}
\index{htp\-\_\-parse\-\_\-single\-\_\-cookie\-\_\-v0@{htp\-\_\-parse\-\_\-single\-\_\-cookie\-\_\-v0}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-single\-\_\-cookie\-\_\-v0}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-parse\-\_\-single\-\_\-cookie\-\_\-v0 (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp, }
\item[{unsigned char $\ast$}]{data, }
\item[{size\-\_\-t}]{len}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_aa8aeab7a6f7948a8ee81cc37dbcbe28c}
Parses a single v0 request cookie and places the results into tx-\/$>$request\-\_\-cookies.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\mbox{\tt in}  & {\em data} & \\
\hline
\mbox{\tt in}  & {\em len} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on success, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on error. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a2ad81779ba8a5a89d48455078d5aedc9}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-status@{htp\-\_\-parse\-\_\-status}}
\index{htp\-\_\-parse\-\_\-status@{htp\-\_\-parse\-\_\-status}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-status}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-parse\-\_\-status (
\begin{DoxyParamCaption}
\item[{{\bf bstr} $\ast$}]{status}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a2ad81779ba8a5a89d48455078d5aedc9}
Determines the numerical value of a response status given as a string.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em status} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Status code on success, or -\/1 on error. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a330b435a16a1f366eed76bf7b7bddba6}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-uri@{htp\-\_\-parse\-\_\-uri}}
\index{htp\-\_\-parse\-\_\-uri@{htp\-\_\-parse\-\_\-uri}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-uri}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-parse\-\_\-uri (
\begin{DoxyParamCaption}
\item[{{\bf bstr} $\ast$}]{input, }
\item[{{\bf htp\-\_\-uri\-\_\-t} $\ast$$\ast$}]{uri}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a330b435a16a1f366eed76bf7b7bddba6}
Parses request U\-R\-I, making no attempt to validate the contents.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em input} & \\
\hline
\mbox{\tt in}  & {\em uri} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-E\-R\-R\-O\-R on memory allocation failure, H\-T\-P\-\_\-\-O\-K otherwise 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a8fbfa6b24b1c5ffb1f1d9de3d3834c6c}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-parse\-\_\-uri\-\_\-hostport@{htp\-\_\-parse\-\_\-uri\-\_\-hostport}}
\index{htp\-\_\-parse\-\_\-uri\-\_\-hostport@{htp\-\_\-parse\-\_\-uri\-\_\-hostport}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-parse\-\_\-uri\-\_\-hostport}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-parse\-\_\-uri\-\_\-hostport (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp, }
\item[{{\bf bstr} $\ast$}]{hostport, }
\item[{{\bf htp\-\_\-uri\-\_\-t} $\ast$}]{uri}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a8fbfa6b24b1c5ffb1f1d9de3d3834c6c}
Parses hostport provided in the U\-R\-I.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\mbox{\tt in}  & {\em hostport} & \\
\hline
\mbox{\tt in}  & {\em uri} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on success or H\-T\-P\-\_\-\-E\-R\-R\-O\-R error. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_aa2d2ad08d21713822f1d32dc58881caf}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-php\-\_\-parameter\-\_\-processor@{htp\-\_\-php\-\_\-parameter\-\_\-processor}}
\index{htp\-\_\-php\-\_\-parameter\-\_\-processor@{htp\-\_\-php\-\_\-parameter\-\_\-processor}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-php\-\_\-parameter\-\_\-processor}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-php\-\_\-parameter\-\_\-processor (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-param\-\_\-t} $\ast$}]{p}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_aa2d2ad08d21713822f1d32dc58881caf}
This is a proof-\/of-\/concept processor that processes parameter names in a way {\itshape similar} to P\-H\-P. Whitespace at the beginning is removed, and the remaining whitespace characters are converted to underscores. Proper research of P\-H\-P's behavior is needed before we can claim to be emulating it.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em p} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K on success, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on failure. 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a35a353bcc0a6c767d5f2880b9707ebf2}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-prenormalize\-\_\-uri\-\_\-path\-\_\-inplace@{htp\-\_\-prenormalize\-\_\-uri\-\_\-path\-\_\-inplace}}
\index{htp\-\_\-prenormalize\-\_\-uri\-\_\-path\-\_\-inplace@{htp\-\_\-prenormalize\-\_\-uri\-\_\-path\-\_\-inplace}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-prenormalize\-\_\-uri\-\_\-path\-\_\-inplace}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-prenormalize\-\_\-uri\-\_\-path\-\_\-inplace (
\begin{DoxyParamCaption}
\item[{{\bf bstr} $\ast$}]{s, }
\item[{int $\ast$}]{flags, }
\item[{int}]{case\-\_\-insensitive, }
\item[{int}]{backslash, }
\item[{int}]{decode\-\_\-separators, }
\item[{int}]{remove\-\_\-consecutive}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a35a353bcc0a6c767d5f2880b9707ebf2}
\hypertarget{htp__private_8h_ac27d9ef825468ab08cf316b9b527a8cc}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-print\-\_\-log@{htp\-\_\-print\-\_\-log}}
\index{htp\-\_\-print\-\_\-log@{htp\-\_\-print\-\_\-log}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-print\-\_\-log}]{\setlength{\rightskip}{0pt plus 5cm}void htp\-\_\-print\-\_\-log (
\begin{DoxyParamCaption}
\item[{F\-I\-L\-E $\ast$}]{stream, }
\item[{{\bf htp\-\_\-log\-\_\-t} $\ast$}]{log}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_ac27d9ef825468ab08cf316b9b527a8cc}
\hypertarget{htp__private_8h_a56dfd3147fee6124ab7c7a1e58b5ff27}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-process\-\_\-request\-\_\-header\-\_\-apache\-\_\-2\-\_\-2@{htp\-\_\-process\-\_\-request\-\_\-header\-\_\-apache\-\_\-2\-\_\-2}}
\index{htp\-\_\-process\-\_\-request\-\_\-header\-\_\-apache\-\_\-2\-\_\-2@{htp\-\_\-process\-\_\-request\-\_\-header\-\_\-apache\-\_\-2\-\_\-2}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-process\-\_\-request\-\_\-header\-\_\-apache\-\_\-2\-\_\-2}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-process\-\_\-request\-\_\-header\-\_\-apache\-\_\-2\-\_\-2 (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp, }
\item[{unsigned char $\ast$}]{data, }
\item[{size\-\_\-t}]{len}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a56dfd3147fee6124ab7c7a1e58b5ff27}
Extract one request header. A header can span multiple lines, in which case they will be folded into one before parsing is attempted.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\mbox{\tt in}  & {\em data} & \\
\hline
\mbox{\tt in}  & {\em len} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K or H\-T\-P\-\_\-\-E\-R\-R\-O\-R 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a4a3399cfc120ef7bc532821f41bbc7e0}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-process\-\_\-request\-\_\-header\-\_\-generic@{htp\-\_\-process\-\_\-request\-\_\-header\-\_\-generic}}
\index{htp\-\_\-process\-\_\-request\-\_\-header\-\_\-generic@{htp\-\_\-process\-\_\-request\-\_\-header\-\_\-generic}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-process\-\_\-request\-\_\-header\-\_\-generic}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-process\-\_\-request\-\_\-header\-\_\-generic (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp, }
\item[{unsigned char $\ast$}]{data, }
\item[{size\-\_\-t}]{len}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a4a3399cfc120ef7bc532821f41bbc7e0}
Extract one request header. A header can span multiple lines, in which case they will be folded into one before parsing is attempted.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\mbox{\tt in}  & {\em data} & \\
\hline
\mbox{\tt in}  & {\em len} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P\-\_\-\-O\-K or H\-T\-P\-\_\-\-E\-R\-R\-O\-R 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a7c9e1963cfe2008b92889c5e1e4f0bb1}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-process\-\_\-response\-\_\-header\-\_\-generic@{htp\-\_\-process\-\_\-response\-\_\-header\-\_\-generic}}
\index{htp\-\_\-process\-\_\-response\-\_\-header\-\_\-generic@{htp\-\_\-process\-\_\-response\-\_\-header\-\_\-generic}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-process\-\_\-response\-\_\-header\-\_\-generic}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-process\-\_\-response\-\_\-header\-\_\-generic (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp, }
\item[{unsigned char $\ast$}]{data, }
\item[{size\-\_\-t}]{len}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a7c9e1963cfe2008b92889c5e1e4f0bb1}
Generic response header line(s) processor, which assembles folded lines into a single buffer before invoking the parsing function.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\mbox{\tt in}  & {\em data} & \\
\hline
\mbox{\tt in}  & {\em len} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
H\-T\-P status 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a68a568e948b5a609fb4900152498142b}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-replace\-\_\-hostname@{htp\-\_\-replace\-\_\-hostname}}
\index{htp\-\_\-replace\-\_\-hostname@{htp\-\_\-replace\-\_\-hostname}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-replace\-\_\-hostname}]{\setlength{\rightskip}{0pt plus 5cm}void htp\-\_\-replace\-\_\-hostname (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp, }
\item[{{\bf htp\-\_\-uri\-\_\-t} $\ast$}]{parsed\-\_\-uri, }
\item[{{\bf bstr} $\ast$}]{hostname}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a68a568e948b5a609fb4900152498142b}
\hypertarget{htp__private_8h_ae9186694fa6cb9d4985d3c66698f0968}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-req\-\_\-run\-\_\-hook\-\_\-body\-\_\-data@{htp\-\_\-req\-\_\-run\-\_\-hook\-\_\-body\-\_\-data}}
\index{htp\-\_\-req\-\_\-run\-\_\-hook\-\_\-body\-\_\-data@{htp\-\_\-req\-\_\-run\-\_\-hook\-\_\-body\-\_\-data}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-req\-\_\-run\-\_\-hook\-\_\-body\-\_\-data}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-req\-\_\-run\-\_\-hook\-\_\-body\-\_\-data (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp, }
\item[{{\bf htp\-\_\-tx\-\_\-data\-\_\-t} $\ast$}]{d}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_ae9186694fa6cb9d4985d3c66698f0968}
Run the R\-E\-Q\-U\-E\-S\-T\-\_\-\-B\-O\-D\-Y\-\_\-\-D\-A\-T\-A hook.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\mbox{\tt in}  & {\em d} & \\
\hline
\end{DoxyParams}
\hypertarget{htp__private_8h_aa60cc60143dfb38260549c4df5219727}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-res\-\_\-run\-\_\-hook\-\_\-body\-\_\-data@{htp\-\_\-res\-\_\-run\-\_\-hook\-\_\-body\-\_\-data}}
\index{htp\-\_\-res\-\_\-run\-\_\-hook\-\_\-body\-\_\-data@{htp\-\_\-res\-\_\-run\-\_\-hook\-\_\-body\-\_\-data}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-res\-\_\-run\-\_\-hook\-\_\-body\-\_\-data}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-res\-\_\-run\-\_\-hook\-\_\-body\-\_\-data (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp, }
\item[{{\bf htp\-\_\-tx\-\_\-data\-\_\-t} $\ast$}]{d}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_aa60cc60143dfb38260549c4df5219727}
Run the R\-E\-S\-P\-O\-N\-S\-E\-\_\-\-B\-O\-D\-Y\-\_\-\-D\-A\-T\-A hook.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\mbox{\tt in}  & {\em d} & \\
\hline
\end{DoxyParams}
\hypertarget{htp__private_8h_a86a9a18ddecb35422b934bf270bfccbd}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-transcode\-\_\-bstr@{htp\-\_\-transcode\-\_\-bstr}}
\index{htp\-\_\-transcode\-\_\-bstr@{htp\-\_\-transcode\-\_\-bstr}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-transcode\-\_\-bstr}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-transcode\-\_\-bstr (
\begin{DoxyParamCaption}
\item[{iconv\-\_\-t}]{cd, }
\item[{{\bf bstr} $\ast$}]{input, }
\item[{{\bf bstr} $\ast$$\ast$}]{output}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a86a9a18ddecb35422b934bf270bfccbd}
Transcode one bstr.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em cd} & \\
\hline
\mbox{\tt in}  & {\em input} & \\
\hline
\mbox{\tt in}  & {\em output} & \\
\hline
\end{DoxyParams}
\hypertarget{htp__private_8h_a31718600e56773087712711de6710492}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-transcode\-\_\-params@{htp\-\_\-transcode\-\_\-params}}
\index{htp\-\_\-transcode\-\_\-params@{htp\-\_\-transcode\-\_\-params}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-transcode\-\_\-params}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-transcode\-\_\-params (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-connp\-\_\-t} $\ast$}]{connp, }
\item[{{\bf htp\-\_\-table\-\_\-t} $\ast$$\ast$}]{params, }
\item[{int}]{destroy\-\_\-old}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a31718600e56773087712711de6710492}
Transcode all parameters supplied in the table.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em connp} & \\
\hline
\mbox{\tt in}  & {\em params} & \\
\hline
\mbox{\tt in}  & {\em destroy\-\_\-old} & \\
\hline
\end{DoxyParams}
\hypertarget{htp__private_8h_a989808ba8cacae96e9c5e0e052a73a3c}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-treat\-\_\-response\-\_\-line\-\_\-as\-\_\-body@{htp\-\_\-treat\-\_\-response\-\_\-line\-\_\-as\-\_\-body}}
\index{htp\-\_\-treat\-\_\-response\-\_\-line\-\_\-as\-\_\-body@{htp\-\_\-treat\-\_\-response\-\_\-line\-\_\-as\-\_\-body}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-treat\-\_\-response\-\_\-line\-\_\-as\-\_\-body}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-treat\-\_\-response\-\_\-line\-\_\-as\-\_\-body (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a989808ba8cacae96e9c5e0e052a73a3c}
Determine if the information provided on the response line is good enough. Browsers are lax when it comes to response line parsing. In most cases they will only look for the words \char`\"{}http\char`\"{} at the beginning.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em tx} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
1 for good enough or 0 for not good enough 
\end{DoxyReturn}
\hypertarget{htp__private_8h_a0d9bedcb7fd819340ebd8e8271263191}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-tx\-\_\-destroy\-\_\-incomplete@{htp\-\_\-tx\-\_\-destroy\-\_\-incomplete}}
\index{htp\-\_\-tx\-\_\-destroy\-\_\-incomplete@{htp\-\_\-tx\-\_\-destroy\-\_\-incomplete}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-tx\-\_\-destroy\-\_\-incomplete}]{\setlength{\rightskip}{0pt plus 5cm}void htp\-\_\-tx\-\_\-destroy\-\_\-incomplete (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a0d9bedcb7fd819340ebd8e8271263191}
\hypertarget{htp__private_8h_a9256c1eaab954ec27241d1ad51067b55}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-tx\-\_\-finalize@{htp\-\_\-tx\-\_\-finalize}}
\index{htp\-\_\-tx\-\_\-finalize@{htp\-\_\-tx\-\_\-finalize}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-tx\-\_\-finalize}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-tx\-\_\-finalize (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a9256c1eaab954ec27241d1ad51067b55}
\hypertarget{htp__private_8h_a88c6e5a1d12435394c5bad42cf6fbe5b}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-tx\-\_\-is\-\_\-complete@{htp\-\_\-tx\-\_\-is\-\_\-complete}}
\index{htp\-\_\-tx\-\_\-is\-\_\-complete@{htp\-\_\-tx\-\_\-is\-\_\-complete}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-tx\-\_\-is\-\_\-complete}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-tx\-\_\-is\-\_\-complete (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a88c6e5a1d12435394c5bad42cf6fbe5b}
\hypertarget{htp__private_8h_a13e830ded4af725cc7160b1406023d89}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-tx\-\_\-req\-\_\-process\-\_\-body\-\_\-data\-\_\-ex@{htp\-\_\-tx\-\_\-req\-\_\-process\-\_\-body\-\_\-data\-\_\-ex}}
\index{htp\-\_\-tx\-\_\-req\-\_\-process\-\_\-body\-\_\-data\-\_\-ex@{htp\-\_\-tx\-\_\-req\-\_\-process\-\_\-body\-\_\-data\-\_\-ex}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-tx\-\_\-req\-\_\-process\-\_\-body\-\_\-data\-\_\-ex}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-tx\-\_\-req\-\_\-process\-\_\-body\-\_\-data\-\_\-ex (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx, }
\item[{const void $\ast$}]{data, }
\item[{size\-\_\-t}]{len}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a13e830ded4af725cc7160b1406023d89}
\hypertarget{htp__private_8h_a7745dfd28ae341b34cde2bb1f333b1b8}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-tx\-\_\-request\-\_\-progress\-\_\-as\-\_\-string@{htp\-\_\-tx\-\_\-request\-\_\-progress\-\_\-as\-\_\-string}}
\index{htp\-\_\-tx\-\_\-request\-\_\-progress\-\_\-as\-\_\-string@{htp\-\_\-tx\-\_\-request\-\_\-progress\-\_\-as\-\_\-string}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-tx\-\_\-request\-\_\-progress\-\_\-as\-\_\-string}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ htp\-\_\-tx\-\_\-request\-\_\-progress\-\_\-as\-\_\-string (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a7745dfd28ae341b34cde2bb1f333b1b8}
\hypertarget{htp__private_8h_a219a0b24ed95d84a3fb9ad7c07cac511}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-tx\-\_\-res\-\_\-process\-\_\-body\-\_\-data\-\_\-ex@{htp\-\_\-tx\-\_\-res\-\_\-process\-\_\-body\-\_\-data\-\_\-ex}}
\index{htp\-\_\-tx\-\_\-res\-\_\-process\-\_\-body\-\_\-data\-\_\-ex@{htp\-\_\-tx\-\_\-res\-\_\-process\-\_\-body\-\_\-data\-\_\-ex}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-tx\-\_\-res\-\_\-process\-\_\-body\-\_\-data\-\_\-ex}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-tx\-\_\-res\-\_\-process\-\_\-body\-\_\-data\-\_\-ex (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx, }
\item[{const void $\ast$}]{data, }
\item[{size\-\_\-t}]{len}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a219a0b24ed95d84a3fb9ad7c07cac511}
\hypertarget{htp__private_8h_a9469285f23ba429b8358c9385ccd6eef}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-tx\-\_\-response\-\_\-progress\-\_\-as\-\_\-string@{htp\-\_\-tx\-\_\-response\-\_\-progress\-\_\-as\-\_\-string}}
\index{htp\-\_\-tx\-\_\-response\-\_\-progress\-\_\-as\-\_\-string@{htp\-\_\-tx\-\_\-response\-\_\-progress\-\_\-as\-\_\-string}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-tx\-\_\-response\-\_\-progress\-\_\-as\-\_\-string}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ htp\-\_\-tx\-\_\-response\-\_\-progress\-\_\-as\-\_\-string (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a9469285f23ba429b8358c9385ccd6eef}
\hypertarget{htp__private_8h_a094a6a35a7a937d160a2785e2e6e3269}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-tx\-\_\-state\-\_\-request\-\_\-complete\-\_\-partial@{htp\-\_\-tx\-\_\-state\-\_\-request\-\_\-complete\-\_\-partial}}
\index{htp\-\_\-tx\-\_\-state\-\_\-request\-\_\-complete\-\_\-partial@{htp\-\_\-tx\-\_\-state\-\_\-request\-\_\-complete\-\_\-partial}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-tx\-\_\-state\-\_\-request\-\_\-complete\-\_\-partial}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-tx\-\_\-state\-\_\-request\-\_\-complete\-\_\-partial (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a094a6a35a7a937d160a2785e2e6e3269}
\hypertarget{htp__private_8h_a76675e7e250e24c1ac47c49b4181aff8}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-tx\-\_\-state\-\_\-response\-\_\-complete\-\_\-ex@{htp\-\_\-tx\-\_\-state\-\_\-response\-\_\-complete\-\_\-ex}}
\index{htp\-\_\-tx\-\_\-state\-\_\-response\-\_\-complete\-\_\-ex@{htp\-\_\-tx\-\_\-state\-\_\-response\-\_\-complete\-\_\-ex}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-tx\-\_\-state\-\_\-response\-\_\-complete\-\_\-ex}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-tx\-\_\-state\-\_\-response\-\_\-complete\-\_\-ex (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx, }
\item[{int}]{hybrid\-\_\-mode}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a76675e7e250e24c1ac47c49b4181aff8}
\hypertarget{htp__private_8h_a3290cc3c0233d21dd5c3e8e97883ea18}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-tx\-\_\-urldecode\-\_\-params\-\_\-inplace@{htp\-\_\-tx\-\_\-urldecode\-\_\-params\-\_\-inplace}}
\index{htp\-\_\-tx\-\_\-urldecode\-\_\-params\-\_\-inplace@{htp\-\_\-tx\-\_\-urldecode\-\_\-params\-\_\-inplace}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-tx\-\_\-urldecode\-\_\-params\-\_\-inplace}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-tx\-\_\-urldecode\-\_\-params\-\_\-inplace (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx, }
\item[{{\bf bstr} $\ast$}]{input}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a3290cc3c0233d21dd5c3e8e97883ea18}
\hypertarget{htp__private_8h_a14e44933747475b68b36ea4b4ec7f1eb}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-tx\-\_\-urldecode\-\_\-uri\-\_\-inplace@{htp\-\_\-tx\-\_\-urldecode\-\_\-uri\-\_\-inplace}}
\index{htp\-\_\-tx\-\_\-urldecode\-\_\-uri\-\_\-inplace@{htp\-\_\-tx\-\_\-urldecode\-\_\-uri\-\_\-inplace}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-tx\-\_\-urldecode\-\_\-uri\-\_\-inplace}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-tx\-\_\-urldecode\-\_\-uri\-\_\-inplace (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx, }
\item[{{\bf bstr} $\ast$}]{input}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a14e44933747475b68b36ea4b4ec7f1eb}
\hypertarget{htp__private_8h_a556b54577b8787f15a9d98955ba6b1a7}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-unparse\-\_\-uri\-\_\-noencode@{htp\-\_\-unparse\-\_\-uri\-\_\-noencode}}
\index{htp\-\_\-unparse\-\_\-uri\-\_\-noencode@{htp\-\_\-unparse\-\_\-uri\-\_\-noencode}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-unparse\-\_\-uri\-\_\-noencode}]{\setlength{\rightskip}{0pt plus 5cm}{\bf bstr}$\ast$ htp\-\_\-unparse\-\_\-uri\-\_\-noencode (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-uri\-\_\-t} $\ast$}]{uri}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a556b54577b8787f15a9d98955ba6b1a7}
\hypertarget{htp__private_8h_af2d18313ab65aaed7a524b589369912c}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-uriencoding\-\_\-normalize\-\_\-inplace@{htp\-\_\-uriencoding\-\_\-normalize\-\_\-inplace}}
\index{htp\-\_\-uriencoding\-\_\-normalize\-\_\-inplace@{htp\-\_\-uriencoding\-\_\-normalize\-\_\-inplace}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-uriencoding\-\_\-normalize\-\_\-inplace}]{\setlength{\rightskip}{0pt plus 5cm}void htp\-\_\-uriencoding\-\_\-normalize\-\_\-inplace (
\begin{DoxyParamCaption}
\item[{{\bf bstr} $\ast$}]{s}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_af2d18313ab65aaed7a524b589369912c}
\hypertarget{htp__private_8h_ac19fd0827df78d7618a6360a0a9e2ac2}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-utf8\-\_\-decode\-\_\-path\-\_\-inplace@{htp\-\_\-utf8\-\_\-decode\-\_\-path\-\_\-inplace}}
\index{htp\-\_\-utf8\-\_\-decode\-\_\-path\-\_\-inplace@{htp\-\_\-utf8\-\_\-decode\-\_\-path\-\_\-inplace}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-utf8\-\_\-decode\-\_\-path\-\_\-inplace}]{\setlength{\rightskip}{0pt plus 5cm}void htp\-\_\-utf8\-\_\-decode\-\_\-path\-\_\-inplace (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-cfg\-\_\-t} $\ast$}]{cfg, }
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx, }
\item[{{\bf bstr} $\ast$}]{path}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_ac19fd0827df78d7618a6360a0a9e2ac2}
Decode a U\-T\-F-\/8 encoded path. Overlong characters will be decoded, invalid characters will be left as-\/is. Best-\/fit mapping will be used to convert U\-T\-F-\/8 into a single-\/byte stream.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em cfg} & \\
\hline
\mbox{\tt in}  & {\em tx} & \\
\hline
\mbox{\tt in}  & {\em path} & \\
\hline
\end{DoxyParams}
\hypertarget{htp__private_8h_a75ad702e0957be72f80dc27900f83ec7}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-utf8\-\_\-validate\-\_\-path@{htp\-\_\-utf8\-\_\-validate\-\_\-path}}
\index{htp\-\_\-utf8\-\_\-validate\-\_\-path@{htp\-\_\-utf8\-\_\-validate\-\_\-path}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-utf8\-\_\-validate\-\_\-path}]{\setlength{\rightskip}{0pt plus 5cm}void htp\-\_\-utf8\-\_\-validate\-\_\-path (
\begin{DoxyParamCaption}
\item[{{\bf htp\-\_\-tx\-\_\-t} $\ast$}]{tx, }
\item[{{\bf bstr} $\ast$}]{path}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a75ad702e0957be72f80dc27900f83ec7}
Validate a path that is quite possibly U\-T\-F-\/8 encoded.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em tx} & \\
\hline
\mbox{\tt in}  & {\em path} & \\
\hline
\end{DoxyParams}
\hypertarget{htp__private_8h_a31cca701d490472a8cdb778a6c0e6560}{\index{htp\-\_\-private.\-h@{htp\-\_\-private.\-h}!htp\-\_\-validate\-\_\-hostname@{htp\-\_\-validate\-\_\-hostname}}
\index{htp\-\_\-validate\-\_\-hostname@{htp\-\_\-validate\-\_\-hostname}!htp_private.h@{htp\-\_\-private.\-h}}
\subsubsection[{htp\-\_\-validate\-\_\-hostname}]{\setlength{\rightskip}{0pt plus 5cm}int htp\-\_\-validate\-\_\-hostname (
\begin{DoxyParamCaption}
\item[{{\bf bstr} $\ast$}]{hostname}
\end{DoxyParamCaption}
)}}\label{htp__private_8h_a31cca701d490472a8cdb778a6c0e6560}
Implements relaxed (not strictly R\-F\-C) hostname validation.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em hostname} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
1 if the supplied hostname is valid; 0 if it is not. 
\end{DoxyReturn}