\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}