Sophie

Sophie

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

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

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