mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-23 14:44:28 +00:00
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r60603 | russell | 2007-04-06 15:58:43 -0500 (Fri, 06 Apr 2007) | 13 lines To be able to achieve the things that we would like to achieve with the 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/trunk@60604 65c4cc65-6c06-0410-ace0-fbb531ad65f3
383 lines
37 KiB
HTML
383 lines
37 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: mm.h Source File</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 id="current"><a href="files.html"><span>Files</span></a></li>
|
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
|
</ul></div>
|
|
<div class="tabs">
|
|
<ul>
|
|
<li><a href="files.html"><span>File List</span></a></li>
|
|
<li><a href="globals.html"><span>Globals</span></a></li>
|
|
</ul></div>
|
|
<h1>mm.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
|
<a name="l00002"></a>00002 <span class="comment"> * $Id$</span>
|
|
<a name="l00003"></a>00003 <span class="comment"> *</span>
|
|
<a name="l00004"></a>00004 <span class="comment"> * MiniMIME - a library for handling MIME messages</span>
|
|
<a name="l00005"></a>00005 <span class="comment"> *</span>
|
|
<a name="l00006"></a>00006 <span class="comment"> * Copyright (C) 2003 Jann Fischer <rezine@mistrust.net></span>
|
|
<a name="l00007"></a>00007 <span class="comment"> * All rights reserved.</span>
|
|
<a name="l00008"></a>00008 <span class="comment"> *</span>
|
|
<a name="l00009"></a>00009 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
|
|
<a name="l00010"></a>00010 <span class="comment"> * modification, are permitted provided that the following conditions</span>
|
|
<a name="l00011"></a>00011 <span class="comment"> * are met:</span>
|
|
<a name="l00012"></a>00012 <span class="comment"> *</span>
|
|
<a name="l00013"></a>00013 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
|
|
<a name="l00014"></a>00014 <span class="comment"> * notice, this list of conditions and the following disclaimer.</span>
|
|
<a name="l00015"></a>00015 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
|
|
<a name="l00016"></a>00016 <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span>
|
|
<a name="l00017"></a>00017 <span class="comment"> * documentation and/or other materials provided with the distribution.</span>
|
|
<a name="l00018"></a>00018 <span class="comment"> * 3. Neither the name of the author nor the names of the contributors</span>
|
|
<a name="l00019"></a>00019 <span class="comment"> * may be used to endorse or promote products derived from this software</span>
|
|
<a name="l00020"></a>00020 <span class="comment"> * without specific prior written permission.</span>
|
|
<a name="l00021"></a>00021 <span class="comment"> *</span>
|
|
<a name="l00022"></a>00022 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY JANN FISCHER AND CONTRIBUTORS ``AS IS'' AND</span>
|
|
<a name="l00023"></a>00023 <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
|
|
<a name="l00024"></a>00024 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
|
|
<a name="l00025"></a>00025 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL JANN FISCHER OR THE VOICES IN HIS HEAD</span>
|
|
<a name="l00026"></a>00026 <span class="comment"> * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span>
|
|
<a name="l00027"></a>00027 <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span>
|
|
<a name="l00028"></a>00028 <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
|
|
<a name="l00029"></a>00029 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span>
|
|
<a name="l00030"></a>00030 <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span>
|
|
<a name="l00031"></a>00031 <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF</span>
|
|
<a name="l00032"></a>00032 <span class="comment"> * THE POSSIBILITY OF SUCH DAMAGE.</span>
|
|
<a name="l00033"></a>00033 <span class="comment"> */</span>
|
|
<a name="l00034"></a>00034
|
|
<a name="l00035"></a>00035 <span class="preprocessor">#ifndef _MM_H_INCLUDED</span>
|
|
<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#define _MM_H_INCLUDED</span>
|
|
<a name="l00037"></a>00037 <span class="preprocessor"></span>
|
|
<a name="l00038"></a>00038 <span class="preprocessor">#include <sys/types.h></span>
|
|
<a name="l00039"></a>00039 <span class="preprocessor">#include <assert.h></span>
|
|
<a name="l00040"></a>00040 <span class="preprocessor">#include "mm_queue.h"</span>
|
|
<a name="l00041"></a>00041 <span class="preprocessor">#include "mm_mem.h"</span>
|
|
<a name="l00042"></a>00042
|
|
<a name="l00043"></a>00043 <span class="preprocessor">#define MM_MIME_LINELEN 998</span>
|
|
<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#define MM_BASE64_LINELEN 76</span>
|
|
<a name="l00045"></a>00045 <span class="preprocessor"></span>
|
|
<a name="l00046"></a>00046 TAILQ_HEAD(mm_mimeheaders, mm_mimeheader);
|
|
<a name="l00047"></a>00047 TAILQ_HEAD(mm_mimeparts, mm_mimepart);
|
|
<a name="l00048"></a>00048 TAILQ_HEAD(mm_params, mm_param);
|
|
<a name="l00049"></a>00049 SLIST_HEAD(mm_codecs, mm_codec);
|
|
<a name="l00050"></a>00050 SLIST_HEAD(mm_warnings, mm_warning);
|
|
<a name="l00051"></a>00051
|
|
<a name="l00052"></a>00052 <span class="comment">/*</span>
|
|
<a name="l00053"></a>00053 <span class="comment"> * Parser modes</span>
|
|
<a name="l00054"></a>00054 <span class="comment"> */</span>
|
|
<a name="l00055"></a>00055 <span class="keyword">enum</span> mm_parsemodes
|
|
<a name="l00056"></a>00056 {
|
|
<a name="l00058"></a>00058 MM_PARSE_LOOSE = 0,
|
|
<a name="l00060"></a>00060 MM_PARSE_STRICT
|
|
<a name="l00061"></a>00061 };
|
|
<a name="l00062"></a>00062
|
|
<a name="l00063"></a>00063 <span class="comment">/*</span>
|
|
<a name="l00064"></a>00064 <span class="comment"> * Available parser flags</span>
|
|
<a name="l00065"></a>00065 <span class="comment"> */</span>
|
|
<a name="l00066"></a>00066 <span class="keyword">enum</span> mm_parseflags
|
|
<a name="l00067"></a>00067 {
|
|
<a name="l00068"></a>00068 MM_PARSE_NONE = (1L << 0),
|
|
<a name="l00069"></a>00069 MM_PARSE_STRIPCOMMENTS = (1L << 1)
|
|
<a name="l00070"></a>00070 };
|
|
<a name="l00071"></a>00071
|
|
<a name="l00072"></a>00072 <span class="comment">/*</span>
|
|
<a name="l00073"></a>00073 <span class="comment"> * Enumeration of MIME encodings</span>
|
|
<a name="l00074"></a>00074 <span class="comment"> */</span>
|
|
<a name="l00075"></a>00075 <span class="keyword">enum</span> mm_encoding
|
|
<a name="l00076"></a>00076 {
|
|
<a name="l00077"></a>00077 MM_ENCODING_NONE = 0,
|
|
<a name="l00078"></a>00078 MM_ENCODING_BASE64,
|
|
<a name="l00079"></a>00079 MM_ENCODING_QUOTEDPRINTABLE,
|
|
<a name="l00080"></a>00080 MM_ENCODING_UNKNOWN
|
|
<a name="l00081"></a>00081 };
|
|
<a name="l00082"></a>00082
|
|
<a name="l00083"></a>00083 <span class="comment">/*</span>
|
|
<a name="l00084"></a>00084 <span class="comment"> * Message type</span>
|
|
<a name="l00085"></a>00085 <span class="comment"> */</span>
|
|
<a name="l00086"></a>00086 <span class="keyword">enum</span> mm_messagetype
|
|
<a name="l00087"></a>00087 {
|
|
<a name="l00089"></a>00089 MM_MSGTYPE_FLAT = 0,
|
|
<a name="l00091"></a>00091 MM_MSGTYPE_MULTIPART
|
|
<a name="l00092"></a>00092 };
|
|
<a name="l00093"></a>00093
|
|
<a name="l00094"></a>00094 <span class="comment">/*</span>
|
|
<a name="l00095"></a>00095 <span class="comment"> * Enumeration of error categories</span>
|
|
<a name="l00096"></a>00096 <span class="comment"> */</span>
|
|
<a name="l00097"></a>00097 <span class="keyword">enum</span> mm_errors
|
|
<a name="l00098"></a>00098 {
|
|
<a name="l00099"></a>00099 MM_ERROR_NONE = 0,
|
|
<a name="l00100"></a>00100 MM_ERROR_UNDEF,
|
|
<a name="l00101"></a>00101 MM_ERROR_ERRNO,
|
|
<a name="l00102"></a>00102 MM_ERROR_PARSE,
|
|
<a name="l00103"></a>00103 MM_ERROR_MIME,
|
|
<a name="l00104"></a>00104 MM_ERROR_CODEC,
|
|
<a name="l00105"></a>00105 MM_ERROR_PROGRAM
|
|
<a name="l00106"></a>00106 };
|
|
<a name="l00107"></a>00107
|
|
<a name="l00108"></a>00108 <span class="keyword">enum</span> mm_warning_ids
|
|
<a name="l00109"></a>00109 {
|
|
<a name="l00110"></a>00110 MM_WARN_NONE = 0,
|
|
<a name="l00111"></a>00111 MM_WARN_PARSE,
|
|
<a name="l00112"></a>00112 MM_WARN_MIME,
|
|
<a name="l00113"></a>00113 MM_WARN_CODEC
|
|
<a name="l00114"></a>00114 };
|
|
<a name="l00115"></a>00115
|
|
<a name="l00116"></a>00116 <span class="keyword">enum</span> mm_addressfields {
|
|
<a name="l00117"></a>00117 MM_ADDR_TO = 0,
|
|
<a name="l00118"></a>00118 MM_ADDR_CC,
|
|
<a name="l00119"></a>00119 MM_ADDR_BCC,
|
|
<a name="l00120"></a>00120 MM_ADDR_FROM,
|
|
<a name="l00121"></a>00121 MM_ADDR_SENDER,
|
|
<a name="l00122"></a>00122 MM_ADDR_REPLY_TO
|
|
<a name="l00123"></a>00123 };
|
|
<a name="l00124"></a>00124
|
|
<a name="l00125"></a>00125 <span class="keyword">enum</span> mm_flatten_flags {
|
|
<a name="l00126"></a>00126 MM_FLATTEN_NONE = 0,
|
|
<a name="l00127"></a>00127 MM_FLATTEN_SKIPENVELOPE = (1L << 1),
|
|
<a name="l00128"></a>00128 MM_FLATTEN_OPAQUE = (1L << 2),
|
|
<a name="l00129"></a>00129 MM_FLATTEN_NOPREAMBLE = (1L << 3)
|
|
<a name="l00130"></a>00130 };
|
|
<a name="l00131"></a>00131
|
|
<a name="l00132"></a>00132 <span class="comment">/*</span>
|
|
<a name="l00133"></a>00133 <span class="comment"> * More information about an error</span>
|
|
<a name="l00134"></a>00134 <span class="comment"> */</span>
|
|
<a name="l00135"></a>00135 <span class="keyword">struct </span>mm_error_data
|
|
<a name="l00136"></a>00136 {
|
|
<a name="l00137"></a>00137 <span class="keywordtype">int</span> error_id;
|
|
<a name="l00138"></a>00138 <span class="keywordtype">int</span> error_where;
|
|
<a name="l00139"></a>00139 <span class="keywordtype">int</span> lineno;
|
|
<a name="l00140"></a>00140 <span class="keywordtype">char</span> error_msg[128];
|
|
<a name="l00141"></a>00141 };
|
|
<a name="l00142"></a>00142
|
|
<a name="l00143"></a>00143 <span class="keyword">extern</span> <span class="keywordtype">int</span> mm_errno;
|
|
<a name="l00144"></a>00144 <span class="keyword">extern</span> <span class="keyword">struct </span>mm_error_data mm_error;
|
|
<a name="l00145"></a>00145
|
|
<a name="l00146"></a>00146 <span class="keyword">enum</span> mm_warning_code
|
|
<a name="l00147"></a>00147 {
|
|
<a name="l00148"></a>00148 MM_WARNING_NONE = 0,
|
|
<a name="l00149"></a>00149 MM_WARNING_INVHDR,
|
|
<a name="l00150"></a>00150 };
|
|
<a name="l00151"></a>00151
|
|
<a name="l00152"></a>00152 <span class="comment">/*</span>
|
|
<a name="l00153"></a>00153 <span class="comment"> * A parser warning</span>
|
|
<a name="l00154"></a>00154 <span class="comment"> */</span>
|
|
<a name="l00155"></a>00155 <span class="keyword">struct </span>mm_warning
|
|
<a name="l00156"></a>00156 {
|
|
<a name="l00157"></a>00157 <span class="keyword">enum</span> mm_warning_code warning;
|
|
<a name="l00158"></a>00158 u_int32_t lineno;
|
|
<a name="l00159"></a>00159 SLIST_ENTRY(mm_warning) next;
|
|
<a name="l00160"></a>00160 };
|
|
<a name="l00161"></a>00161
|
|
<a name="l00162"></a>00162 <span class="comment">/*</span>
|
|
<a name="l00163"></a>00163 <span class="comment"> * Representation of a MiniMIME codec object</span>
|
|
<a name="l00164"></a>00164 <span class="comment"> */</span>
|
|
<a name="l00165"></a>00165 struct mm_codec
|
|
<a name="l00166"></a>00166 {
|
|
<a name="l00167"></a>00167 <span class="keyword">enum</span> mm_encoding id;
|
|
<a name="l00168"></a>00168 <span class="keywordtype">char</span> *encoding;
|
|
<a name="l00169"></a>00169
|
|
<a name="l00170"></a>00170 <span class="keywordtype">char</span> *(*encoder)(<span class="keywordtype">char</span> *, u_int32_t);
|
|
<a name="l00171"></a>00171 <span class="keywordtype">char</span> *(*decoder)(<span class="keywordtype">char</span> *);
|
|
<a name="l00172"></a>00172
|
|
<a name="l00173"></a>00173 SLIST_ENTRY(mm_codec) next;
|
|
<a name="l00174"></a>00174 };
|
|
<a name="l00175"></a>00175
|
|
<a name="l00176"></a>00176 <span class="comment">/*</span>
|
|
<a name="l00177"></a>00177 <span class="comment"> * Representation of a mail or MIME header field</span>
|
|
<a name="l00178"></a>00178 <span class="comment"> */</span>
|
|
<a name="l00179"></a>00179 struct mm_mimeheader
|
|
<a name="l00180"></a>00180 {
|
|
<a name="l00181"></a>00181 <span class="keywordtype">char</span> *name;
|
|
<a name="l00182"></a>00182 <span class="keywordtype">char</span> *value;
|
|
<a name="l00183"></a>00183
|
|
<a name="l00184"></a>00184 TAILQ_ENTRY(mm_mimeheader) next;
|
|
<a name="l00185"></a>00185 };
|
|
<a name="l00186"></a>00186
|
|
<a name="l00187"></a>00187 <span class="comment">/*</span>
|
|
<a name="l00188"></a>00188 <span class="comment"> * Representation of a MIME Content-Type parameter</span>
|
|
<a name="l00189"></a>00189 <span class="comment"> */</span>
|
|
<a name="l00190"></a>00190 struct mm_param
|
|
<a name="l00191"></a>00191 {
|
|
<a name="l00192"></a>00192 <span class="keywordtype">char</span> *name;
|
|
<a name="l00193"></a>00193 <span class="keywordtype">char</span> *value;
|
|
<a name="l00194"></a>00194
|
|
<a name="l00195"></a>00195 TAILQ_ENTRY(mm_param) next;
|
|
<a name="l00196"></a>00196 };
|
|
<a name="l00197"></a>00197
|
|
<a name="l00198"></a>00198 <span class="comment">/*</span>
|
|
<a name="l00199"></a>00199 <span class="comment"> * Representation of a MIME Content-Type object</span>
|
|
<a name="l00200"></a>00200 <span class="comment"> */</span>
|
|
<a name="l00201"></a>00201 struct mm_content
|
|
<a name="l00202"></a>00202 {
|
|
<a name="l00203"></a>00203 <span class="keywordtype">char</span> *maintype;
|
|
<a name="l00204"></a>00204 <span class="keywordtype">char</span> *subtype;
|
|
<a name="l00205"></a>00205
|
|
<a name="l00206"></a>00206 <span class="keyword">struct </span>mm_params params;
|
|
<a name="l00207"></a>00207
|
|
<a name="l00208"></a>00208 <span class="keywordtype">char</span> *encstring;
|
|
<a name="l00209"></a>00209 <span class="keyword">enum</span> mm_encoding encoding;
|
|
<a name="l00210"></a>00210 };
|
|
<a name="l00211"></a>00211
|
|
<a name="l00212"></a>00212 <span class="comment">/*</span>
|
|
<a name="l00213"></a>00213 <span class="comment"> * Representation of a MIME part </span>
|
|
<a name="l00214"></a>00214 <span class="comment"> */</span>
|
|
<a name="l00215"></a>00215 <span class="keyword">struct </span>mm_mimepart
|
|
<a name="l00216"></a>00216 {
|
|
<a name="l00217"></a>00217 <span class="keyword">struct </span>mm_mimeheaders headers;
|
|
<a name="l00218"></a>00218
|
|
<a name="l00219"></a>00219 size_t opaque_length;
|
|
<a name="l00220"></a>00220 <span class="keywordtype">char</span> *opaque_body;
|
|
<a name="l00221"></a>00221
|
|
<a name="l00222"></a>00222 size_t length;
|
|
<a name="l00223"></a>00223 <span class="keywordtype">char</span> *body;
|
|
<a name="l00224"></a>00224
|
|
<a name="l00225"></a>00225 <span class="keyword">struct </span>mm_content *type;
|
|
<a name="l00226"></a>00226
|
|
<a name="l00227"></a>00227 <span class="keywordtype">char</span> *disposition_type;
|
|
<a name="l00228"></a>00228 <span class="keywordtype">char</span> *filename;
|
|
<a name="l00229"></a>00229 <span class="keywordtype">char</span> *creation_date;
|
|
<a name="l00230"></a>00230 <span class="keywordtype">char</span> *modification_date;
|
|
<a name="l00231"></a>00231 <span class="keywordtype">char</span> *read_date;
|
|
<a name="l00232"></a>00232 <span class="keywordtype">char</span> *disposition_size;
|
|
<a name="l00233"></a>00233
|
|
<a name="l00234"></a>00234 TAILQ_ENTRY(mm_mimepart) next;
|
|
<a name="l00235"></a>00235 };
|
|
<a name="l00236"></a>00236
|
|
<a name="l00237"></a>00237 <span class="comment">/*</span>
|
|
<a name="l00238"></a>00238 <span class="comment"> * Represantation of a MiniMIME context</span>
|
|
<a name="l00239"></a>00239 <span class="comment"> */</span>
|
|
<a name="l00240"></a>00240 struct mm_context
|
|
<a name="l00241"></a>00241 {
|
|
<a name="l00242"></a>00242 <span class="keyword">struct </span>mm_mimeparts parts;
|
|
<a name="l00243"></a>00243 <span class="keyword">enum</span> mm_messagetype messagetype;
|
|
<a name="l00244"></a>00244 <span class="keyword">struct </span>mm_warnings warnings;
|
|
<a name="l00245"></a>00245 <span class="keyword">struct </span>mm_codecs codecs;
|
|
<a name="l00246"></a>00246 <span class="keywordtype">char</span> *boundary;
|
|
<a name="l00247"></a>00247 <span class="keywordtype">char</span> *preamble;
|
|
<a name="l00248"></a>00248 size_t max_message_size;
|
|
<a name="l00249"></a>00249 };
|
|
<a name="l00250"></a>00250
|
|
<a name="l00251"></a>00251 <span class="keyword">typedef</span> <span class="keyword">struct </span>mm_context MM_CTX;
|
|
<a name="l00252"></a>00252 <span class="keyword">typedef</span> <span class="keyword">struct </span>mm_context mm_ctx_t;
|
|
<a name="l00253"></a>00253
|
|
<a name="l00254"></a>00254 <span class="keywordtype">char</span> *<a class="code" href="group__util.html#gf0f89a29a634f6f1f833abb1e214a6b1">mm_unquote</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
|
|
<a name="l00255"></a>00255 <span class="keywordtype">char</span> *<a class="code" href="group__util.html#g49c016ff4cfd02f1b019c4dce5aac357">mm_uncomment</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
|
|
<a name="l00256"></a>00256 <span class="keywordtype">char</span> *<a class="code" href="group__util.html#gf62be7dd21e545f8db72f3c9e3b6a3c3">mm_stripchars</a>(<span class="keywordtype">char</span> *, <span class="keywordtype">char</span> *);
|
|
<a name="l00257"></a>00257 <span class="keywordtype">char</span> *<a class="code" href="group__util.html#g0747d4b4e33644263e6d73d2d8d4818b">mm_addchars</a>(<span class="keywordtype">char</span> *, <span class="keywordtype">char</span> *, u_int16_t);
|
|
<a name="l00258"></a>00258 <span class="keywordtype">int</span> mm_gendate(<span class="keywordtype">char</span> **);
|
|
<a name="l00259"></a>00259 <span class="keywordtype">void</span> mm_striptrailing(<span class="keywordtype">char</span> **, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
|
|
<a name="l00260"></a>00260 <span class="keywordtype">int</span> mm_mimeutil_genboundary(<span class="keywordtype">char</span> *, size_t, <span class="keywordtype">char</span> **);
|
|
<a name="l00261"></a>00261
|
|
<a name="l00262"></a>00262 <span class="keywordtype">int</span> mm_library_init(<span class="keywordtype">void</span>);
|
|
<a name="l00263"></a>00263 <span class="keywordtype">int</span> mm_library_isinitialized(<span class="keywordtype">void</span>);
|
|
<a name="l00264"></a>00264
|
|
<a name="l00265"></a>00265 <span class="keywordtype">int</span> <a class="code" href="mm__parse_8c.html#58c960b6017f13d4e4ec5f09b3c38495">mm_parse_mem</a>(MM_CTX *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>);
|
|
<a name="l00266"></a>00266 <span class="keywordtype">int</span> <a class="code" href="mm__parse_8c.html#cc9f623682b05f330c46e72e4e9d66cc">mm_parse_file</a>(MM_CTX *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>);
|
|
<a name="l00267"></a>00267
|
|
<a name="l00268"></a>00268 MM_CTX *<a class="code" href="group__context.html#g919fd41f85534d9c87c256857faa2610">mm_context_new</a>(<span class="keywordtype">void</span>);
|
|
<a name="l00269"></a>00269 <span class="keywordtype">void</span> <a class="code" href="group__context.html#g76392d5269e9ef340c2f5f8336f7193b">mm_context_free</a>(MM_CTX *);
|
|
<a name="l00270"></a>00270 <span class="keywordtype">int</span> <a class="code" href="group__context.html#gec3ca486a61b392ff68774242086768e">mm_context_attachpart</a>(MM_CTX *, <span class="keyword">struct</span> mm_mimepart *);
|
|
<a name="l00271"></a>00271 <span class="keywordtype">int</span> <a class="code" href="group__context.html#g53d20c33a401539ef1ffa45f3dddb983">mm_context_deletepart</a>(MM_CTX *, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>);
|
|
<a name="l00272"></a>00272 <span class="keywordtype">int</span> <a class="code" href="group__context.html#gf5bb032ad1c481d31d7b1b0710939712">mm_context_countparts</a>(MM_CTX *);
|
|
<a name="l00273"></a>00273 <span class="keyword">struct </span>mm_mimepart *<a class="code" href="group__context.html#g57fea229675f3e56a77eb40bb8193ee3">mm_context_getpart</a>(MM_CTX *, <span class="keywordtype">int</span>);
|
|
<a name="l00274"></a>00274 <span class="keywordtype">int</span> <a class="code" href="group__context.html#g1e73cadba4acd3ef9dd148dd0c2c3e70">mm_context_iscomposite</a>(MM_CTX *);
|
|
<a name="l00275"></a>00275 <span class="keywordtype">int</span> <a class="code" href="group__context.html#g8733dee7d83d3205349a7ee4ee5b2750">mm_context_haswarnings</a>(MM_CTX *);
|
|
<a name="l00276"></a>00276 <span class="keywordtype">int</span> <a class="code" href="group__context.html#g5288136ab923605f6508c09359ae5772">mm_context_flatten</a>(MM_CTX *, <span class="keywordtype">char</span> **, size_t *, <span class="keywordtype">int</span>);
|
|
<a name="l00277"></a>00277
|
|
<a name="l00278"></a>00278 <span class="keywordtype">int</span> <a class="code" href="group__envelope.html#g38f1164142cedfc3253b068a81f85563">mm_envelope_getheaders</a>(MM_CTX *, <span class="keywordtype">char</span> **, size_t *);
|
|
<a name="l00279"></a>00279 <span class="keywordtype">int</span> <a class="code" href="group__envelope.html#gb2c43c1645e42ae0860c902ce1dda788">mm_envelope_setheader</a>(MM_CTX *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, ...);
|
|
<a name="l00280"></a>00280
|
|
<a name="l00281"></a>00281 <span class="keyword">struct </span>mm_mimeheader *<a class="code" href="mm__header_8c.html#2f2c5f2f640111caf3096ed46b5986a4">mm_mimeheader_new</a>(<span class="keywordtype">void</span>);
|
|
<a name="l00282"></a>00282 <span class="keywordtype">void</span> <a class="code" href="mm__header_8c.html#61e3e62728f720ac381196ec59303064">mm_mimeheader_free</a>(<span class="keyword">struct</span> mm_mimeheader *);
|
|
<a name="l00283"></a>00283 <span class="keyword">struct </span>mm_mimeheader *<a class="code" href="mm__header_8c.html#07a7f7dcebc91aa86f5478e1d84341a1">mm_mimeheader_generate</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
|
|
<a name="l00284"></a>00284 <span class="keywordtype">int</span> mm_mimeheader_uncomment(<span class="keyword">struct</span> mm_mimeheader *);
|
|
<a name="l00285"></a>00285 <span class="keywordtype">int</span> mm_mimeheader_uncommentbyname(<span class="keyword">struct</span> mm_mimepart *, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
|
|
<a name="l00286"></a>00286 <span class="keywordtype">int</span> mm_mimeheader_uncommentall(<span class="keyword">struct</span> mm_mimepart *);
|
|
<a name="l00287"></a>00287 <span class="keywordtype">int</span> mm_mimeheader_tostring(<span class="keyword">struct</span> mm_mimeheader *);
|
|
<a name="l00288"></a>00288
|
|
<a name="l00289"></a>00289 <span class="keyword">struct </span>mm_mimepart *<a class="code" href="group__mimepart.html#g417e5dd361e30cddb91e1d9a5e30b223">mm_mimepart_new</a>(<span class="keywordtype">void</span>);
|
|
<a name="l00290"></a>00290 <span class="keywordtype">void</span> <a class="code" href="group__mimepart.html#gbf47790a0bb96b22bc5e236bc40cb32e">mm_mimepart_free</a>(<span class="keyword">struct</span> mm_mimepart *);
|
|
<a name="l00291"></a>00291 <span class="keywordtype">int</span> <a class="code" href="group__mimepart.html#g46a674ff6b9873c0c45fa4eb5d94fd62">mm_mimepart_attachheader</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keyword">struct</span> mm_mimeheader *);
|
|
<a name="l00292"></a>00292 <span class="keywordtype">int</span> <a class="code" href="group__mimepart.html#g44c78abfb0535312bcb427a2cd220026">mm_mimepart_countheaders</a>(<span class="keyword">struct</span> mm_mimepart *part);
|
|
<a name="l00293"></a>00293 <span class="keywordtype">int</span> <a class="code" href="group__mimepart.html#gf89da502ac54306994bdb452448a8026">mm_mimepart_countheaderbyname</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
|
|
<a name="l00294"></a>00294 <span class="keyword">struct </span>mm_mimeheader *<a class="code" href="group__mimepart.html#ga3ca298eaa82f4ef3ea731511ac84e53">mm_mimepart_getheaderbyname</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>);
|
|
<a name="l00295"></a>00295 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__mimepart.html#g779f11f7a6a54f83763b5ef6ff87e48f">mm_mimepart_getheadervalue</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>);
|
|
<a name="l00296"></a>00296 <span class="keywordtype">int</span> <a class="code" href="group__mimepart.html#g4440bdcfddf88eb642b6a834a0557176">mm_mimepart_headers_start</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keyword">struct</span> mm_mimeheader **);
|
|
<a name="l00297"></a>00297 <span class="keyword">struct </span>mm_mimeheader *<a class="code" href="group__mimepart.html#g8e9064736efdeebf4b257cc45f8a6adf">mm_mimepart_headers_next</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keyword">struct</span> mm_mimeheader **);
|
|
<a name="l00298"></a>00298 <span class="keywordtype">char</span> *<a class="code" href="group__mimepart.html#g4551bf4460e5d165bbcd9f32d4f625de">mm_mimepart_decode</a>(<span class="keyword">struct</span> mm_mimepart *);
|
|
<a name="l00299"></a>00299 <span class="keyword">struct </span>mm_content *<a class="code" href="group__mimepart.html#g210e2ceee56f8349f6778006da87d080">mm_mimepart_gettype</a>(<span class="keyword">struct</span> mm_mimepart *);
|
|
<a name="l00300"></a>00300 size_t <a class="code" href="group__mimepart.html#gf8ccae1737dc4b9b91958fe448da677f">mm_mimepart_getlength</a>(<span class="keyword">struct</span> mm_mimepart *);
|
|
<a name="l00301"></a>00301 <span class="keywordtype">char</span> *<a class="code" href="group__mimepart.html#g52dc9f27a2801e4f6abb1effd2ed838d">mm_mimepart_getbody</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keywordtype">int</span>);
|
|
<a name="l00302"></a>00302 <span class="keywordtype">void</span> <a class="code" href="group__mimepart.html#g01822bc93b4741af75b5379384354e37">mm_mimepart_attachcontenttype</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keyword">struct</span> mm_content *);
|
|
<a name="l00303"></a>00303 <span class="keywordtype">int</span> <a class="code" href="group__mimepart.html#g164bb39a266559574c252f11266809ff">mm_mimepart_setdefaultcontenttype</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keywordtype">int</span>);
|
|
<a name="l00304"></a>00304 <span class="keywordtype">int</span> <a class="code" href="group__mimepart.html#gf19d3ace5ae174b3eaa35f9ddbe6e216">mm_mimepart_flatten</a>(<span class="keyword">struct</span> mm_mimepart *, <span class="keywordtype">char</span> **, size_t *, <span class="keywordtype">int</span>);
|
|
<a name="l00305"></a>00305 <span class="keyword">struct </span>mm_mimepart *<a class="code" href="group__mimepart.html#ged8112012a337371ae8093adb1ab6d27">mm_mimepart_fromfile</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
|
|
<a name="l00306"></a>00306
|
|
<a name="l00307"></a>00307 <span class="keyword">struct </span>mm_content *<a class="code" href="group__contenttype.html#g3880ac74a20b4a9f610a4159568e1801">mm_content_new</a>(<span class="keywordtype">void</span>);
|
|
<a name="l00308"></a>00308 <span class="keywordtype">void</span> <a class="code" href="group__contenttype.html#g404314481125849bce869ee4b0f647af">mm_content_free</a>(<span class="keyword">struct</span> mm_content *);
|
|
<a name="l00309"></a>00309 <span class="keywordtype">int</span> <a class="code" href="group__contenttype.html#g080b7ed798ed497dcd635a6bab86962f">mm_content_attachparam</a>(<span class="keyword">struct</span> mm_content *, <span class="keyword">struct</span> mm_param *);
|
|
<a name="l00310"></a>00310 <span class="keyword">struct </span>mm_content *mm_content_parse(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>);
|
|
<a name="l00311"></a>00311 <span class="keywordtype">char</span> *<a class="code" href="group__contenttype.html#g451441ee557ab5ef29477f3dc8330bf6">mm_content_getparambyname</a>(<span class="keyword">struct</span> mm_content *, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
|
|
<a name="l00312"></a>00312 <span class="keyword">struct </span>mm_param *mm_content_getparamobjbyname(<span class="keyword">struct</span> mm_content *, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
|
|
<a name="l00313"></a>00313 <span class="keywordtype">int</span> <a class="code" href="group__contenttype.html#g7bab273d117c6c0cacad20361d8fb1c8">mm_content_setmaintype</a>(<span class="keyword">struct</span> mm_content *, <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>);
|
|
<a name="l00314"></a>00314 <span class="keywordtype">int</span> <a class="code" href="group__contenttype.html#g14b0738410d566ad2312405946f22212">mm_content_setsubtype</a>(<span class="keyword">struct</span> mm_content *, <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>);
|
|
<a name="l00315"></a>00315 <span class="keywordtype">int</span> mm_content_settype(<span class="keyword">struct</span> mm_content *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, ...);
|
|
<a name="l00316"></a>00316 <span class="keywordtype">char</span> *<a class="code" href="group__contenttype.html#gb213081017abf6bc7e601c6bf4214924">mm_content_getmaintype</a>(<span class="keyword">struct</span> mm_content *);
|
|
<a name="l00317"></a>00317 <span class="keywordtype">char</span> *<a class="code" href="group__contenttype.html#g97f77ef40c14cd0fb397bad358ee5d49">mm_content_getsubtype</a>(<span class="keyword">struct</span> mm_content *);
|
|
<a name="l00318"></a>00318 <span class="keywordtype">char</span> *mm_content_gettype(<span class="keyword">struct</span> mm_content *);
|
|
<a name="l00319"></a>00319 <span class="keywordtype">int</span> <a class="code" href="group__contenttype.html#ga7fa479f27e73dea57257421d8fc9fc5">mm_content_iscomposite</a>(<span class="keyword">struct</span> mm_content *);
|
|
<a name="l00320"></a>00320 <span class="keywordtype">int</span> <a class="code" href="group__contenttype.html#gb724b5979182fa272fe4fd1b72b395d5">mm_content_isvalidencoding</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
|
|
<a name="l00321"></a>00321 <span class="keywordtype">int</span> <a class="code" href="group__contenttype.html#gea945e48ac5cca846715543634b9afe4">mm_content_setencoding</a>(<span class="keyword">struct</span> mm_content *, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
|
|
<a name="l00322"></a>00322 <span class="keywordtype">char</span> *<a class="code" href="group__contenttype.html#g792e7d33fbb30e0123408bcef9d3204c">mm_content_paramstostring</a>(<span class="keyword">struct</span> mm_content *);
|
|
<a name="l00323"></a>00323 <span class="keywordtype">char</span> *<a class="code" href="group__contenttype.html#g18a99c95e35a76f13a77a83c4231e738">mm_content_tostring</a>(<span class="keyword">struct</span> mm_content *);
|
|
<a name="l00324"></a>00324
|
|
<a name="l00325"></a>00325 <span class="keyword">struct </span>mm_param *<a class="code" href="group__param.html#gd3ac756551bf5a29a07d5992bfdbde09">mm_param_new</a>(<span class="keywordtype">void</span>);
|
|
<a name="l00326"></a>00326 <span class="keywordtype">void</span> <a class="code" href="group__param.html#g46339038e995799e6a3e37512f442fc9">mm_param_free</a>(<span class="keyword">struct</span> mm_param *);
|
|
<a name="l00327"></a>00327
|
|
<a name="l00328"></a>00328 <span class="keywordtype">char</span> *mm_flatten_mimepart(<span class="keyword">struct</span> mm_mimepart *);
|
|
<a name="l00329"></a>00329 <span class="keywordtype">char</span> *mm_flatten_context(MM_CTX *);
|
|
<a name="l00330"></a>00330
|
|
<a name="l00331"></a>00331 <span class="keywordtype">int</span> <a class="code" href="group__codecs.html#g9e19f6343128fd7e4ec57c3d55049b55">mm_codec_isregistered</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
|
|
<a name="l00332"></a>00332 <span class="keywordtype">int</span> <a class="code" href="group__codecs.html#g6ccb0f7a1d7c870dc3dae04f31d6ccca">mm_codec_hasdecoder</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
|
|
<a name="l00333"></a>00333 <span class="keywordtype">int</span> <a class="code" href="group__codecs.html#g50ff257b794ceaec7aedf9ae18bfcc57">mm_codec_hasencoder</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
|
|
<a name="l00334"></a>00334 <span class="keywordtype">int</span> <a class="code" href="group__codecs.html#gf97a7311c909888ed9f6f14d6f1bf397">mm_codec_register</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">char</span> *(*encoder)(<span class="keywordtype">char</span> *, u_int32_t), <span class="keywordtype">char</span> *(*decoder)(<span class="keywordtype">char</span> *));
|
|
<a name="l00335"></a>00335 <span class="keywordtype">int</span> <a class="code" href="group__codecs.html#g0c71696bc70f834386193e3c7a0e2ca4">mm_codec_unregister</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
|
|
<a name="l00336"></a>00336 <span class="keywordtype">int</span> <a class="code" href="group__codecs.html#g7c9e6538f84c368be2b56a3c9ba702be">mm_codec_unregisterall</a>(<span class="keywordtype">void</span>);
|
|
<a name="l00337"></a>00337 <span class="keywordtype">void</span> <a class="code" href="group__codecs.html#gf39e72460fb85f5ca41f6e270a68aacc">mm_codec_registerdefaultcodecs</a>(<span class="keywordtype">void</span>);
|
|
<a name="l00338"></a>00338
|
|
<a name="l00339"></a>00339 <span class="keywordtype">char</span> *mm_base64_decode(<span class="keywordtype">char</span> *);
|
|
<a name="l00340"></a>00340 <span class="keywordtype">char</span> *mm_base64_encode(<span class="keywordtype">char</span> *, u_int32_t);
|
|
<a name="l00341"></a>00341
|
|
<a name="l00342"></a>00342 <span class="keywordtype">void</span> <a class="code" href="group__error.html#g69de7c9bee1d535593a55807590de543">mm_error_init</a>(<span class="keywordtype">void</span>);
|
|
<a name="l00343"></a>00343 <span class="keywordtype">void</span> <a class="code" href="group__error.html#g92006c97728639d8f32f5bc4c6e2a47f">mm_error_setmsg</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, ...);
|
|
<a name="l00344"></a>00344 <span class="keywordtype">void</span> mm_error_setlineno(<span class="keywordtype">int</span> lineno);
|
|
<a name="l00345"></a>00345 <span class="keywordtype">char</span> *<a class="code" href="group__error.html#g8654857a3ac349b87d798902912371a3">mm_error_string</a>(<span class="keywordtype">void</span>);
|
|
<a name="l00346"></a>00346 <span class="keywordtype">int</span> mm_error_lineno(<span class="keywordtype">void</span>);
|
|
<a name="l00347"></a>00347
|
|
<a name="l00348"></a>00348 <span class="keywordtype">void</span> mm_warning_add(MM_CTX *, <span class="keywordtype">int</span>, <span class="keyword">const</span> <span class="keywordtype">char</span> *, ...);
|
|
<a name="l00349"></a>00349 <span class="keyword">struct </span>mm_warning *mm_warning_next(MM_CTX *, <span class="keyword">struct</span> mm_warning **);
|
|
<a name="l00350"></a>00350
|
|
<a name="l00351"></a>00351 <span class="preprocessor">#ifndef HAVE_STRLCPY</span>
|
|
<a name="l00352"></a>00352 <span class="preprocessor"></span>size_t strlcpy(<span class="keywordtype">char</span> *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, size_t);
|
|
<a name="l00353"></a>00353 <span class="preprocessor">#endif </span><span class="comment">/* ! HAVE_STRLCPY */</span>
|
|
<a name="l00354"></a>00354 <span class="preprocessor">#ifndef HAVE_STRLCAT</span>
|
|
<a name="l00355"></a>00355 <span class="preprocessor"></span>size_t strlcat(<span class="keywordtype">char</span> *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, size_t);
|
|
<a name="l00356"></a>00356 <span class="preprocessor">#endif </span><span class="comment">/* ! HAVE_STRLCAT */</span>
|
|
<a name="l00357"></a>00357
|
|
<a name="l00358"></a>00358 <span class="preprocessor">#define MM_ISINIT() do { \</span>
|
|
<a name="l00359"></a>00359 <span class="preprocessor"> assert(mm_library_isinitialized() == 1); \</span>
|
|
<a name="l00360"></a>00360 <span class="preprocessor">} while (0);</span>
|
|
<a name="l00361"></a>00361 <span class="preprocessor"></span>
|
|
<a name="l00362"></a>00362 <span class="preprocessor">#endif </span><span class="comment">/* ! _MM_H_INCLUDED */</span>
|
|
</pre></div><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>
|