aboutsummaryrefslogtreecommitdiffstats
path: root/main/minimime/mm-docs/html/group__mimepart.html
diff options
context:
space:
mode:
Diffstat (limited to 'main/minimime/mm-docs/html/group__mimepart.html')
-rw-r--r--main/minimime/mm-docs/html/group__mimepart.html705
1 files changed, 705 insertions, 0 deletions
diff --git a/main/minimime/mm-docs/html/group__mimepart.html b/main/minimime/mm-docs/html/group__mimepart.html
new file mode 100644
index 000000000..84806c80d
--- /dev/null
+++ b/main/minimime/mm-docs/html/group__mimepart.html
@@ -0,0 +1,705 @@
+<!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 parts</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><a href="files.html"><span>Files</span></a></li>
+ <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+ </ul></div>
+<h1>Accessing and manipulating MIME parts</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Creating and destroying MIME parts</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_mimepart *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g417e5dd361e30cddb91e1d9a5e30b223">mm_mimepart_new</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_mimepart *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#ged8112012a337371ae8093adb1ab6d27">mm_mimepart_fromfile</a> (const char *filename)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#gbf47790a0bb96b22bc5e236bc40cb32e">mm_mimepart_free</a> (struct mm_mimepart *part)</td></tr>
+
+<tr><td colspan="2"><br><h2>Accessing the MIME part's mail header</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g46a674ff6b9873c0c45fa4eb5d94fd62">mm_mimepart_attachheader</a> (struct mm_mimepart *part, struct mm_mimeheader *header)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g44c78abfb0535312bcb427a2cd220026">mm_mimepart_countheaders</a> (struct mm_mimepart *part)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#gf89da502ac54306994bdb452448a8026">mm_mimepart_countheaderbyname</a> (struct mm_mimepart *part, const char *name)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_mimeheader *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#ga3ca298eaa82f4ef3ea731511ac84e53">mm_mimepart_getheaderbyname</a> (struct mm_mimepart *part, const char *name, int idx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g779f11f7a6a54f83763b5ef6ff87e48f">mm_mimepart_getheadervalue</a> (struct mm_mimepart *part, const char *name, int idx)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g4440bdcfddf88eb642b6a834a0557176">mm_mimepart_headers_start</a> (struct mm_mimepart *part, struct mm_mimeheader **id)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_mimeheader *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g8e9064736efdeebf4b257cc45f8a6adf">mm_mimepart_headers_next</a> (struct mm_mimepart *part, struct mm_mimeheader **id)</td></tr>
+
+<tr><td colspan="2"><br><h2>Accessing and manipulating the MIME part's body</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g52dc9f27a2801e4f6abb1effd2ed838d">mm_mimepart_getbody</a> (struct mm_mimepart *part, int opaque)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#gd1def098c00edc546b03e98e9ff8b27a">mm_mimepart_setbody</a> (struct mm_mimepart *part, const char *data, int opaque)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#gf8ccae1737dc4b9b91958fe448da677f">mm_mimepart_getlength</a> (struct mm_mimepart *part)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g4551bf4460e5d165bbcd9f32d4f625de">mm_mimepart_decode</a> (struct mm_mimepart *part)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#gf19d3ace5ae174b3eaa35f9ddbe6e216">mm_mimepart_flatten</a> (struct mm_mimepart *part, char **result, size_t *length, int opaque)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g164bb39a266559574c252f11266809ff">mm_mimepart_setdefaultcontenttype</a> (struct mm_mimepart *part, int composite)</td></tr>
+
+<tr><td colspan="2"><br><h2>Accessing the MIME part's Content-Type information</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g01822bc93b4741af75b5379384354e37">mm_mimepart_attachcontenttype</a> (struct mm_mimepart *part, struct mm_content *ct)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">mm_content *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mimepart.html#g210e2ceee56f8349f6778006da87d080">mm_mimepart_gettype</a> (struct mm_mimepart *part)</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+MIME parts, also called entities, represent the structure of a MIME message. ``Normal'' internet messages have only a single part, and are called ``flat'' messages. Multipart messages have more then one part, and each MIME part can have it's own subset of headers.<p>
+Provided here are functions to easily access all informations from a MIME part, including their specific headers and bodies. <hr><h2>Function Documentation</h2>
+<a class="anchor" name="g01822bc93b4741af75b5379384354e37"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_attachcontenttype" ref="g01822bc93b4741af75b5379384354e37" args="(struct mm_mimepart *part, struct mm_content *ct)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void mm_mimepart_attachcontenttype </td>
+ <td>(</td>
+ <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+ <td class="paramname"> <em>part</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">struct mm_content *&nbsp;</td>
+ <td class="paramname"> <em>ct</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>
+Attaches a context type object to a MIME part<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>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>ct</em>&nbsp;</td><td>The content type object to attach </td></tr>
+ </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>Nothing</dd></dl>
+This function attaches a Content-Type object to a MIME part. It does not care whether the Content-Type suites the actual content in the MIME part, so the programmer should take care of that.
+</div>
+</div><p>
+<a class="anchor" name="g46a674ff6b9873c0c45fa4eb5d94fd62"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_attachheader" ref="g46a674ff6b9873c0c45fa4eb5d94fd62" args="(struct mm_mimepart *part, struct mm_mimeheader *header)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int mm_mimepart_attachheader </td>
+ <td>(</td>
+ <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+ <td class="paramname"> <em>part</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">struct mm_mimeheader *&nbsp;</td>
+ <td class="paramname"> <em>header</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>
+Attaches a mm_mimeheader object to a MIME part<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>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>header</em>&nbsp;</td><td>A valid MIME header object </td></tr>
+ </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if successfull or -1 if the header could not be attached </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gf89da502ac54306994bdb452448a8026"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_countheaderbyname" ref="gf89da502ac54306994bdb452448a8026" args="(struct mm_mimepart *part, const char *name)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int mm_mimepart_countheaderbyname </td>
+ <td>(</td>
+ <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+ <td class="paramname"> <em>part</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&nbsp;</td>
+ <td class="paramname"> <em>name</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>
+Retrieves the number of MIME headers with a given name in a MIME part<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>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the MIME header which to count for </td></tr>
+ </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of MIME headers within the MIME part </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g44c78abfb0535312bcb427a2cd220026"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_countheaders" ref="g44c78abfb0535312bcb427a2cd220026" args="(struct mm_mimepart *part)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int mm_mimepart_countheaders </td>
+ <td>(</td>
+ <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+ <td class="paramname"> <em>part</em> </td>
+ <td>&nbsp;)&nbsp;</td>
+ <td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Retrieves the number of MIME headers available in a MIME part<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>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+ </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of MIME headers within the MIME part </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g4551bf4460e5d165bbcd9f32d4f625de"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_decode" ref="g4551bf4460e5d165bbcd9f32d4f625de" args="(struct mm_mimepart *part)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">char* mm_mimepart_decode </td>
+ <td>(</td>
+ <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+ <td class="paramname"> <em>part</em> </td>
+ <td>&nbsp;)&nbsp;</td>
+ <td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Decodes a MIME part according to it's encoding using MiniMIME codecs<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>A</em>&nbsp;</td><td>valid MIME part object </td></tr>
+ </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if the MIME part could be successfully decoded or -1 if not </dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Sets mm_errno on error</dd></dl>
+This function decodes the body of a MIME part with a registered decoder according to it's Content-Transfer-Encoding header field.
+</div>
+</div><p>
+<a class="anchor" name="gf19d3ace5ae174b3eaa35f9ddbe6e216"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_flatten" ref="gf19d3ace5ae174b3eaa35f9ddbe6e216" args="(struct mm_mimepart *part, char **result, size_t *length, int opaque)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int mm_mimepart_flatten </td>
+ <td>(</td>
+ <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+ <td class="paramname"> <em>part</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">char **&nbsp;</td>
+ <td class="paramname"> <em>result</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&nbsp;</td>
+ <td class="paramname"> <em>length</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>opaque</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>
+Creates an ASCII representation of the given MIME part<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>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>Where to store the result </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>Where to store the length of the result </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>opaque</em>&nbsp;</td><td>Whether to use the opaque MIME part 0 on success or -1 on error. </td></tr>
+ </table>
+</dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#g5288136ab923605f6508c09359ae5772">mm_context_flatten</a></dd></dl>
+This function creates an ASCII representation of a given MIME part. It will dynamically allocate the memory needed and stores the result in the memory region pointed to by result. The length of the result will be stored in length. If opaque is set to 1, mm_mimepart_flatten will store an opaque version of the MIME part in result, which means no headers will be created or sanitized. This is particulary useful if the part is digitally signed by e.g. PGP, and the signature spans the header fields of the part in question.
+</div>
+</div><p>
+<a class="anchor" name="gbf47790a0bb96b22bc5e236bc40cb32e"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_free" ref="gbf47790a0bb96b22bc5e236bc40cb32e" args="(struct mm_mimepart *part)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void mm_mimepart_free </td>
+ <td>(</td>
+ <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+ <td class="paramname"> <em>part</em> </td>
+ <td>&nbsp;)&nbsp;</td>
+ <td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Frees all memory allocated by a mm_mimepart 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>part</em>&nbsp;</td><td>A pointer to an allocated mm_mimepart object </td></tr>
+ </table>
+</dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__mimepart.html#g417e5dd361e30cddb91e1d9a5e30b223">mm_mimepart_new</a> </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="ged8112012a337371ae8093adb1ab6d27"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_fromfile" ref="ged8112012a337371ae8093adb1ab6d27" args="(const char *filename)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct mm_mimepart* mm_mimepart_fromfile </td>
+ <td>(</td>
+ <td class="paramtype">const char *&nbsp;</td>
+ <td class="paramname"> <em>filename</em> </td>
+ <td>&nbsp;)&nbsp;</td>
+ <td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Creates a MIME part from a file<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>filename</em>&nbsp;</td><td>The name of the file to create the MIME part from </td></tr>
+ </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to a new MIME part object</dd></dl>
+This function creates a new MIME part object from a file. The object should be freed using <a class="el" href="group__mimepart.html#gbf47790a0bb96b22bc5e236bc40cb32e">mm_mimepart_free()</a> later on. This function does NOT set the Content-Type and neither does any encoding work.
+</div>
+</div><p>
+<a class="anchor" name="g52dc9f27a2801e4f6abb1effd2ed838d"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_getbody" ref="g52dc9f27a2801e4f6abb1effd2ed838d" args="(struct mm_mimepart *part, int opaque)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">char* mm_mimepart_getbody </td>
+ <td>(</td>
+ <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+ <td class="paramname"> <em>part</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>opaque</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>
+Gets the pointer to the MIME part's body data<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>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>opaque</em>&nbsp;</td><td>Whether to get the opaque part or not </td></tr>
+ </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the MIME part's body </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__mimepart.html#gd1def098c00edc546b03e98e9ff8b27a">mm_mimepart_setbody</a> </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="ga3ca298eaa82f4ef3ea731511ac84e53"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_getheaderbyname" ref="ga3ca298eaa82f4ef3ea731511ac84e53" args="(struct mm_mimepart *part, const char *name, int idx)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct mm_mimeheader* mm_mimepart_getheaderbyname </td>
+ <td>(</td>
+ <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+ <td class="paramname"> <em>part</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&nbsp;</td>
+ <td class="paramname"> <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>idx</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>
+Get a MIME header object from a MIME part<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>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the MIME header which to retrieve </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>idx</em>&nbsp;</td><td>Which header field to get (in case of multiple headers of the same name). </td></tr>
+ </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the requested MIME header on success, or NULL if there either isn't a header with the requested name or idx is out of range. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g779f11f7a6a54f83763b5ef6ff87e48f"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_getheadervalue" ref="g779f11f7a6a54f83763b5ef6ff87e48f" args="(struct mm_mimepart *part, const char *name, int idx)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const char* mm_mimepart_getheadervalue </td>
+ <td>(</td>
+ <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+ <td class="paramname"> <em>part</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&nbsp;</td>
+ <td class="paramname"> <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>idx</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>
+Gets the value of a MIME header 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>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the header field to get the value from </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>idx</em>&nbsp;</td><td>The index of the header field to get, in case there are multiple headers with the same name. </td></tr>
+ </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the requested value on success, or NULL if there either isn't a header with the requested name or idx is out of range. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gf8ccae1737dc4b9b91958fe448da677f"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_getlength" ref="gf8ccae1737dc4b9b91958fe448da677f" args="(struct mm_mimepart *part)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">size_t mm_mimepart_getlength </td>
+ <td>(</td>
+ <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+ <td class="paramname"> <em>part</em> </td>
+ <td>&nbsp;)&nbsp;</td>
+ <td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Gets the length of a given MIME part 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>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+ </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The size of the part's body in byte.</dd></dl>
+This function returns the total length of the given MIME part's body. The length does not include the headers of the MIME parts. If the function returns 0, no body part is set currently.
+</div>
+</div><p>
+<a class="anchor" name="g210e2ceee56f8349f6778006da87d080"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_gettype" ref="g210e2ceee56f8349f6778006da87d080" args="(struct mm_mimepart *part)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct mm_content* mm_mimepart_gettype </td>
+ <td>(</td>
+ <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+ <td class="paramname"> <em>part</em> </td>
+ <td>&nbsp;)&nbsp;</td>
+ <td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Gets the Content-Type of a given MIME part 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>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+ </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>The Content-Type object of the specified MIME part</dd></dl>
+This function returns a pointer to the Content-Type object of the given MIME part. This pointer might be set to NULL, indicating that there is no Content-Type object for the given MIME part currently.
+</div>
+</div><p>
+<a class="anchor" name="g8e9064736efdeebf4b257cc45f8a6adf"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_headers_next" ref="g8e9064736efdeebf4b257cc45f8a6adf" args="(struct mm_mimepart *part, struct mm_mimeheader **id)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct mm_mimeheader* mm_mimepart_headers_next </td>
+ <td>(</td>
+ <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+ <td class="paramname"> <em>part</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">struct mm_mimeheader **&nbsp;</td>
+ <td class="paramname"> <em>id</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>
+Returns the next MIME header of a given MIME part 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>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>A previously initialized MIME header object </td></tr>
+ </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the MIME header object or NULL if end of headers was reached. </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__mimepart.html#g4440bdcfddf88eb642b6a834a0557176">mm_mimepart_headers_start</a> </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="g4440bdcfddf88eb642b6a834a0557176"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_headers_start" ref="g4440bdcfddf88eb642b6a834a0557176" args="(struct mm_mimepart *part, struct mm_mimeheader **id)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int mm_mimepart_headers_start </td>
+ <td>(</td>
+ <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+ <td class="paramname"> <em>part</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">struct mm_mimeheader **&nbsp;</td>
+ <td class="paramname"> <em>id</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 a header loop for a given MIME part<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>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>The address of a MIME header object (to allow reentrance) </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="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__mimepart.html#g8e9064736efdeebf4b257cc45f8a6adf">mm_mimepart_headers_next</a></dd></dl>
+Looping through headers can be done in the following way:<p>
+<div class="fragment"><pre class="fragment"> <span class="keyword">struct </span>mm_mimeheader *header, *lheader;
+
+ <a class="code" href="group__mimepart.html#g4440bdcfddf88eb642b6a834a0557176">mm_mimepart_headers_start</a>(part, &amp;lheader);
+
+ <span class="keywordflow">while</span> ((header = <a class="code" href="group__mimepart.html#g8e9064736efdeebf4b257cc45f8a6adf">mm_mimepart_headers_next</a>(part, &amp;lheader)) != NULL) {
+ printf(<span class="stringliteral">"%s: %s\n"</span>, header-&gt;name, header-&gt;value);
+ }
+</pre></div><p>
+For convienience, the macro mm_mimepart_headers_foreach() can be used to loop through headers in a one-shot manner.
+</div>
+</div><p>
+<a class="anchor" name="g417e5dd361e30cddb91e1d9a5e30b223"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_new" ref="g417e5dd361e30cddb91e1d9a5e30b223" args="(void)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct mm_mimepart* mm_mimepart_new </td>
+ <td>(</td>
+ <td class="paramtype">void&nbsp;</td>
+ <td class="paramname"> </td>
+ <td>&nbsp;)&nbsp;</td>
+ <td width="100%"></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>
+Allocates memory for a new mm_mimepart structure and initializes it.<p>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to a struct of type mm_mimeheader or NULL on failure </dd></dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__mimepart.html#gbf47790a0bb96b22bc5e236bc40cb32e">mm_mimepart_free</a> </dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>The memory must be freed by using <a class="el" href="group__mimepart.html#gbf47790a0bb96b22bc5e236bc40cb32e">mm_mimepart_free()</a> later on. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="gd1def098c00edc546b03e98e9ff8b27a"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_setbody" ref="gd1def098c00edc546b03e98e9ff8b27a" args="(struct mm_mimepart *part, const char *data, int opaque)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void mm_mimepart_setbody </td>
+ <td>(</td>
+ <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+ <td class="paramname"> <em>part</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&nbsp;</td>
+ <td class="paramname"> <em>data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>opaque</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>
+Sets the MIME part's body data<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>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>A pointer to the data which to set </td></tr>
+ </table>
+</dl>
+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__mimepart.html#g52dc9f27a2801e4f6abb1effd2ed838d">mm_mimepart_getbody</a></dd></dl>
+This functions sets the body data for a given MIME part. The string pointed to by data must be NUL-terminated. The data is copied into the MIME part's body, and thus, the memory pointed to by data can be freed after the operation.
+</div>
+</div><p>
+<a class="anchor" name="g164bb39a266559574c252f11266809ff"></a><!-- doxytag: member="mm_mimepart.c::mm_mimepart_setdefaultcontenttype" ref="g164bb39a266559574c252f11266809ff" args="(struct mm_mimepart *part, int composite)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int mm_mimepart_setdefaultcontenttype </td>
+ <td>(</td>
+ <td class="paramtype">struct mm_mimepart *&nbsp;</td>
+ <td class="paramname"> <em>part</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&nbsp;</td>
+ <td class="paramname"> <em>composite</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>
+Sets the default Content-Type for a given MIME part<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>part</em>&nbsp;</td><td>A valid MIME part object </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>part</em>&nbsp;</td><td>Whether the Content-Type should be for composite or not </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 a default Content-Type according to RFC 2045 with a value of "text/plain; charset="us-ascii"". This function should only be used if the MIME part in question does not have a valid Content-Type specification.
+</div>
+</div><p>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:09 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>