Files
asterisk/main/minimime/mm-docs/html/mm__parse_8c.html

199 lines
9.7 KiB
HTML
Raw Normal View History

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>MiniMIME: mm_parse.c File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.1 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul></div>
<h1>mm_parse.c File Reference</h1><code>#include &lt;sys/types.h&gt;</code><br>
<code>#include &lt;sys/stat.h&gt;</code><br>
<code>#include &lt;stdio.h&gt;</code><br>
<code>#include &lt;stdlib.h&gt;</code><br>
<code>#include &lt;unistd.h&gt;</code><br>
<code>#include &lt;fcntl.h&gt;</code><br>
<code>#include &lt;string.h&gt;</code><br>
<code>#include &lt;ctype.h&gt;</code><br>
<code>#include &lt;assert.h&gt;</code><br>
<code>#include &quot;<a class="el" href="mm__internal_8h-source.html">mm_internal.h</a>&quot;</code><br>
<code>#include &quot;mm_util.h&quot;</code><br>
<code>#include &quot;mimeparser.h&quot;</code><br>
<code>#include &quot;mimeparser.tab.h&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mm__parse_8c.html#187cf71c0f6c2da1384823e3f20aa1a2">PARSER_initialize</a> (MM_CTX *, int)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="92d7d8e20b6def16fcf2649e0d88651f"></a><!-- doxytag: member="mm_parse.c::PARSER_setbuffer" ref="92d7d8e20b6def16fcf2649e0d88651f" args="(const char *)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>PARSER_setbuffer</b> (const char *)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="04446354e4248226578b90007d728a7b"></a><!-- doxytag: member="mm_parse.c::PARSER_setfp" ref="04446354e4248226578b90007d728a7b" args="(FILE *)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>PARSER_setfp</b> (FILE *)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mm__parse_8c.html#58c960b6017f13d4e4ec5f09b3c38495">mm_parse_mem</a> (MM_CTX *ctx, const char *text, int parsemode, int flags)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mm__parse_8c.html#cc9f623682b05f330c46e72e4e9d66cc">mm_parse_file</a> (MM_CTX *ctx, const char *filename, int parsemode, int flags)</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Functions to parse MIME messages <hr><h2>Function Documentation</h2>
<a class="anchor" name="cc9f623682b05f330c46e72e4e9d66cc"></a><!-- doxytag: member="mm_parse.c::mm_parse_file" ref="cc9f623682b05f330c46e72e4e9d66cc" args="(MM_CTX *ctx, const char *filename, int parsemode, int flags)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int mm_parse_file </td>
<td>(</td>
<td class="paramtype">MM_CTX *&nbsp;</td>
<td class="paramname"> <em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>parsemode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Parses a file into a MiniMIME context<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>A valid MiniMIME context object </td></tr>
<tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>The name of the file to parse </td></tr>
<tr><td valign="top"></td><td valign="top"><em>parsemode</em>&nbsp;</td><td>The parsemode </td></tr>
<tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>The flags to pass to the parser </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure </dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Sets mm_errno if an error occurs</dd></dl>
This function parses a MIME message, stored in the filesystem according to the parseflags and stores the results in the MiniMIME context specified by ctx.<p>
The following modes can be used to specify how the message should be parsed:<p>
<ul>
<li>MM_PARSE_STRICT: Do not tolerate MIME violations</li><li>MM_PARSE_LOOSE: Tolerate as much MIME violations as possible</li></ul>
<p>
The context needs to be initialized before using <a class="el" href="group__context.html#g919fd41f85534d9c87c256857faa2610">mm_context_new()</a> and may be freed using <a class="el" href="group__context.html#g76392d5269e9ef340c2f5f8336f7193b">mm_context_free()</a>.
</div>
</div><p>
<a class="anchor" name="58c960b6017f13d4e4ec5f09b3c38495"></a><!-- doxytag: member="mm_parse.c::mm_parse_mem" ref="58c960b6017f13d4e4ec5f09b3c38495" args="(MM_CTX *ctx, const char *text, int parsemode, int flags)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int mm_parse_mem </td>
<td>(</td>
<td class="paramtype">MM_CTX *&nbsp;</td>
<td class="paramname"> <em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>text</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>parsemode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Parses a NUL-terminated string into a MiniMIME context<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>A valid MiniMIME context object </td></tr>
<tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>The NUL-terminated string to parse </td></tr>
<tr><td valign="top"></td><td valign="top"><em>parsemode</em>&nbsp;</td><td>The parsemode </td></tr>
<tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>The flags to pass to the parser </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure </dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Sets mm_errno if an error occurs</dd></dl>
This function parses a MIME message, stored in the memory region pointed to by text (must be NUL-terminated) according to the parseflags and stores the results in the MiniMIME context specified by ctx.<p>
The following modes can be used to specify how the message should be parsed:<p>
<ul>
<li>MM_PARSE_STRICT: Do not tolerate MIME violations</li><li>MM_PARSE_LOOSE: Tolerate as much MIME violations as possible</li></ul>
<p>
The context needs to be initialized before using <a class="el" href="group__context.html#g919fd41f85534d9c87c256857faa2610">mm_context_new()</a> and may be freed using <a class="el" href="group__context.html#g76392d5269e9ef340c2f5f8336f7193b">mm_context_free()</a>.
</div>
</div><p>
<a class="anchor" name="187cf71c0f6c2da1384823e3f20aa1a2"></a><!-- doxytag: member="mm_parse.c::PARSER_initialize" ref="187cf71c0f6c2da1384823e3f20aa1a2" args="(MM_CTX *, int)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PARSER_initialize </td>
<td>(</td>
<td class="paramtype">MM_CTX *&nbsp;</td>
<td class="paramname"> <em>newctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>mode</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Initializes the parser engine.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
</body>
</html>