trafficserver-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From andrew...@apache.org
Subject svn commit: r831152 [28/37] - in /incubator/trafficserver/site/trunk/docs: ./ admin/ admin/images/ sdk/ sdk/css/ sdk/images/ sdk/images/docbook/ sdk/js/
Date Thu, 29 Oct 2009 23:23:36 GMT
Added: incubator/trafficserver/site/trunk/docs/sdk/MimeHeadersFunctions.html
URL: http://svn.apache.org/viewvc/incubator/trafficserver/site/trunk/docs/sdk/MimeHeadersFunctions.html?rev=831152&view=auto
==============================================================================
--- incubator/trafficserver/site/trunk/docs/sdk/MimeHeadersFunctions.html (added)
+++ incubator/trafficserver/site/trunk/docs/sdk/MimeHeadersFunctions.html Thu Oct 29 23:23:25 2009
@@ -0,0 +1,1683 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>MIIME Headers</title>
+<link rel="stylesheet" href="http://yui.yahooapis.com/2.2.2/build/reset/reset-min.css" type="text/css">
+<link rel="stylesheet" href="http://yui.yahooapis.com/2.2.2/build/fonts/fonts-min.css" type="text/css">
+<link rel="stylesheet" href="http://yui.yahooapis.com/2.2.2/build/treeview/assets/tree.css" type="text/css">
+<link rel="stylesheet" href="css/ydoc.css" type="text/css">
+<link rel="stylesheet" href="css/ydoc-chunk.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<link rel="start" href="index.html" title="Traffic Server Software Developers Kit">
+<link rel="up" href="MarshallBuffersFunctions.html" title="Marshal Buffers">
+<link rel="prev" href="URLFunctions.html" title="URL Functions">
+<link rel="next" href="MutexFunctions.html" title="Mutex Functions">
+<link rel="preface" href="Preface.html" title="Preface">
+<link rel="chapter" href="GetingStarted.html" title="Chapter 1. Getting Started">
+<link rel="chapter" href="CreatingTSPlugins.html" title="Chapter 2. How to Create Traffic Server Plugins">
+<link rel="index" href="CreatingTSPlugins.html#id372630" title="Index">
+<link rel="chapter" href="ch03.html" title="Chapter 3. Remap Plugin">
+<link rel="chapter" href="HeaderBasedPluginEx.html" title="Chapter 4. Header-Based Plugin Examples">
+<link rel="chapter" href="HTTPTransformationPlugins.html" title="Chapter 5. HTTP Transformation Plugins">
+<link rel="chapter" href="NewProtocolPlugins.html" title="Chapter 6. New Protocol Plugins">
+<link rel="chapter" href="ch07.html" title="Chapter 7. Cache Plugin">
+<link rel="chapter" href="HTTPHooksAndTransactions.html" title="Chapter 8. HTTP Hooks and Transactions">
+<link rel="chapter" href="MiscellaneousInterfaceGuide.html" title="Chapter 9. Miscellaneous Interface Guide">
+<link rel="chapter" href="HTTPHeaders.html" title="Chapter 10. HTTP Headers">
+<link rel="chapter" href="MutexGuide.html" title="Chapter 11. Mutex Guide">
+<link rel="chapter" href="Continuations.html" title="Chapter 12. Continuations">
+<link rel="chapter" href="PluginConfigurations.html" title="Chapter 13. Plugin Configurations">
+<link rel="chapter" href="ActionsGuide.html" title="Chapter 14. Actions Guide">
+<link rel="chapter" href="IOGuide.html" title="Chapter 15. IO Guide">
+<link rel="chapter" href="PluginManagement.html" title="Chapter 16. Plugin Management">
+<link rel="chapter" href="AddingStatistics.html" title="Chapter 17. Adding Statistics">
+<link rel="chapter" href="FunctionReference.html" title="Chapter 18. Function Reference">
+<link rel="appendix" href="App_SampleSourceCode.html" title="Appendix A. Sample Source Code">
+<link rel="appendix" href="App_DeprecatedFunctions.html" title="Appendix B. Deprecated Functions">
+<link rel="appendix" href="App_Troubleshooting.html" title="Appendix C. Troubleshooting Tips">
+<link rel="appendix" href="FunctionIndex.html" title="Appendix D. Function Index">
+<link rel="appendix" href="TypeIndex.html" title="Appendix E. Type Index">
+<link rel="index" href="ConceptIndex.html" title="Index">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldAppend" title="INKMimeHdrFieldAppend">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldClone" title="INKMimeHdrFieldClone">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldCopy" title="INKMimeHdrFieldCopy">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldCopyValues" title="INKMimeHdrFieldCopyValues">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldCreate" title="INKMimeHdrFieldCreate">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldDestroy" title="INKMimeHdrFieldDestroy">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldLengthGet" title="INKMimeHdrFieldLengthGet">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldNameGet" title="INKMimeHdrFieldNameGet">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldNameSet" title="INKMimeHdrFieldNameSet">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldNext" title="INKMimeHdrFieldNext">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldNextDup" title="INKMimeHdrFieldNextDup">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldValueAppend" title="INKMimeHdrFieldValueAppend">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldValueDateGet" title="INKMimeHdrFieldValueDateGet">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldValueDateInsert" title="INKMimeHdrFieldValueDateInsert">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldValueDateSet" title="INKMimeHdrFieldValueDateSet">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldValueDelete" title="INKMimeHdrFieldValueDelete">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldValueIntGet" title="INKMimeHdrFieldValueIntGet">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldValueIntInsert" title="INKMimeHdrFieldValueIntInsert">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldValueIntSet" title="INKMimeHdrFieldValueIntSet">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldValueStringGet" title="INKMimeHdrFieldValueStringGet">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldValueStringInsert" title="INKMimeHdrFieldValueStringInsert">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldValueStringSet" title="INKMimeHdrFieldValueStringSet">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldValueUintGet" title="INKMimeHdrFieldValueUintGet">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldValueUIntInsert" title="INKMimeHdrFieldValueUIntInsert">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldValueUintSet" title="INKMimeHdrFieldValueUintSet">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldValuesClear" title="INKMimeHdrFieldValuesClear">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldValuesCount" title="INKMimeHdrFieldValuesCount">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrClone" title="INKMimeHdrClone">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrCopy" title="INKMimeHdrCopy">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrCreate" title="INKMimeHdrCreate">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrDestroy" title="INKMimeHdrDestroy">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldFind" title="INKMimeHdrFieldFind">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldGet" title="INKMimeHdrFieldGet">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldRemove" title="INKMimeHdrFieldRemove">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldsClear" title="INKMimeHdrFieldsClear">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrFieldsCount" title="INKMimeHdrFieldsCount">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrLengthGet" title="INKMimeHdrLengthGet">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrParse" title="INKMimeHdrParse">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeParserClear" title="INKMimeParserClear">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeParserCreate" title="INKMimeParserCreate">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeParserDestroy" title="INKMimeParserDestroy">
+<link rel="subsection" href="MimeHeadersFunctions.html#INKMimeHdrPrint" title="INKMimeHdrPrint">
+<script type="text/javascript" src="http://yui.yahooapis.com/2.2.2/build/yahoo/yahoo-min.js"></script><script type="text/javascript" src="http://yui.yahooapis.com/2.2.2/build/event/event-min.js"></script><script type="text/javascript" src="http://yui.yahooapis.com/2.2.2/build/treeview/treeview-min.js"></script><script type="text/javascript" src="js/tocnodes.js"></script><script type="text/javascript" src="js/toc.js"></script><script type="text/javascript">
+    document.write("<style> div.toc {display: none} </style>"); 
+  </script>
+</head>
+<body>
+<div class="doctitle">
+<a href="index.html">Home</a>
+<img src="images/docbook/ts75.png"><h1 class="doctitle">Traffic Server Software Developers Kit</h1>
+</div>
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="URLFunctions.html">Prev</a> — URL Functions</div>
+<div class="navnext">Mutex Functions — <a accesskey="n" href="MutexFunctions.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="MimeHeadersFunctions"></a>MIIME Headers</h3></div></div></div>
+<p>MIME headers and fields can be components of request headers,
+        response headers, or standalone headers created within your plugin.
+        Make sure you call the MIME header functions appropriately; for
+        example, if you want to clone a MIME header field within a request
+        header, call <code class="function">INKMimeHdrFieldClone</code> after
+        <code class="code">READ_REQUEST_HDR_HOOK</code>.</p>
+<p>The MIME header functions are:</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldAppend"></a>INKMimeHdrFieldAppend</h4></div></div></div>
+<p>Appends a field in a MIME header.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldAppend (INKMBuffer
+                <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr_loc</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Appends the MIME field located at field within the
+                marshal buffer <code class="code"><em class="replaceable"><code>bufp</code></em></code>
+                into the MIME header located at
+                <code class="code"><em class="replaceable"><code>url_loc</code></em></code> within the
+                marshal buffer
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code>.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if the API is called
+                successfully.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs while calling
+                the API or if an argument is invalid.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.0</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldClone"></a>INKMimeHdrFieldClone</h4></div></div></div>
+<p>Copies a MIME field to a marshal buffer, and returns the
+          <code class="function">INKMLoc</code> location of the copied field.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKMLoc INKMimeHdrFieldClone (INKMBuffer
+                <em class="replaceable"><code>dest_bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>dest_hdr</code></em>, INKMBuffer
+                <em class="replaceable"><code>src_bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>src_hdr</code></em>, INKMLoc
+                <em class="replaceable"><code>src_field</code></em>) </code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Copies the contents of the MIME field located at
+                <code class="code"><em class="replaceable"><code>src_field</code></em></code> within the
+                marshal buffer
+                <code class="code"><em class="replaceable"><code>src_bufp</code></em></code> to a MIME
+                header located at
+                <code class="code"><em class="replaceable"><code>dest_hdr</code></em></code> within the
+                marshal buffer
+                <code class="code"><em class="replaceable"><code>dest_bufp</code></em></code>.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>The <code class="function">INKMLoc</code> location of the copied
+                field. Release the returned handle with a call to
+                <code class="function">INKHandleMLocRelease</code>.</p>
+<p><code class="code">INK_ERROR_PTR</code> if error.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldCopy"></a>INKMimeHdrFieldCopy</h4></div></div></div>
+<p>Copies a MIME field from a specified location to another
+          specified location.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldCopy (INKMBuffer
+                <em class="replaceable"><code>dest_bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>dest_hdr</code></em>, INKMLoc
+                <em class="replaceable"><code>dest_field</code></em>, INKMBuffer
+                <em class="replaceable"><code>src_bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>src_hdr</code></em>, INKMLoc
+                <em class="replaceable"><code>src_field</code></em>) </code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd>
+<p>Copies the contents of the MIME field located at
+                <code class="code"><em class="replaceable"><code>src_field</code></em></code> within the
+                marshal buffer
+                <code class="code"><em class="replaceable"><code>src_bufp</code></em></code> to the MIME
+                field located at
+                <code class="code"><em class="replaceable"><code>dest_field</code></em></code> within the
+                marshal buffer
+                <code class="code"><em class="replaceable"><code>dest_bufp</code></em></code>.
+                <code class="function">INKMimeHdrFieldCopy</code> works correctly even
+                if <code class="code"><em class="replaceable"><code>src_bufp</code></em></code> and
+                <code class="code"><em class="replaceable"><code>dest_bufp</code></em></code> point to
+                different marshal buffers.</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/docbook/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>You must first create the destination MIME field
+                  before copying into it.</p></td></tr>
+</table></div>
+</dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if successful.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldCopyValues"></a>INKMimeHdrFieldCopyValues</h4></div></div></div>
+<p>Copies MIME field values from one location to another.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldCopyValues
+                (INKMBuffer <em class="replaceable"><code>dest_bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>dest_hdr</code></em>, INKMLoc
+                <em class="replaceable"><code>dest_field</code></em>, INKMBuffer
+                <em class="replaceable"><code>src_bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>src_hdr</code></em>, INKMLoc
+                <em class="replaceable"><code>src_field</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Copies the values contained within the MIME field
+                located at <code class="code"><em class="replaceable"><code>src_field</code></em></code>
+                within the marshal buffer
+                <code class="code"><em class="replaceable"><code>src_bufp</code></em></code> to the MIME
+                field located at
+                <code class="code"><em class="replaceable"><code>dest_field</code></em></code> within the
+                marshal buffer
+                <code class="code"><em class="replaceable"><code>dest_bufp</code></em></code>.
+                <code class="function">INKMimeHdrFieldCopyValues</code> works correctly
+                even if <code class="code"><em class="replaceable"><code>src_bufp</code></em></code> and
+                <code class="code"><em class="replaceable"><code>dest_bufp</code></em></code> point to
+                different marshal buffers.
+                <code class="function">INKMimeHdrFieldCopyValues</code> does not copy
+                the field’s name.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if successful.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldCreate"></a>INKMimeHdrFieldCreate</h4></div></div></div>
+<p>Creates a new MIME field within a specified marshal
+          buffer.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKMLoc INKMimeHdrFieldCreate (INKMBuffer
+                <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr</code></em>) </code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Creates a new MIME field with the marshal buffer
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code>.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd><p>The location of the new MIME field. Release with a call
+                to <code class="function">INKHandleMLocRelease</code>.</p></dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldDestroy"></a>INKMimeHdrFieldDestroy</h4></div></div></div>
+<p>Deletes a specified MIME field from a marshal buffer.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">void INKMimeHdrFieldDestroy (INKMBuffer
+                <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>) </code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd>
+<p>Destroys the MIME field located at
+                <code class="code"><em class="replaceable"><code>field</code></em></code> within the MIME
+                header located at <code class="code"><em class="replaceable"><code>hdr</code></em></code>
+                within the marshal buffer
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code>.</p>
+<p>After the call to
+                <code class="function">INKMimeHdrFieldDestroy</code>, you must release
+                the <code class="function">INKMLoc</code> handle
+                <code class="code"><em class="replaceable"><code>field</code></em></code> with a call to
+                <code class="function">INKHandleMLocRelease</code>.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldLengthGet"></a>INKMimeHdrFieldLengthGet</h4></div></div></div>
+<p>Calculates the length of a string representation of a
+          specified MIME field.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">int INKMimeHdrFieldLengthGet (INKMBuffer
+                <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>) </code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Calculates the length of the MIME field located at
+                <code class="code"><code class="code"><em class="replaceable"><code>field</code></em></code></code>
+                within the marshal buffer
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code> if it were
+                returned as a string. This is the length of the MIME field in
+                its unparsed form.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>The calculated length of a string representation of the
+                specified MIME field.</p>
+<p><code class="code">INK_ERROR</code> if there is an error.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldNameGet"></a>INKMimeHdrFieldNameGet</h4></div></div></div>
+<p>Gets the name and name length of a specified MIME
+          field.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">const char* INKMimeHdrFieldNameGet (INKMBuffer
+                <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>, int
+                *<em class="replaceable"><code>length</code></em>) </code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Returns the name of the field located at
+                <code class="code"><em class="replaceable"><code>field</code></em></code> within the
+                marshal buffer <code class="code"><em class="replaceable"><code>bufp</code></em></code>.
+                <code class="function">INKMimeHdrFieldNameGet</code> places the length
+                of the returned string in the
+                <code class="code"><em class="replaceable"><code>length</code></em></code>
+                argument.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>A pointer to the name of the specified field within the
+                specified MIME header. Release the returned string with a call
+                to <code class="function">INKHandleStringRelease</code>.</p>
+<p><code class="code">INK_ERROR_PTR</code> if error.</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/docbook/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>The returned string is not guaranteed to be
+                  null-terminated.</p></td></tr>
+</table></div>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldNameSet"></a>INKMimeHdrFieldNameSet</h4></div></div></div>
+<p>Sets a specified MIME field’s name.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldNameSet (INKMBuffer
+                <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>, const char
+                *<em class="replaceable"><code>name</code></em>, int
+                <em class="replaceable"><code>length</code></em>) </code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd>
+<p>Sets the name of the field located at
+                <code class="code"><em class="replaceable"><code>field</code></em></code> within the
+                marshal buffer <code class="code"><em class="replaceable"><code>bufp</code></em></code> to
+                the string <code class="code"><em class="replaceable"><code>name</code></em></code>. If
+                <code class="code"><em class="replaceable"><code>length</code></em></code> is -1 then
+                <code class="function">INKMimeHdrFieldNameSet</code> assumes thatname
+                is null-terminated. Otherwise, the length of the string
+                <code class="code"><em class="replaceable"><code>name</code></em></code> is taken to be
+                <code class="code"><em class="replaceable"><code>length</code></em></code>.
+                <code class="function">INKMimeHdrFieldNameSet</code> copies the string
+                to within <code class="code"><em class="replaceable"><code>bufp</code></em></code>, so it
+                is okay to modify or delete
+                <code class="code"><em class="replaceable"><code>name</code></em></code> after calling
+                <code class="function">INKMimeHdrFieldNameSet</code>.</p>
+<p>For name, use the <code class="code">INK_MIME_FIELD_XXX</code> tokens
+                when possible.</p>
+</dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if successful.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldNext"></a>INKMimeHdrFieldNext</h4></div></div></div>
+<p>Returns the next MIME field after a specified MIME field in a
+          MIME header.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKMLoc INKMimeHdrFieldNext (INKMBuffer
+                <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>) </code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Conceptually, there are a list of MIME fields in a MIME
+                header (see <a href="GuideTSHTTPHdrSyst.html" title="Guide to Traffic Server HTTP Header System">“Guide to Traffic Server HTTP Header System”</a>).
+                <code class="function">INKMimeHdrFieldNext</code> returns the location
+                of the next <code class="code"><em class="replaceable"><code>field</code></em></code> in
+                the list after the field located at
+                <code class="code"><em class="replaceable"><code>field</code></em></code> within the
+                marshal buffer <code class="code"><em class="replaceable"><code>bufp</code></em></code>.
+                If the next field is not found, a <code class="code">NULL</code> pointer is
+                returned.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>The location of the MIME field following the specified
+                MIME field within the specified MIME header. Release the
+                returned <code class="function">INKMLoc</code> with a call to
+                <code class="function">INKHandleMLocRelease</code>. See the code
+                example below.</p>
+<p><code class="code">INK_ERROR_PTR</code> if error.</p>
+</dd>
+<dt><span class="term">Example</span></dt>
+<dd>
+<p>An example of a loop through each MIME field of an HTTP
+                header:</p>
+<pre class="programlisting">field_loc = INKMimeHdrFieldGet (hdr_bufp, hdr_loc, 0);
+  while (field_loc) {
+       /* Temp variable used only for the loop */
+       INKMLoc next_field_loc;
+
+       /* Do your job with the field here */
+
+       /* Get the next field and release the current one */
+       next_field_loc = INKMimeHdrFieldNext (hdr_bufp, hdr_loc, field_loc);
+       INKHandleMLocRelease(hdr_bufp, hdr_loc, field_loc);
+       field_loc = next_field_loc;
+       }</pre>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldNextDup"></a>INKMimeHdrFieldNextDup</h4></div></div></div>
+<p>Returns the next duplicate MIME field after a specified MIME
+          field in a MIME header.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKMLoc INKMimeHdrFieldNextDup (INKMBuffer bufp,
+                INKMLoc hdr, INKMLoc field) </code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd>
+<p>MIME headers MAY contain more than one MIME field with
+                the same name. Previous versions of Traffic Server joined
+                multiple fields with the same name into one field with
+                composite values. This behavior comes at a performance cost,
+                and causes inter-operability problems with some older clients
+                and servers. Future versions of Traffic Server will cease
+                coalescing duplicate fields.</p>
+<p>Your plugins should check for the presence of duplicate
+                fields, and iterate over duplicate fields, by using
+                <code class="function">INKMimeHdrFieldNextDup.INKMimeHdrFieldNextDup</code>
+                returns the location of the next duplicated field in the list
+                after the field located at
+                <code class="code"><em class="replaceable"><code>field</code></em></code> within the
+                marshal buffer <code class="code"><em class="replaceable"><code>bufp</code></em></code>.
+                If the next field is not found, a <code class="code">NULL</code> pointer is
+                returned.</p>
+</dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>The location of the next duplicate MIME field that
+                follows the specified field within the specified MIME header.
+                Release with a call to
+                <code class="function">INKHandleMLocRelease</code>.</p>
+<p><code class="code">INK_ERROR_PTR</code> if error.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldValueAppend"></a>INKMimeHdrFieldValueAppend</h4></div></div></div>
+<p>Appends a string to a specified value in a MIME field.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldValueAppend
+                (INKMBuffer <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>, int
+                <em class="replaceable"><code>idx</code></em>, const char
+                *<em class="replaceable"><code>value</code></em>, int
+                <em class="replaceable"><code>length</code></em>)</code></p></dd>
+<dt><span class="term">Arguments</span></dt>
+<dd>
+<p><code class="code"><em class="replaceable"><code>bufp</code></em></code> is the
+                marshal buffer containing the MIME field.</p>
+<p><code class="code"><em class="replaceable"><code>hdr</code></em></code> is the
+                location of the parent object within the marshal buffer
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code> from which
+                <code class="code"><em class="replaceable"><code>field</code></em></code> was
+                retrieved.</p>
+<p><code class="code"><em class="replaceable"><code>field</code></em></code> is the
+                location of the MIME field to be appended to.</p>
+<p><code class="code"><em class="replaceable"><code>idx</code></em></code> is the index
+                of the field value to be appended. For example, in the MIME
+                field <code class="code">Foo: bar</code>, car the index of the value bar is
+                0, and the index of car is 1.</p>
+<p><code class="code"><em class="replaceable"><code>value</code></em></code> is the
+                string to be appended to the MIME field <code class="code">value</code> at
+                <code class="code"><em class="replaceable"><code>idx</code></em></code>.</p>
+<p><code class="code"><em class="replaceable"><code>length</code></em></code> is the
+                length of the string <code class="code">value</code> to be
+                <em class="replaceable"><code>appended</code></em>.</p>
+</dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Appends the string stored in
+                <code class="code"><em class="replaceable"><code>value</code></em></code> to a specific
+                value in the MIME field located at
+                <code class="code"><em class="replaceable"><code>field</code></em></code> within the
+                marshal buffer <code class="code"><em class="replaceable"><code>bufp</code></em></code>.
+                The effect of <code class="function">INKMimeHdrFieldValueAppend</code>
+                is as if the previous value were retrieved, the string
+                <code class="code"><em class="replaceable"><code>value</code></em></code> were appended to
+                it and this new string were stored back in the MIME field at
+                the same position. The
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> parameter
+                specifies which value in the field to append to. If
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> is not between 0
+                and <code class="function">INKMimeHdrFieldValuesCount</code>
+                (<code class="code"><em class="replaceable"><code>bufp, hdr, field</code></em></code>) - 1
+                then no operation will be performed.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if the string is successfully
+                appended.</p>
+<p><code class="code">INK_ERROR</code> if the hook is not added.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldValueDateGet"></a>INKMimeHdrFieldValueDateGet</h4></div></div></div>
+<p>Gets date value from a MIME field.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldValueDateGet
+                (INKMBuffer <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr_loc</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>, time_t
+                *<em class="replaceable"><code>value</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Retrieves a date
+                <code class="code"><em class="replaceable"><code>value</code></em></code> from within the
+                MIME field located at
+                <code class="code"><em class="replaceable"><code>field</code></em></code> within the
+                marshal buffer <code class="code"><em class="replaceable"><code>bufp</code></em></code>.
+                All values are stored as strings within the MIME field.
+                <code class="function">INKMimeHdrFieldValueDateGet</code> parses the
+                string <code class="code"><em class="replaceable"><code>value</code></em></code> to return
+                an integer date representation.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>The date <code class="code"><em class="replaceable"><code>value</code></em></code>
+                from the specified MIME header.</p>
+<p><code class="code">INK_SUCCESS</code> if the API is called
+                successfully.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs while calling
+                the API or if an argument is invalid.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldValueDateInsert"></a>INKMimeHdrFieldValueDateInsert</h4></div></div></div>
+<p>Inserts a date value into a MIME field.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldValueDateInsert
+                (INKMBuffer <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr_loc</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>, time_t
+                <em class="replaceable"><code>value</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Inserts the data
+                <code class="code"><em class="replaceable"><code>value</code></em></code> into the MIME
+                field located at <code class="code"><em class="replaceable"><code>field</code></em></code>
+                within the marshal buffer
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code>. All values are
+                stored as strings within the MIME field.
+                <code class="function">INKMimeHdrFieldValueDateInsert</code> simply
+                formats the date into a string and then calls
+                <code class="function">INKMimeHdrFieldValueInsert</code>.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if the API is called
+                successfully.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs while calling
+                the API or if an argument is invalid.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldValueDateSet"></a>INKMimeHdrFieldValueDateSet</h4></div></div></div>
+<p>Sets a date value in a MIME field.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldValueDateSet
+                (INKMBuffer <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr_loc</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>, time_t
+                <em class="replaceable"><code>value</code></em>) </code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd>
+<p>Sets a value in the MIME field located at
+                <code class="code"><em class="replaceable"><code>field</code></em></code> within the
+                marshal buffer <code class="code"><em class="replaceable"><code>bufp</code></em></code> to
+                the date <code class="code"><em class="replaceable"><code>value</code></em></code>. All
+                values are stored as strings within the MIME field.
+                <code class="function">INKMimeHdrFieldValueDateSet</code> simply
+                formats the date into a string and then calls
+                <code class="function">INKMimeHdrFieldValueStringSet</code>.</p>
+<p>This API has been deprecated by .</p>
+</dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if the API is called
+                successfully.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs while calling
+                the API or if an argument is invalid.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldValueDelete"></a>INKMimeHdrFieldValueDelete</h4></div></div></div>
+<p>Deletes a specified value from a MIME field.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldVcoalueDelete
+                (INKMBuffer <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>, int
+                <em class="replaceable"><code>idx</code></em>) </code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Removes and deletes a value from the MIME field located
+                at <code class="code"><em class="replaceable"><code>field</code></em></code> within the
+                marshal buffer <code class="code"><em class="replaceable"><code>bufp</code></em></code>.
+                The <code class="code"><em class="replaceable"><code>idx</code></em></code> parameter
+                specifies which value should be deleted. If
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> is not between 0
+                and <code class="function">INKMimeHdrFieldValuesCount</code>
+                (<code class="code"><em class="replaceable"><code>bufp, hdr, field</code></em></code>) - 1
+                then no operation will be performed.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if successful.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldValueIntGet"></a>INKMimeHdrFieldValueIntGet</h4></div></div></div>
+<p>Gets an integer field value in a MIME field.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldValueIntGet
+                (INKMBuffer <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr_loc</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>, int
+                <em class="replaceable"><code>idx</code></em>, int
+                *<em class="replaceable"><code>value</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Retrieves an integer value from within the MIME field
+                located at <code class="code"><em class="replaceable"><code>field</code></em></code>
+                within the marshal buffer
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code>. The
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> parameter
+                specifies which value within the field to retrieve. The fields
+                are numbered from 0 to
+                <code class="function">INKMimeHdrFieldValuesCount</code>
+                (<code class="code"><em class="replaceable"><code>bufp, hdr, field</code></em></code>) -
+                1. If <code class="code"><em class="replaceable"><code>idx</code></em></code> does not lie
+                within that range, INKMimeHdrFieldValueIntGet returns (int) 0.
+                All values are stored as strings within the MIME field.
+                <code class="function">INKMimeHdrFieldValueIntGet</code> parses the
+                string <code class="code"><em class="replaceable"><code>value</code></em></code> to return
+                an integer.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>The integer value from the specified MIME field.</p>
+<p><code class="code">INK_SUCCESS</code> if the API is called
+                successfully.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs while calling
+                the API or if an argument is invalid.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldValueIntInsert"></a>INKMimeHdrFieldValueIntInsert</h4></div></div></div>
+<p>Inserts an integer value into a MIME field.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldValueIntInsert
+                (INKMBuffer <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr_loc</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>, int
+                <em class="replaceable"><code>value</code></em>, int
+                <em class="replaceable"><code>idx</code></em>) </code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Inserts the integer
+                <code class="code"><em class="replaceable"><code>value</code></em></code> into the MIME
+                field located at <code class="code"><em class="replaceable"><code>field</code></em></code>
+                within the marshal buffer
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code>. The
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> parameter
+                specifies where the inserted value should be put with respect
+                to the other values already in the MIME field. If
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> is 0 then the
+                value is prepended to the list of values in the field.
+                Increasing values of
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> places the value
+                further down the list of values. If
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> is -1 then the
+                <code class="code"><em class="replaceable"><code>value</code></em></code> is appended to
+                the list of values. Normal usage is to specify -1 for
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> so that the value
+                is appended to the list of values. All values are stored as
+                strings within the MIME field.
+                <code class="function">INKMimeHdrFieldValueIntInsert</code> simply
+                formats the integer into a string and then calls
+                <code class="function">INKMimeHdrFieldValueInsert</code>.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if the API is called
+                successfully.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs while calling
+                the API or if an argument is invalid.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldValueIntSet"></a>INKMimeHdrFieldValueIntSet</h4></div></div></div>
+<p>Sets an integer value within a MIME field.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldValueIntSet
+                (INKMBuffer <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr_loc</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>, int
+                <em class="replaceable"><code>idx</code></em>, int
+                <em class="replaceable"><code>value</code></em>) </code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Sets a value in the MIME field located at
+                <code class="code"><em class="replaceable"><code>field</code></em></code> within the
+                marshal buffer <code class="code"><em class="replaceable"><code>bufp</code></em></code>.
+                The <code class="code"><em class="replaceable"><code>idx</code></em></code> parameter
+                specifies which value in the field to change. If
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> is not between 0
+                and INKMimeHdrFieldValuesCount (<code class="code"><em class="replaceable"><code>bufp, hdr,
+                field</code></em></code>) - 1 then no operation will be
+                performed. All values are stored as strings within the MIME
+                field. <code class="function">INKMimeHdrFieldValueIntSet</code> simply
+                formats the integer into a string and then calls
+                <code class="function">INKMimeHdrFieldValueSet</code>.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="function">INK_SUCCESS</code> if the API is called
+                successfully.</p>
+<p><code class="function">INK_ERROR</code> if an error occurs while
+                calling the API or if an argument is invalid.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldValueStringGet"></a>INKMimeHdrFieldValueStringGet</h4></div></div></div>
+<p>Gets a specified field value from a MIME header.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldValueStringGet
+                (INKMBuffer <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr_loc</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>, int
+                <em class="replaceable"><code>idx</code></em>, const char
+                **<em class="replaceable"><code>value</code></em>, int
+                *<em class="replaceable"><code>value_len</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Retrieves a string
+                <code class="code"><em class="replaceable"><code>value</code></em></code> from within the
+                MIME <code class="code"><em class="replaceable"><code>field</code></em></code> within the
+                marshal buffer <code class="code"><em class="replaceable"><code>bufp</code></em></code>.
+                The <code class="code"><em class="replaceable"><code>idx</code></em></code> parameter
+                specifies which field to retrieve. The fields are numbered
+                from 0 to <code class="function">INKMimeHdrFieldValuesCount</code>
+                (<code class="code"><em class="replaceable"><code>bufp, hdr, field</code></em></code>) -
+                1. If <code class="code"><em class="replaceable"><code>idx</code></em></code> does not lie
+                within that range then <code class="code">NULL</code> will be returned. The
+                length of the returned string is placed in the
+                <code class="code"><em class="replaceable"><code>value_len</code></em></code> argument. If
+                <code class="code"><em class="replaceable"><code>value_len</code></em></code> is
+                <code class="code">NULL</code> then no attempt is made to dereference
+                it.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>A pointer to the specified field
+                <code class="code"><em class="replaceable"><code>value</code></em></code> in the MIME
+                header. Release with a call to
+                <code class="function">INKHandleStringRelease</code>.</p>
+<p><code class="code">INK_SUCCESS</code> if the API is called
+                successfully.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs while calling
+                the API or if an argument is invalid.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldValueStringInsert"></a>INKMimeHdrFieldValueStringInsert</h4></div></div></div>
+<p>Inserts a value into a specified location within a MIME
+          field.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldValueStringInsert
+                (INKMBuffer <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr_loc</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>, const char
+                *<em class="replaceable"><code>value</code></em>, int
+                <em class="replaceable"><code>len</code></em>, int
+                <em class="replaceable"><code>idx</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Inserts the string
+                <code class="code"><em class="replaceable"><code>value</code></em></code> into the MIME
+                field located at <code class="code"><em class="replaceable"><code>field</code></em></code>
+                within the marshal buffer
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code>. If
+                <code class="code"><em class="replaceable"><code>len</code></em></code> is -1 then
+                <code class="function">INKMimeHdrFieldValueStringInsert</code> assumes
+                that <code class="code"><em class="replaceable"><code>value</code></em></code> is
+                null-terminated. Otherwise, the length of the string
+                <code class="code"><em class="replaceable"><code>value</code></em></code> is taken to be
+                <code class="code"><em class="replaceable"><code>length</code></em></code>.
+                <code class="function">INKMimeHdrFieldValueStringInsert</code> copies
+                the string to within
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code>, so it is okay to
+                modify or delete <code class="code"><em class="replaceable"><code>value</code></em></code>
+                after calling
+                <code class="function">INKMimeHdrFieldValueStringSet</code>. The
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> parameter
+                specifies where the inserted value should be put with respect
+                to the other values already in the MIME field. If
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> is 0 then
+                <code class="function">INKMimeHdrFieldValueStringInsert</code> prepends
+                the value to the list of values in the field. Increasing
+                values of <code class="code"><em class="replaceable"><code>idx</code></em></code> place
+                the value further down the list of values. If
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> is -1,
+                <code class="function">INKMimeHdrFieldValueStringInsert</code> appends
+                the value to the list of values. Normal usage is to specify -1
+                for <code class="code">idx</code> so that the value is appended to the list
+                of values.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if the API is called
+                successfully.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs while calling
+                the API or if an argument is invalid.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldValueStringSet"></a>INKMimeHdrFieldValueStringSet</h4></div></div></div>
+<p>Sets a value in a MIME field.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldValueStringSet
+                (INKMBuffer <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr_loc</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>, int
+                <em class="replaceable"><code>idx</code></em>, const char
+                *<em class="replaceable"><code>value</code></em>, int
+                <em class="replaceable"><code>len</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd>
+<p>Sets a value in the MIME field located at
+                <code class="code"><em class="replaceable"><code>field</code></em></code> within the
+                marshal buffer <code class="code"><em class="replaceable"><code>bufp</code></em></code> to
+                the string <code class="code"><em class="replaceable"><code>value</code></em></code>. If
+                <code class="code"><em class="replaceable"><code>len</code></em></code> is -1 then it is
+                assumed that <code class="code"><em class="replaceable"><code>value</code></em></code> is
+                null-terminated. Otherwise, the length of the string
+                <code class="code"><em class="replaceable"><code>value</code></em></code> is taken to be
+                <code class="code"><em class="replaceable"><code>len</code></em></code>. The string is
+                copied to within <code class="code"><em class="replaceable"><code>bufp</code></em></code>,
+                so it is okay to modify or delete
+                <code class="code"><em class="replaceable"><code>value</code></em></code> after calling
+                <code class="function">INKMimeHdrFieldValueStringSet</code>. The
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> parameter
+                specifies which value in the field to change. If
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> is not between 0
+                and <code class="function">INKMimeHdrFieldValuesCount</code>
+                (<code class="code"><em class="replaceable"><code>bufp, hdr, field</code></em></code>) - 1
+                then no operation will be performed. If
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> is set to -1 then
+                all the mime field values are returned. For instance, suppose
+                the mime field is <code class="code">MyField: value1</code>,<code class="code">
+                value2</code>, <code class="code">value3</code>. If
+                <code class="function">INKMimeHdrFieldGet</code> is called with
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> set to -1, it will
+                return a pointer to “<code class="code">value1</code>, <code class="code">value2</code>,
+                <code class="code">value3</code>”.</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/docbook/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>As for other mime header manipulation APIs, the string
+                  is not null-terminated.</p></td></tr>
+</table></div>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldValueUintGet"></a>INKMimeHdrFieldValueUintGet</h4></div></div></div>
+<p>Gets unsigned integer field value in a MIME field.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldValueUintGet
+                (INKMBuffer <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr_loc</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>, int
+                <em class="replaceable"><code>idx</code></em>, unsigned int
+                *<em class="replaceable"><code>value</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd>
+<p>Retrieves an unsigned integer
+                <code class="code"><em class="replaceable"><code>value</code></em></code> from within the
+                MIME field located at
+                <code class="code"><em class="replaceable"><code>field</code></em></code> within the
+                marshal buffer <code class="code"><em class="replaceable"><code>bufp</code></em></code>.
+                The <code class="code"><em class="replaceable"><code>idx</code></em></code> parameter
+                specifies which field to retrieve. The fields are numbered
+                from 0 to <code class="function">INKMimeHdrFieldValuesCount</code>
+                (<code class="code"><em class="replaceable"><code>bufp, hdr, field</code></em></code>) -
+                1. If <code class="code"><em class="replaceable"><code>idx</code></em></code> does not lie
+                within that range,
+                <code class="function">INKMimeHdrFieldValueGetUnit</code> returns
+                (unsigned int) 0. All values are stored as strings within the
+                MIME field. <code class="function">INKMimeHdrFieldValueUintGet</code>
+                parses the string
+                <code class="code"><em class="replaceable"><code>value</code></em></code> to return an
+                unsigned integer.</p>
+<p>It is not possible to determine if
+                <code class="function">INKMimeHdrFieldValueUintGet</code> is returning
+                an unsigned int value in error. If you need to check for
+                errors in MIME header field values, you can fetch the header
+                as a string and examine it. Here is some sample code that
+                fetches MIME headers from marshal buffers into strings using
+                <code class="function">INKMimeHdrFieldValueGet</code> instead. The
+                context of this example is that the plugin is processing an
+                HTTP transaction and has access to a transaction.</p>
+</dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>The unsigned integer <code class="code">value</code> from the
+                specified MIME field.</p>
+<p><code class="code">INK_SUCCESS</code> if the API is called
+                successfully.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs while calling
+                the API or if an argument is invalid.</p>
+</dd>
+<dt><span class="term">Example</span></dt>
+<dd><pre class="programlisting">static void
+handle_string (INKHttpTxn txnp, INKCont contp) {
+    INKMBuffer bufp;
+    INKMLoc hdr_loc;
+    INKMLoc field;
+    int len;
+    char* output_string;
+    const char* value;
+/* Fetch  the transaction's client request header into a marshal buffer. */
+    if (!INKHttpTxnClientReqGet (txnp, &amp;bufp, &amp;hdr_loc)) { 
+        INKError ("couldn't retrieve client request header\n"); 
+        goto done;
+    }
+    field=INKMimeHdrFieldFind(bufp, hdr_loc, 
+                                  INK_MIME_FIELD_CONTENT_LENGTH);
+         
+    if (!field) { 
+        INKError ("Content-Length field not found.\n"); 
+        INKHandleMLocRelease (bufp, INK_NULL_MLOC, hdr_loc);
+        goto done;
+    } 
+    /* Obtain the value of the content length (normally an 
+     * unsigned int) as a string. */
+    value=INKMimeHdrFieldValueGet (bufp, hdr_loc, field, 0, &amp;len); 
+ 
+    if ((!value) || (len&lt;=0))}
+        INKHandleMLocRelease (bufp, hdr_loc, field);
+        INKHandleMLocRelease (bufp, INK_NULL_MLOC, hdr_loc);
+        goto done;
+    }
+    /* Allocate the string with an extra byte for the string terminator. */
+    output_string = (char*) INKmalloc(len + 1);
+         
+    /* Copy the value. */
+    strncpy (output_string, value, len);
+
+    /* Terminate the string */
+    output_string[len] = '\0';
+/* Now that you have the MIME fields as a string, you can do 
+       whatever you want to do with it, for example, print it, or 
+       make sure it's an unsigned integer: either by using the
+       atol C function or by scanning each ASCII character.  */ 
+    INKDebug("my-plugin", "%s", output_string);
+     
+    /* Release handles and allocated memory. */    
+    INKHandleStringRelease (bufp, field, value);</pre></dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldValueUIntInsert"></a>INKMimeHdrFieldValueUIntInsert</h4></div></div></div>
+<p>Inserts an unsigned integer value into a MIME field.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldValueUIntInsert
+                (INKMBuffer <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr_loc</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>, unsigned int
+                <em class="replaceable"><code>value</code></em>, int
+                <em class="replaceable"><code>idx</code></em>) </code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Inserts the unsigned integer
+                <code class="code"><em class="replaceable"><code>value</code></em></code> into the MIME
+                field located at <code class="code"><em class="replaceable"><code>field</code></em></code>
+                within the marshal buffer
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code>. The
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> parameter
+                specifies where the inserted value should be put with respect
+                to the other values already in the MIME field. If
+                <code class="code">idx</code> is 0 then the value will be prepended to the
+                list of values in the field. Increasing values of
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> will place the
+                value further down the list of values. If
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> is -1 then the
+                value will be appended to the list of values. Normal usage is
+                to specify -1 for <code class="code"><em class="replaceable"><code>idx</code></em></code>
+                so that the value will be appended to the list of values. All
+                values are stored as strings within the MIME field.
+                <code class="function">INKMimeHdrFieldValueUIntInsert</code> simply
+                formats the unsigned integer into a string and then calls
+                <code class="function">INKMimeHdrFieldValueStringInsert</code>.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if the API is called
+                successfully.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs while calling
+                the API or if an argument is invalid.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldValueUintSet"></a>INKMimeHdrFieldValueUintSet</h4></div></div></div>
+<p>Sets a value in a MIME field to a specified unsigned
+          integer.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldValueUintSet
+                (INKMBuffer <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr_loc</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>, int
+                <em class="replaceable"><code>idx</code></em>, unsigned int
+                <em class="replaceable"><code>value</code></em>) </code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Sets a value in the MIME field located at
+                <code class="code"><em class="replaceable"><code>field</code></em></code> within the
+                marshal buffer <code class="code"><em class="replaceable"><code>bufp</code></em></code> to
+                the unsigned integer
+                <code class="code"><em class="replaceable"><code>value</code></em></code>. The
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> parameter
+                specifies which value in the field to change. If
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> is not between 0
+                and <code class="function">INKMimeHdrFieldValuesCount</code>
+                (<code class="code"><em class="replaceable"><code>bufp, hdr, field</code></em></code>) - 1
+                then no operation will be performed. All values are stored as
+                strings within the MIME field.
+                <code class="function">INKMimeHdrFieldValueUintSet</code> simply
+                formats the unsigned integer into a string and then calls
+                <code class="function">INKMimeHdrFieldValueStringSet</code>.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if the API is called
+                successfully.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs while calling
+                the API or if an argument is invalid.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldValuesClear"></a>INKMimeHdrFieldValuesClear</h4></div></div></div>
+<p>Clears all values in a MIME field.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldValuesClear
+                (INKMBuffer <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd>
+<p>Removes and destroys all of the values within the MIME
+                field located at <code class="code"><em class="replaceable"><code>field</code></em></code>
+                within the marshal buffer
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code>.</p>
+<p>Make sure you release any corresponding
+                <code class="function">INKMLoc</code> or string handles using
+                <code class="function">INKHandleMLocRelease</code> or
+                <code class="function">INKHandleStringRelease</code>.</p>
+</dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if successful.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldValuesCount"></a>INKMimeHdrFieldValuesCount</h4></div></div></div>
+<p>Counts the values in a MIME field.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">int INKMimeHdrFieldValuesCount (INKMBuffer bufp,
+                INKMLoc hdr, INKMLoc field)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Retrieves a count of the number of values in the MIME
+                field located at <code class="code"><em class="replaceable"><code>field</code></em></code>
+                within the marshal buffer
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code>.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>The number of values in the specified MIME field.</p>
+<p><code class="code">INK_ERROR</code> if error.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrClone"></a>INKMimeHdrClone</h4></div></div></div>
+<p>Copies a MIME header and returns the location of the
+          copy.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKMLoc INKMimeHdrClone(INKMBuffer
+                <em class="replaceable"><code>dest_bufp</code></em>, INKMBuffer
+                <em class="replaceable"><code>src_bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>src_hdr_loc</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Copies the contents of the MIME header located at
+                <code class="code"><em class="replaceable"><code>src_hdr_loc</code></em></code> within the
+                marshal buffer
+                <code class="code"><em class="replaceable"><code>src_bufp</code></em></code> to the
+                marshal buffer
+                <code class="code"><em class="replaceable"><code>dest_bufp</code></em></code>.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>The <code class="function">INKMLoc</code> location of the copied
+                header. Release the returned handle with a call to
+                <code class="function">INKHandleMLocRelease</code>.</p>
+<p><code class="code">INK_ERROR_PTR</code> if error.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrCopy"></a>INKMimeHdrCopy</h4></div></div></div>
+<p>Copies a MIME header to a specified MIME header
+          location.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrCopy (INKMBuffer
+                <em class="replaceable"><code>dest_bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>dest_hdr_loc</code></em>, INKMBuffer
+                <em class="replaceable"><code>src_bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>src_hdr_loc</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd>
+<p>Copies the contents of the MIME header located at
+                <code class="code"><em class="replaceable"><code>src_hdr_loc</code></em></code> within the
+                marshal buffer
+                <code class="code"><em class="replaceable"><code>src_bufp</code></em></code> to the MIME
+                header located at
+                <code class="code"><em class="replaceable"><code>dest_hdr_loc</code></em></code> within
+                the marshal buffer
+                <code class="code"><em class="replaceable"><code>dest_bufp</code></em></code>.
+                <code class="function">INKMimeHdrCopy</code> works correctly even if
+                <code class="code"><em class="replaceable"><code>src_bufp</code></em></code> and
+                <code class="code"><em class="replaceable"><code>dest_bufp</code></em></code> point to
+                different marshal buffers.</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/docbook/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>Make sure that the destination marshal buffer and
+                  destination MIME header location have been created before
+                  copying. See the example below, illustrating copying a
+                  response MIME header.</p></td></tr>
+</table></div>
+</dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if successful.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs.</p>
+</dd>
+<dt><span class="term">Example</span></dt>
+<dd><pre class="programlisting">static void
+copyResponseMimeHdr (INKCont pCont, INKHttpTxn pTxn) 
+{
+   INKMBuffer respHdrBuf, tmpBuf;
+   INKMLoc respHttpHdrLoc, tmpMimeHdrLoc; 
+
+   if ( !INKHttpTxnClientRespGet (pTxn, &amp;respHdrBuf, &amp;respHttpHdrLoc) ) { 
+      INKError ("couldn't retrieve client response header\n"); 
+      INKHandleMLocRelease (respHdrBuf, INK_NULL_MLOC, 
+         respHttpHdrLoc); 
+      goto done;
+   }
+   tmpBuf = INKMBufferCreate ();
+   tmpMimeHdrLoc = INKMimeHdrCreate(tmpBuf); 
+
+   INKMimeHdrCopy(tmpBuf, tmpMimeHdrLoc, respHdrBuf, respHttpHdrLoc); 
+
+   INKHandleMLocRelease (tmpBuf, INK_NULL_MLOC, tmpMimeHdrLoc); 
+   INKHandleMLocRelease (respHdrBuf, INK_NULL_MLOC, respHttpHdrLoc); 
+
+   INKMBufferDestroy(tmpBuf);
+
+   done:
+   INKHttpTxnReenable(pTxn, INK_EVENT_HTTP_CONTINUE); }</pre></dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.0</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrCreate"></a>INKMimeHdrCreate</h4></div></div></div>
+<p>Creates a MIME header.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKMLoc INKMimeHdrCreate (INKMBuffer
+                <em class="replaceable"><code>bufp</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Creates a new MIME header within the marshal buffer
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code>.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>Location of the newly created MIME header. Release with
+                a call to <code class="function">INKHandleMLocRelease</code>.</p>
+<p><code class="code">INK_ERROR_PTR</code> if error.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.0</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrDestroy"></a>INKMimeHdrDestroy</h4></div></div></div>
+<p>Destroys a MIME header.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrDestroy (INKMBuffer
+                <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr_loc</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd>
+<p>Destroys the MIME header located at
+                <code class="code"><em class="replaceable"><code>hdr_loc</code></em></code> within the
+                marshal buffer
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code>.</p>
+<p>Release the <code class="function">INKMLoc</code> handle
+                <code class="code"><em class="replaceable"><code>hdr_loc</code></em></code> with a call to
+                <code class="function">INKHandleMLocRelease</code>.</p>
+</dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if successful.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.0</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldFind"></a>INKMimeHdrFieldFind</h4></div></div></div>
+<p>Finds fields in a MIME header.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKMLoc INKMimeHdrFieldFind (INKMBuffer
+                <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>loc</code></em>, const char*
+                <em class="replaceable"><code>name</code></em>, int
+                <em class="replaceable"><code>length</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Retrieves a MIME field from within the MIME header
+                located at <code class="code"><em class="replaceable"><code>loc</code></em></code> within
+                the marshal buffer
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code>. The
+                <code class="code"><em class="replaceable"><code>name</code></em></code> and
+                <code class="code"><em class="replaceable"><code>length</code></em></code> parameters
+                specify which field to retrieve. For each MIME field in the
+                MIME header, a case insensitive string comparison is done
+                between the field name and
+                <code class="code"><em class="replaceable"><code>name</code></em></code>. The
+                <code class="code"><em class="replaceable"><code>length</code></em></code> parameter
+                specifies how long the string pointed to by
+                <code class="code"><em class="replaceable"><code>name</code></em></code> is. If
+                <code class="code"><em class="replaceable"><code>length</code></em></code> is -1, then
+                <code class="code"><em class="replaceable"><code>name</code></em></code> is assumed to be
+                null-terminated. If the requested field cannot be found then 0
+                is returned.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>The location of the retrieved MIME header. Release with
+                a call to <code class="function">INKHandleMLocRelease</code>.</p>
+<p><code class="code">INK_ERROR_PTR</code> if error.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.0</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldGet"></a>INKMimeHdrFieldGet</h4></div></div></div>
+<p>Gets a field in a MIME header.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKMLoc INKMimeHdrFieldGet (INKMBuffer
+                <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr_loc</code></em>, int
+                <em class="replaceable"><code>idx</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Retrieves a MIME field from within the MIME header
+                located at <code class="code"><em class="replaceable"><code>hdr_loc</code></em></code>
+                within the marshal buffer
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code>. The
+                <code class="code"><em class="replaceable"><code>idx</code></em></code> parameter
+                specifies which field to retrieve. The fields are numbered
+                from 0 to <code class="function">INKMimeHdrFieldsCount</code>
+                (<code class="code"><em class="replaceable"><code>bufp, hdr_loc</code></em></code>) - 1.
+                If <code class="code"><em class="replaceable"><code>idx</code></em></code> does not lie
+                within that range then 0 will be returned.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>The location of the MIME field from within the MIME
+                header. Release with a call to
+                <code class="function">INKHandleMLocRelease</code>.</p>
+<p><code class="code">INK_ERROR_PTR</code> if error.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.0</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldRemove"></a>INKMimeHdrFieldRemove</h4></div></div></div>
+<p>Removes a field in a MIME header.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldRemove (INKMBuffer
+                <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr_loc</code></em>, INKMLoc
+                <em class="replaceable"><code>field</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd>
+<p>Removes the MIME header located at
+                <code class="code"><em class="replaceable"><code>field</code></em></code> within the
+                marshal buffer <code class="code"><em class="replaceable"><code>bufp</code></em></code>
+                from the MIME header located at
+                <code class="code"><em class="replaceable"><code>hdr_loc</code></em></code> within the
+                marshal buffer <code class="code"><em class="replaceable"><code>bufp</code></em></code>.
+                If the specified field cannot be found in the list of fields
+                associated with the header then nothing is done.</p>
+<p>After the call to
+                <code class="function">INKMimeHdrFieldDestroy</code>, you must release
+                the <code class="function">INKMLoc</code> handle field with a call to
+                <code class="function">INKHandleMLocRelease</code>.</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/docbook/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>Removing the MIME field doesn't destroy the field, it
+                  only detaches it, hiding it from the printed output.The
+                  field can be reattached by calling
+                  <code class="function">INKMimeHdrFieldAppend</code>.</p></td></tr>
+</table></div>
+</dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if successful.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.0</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKMimeHdrFieldsClear"></a>INKMimeHdrFieldsClear</h4></div></div></div>
+<p>Clears all the fields of a MIME header.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKMimeHdrFieldsClear (INKMBuffer
+                <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>hdr_loc</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd>
+<p>Removes and destroys all the MIME fields within the MIME
+                header located at
+                <code class="code"><em class="replaceable"><code>hdr_loc</code></em></code> within the
+                marshal buffer
+                <code class="code"><em class="replaceable"><code>bufp</code></em></code>.</p>
+<p>Make sure you release any corresponding
+                <code class="function">INKMLoc</code> or string handles using
+                <code class="function">INKHandleMLocRelease</code> or
+                <code class="function">INKHandleStringRelease</code>.</p>
+</dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if successful.</p>

[... 193 lines stripped ...]


Mime
View raw message