\hypertarget{htp__multipart_8c}{\section{htp\-\_\-multipart.\-c File Reference} \label{htp__multipart_8c}\index{htp\-\_\-multipart.\-c@{htp\-\_\-multipart.\-c}} } {\ttfamily \#include \char`\"{}htp\-\_\-private.\-h\char`\"{}}\\* \subsection*{Functions} \begin{DoxyCompactItemize} \item \hyperlink{structhtp__multipart__t}{htp\-\_\-multipart\-\_\-t} $\ast$ \hyperlink{htp__multipart_8c_a92b1e30aed18fe59ec122fb65519d526}{htp\-\_\-mpartp\-\_\-get\-\_\-multipart} (\hyperlink{structhtp__mpartp__t}{htp\-\_\-mpartp\-\_\-t} $\ast$parser) \item \hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__multipart_8c_ac51272765ee1a5c1b70980a0b96d4ece}{htp\-\_\-mpart\-\_\-part\-\_\-parse\-\_\-c\-\_\-d} (\hyperlink{structhtp__multipart__part__t}{htp\-\_\-multipart\-\_\-part\-\_\-t} $\ast$part) \item \hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__multipart_8c_a6acf2acff1d8828fba0df30a9397108c}{htp\-\_\-mpart\-\_\-part\-\_\-process\-\_\-headers} (\hyperlink{structhtp__multipart__part__t}{htp\-\_\-multipart\-\_\-part\-\_\-t} $\ast$part) \item \hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__multipart_8c_ade5c03a799c0f5af2319900fe78a98e0}{htp\-\_\-mpartp\-\_\-parse\-\_\-header} (\hyperlink{structhtp__multipart__part__t}{htp\-\_\-multipart\-\_\-part\-\_\-t} $\ast$part, const unsigned char $\ast$data, size\-\_\-t len) \item \hyperlink{structhtp__multipart__part__t}{htp\-\_\-multipart\-\_\-part\-\_\-t} $\ast$ \hyperlink{htp__multipart_8c_a852a6833ffbaf5dfd8577aaba8cdcef6}{htp\-\_\-mpart\-\_\-part\-\_\-create} (\hyperlink{structhtp__mpartp__t}{htp\-\_\-mpartp\-\_\-t} $\ast$parser) \item void \hyperlink{htp__multipart_8c_afc3a6b77b984cb093dbcd6370c42b887}{htp\-\_\-mpart\-\_\-part\-\_\-destroy} (\hyperlink{structhtp__multipart__part__t}{htp\-\_\-multipart\-\_\-part\-\_\-t} $\ast$part, int gave\-\_\-up\-\_\-data) \item \hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__multipart_8c_adf2e99c5087b2ec07b11bf4df9e2073f}{htp\-\_\-mpart\-\_\-part\-\_\-finalize\-\_\-data} (\hyperlink{structhtp__multipart__part__t}{htp\-\_\-multipart\-\_\-part\-\_\-t} $\ast$part) \item \hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__multipart_8c_a72b162a6bdf6226c5181a15ddf28ee41}{htp\-\_\-mpartp\-\_\-run\-\_\-request\-\_\-file\-\_\-data\-\_\-hook} (\hyperlink{structhtp__multipart__part__t}{htp\-\_\-multipart\-\_\-part\-\_\-t} $\ast$part, const unsigned char $\ast$data, size\-\_\-t len) \item \hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__multipart_8c_a368c461de4ad8f9d864f5c29968e6f4a}{htp\-\_\-mpart\-\_\-part\-\_\-handle\-\_\-data} (\hyperlink{structhtp__multipart__part__t}{htp\-\_\-multipart\-\_\-part\-\_\-t} $\ast$part, const unsigned char $\ast$data, size\-\_\-t len, int is\-\_\-line) \item \hyperlink{structhtp__mpartp__t}{htp\-\_\-mpartp\-\_\-t} $\ast$ \hyperlink{htp__multipart_8c_a33c3b3a82d145b68e450333c6e0c19ac}{htp\-\_\-mpartp\-\_\-create} (\hyperlink{structhtp__cfg__t}{htp\-\_\-cfg\-\_\-t} $\ast$cfg, \hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$boundary, uint64\-\_\-t flags) \item void \hyperlink{htp__multipart_8c_aed39a287d90d4fa9ab464444c77697c4}{htp\-\_\-mpartp\-\_\-destroy} (\hyperlink{structhtp__mpartp__t}{htp\-\_\-mpartp\-\_\-t} $\ast$parser) \item \hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__multipart_8c_a116c58436d2cbd3fdae8eba1f39d808c}{htp\-\_\-mpartp\-\_\-finalize} (\hyperlink{structhtp__mpartp__t}{htp\-\_\-mpartp\-\_\-t} $\ast$parser) \item \hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__multipart_8c_a4f343a477e74a4e91636763f3c74129d}{htp\-\_\-mpartp\-\_\-parse} (\hyperlink{structhtp__mpartp__t}{htp\-\_\-mpartp\-\_\-t} $\ast$parser, const void $\ast$\-\_\-data, size\-\_\-t len) \item \hyperlink{htp__core_8h_ab8a71422665c0773654b9b4d96f01e31}{htp\-\_\-status\-\_\-t} \hyperlink{htp__multipart_8c_a25467cb2d2fde659bd4536e795f9873e}{htp\-\_\-mpartp\-\_\-find\-\_\-boundary} (\hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$content\-\_\-type, \hyperlink{bstr_8h_ad24e3759c8d17c13ae2f05d9dde4d0b6}{bstr} $\ast$$\ast$boundary, uint64\-\_\-t $\ast$flags) \end{DoxyCompactItemize} \subsection{Detailed Description} \begin{DoxyAuthor}{Author} Ivan Ristic \href{mailto:ivanr@webkreator.com}{\tt ivanr@webkreator.\-com} \end{DoxyAuthor} \subsection{Function Documentation} \hypertarget{htp__multipart_8c_a852a6833ffbaf5dfd8577aaba8cdcef6}{\index{htp\-\_\-multipart.\-c@{htp\-\_\-multipart.\-c}!htp\-\_\-mpart\-\_\-part\-\_\-create@{htp\-\_\-mpart\-\_\-part\-\_\-create}} \index{htp\-\_\-mpart\-\_\-part\-\_\-create@{htp\-\_\-mpart\-\_\-part\-\_\-create}!htp_multipart.c@{htp\-\_\-multipart.\-c}} \subsubsection[{htp\-\_\-mpart\-\_\-part\-\_\-create}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-multipart\-\_\-part\-\_\-t}$\ast$ htp\-\_\-mpart\-\_\-part\-\_\-create ( \begin{DoxyParamCaption} \item[{{\bf htp\-\_\-mpartp\-\_\-t} $\ast$}]{parser} \end{DoxyParamCaption} )}}\label{htp__multipart_8c_a852a6833ffbaf5dfd8577aaba8cdcef6} Creates a new Multipart part. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em parser} & \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} New part instance, or N\-U\-L\-L on memory allocation failure. \end{DoxyReturn} \hypertarget{htp__multipart_8c_afc3a6b77b984cb093dbcd6370c42b887}{\index{htp\-\_\-multipart.\-c@{htp\-\_\-multipart.\-c}!htp\-\_\-mpart\-\_\-part\-\_\-destroy@{htp\-\_\-mpart\-\_\-part\-\_\-destroy}} \index{htp\-\_\-mpart\-\_\-part\-\_\-destroy@{htp\-\_\-mpart\-\_\-part\-\_\-destroy}!htp_multipart.c@{htp\-\_\-multipart.\-c}} \subsubsection[{htp\-\_\-mpart\-\_\-part\-\_\-destroy}]{\setlength{\rightskip}{0pt plus 5cm}void htp\-\_\-mpart\-\_\-part\-\_\-destroy ( \begin{DoxyParamCaption} \item[{{\bf htp\-\_\-multipart\-\_\-part\-\_\-t} $\ast$}]{part, } \item[{int}]{gave\-\_\-up\-\_\-data} \end{DoxyParamCaption} )}}\label{htp__multipart_8c_afc3a6b77b984cb093dbcd6370c42b887} Destroys a part. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em part} & \\ \hline \mbox{\tt in} & {\em gave\-\_\-up\-\_\-data} & \\ \hline \end{DoxyParams} \hypertarget{htp__multipart_8c_adf2e99c5087b2ec07b11bf4df9e2073f}{\index{htp\-\_\-multipart.\-c@{htp\-\_\-multipart.\-c}!htp\-\_\-mpart\-\_\-part\-\_\-finalize\-\_\-data@{htp\-\_\-mpart\-\_\-part\-\_\-finalize\-\_\-data}} \index{htp\-\_\-mpart\-\_\-part\-\_\-finalize\-\_\-data@{htp\-\_\-mpart\-\_\-part\-\_\-finalize\-\_\-data}!htp_multipart.c@{htp\-\_\-multipart.\-c}} \subsubsection[{htp\-\_\-mpart\-\_\-part\-\_\-finalize\-\_\-data}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-mpart\-\_\-part\-\_\-finalize\-\_\-data ( \begin{DoxyParamCaption} \item[{{\bf htp\-\_\-multipart\-\_\-part\-\_\-t} $\ast$}]{part} \end{DoxyParamCaption} )}}\label{htp__multipart_8c_adf2e99c5087b2ec07b11bf4df9e2073f} Finalizes part processing. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em part} & \\ \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__multipart_8c_a368c461de4ad8f9d864f5c29968e6f4a}{\index{htp\-\_\-multipart.\-c@{htp\-\_\-multipart.\-c}!htp\-\_\-mpart\-\_\-part\-\_\-handle\-\_\-data@{htp\-\_\-mpart\-\_\-part\-\_\-handle\-\_\-data}} \index{htp\-\_\-mpart\-\_\-part\-\_\-handle\-\_\-data@{htp\-\_\-mpart\-\_\-part\-\_\-handle\-\_\-data}!htp_multipart.c@{htp\-\_\-multipart.\-c}} \subsubsection[{htp\-\_\-mpart\-\_\-part\-\_\-handle\-\_\-data}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-mpart\-\_\-part\-\_\-handle\-\_\-data ( \begin{DoxyParamCaption} \item[{{\bf htp\-\_\-multipart\-\_\-part\-\_\-t} $\ast$}]{part, } \item[{const unsigned char $\ast$}]{data, } \item[{size\-\_\-t}]{len, } \item[{int}]{is\-\_\-line} \end{DoxyParamCaption} )}}\label{htp__multipart_8c_a368c461de4ad8f9d864f5c29968e6f4a} Handles part data. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em part} & \\ \hline \mbox{\tt in} & {\em data} & \\ \hline \mbox{\tt in} & {\em len} & \\ \hline \mbox{\tt in} & {\em is\-\_\-line} & \\ \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__multipart_8c_ac51272765ee1a5c1b70980a0b96d4ece}{\index{htp\-\_\-multipart.\-c@{htp\-\_\-multipart.\-c}!htp\-\_\-mpart\-\_\-part\-\_\-parse\-\_\-c\-\_\-d@{htp\-\_\-mpart\-\_\-part\-\_\-parse\-\_\-c\-\_\-d}} \index{htp\-\_\-mpart\-\_\-part\-\_\-parse\-\_\-c\-\_\-d@{htp\-\_\-mpart\-\_\-part\-\_\-parse\-\_\-c\-\_\-d}!htp_multipart.c@{htp\-\_\-multipart.\-c}} \subsubsection[{htp\-\_\-mpart\-\_\-part\-\_\-parse\-\_\-c\-\_\-d}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-mpart\-\_\-part\-\_\-parse\-\_\-c\-\_\-d ( \begin{DoxyParamCaption} \item[{{\bf htp\-\_\-multipart\-\_\-part\-\_\-t} $\ast$}]{part} \end{DoxyParamCaption} )}}\label{htp__multipart_8c_ac51272765ee1a5c1b70980a0b96d4ece} Parses the Content-\/\-Disposition part header. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em part} & \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} H\-T\-P\-\_\-\-O\-K on success (header found and parsed), H\-T\-P\-\_\-\-D\-E\-C\-L\-I\-N\-E\-D if there is no C-\/\-D header or if it could not be processed, and H\-T\-P\-\_\-\-E\-R\-R\-O\-R on fatal error. \end{DoxyReturn} \hypertarget{htp__multipart_8c_a6acf2acff1d8828fba0df30a9397108c}{\index{htp\-\_\-multipart.\-c@{htp\-\_\-multipart.\-c}!htp\-\_\-mpart\-\_\-part\-\_\-process\-\_\-headers@{htp\-\_\-mpart\-\_\-part\-\_\-process\-\_\-headers}} \index{htp\-\_\-mpart\-\_\-part\-\_\-process\-\_\-headers@{htp\-\_\-mpart\-\_\-part\-\_\-process\-\_\-headers}!htp_multipart.c@{htp\-\_\-multipart.\-c}} \subsubsection[{htp\-\_\-mpart\-\_\-part\-\_\-process\-\_\-headers}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-mpart\-\_\-part\-\_\-process\-\_\-headers ( \begin{DoxyParamCaption} \item[{{\bf htp\-\_\-multipart\-\_\-part\-\_\-t} $\ast$}]{part} \end{DoxyParamCaption} )}}\label{htp__multipart_8c_a6acf2acff1d8828fba0df30a9397108c} Processes part headers. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em part} & \\ \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__multipart_8c_a33c3b3a82d145b68e450333c6e0c19ac}{\index{htp\-\_\-multipart.\-c@{htp\-\_\-multipart.\-c}!htp\-\_\-mpartp\-\_\-create@{htp\-\_\-mpartp\-\_\-create}} \index{htp\-\_\-mpartp\-\_\-create@{htp\-\_\-mpartp\-\_\-create}!htp_multipart.c@{htp\-\_\-multipart.\-c}} \subsubsection[{htp\-\_\-mpartp\-\_\-create}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-mpartp\-\_\-t}$\ast$ htp\-\_\-mpartp\-\_\-create ( \begin{DoxyParamCaption} \item[{{\bf htp\-\_\-cfg\-\_\-t} $\ast$}]{cfg, } \item[{{\bf bstr} $\ast$}]{boundary, } \item[{uint64\-\_\-t}]{flags} \end{DoxyParamCaption} )}}\label{htp__multipart_8c_a33c3b3a82d145b68e450333c6e0c19ac} Creates a new multipart/form-\/data parser. On a successful invocation, the ownership of the boundary parameter is transferred to the parser. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em cfg} & \\ \hline \mbox{\tt in} & {\em boundary} & \\ \hline \mbox{\tt in} & {\em flags} & \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} New parser instance, or N\-U\-L\-L on memory allocation failure. \end{DoxyReturn} \hypertarget{htp__multipart_8c_aed39a287d90d4fa9ab464444c77697c4}{\index{htp\-\_\-multipart.\-c@{htp\-\_\-multipart.\-c}!htp\-\_\-mpartp\-\_\-destroy@{htp\-\_\-mpartp\-\_\-destroy}} \index{htp\-\_\-mpartp\-\_\-destroy@{htp\-\_\-mpartp\-\_\-destroy}!htp_multipart.c@{htp\-\_\-multipart.\-c}} \subsubsection[{htp\-\_\-mpartp\-\_\-destroy}]{\setlength{\rightskip}{0pt plus 5cm}void htp\-\_\-mpartp\-\_\-destroy ( \begin{DoxyParamCaption} \item[{{\bf htp\-\_\-mpartp\-\_\-t} $\ast$}]{parser} \end{DoxyParamCaption} )}}\label{htp__multipart_8c_aed39a287d90d4fa9ab464444c77697c4} Destroys the provided parser. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em parser} & \\ \hline \end{DoxyParams} \hypertarget{htp__multipart_8c_a116c58436d2cbd3fdae8eba1f39d808c}{\index{htp\-\_\-multipart.\-c@{htp\-\_\-multipart.\-c}!htp\-\_\-mpartp\-\_\-finalize@{htp\-\_\-mpartp\-\_\-finalize}} \index{htp\-\_\-mpartp\-\_\-finalize@{htp\-\_\-mpartp\-\_\-finalize}!htp_multipart.c@{htp\-\_\-multipart.\-c}} \subsubsection[{htp\-\_\-mpartp\-\_\-finalize}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-mpartp\-\_\-finalize ( \begin{DoxyParamCaption} \item[{{\bf htp\-\_\-mpartp\-\_\-t} $\ast$}]{parser} \end{DoxyParamCaption} )}}\label{htp__multipart_8c_a116c58436d2cbd3fdae8eba1f39d808c} Finalize parsing. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em parser} & \\ \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__multipart_8c_a25467cb2d2fde659bd4536e795f9873e}{\index{htp\-\_\-multipart.\-c@{htp\-\_\-multipart.\-c}!htp\-\_\-mpartp\-\_\-find\-\_\-boundary@{htp\-\_\-mpartp\-\_\-find\-\_\-boundary}} \index{htp\-\_\-mpartp\-\_\-find\-\_\-boundary@{htp\-\_\-mpartp\-\_\-find\-\_\-boundary}!htp_multipart.c@{htp\-\_\-multipart.\-c}} \subsubsection[{htp\-\_\-mpartp\-\_\-find\-\_\-boundary}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-mpartp\-\_\-find\-\_\-boundary ( \begin{DoxyParamCaption} \item[{{\bf bstr} $\ast$}]{content\-\_\-type, } \item[{{\bf bstr} $\ast$$\ast$}]{boundary, } \item[{uint64\-\_\-t $\ast$}]{multipart\-\_\-flags} \end{DoxyParamCaption} )}}\label{htp__multipart_8c_a25467cb2d2fde659bd4536e795f9873e} Looks for boundary in the supplied Content-\/\-Type request header. The extracted boundary will be allocated on the heap. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em content\-\_\-type} & \\ \hline \mbox{\tt out} & {\em boundary} & \\ \hline \mbox{\tt out} & {\em multipart\-\_\-flags} & Multipart flags, which are not compatible from general Lib\-H\-T\-P flags. \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} H\-T\-P\-\_\-\-O\-K on success (boundary found), H\-T\-P\-\_\-\-D\-E\-C\-L\-I\-N\-E\-D if boundary was not found, and H\-T\-P\-\_\-\-E\-R\-R\-O\-R on failure. Flags may be set on H\-T\-P\-\_\-\-O\-K and H\-T\-P\-\_\-\-D\-E\-C\-L\-I\-N\-E\-D. For example, if a boundary could not be extracted but there is indication that one is present, H\-T\-P\-\_\-\-M\-U\-L\-T\-I\-P\-A\-R\-T\-\_\-\-H\-B\-O\-U\-N\-D\-A\-R\-Y\-\_\-\-I\-N\-V\-A\-L\-I\-D will be set. \end{DoxyReturn} \hypertarget{htp__multipart_8c_a92b1e30aed18fe59ec122fb65519d526}{\index{htp\-\_\-multipart.\-c@{htp\-\_\-multipart.\-c}!htp\-\_\-mpartp\-\_\-get\-\_\-multipart@{htp\-\_\-mpartp\-\_\-get\-\_\-multipart}} \index{htp\-\_\-mpartp\-\_\-get\-\_\-multipart@{htp\-\_\-mpartp\-\_\-get\-\_\-multipart}!htp_multipart.c@{htp\-\_\-multipart.\-c}} \subsubsection[{htp\-\_\-mpartp\-\_\-get\-\_\-multipart}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-multipart\-\_\-t}$\ast$ htp\-\_\-mpartp\-\_\-get\-\_\-multipart ( \begin{DoxyParamCaption} \item[{{\bf htp\-\_\-mpartp\-\_\-t} $\ast$}]{parser} \end{DoxyParamCaption} )}}\label{htp__multipart_8c_a92b1e30aed18fe59ec122fb65519d526} Returns the multipart structure created by the parser. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em parser} & \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} The main multipart structure. \end{DoxyReturn} \hypertarget{htp__multipart_8c_a4f343a477e74a4e91636763f3c74129d}{\index{htp\-\_\-multipart.\-c@{htp\-\_\-multipart.\-c}!htp\-\_\-mpartp\-\_\-parse@{htp\-\_\-mpartp\-\_\-parse}} \index{htp\-\_\-mpartp\-\_\-parse@{htp\-\_\-mpartp\-\_\-parse}!htp_multipart.c@{htp\-\_\-multipart.\-c}} \subsubsection[{htp\-\_\-mpartp\-\_\-parse}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-mpartp\-\_\-parse ( \begin{DoxyParamCaption} \item[{{\bf htp\-\_\-mpartp\-\_\-t} $\ast$}]{parser, } \item[{const void $\ast$}]{data, } \item[{size\-\_\-t}]{len} \end{DoxyParamCaption} )}}\label{htp__multipart_8c_a4f343a477e74a4e91636763f3c74129d} Parses a chunk of multipart/form-\/data data. This function should be called as many times as necessary until all data has been consumed. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em parser} & \\ \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 failure. \end{DoxyReturn} \hypertarget{htp__multipart_8c_ade5c03a799c0f5af2319900fe78a98e0}{\index{htp\-\_\-multipart.\-c@{htp\-\_\-multipart.\-c}!htp\-\_\-mpartp\-\_\-parse\-\_\-header@{htp\-\_\-mpartp\-\_\-parse\-\_\-header}} \index{htp\-\_\-mpartp\-\_\-parse\-\_\-header@{htp\-\_\-mpartp\-\_\-parse\-\_\-header}!htp_multipart.c@{htp\-\_\-multipart.\-c}} \subsubsection[{htp\-\_\-mpartp\-\_\-parse\-\_\-header}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-mpartp\-\_\-parse\-\_\-header ( \begin{DoxyParamCaption} \item[{{\bf htp\-\_\-multipart\-\_\-part\-\_\-t} $\ast$}]{part, } \item[{const unsigned char $\ast$}]{data, } \item[{size\-\_\-t}]{len} \end{DoxyParamCaption} )}}\label{htp__multipart_8c_ade5c03a799c0f5af2319900fe78a98e0} Parses one part header. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em part} & \\ \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\-\_\-\-D\-E\-C\-L\-I\-N\-E\-D on parsing error, H\-T\-P\-\_\-\-E\-R\-R\-O\-R on fatal error. \end{DoxyReturn} \hypertarget{htp__multipart_8c_a72b162a6bdf6226c5181a15ddf28ee41}{\index{htp\-\_\-multipart.\-c@{htp\-\_\-multipart.\-c}!htp\-\_\-mpartp\-\_\-run\-\_\-request\-\_\-file\-\_\-data\-\_\-hook@{htp\-\_\-mpartp\-\_\-run\-\_\-request\-\_\-file\-\_\-data\-\_\-hook}} \index{htp\-\_\-mpartp\-\_\-run\-\_\-request\-\_\-file\-\_\-data\-\_\-hook@{htp\-\_\-mpartp\-\_\-run\-\_\-request\-\_\-file\-\_\-data\-\_\-hook}!htp_multipart.c@{htp\-\_\-multipart.\-c}} \subsubsection[{htp\-\_\-mpartp\-\_\-run\-\_\-request\-\_\-file\-\_\-data\-\_\-hook}]{\setlength{\rightskip}{0pt plus 5cm}{\bf htp\-\_\-status\-\_\-t} htp\-\_\-mpartp\-\_\-run\-\_\-request\-\_\-file\-\_\-data\-\_\-hook ( \begin{DoxyParamCaption} \item[{{\bf htp\-\_\-multipart\-\_\-part\-\_\-t} $\ast$}]{part, } \item[{const unsigned char $\ast$}]{data, } \item[{size\-\_\-t}]{len} \end{DoxyParamCaption} )}}\label{htp__multipart_8c_a72b162a6bdf6226c5181a15ddf28ee41}