mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 12:16:00 +00:00
Asterisk GUI project, we need a fully functional HTTP interface with access to the Asterisk manager interface. One of the things that was intended to be a part of this system, but was never actually implemented, was the ability for the GUI to be able to upload files to Asterisk. So, this commit adds this in the most minimally invasive way that we could come up with. A lot of work on minimime was done by Steve Murphy. He fixed a lot of bugs in the parser, and updated it to be thread-safe. The ability to check permissions of active manager sessions was added by Dwayne Hubbard. Then, hacking this all together and do doing the modifications necessary to the HTTP interface was done by me. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@60603 65c4cc65-6c06-0410-ace0-fbb531ad65f3
466 lines
23 KiB
HTML
466 lines
23 KiB
HTML
<!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: Accessing and manipulating MIME contexts</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 Page</span></a></li>
|
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
|
<li><a href="files.html"><span>Files</span></a></li>
|
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
|
</ul></div>
|
|
<h1>Accessing and manipulating MIME contexts</h1><table border="0" cellpadding="0" cellspacing="0">
|
|
<tr><td></td></tr>
|
|
<tr><td colspan="2"><br><h2>Manipulating MiniMIME contexts</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">MM_CTX * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g919fd41f85534d9c87c256857faa2610">mm_context_new</a> (void)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g76392d5269e9ef340c2f5f8336f7193b">mm_context_free</a> (MM_CTX *ctx)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gec3ca486a61b392ff68774242086768e">mm_context_attachpart</a> (MM_CTX *ctx, struct mm_mimepart *part)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g73a3dd187053aeabca4836dc28a6c468">mm_context_attachpart_after</a> (MM_CTX *ctx, struct mm_mimepart *part, int pos)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g53d20c33a401539ef1ffa45f3dddb983">mm_context_deletepart</a> (MM_CTX *ctx, int which, int freemem)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gf5bb032ad1c481d31d7b1b0710939712">mm_context_countparts</a> (MM_CTX *ctx)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_mimepart * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g57fea229675f3e56a77eb40bb8193ee3">mm_context_getpart</a> (MM_CTX *ctx, int which)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g1e73cadba4acd3ef9dd148dd0c2c3e70">mm_context_iscomposite</a> (MM_CTX *ctx)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g8733dee7d83d3205349a7ee4ee5b2750">mm_context_haswarnings</a> (MM_CTX *ctx)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g9710e485f51167099d90f0d659979068">mm_context_generateboundary</a> (MM_CTX *ctx)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gc0e7cc297516618d4773830a1988fc8d">mm_context_setpreamble</a> (MM_CTX *ctx, char *preamble)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1ebbdd51106ccdee77ca421f9692bde7"></a><!-- doxytag: member="context::mm_context_getpreamble" ref="g1ebbdd51106ccdee77ca421f9692bde7" args="(MM_CTX *ctx)" -->
|
|
char * </td><td class="memItemRight" valign="bottom"><b>mm_context_getpreamble</b> (MM_CTX *ctx)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g5288136ab923605f6508c09359ae5772">mm_context_flatten</a> (MM_CTX *ctx, char **flat, size_t *length, int flags)</td></tr>
|
|
|
|
</table>
|
|
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
|
Each message in MiniMIME is represented by a so called ``context''. A context holds all necessary information given about a MIME message, such as the envelope, all MIME parts etc. <hr><h2>Function Documentation</h2>
|
|
<a class="anchor" name="gec3ca486a61b392ff68774242086768e"></a><!-- doxytag: member="mm_context.c::mm_context_attachpart" ref="gec3ca486a61b392ff68774242086768e" args="(MM_CTX *ctx, struct mm_mimepart *part)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int mm_context_attachpart </td>
|
|
<td>(</td>
|
|
<td class="paramtype">MM_CTX * </td>
|
|
<td class="paramname"> <em>ctx</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">struct mm_mimepart * </td>
|
|
<td class="paramname"> <em>part</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Attaches a MIME part object to 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> </td><td>the MiniMIME context </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>part</em> </td><td>the MIME part object to attach </td></tr>
|
|
</table>
|
|
</dl>
|
|
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure. Sets mm_errno on failure.</dd></dl>
|
|
This function attaches a MIME part to a context, appending it to the end of the message.<p>
|
|
The MIME part should be initialized before attaching it using <a class="el" href="group__mimepart.html#g417e5dd361e30cddb91e1d9a5e30b223">mm_mimepart_new()</a>.
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="g73a3dd187053aeabca4836dc28a6c468"></a><!-- doxytag: member="mm_context.c::mm_context_attachpart_after" ref="g73a3dd187053aeabca4836dc28a6c468" args="(MM_CTX *ctx, struct mm_mimepart *part, int pos)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int mm_context_attachpart_after </td>
|
|
<td>(</td>
|
|
<td class="paramtype">MM_CTX * </td>
|
|
<td class="paramname"> <em>ctx</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">struct mm_mimepart * </td>
|
|
<td class="paramname"> <em>part</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"> <em>pos</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Attaches a MIME part object to a MiniMIME context at a given position<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> </td><td>A valid MiniMIME context </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>part</em> </td><td>The MIME part object to attach </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>pos</em> </td><td>After which part to attach the object </td></tr>
|
|
</table>
|
|
</dl>
|
|
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 if the given position is invalid </dd></dl>
|
|
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#gec3ca486a61b392ff68774242086768e">mm_context_attachpart</a></dd></dl>
|
|
This function attaches a MIME part object after a given position in the specified context. If the position is invalid (out of range), the part will not get attached to the message and the function returns -1. If the index was in range, the MIME part will get attached after the MIME part at the given position, moving any possible following MIME parts one down the hierarchy.
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="gf5bb032ad1c481d31d7b1b0710939712"></a><!-- doxytag: member="mm_context.c::mm_context_countparts" ref="gf5bb032ad1c481d31d7b1b0710939712" args="(MM_CTX *ctx)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int mm_context_countparts </td>
|
|
<td>(</td>
|
|
<td class="paramtype">MM_CTX * </td>
|
|
<td class="paramname"> <em>ctx</em> </td>
|
|
<td> ) </td>
|
|
<td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Counts the number of attached MIME part objects in a given 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> </td><td>The MiniMIME context </td></tr>
|
|
</table>
|
|
</dl>
|
|
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of attached MIME part objects </dd></dl>
|
|
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="g53d20c33a401539ef1ffa45f3dddb983"></a><!-- doxytag: member="mm_context.c::mm_context_deletepart" ref="g53d20c33a401539ef1ffa45f3dddb983" args="(MM_CTX *ctx, int which, int freemem)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int mm_context_deletepart </td>
|
|
<td>(</td>
|
|
<td class="paramtype">MM_CTX * </td>
|
|
<td class="paramname"> <em>ctx</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"> <em>which</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"> <em>freemem</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Deletes a MIME part object from 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> </td><td>A valid MiniMIME context object </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>which</em> </td><td>The number of the MIME part object to delete </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>freemem</em> </td><td>Whether to free the memory associated with the MIME part object </td></tr>
|
|
</table>
|
|
</dl>
|
|
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure. Sets mm_errno on failure.</dd></dl>
|
|
This function deletes a MIME part from a given context. The MIME part to delete is specified as numerical index by the parameter ``which''. If the parameter ``freemem'' is set to anything greater than 0, the memory that is associated will be free'd by using <a class="el" href="group__mimepart.html#gbf47790a0bb96b22bc5e236bc40cb32e">mm_mimepart_free()</a>, otherwise the memory is left untouched (if you still have a pointer to the MIME part around).
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="g5288136ab923605f6508c09359ae5772"></a><!-- doxytag: member="mm_context.c::mm_context_flatten" ref="g5288136ab923605f6508c09359ae5772" args="(MM_CTX *ctx, char **flat, size_t *length, int flags)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int mm_context_flatten </td>
|
|
<td>(</td>
|
|
<td class="paramtype">MM_CTX * </td>
|
|
<td class="paramname"> <em>ctx</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">char ** </td>
|
|
<td class="paramname"> <em>flat</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">size_t * </td>
|
|
<td class="paramname"> <em>length</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"> <em>flags</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Creates an ASCII message of the specified 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> </td><td>A valid MiniMIME context object </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>flat</em> </td><td>Where to store the message </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>flags</em> </td><td>Flags that affect the flattening process</td></tr>
|
|
</table>
|
|
</dl>
|
|
This function ``flattens'' a MiniMIME context, that is, it creates an ASCII represantation of the message the context contains. The flags can be a bitwise combination of the following constants:<p>
|
|
<ul>
|
|
<li>MM_FLATTEN_OPAQUE : use opaque MIME parts when flattening</li><li>MM_FLATTEN_SKIPENVELOPE : do not flatten the envelope part</li></ul>
|
|
<p>
|
|
Great care is taken to not produce invalid MIME output.
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="g76392d5269e9ef340c2f5f8336f7193b"></a><!-- doxytag: member="mm_context.c::mm_context_free" ref="g76392d5269e9ef340c2f5f8336f7193b" args="(MM_CTX *ctx)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void mm_context_free </td>
|
|
<td>(</td>
|
|
<td class="paramtype">MM_CTX * </td>
|
|
<td class="paramname"> <em>ctx</em> </td>
|
|
<td> ) </td>
|
|
<td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Releases a MiniMIME context object<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> </td><td>A valid MiniMIME context </td></tr>
|
|
</table>
|
|
</dl>
|
|
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#g919fd41f85534d9c87c256857faa2610">mm_context_new</a></dd></dl>
|
|
This function releases all memory associated with MiniMIME context object that was created using <a class="el" href="group__context.html#g919fd41f85534d9c87c256857faa2610">mm_context_new()</a>. It will also release all memory used for the MIME parts attached, and their specific properties (such as Content-Type information, headers, and the body data).
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="g9710e485f51167099d90f0d659979068"></a><!-- doxytag: member="mm_context.c::mm_context_generateboundary" ref="g9710e485f51167099d90f0d659979068" args="(MM_CTX *ctx)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int mm_context_generateboundary </td>
|
|
<td>(</td>
|
|
<td class="paramtype">MM_CTX * </td>
|
|
<td class="paramname"> <em>ctx</em> </td>
|
|
<td> ) </td>
|
|
<td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Generates a generic boundary string for a given 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> </td><td>A valid MiniMIME context </td></tr>
|
|
</table>
|
|
</dl>
|
|
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure</dd></dl>
|
|
This function generates a default boundary string for the given context. If there is already a boundary for the context, the memory will be free()'d.
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="g57fea229675f3e56a77eb40bb8193ee3"></a><!-- doxytag: member="mm_context.c::mm_context_getpart" ref="g57fea229675f3e56a77eb40bb8193ee3" args="(MM_CTX *ctx, int which)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">struct mm_mimepart* mm_context_getpart </td>
|
|
<td>(</td>
|
|
<td class="paramtype">MM_CTX * </td>
|
|
<td class="paramname"> <em>ctx</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"> <em>which</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Gets a specified MIME part object from a MimeMIME 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> </td><td>The MiniMIME context </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>which</em> </td><td>The number of the MIME part object to retrieve </td></tr>
|
|
</table>
|
|
</dl>
|
|
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The requested MIME part object on success or a NULL pointer if there is no such part. </dd></dl>
|
|
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="g8733dee7d83d3205349a7ee4ee5b2750"></a><!-- doxytag: member="mm_context.c::mm_context_haswarnings" ref="g8733dee7d83d3205349a7ee4ee5b2750" args="(MM_CTX *ctx)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int mm_context_haswarnings </td>
|
|
<td>(</td>
|
|
<td class="paramtype">MM_CTX * </td>
|
|
<td class="paramname"> <em>ctx</em> </td>
|
|
<td> ) </td>
|
|
<td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Checks whether there are any warnings associated with a given 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> </td><td>A valid MiniMIME context </td></tr>
|
|
</table>
|
|
</dl>
|
|
<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if there are warnings associated with the context, otherwise 0 </dd></dl>
|
|
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="g1e73cadba4acd3ef9dd148dd0c2c3e70"></a><!-- doxytag: member="mm_context.c::mm_context_iscomposite" ref="g1e73cadba4acd3ef9dd148dd0c2c3e70" args="(MM_CTX *ctx)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int mm_context_iscomposite </td>
|
|
<td>(</td>
|
|
<td class="paramtype">MM_CTX * </td>
|
|
<td class="paramname"> <em>ctx</em> </td>
|
|
<td> ) </td>
|
|
<td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Checks whether a given context represents a composite (multipart) message<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> </td><td>A valid MiniMIME context object </td></tr>
|
|
</table>
|
|
</dl>
|
|
<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if the context is a composite message or 0 if it's flat </dd></dl>
|
|
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="g919fd41f85534d9c87c256857faa2610"></a><!-- doxytag: member="mm_context.c::mm_context_new" ref="g919fd41f85534d9c87c256857faa2610" args="(void)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">MM_CTX* mm_context_new </td>
|
|
<td>(</td>
|
|
<td class="paramtype">void </td>
|
|
<td class="paramname"> </td>
|
|
<td> ) </td>
|
|
<td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Creates a new MiniMIME context object.<p>
|
|
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a new MiniMIME context object </dd></dl>
|
|
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#g76392d5269e9ef340c2f5f8336f7193b">mm_context_free</a></dd></dl>
|
|
This function creates a new MiniMIME context, which will hold a message. The memory needed is allocated dynamically and should later be free'd using <a class="el" href="group__context.html#g76392d5269e9ef340c2f5f8336f7193b">mm_context_free()</a>.<p>
|
|
Before a context can be created, the MiniMIME library needs to be initialized properly using mm_library_init().
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="gc0e7cc297516618d4773830a1988fc8d"></a><!-- doxytag: member="mm_context.c::mm_context_setpreamble" ref="gc0e7cc297516618d4773830a1988fc8d" args="(MM_CTX *ctx, char *preamble)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int mm_context_setpreamble </td>
|
|
<td>(</td>
|
|
<td class="paramtype">MM_CTX * </td>
|
|
<td class="paramname"> <em>ctx</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">char * </td>
|
|
<td class="paramname"> <em>preamble</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td width="100%"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
Sets a preamble for the given 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> </td><td>A valid MiniMIME context </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>preamble</em> </td><td>The preamble to set </td></tr>
|
|
</table>
|
|
</dl>
|
|
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success or -1 on failure</dd></dl>
|
|
This function sets the MIME preamble (the text between the end of envelope headers and the beginning of the first MIME part) for a given context object. If preamble is a NULL-pointer then the preamble will be deleted, and the currently associated memory will be free automagically.
|
|
</div>
|
|
</div><p>
|
|
<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:08 2007 for MiniMIME by
|
|
<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>
|