You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by bu...@apache.org on 2013/12/24 19:32:22 UTC

svn commit: r891679 [18/24] - in /websites/staging/trafficserver/trunk: cgi-bin/ content/ content/docs/ content/docs/trunk/ content/docs/trunk/admin/ content/docs/trunk/admin/cluster-howto/ content/docs/trunk/admin/configuration-files/ content/docs/tru...

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/LoggingAPI.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/LoggingAPI.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/LoggingAPI.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Guide to the Logging API</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="GenerateLicenseKey.html">Prev</a> - Generating a License Key</div>
+<div class="navnext">Chapter 17. Adding Statistics - <a accesskey="n" href="AddingStatistics.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="LoggingAPI"></a>Guide to the Logging API</h2></div></div></div>
+<p>The logging API enables your plugin to log entries in a custom text log
+      file that you create with the call
+      <code class="function">INKTextLogObjectCreate</code>. This log file is part of
+      Traffic Server's logging system; by default, it is stored in
+      the logging directory. Once you have created the log object, you can set
+      log properties.</p>
+<p>The logging API enables you to:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+  <p>Establish a custom text log for your plugin: see <a href="LoggingFunctions.html#INKTextLogObjectCreate" title="INKTextLogObjectCreate">INKTextLogObjectCreate</a></p></li>
+<li>
+  <p>Set the log header for your custom text log: see <a href="INKTextLogObjectHeaderSet.html" title="INKTextLogObjectHeaderSet">INKTextLogObjectHeaderSet</a></p></li>
+<li>
+  <p>Enable or disable rolling your custom text log: see <a href="INKTextLogObjectRollingEnabledSet.html" title="INKTextLogObjectRollingEnabledSet">INKTextLogObjectRollingEnabledSet</a></p></li>
+<li>
+  <p>Set the rolling interval (in seconds) for your custom text log: see <a href="INKTextLogObjectRollingIntervalSecSet.html" title="INKTextLogObjectRollingIntervalSecSet">INKTextLogObjectRollingIntervalSecSet</a></p></li>
+<li>
+  <p>Set the rolling offset for your custom text log: see <a href="INKTextLogObjectRollingOffsetHrSet.html" title="INKTextLogObjectRollingOffsetHrSet">INKTextLogObjectRollingOffsetHrSet</a></p></li>
+<li>
+  <p>Write text entries to the custom text log: see <a href="INKTextLogObjectWrite.html" title="INKTextLogObjectWrite">INKTextLogObjectWrite</a></p></li>
+<li>
+  <p>Flush the contents of the custom text log's write buffer to
+          disk: see <a href="INKTextLogObjectFlush.html" title="INKTextLogObjectFlush">INKTextLogObjectFlush</a></p></li>
+<li>
+  <p>Destroy custom text logs when you are done with them: see
+          <a href="INKTextLogObjectDestroy.html" title="INKTextLogObjectDestroy">INKTextLogObjectDestroy</a></p></li>
+</ul></div>
+<p>The steps below show   how the logging API is used in the
+      <code class="filename">blacklist-1.c</code> sample plugin. For the complete source code, see the <a href="App_SampleSourceCode.html" title="Appendix A. Sample Source Code"><i>Sample Source Code</i></a> appendix.</p>
+<div class="orderedlist"><ol type="1">
+<li>
+<p>A new log file is defined as a global variable.</p>
+<pre class="programlisting">static INKTextLogObject log;</pre>
+</li>
+<li>
+<p>In <code class="function">INKPluginInit</code>, a new log object is
+          allocated:</p>
+<pre class="programlisting">log = INKTextLogObjectCreate("blacklist", INK_LOG_MODE_ADD_TIMESTAMP,
+    NULL, &amp;error);</pre>
+<p>The new log is named <code class="filename">blacklist.log</code>. Each
+          entry written to the log will have a timestamp. The
+          <code class="code">NULL</code> argument specifies that the new log does not have
+          a log header. The error argument stores the result of the log
+          creation; if the log is created successfully, then an error will be equal to
+          <code class="code">INK_LOG_ERROR_NO_ERROR</code>.</p>
+</li>
+<li>
+<p>After creating the log, the plugin makes sure that the log was
+          created successfully:</p>
+<pre class="programlisting">if (!log) {
+    printf("Blacklist plugin: error %d while creating log\n", error);
+}</pre>
+</li>
+<li>
+<p>The <code class="filename">blacklist-1</code> plugin matches the host
+          portion of the URL (in each client request) with a list of blacklisted
+          sites (stored in the array <code>sites[ </code>]):</p>
+<pre class="programlisting">for (i = 0; i &lt; nsites; i++) {
+    if (strncmp (host, sites[i], host_length) == 0) {</pre>
+<p>If the host matches one of the blacklisted sites (such as <code>sites[i]</code>), then the plugin writes a blacklist entry to <code>blacklist.log</code>:</p>
+<pre class="programlisting">     if (log) {
+       INKTextLogObjectWrite(log, "blacklisting site: %s", sites[i]);</pre>
+<p>The format of the log entry is as follows:</p>
+<p><code class="varname">&lt;timestamp&gt;</code><code class="code"> blacklisting site:
+          </code><code class="varname">sites[i]</code></p>
+<p>The log is not flushed or destroyed in the <code>blacklist-1</code> plugin - it lives for the life of the plugin.</p>
+</li>
+</ol></div>
+</div>
+</body>
+</html>

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/LoggingAPI.html
------------------------------------------------------------------------------
    svn:executable = *

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/LoggingFunctions.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/LoggingFunctions.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/LoggingFunctions.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,115 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Logging Functions</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="CoupledStatsFunctions.html">Prev</a> - Coupled Statistics Functions</div>
+<div class="navnext">INKTextLogObjectDestroy - <a accesskey="n" href="INKTextLogObjectDestroy.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="LoggingFunctions"></a>Logging Functions</h2></div></div></div>
+
+
+<ul><b>
+<li><a href="LoggingFunctions.html#INKTextLogObjectCreate">INKTextLogObjectCreate</a></li>
+<li><a href="INKTextLogObjectDestroy.html">INKTextLogObjectDestroy</a></li>
+<li><a href="INKTextLogObjectFlush.html">INKTextLogObjectFlush</a> </li>
+<li><a href="INKTextLogObjectHeaderSet.html">INKTextLogObjectHeaderSet</a></li>
+<li><a href="INKTextLogObjectRollingEnabledSet.html">INKTextLogObjectRollingEnabledSet</a></li>
+<li><a href="INKTextLogObjectRollingIntervalSecSet.html">INKTextLogObjectRollingIntervalSecSet</a></li>
+<li><a href="INKTextLogObjectRollingOffsetHrSet.html">INKTextLogObjectRollingOffsetHrSet</a></li>
+<li><a href="INKTextLogObjectWrite.html">INKTextLogObjectWrite</a></li>
+</b>
+</ul>
+
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="INKTextLogObjectCreate"></a>INKTextLogObjectCreate</h3></div></div></div>
+<p>Creates a new custom log for your plugin.</p>
+<div class="variablelist"><dl>
+<dt><span class="term"><b>Prototype</b></span></dt>
+<dd><p><code class="code">INKReturnCode INKTextLogObjectCreate (const char
+              *<em class="replaceable"><code>filename</code></em>, int
+              <em class="replaceable"><code>mode</code></em>, INKTextLogObject
+              *<em class="replaceable"><code>new_logobj</code></em>)</code></p></dd>
+<dt><span class="term"><b>Arguments</b></span></dt>
+<dd>
+<p><code class="code">const char
+              *<em class="replaceable"><code>filename </code></em></code> is the name of the
+              new log file   created in the <code>log</code> directory.
+              You can specify a path to a subdirectory within the <code>log</code> directory (e.g. <code class="code">subdir/filename</code>), but make sure you
+              create the subdirectory first. If you do not specify a file name
+              extension, then the extension <code class="filename">.log</code> is
+              automatically added.</p>
+<p>The logs you create are treated like ordinary logs - that is, they
+              are rolled if log rolling is enabled. Log collation, however, is not
+              supported.</p>
+<p><code class="code">int <em class="replaceable"><code>mode </code></em></code> can be  <code>0</code> and/or the following:</p>
+<pre class="programlisting">INK_LOG_MODE_ADD_TIMESTAMP</pre>
+<p>Whenever the plugin makes a log entry using
+              <code>INKTextLogObjectWrite</code> (see below), it prepends the entry with a
+              timestamp.</p>
+<pre class="programlisting">INK_LOG_MODE_DO_NOT_RENAME</pre>
+<p>This means that if there is a filename conflict, then Traffic
+              Server should not attempt to rename the custom log. As a 
+              consequence of the name conflict, the custom log is not
+              created.</p>
+<p><code>INKTextLogObject *<i class="replaceable">new_logobj </i></code> is set to the newly-created
+              log object.</p>
+</dd>
+<dt><span class="term"><b>Description</b></span></dt>
+<dd>
+<p>Creates a custom log for your plugin. Once the log object is
+              created, use the  APIs below  to set properties.</p>
+<div class="itemizedlist"><ul type="disc">
+<li><a href="INKTextLogObjectRollingEnabledSet.html">INKTextLogObjectRollingEnabledSet</a></li>
+<li><a href="INKTextLogObjectRollingIntervalSecSet.html">INKTextLogObjectRollingIntervalSecSet</a></li>
+<li><a href="INKTextLogObjectRollingOffsetHrSet.html">INKTextLogObjectRollingOffsetHrSet</a></li>
+</ul>
+</div>
+
+<p>If the value of
+              <code class="code"><em class="replaceable"><code> mode </code></em></code> is not  valid, then the behavior of the API cannot be predicted.</p>
+</dd>
+
+<dt><span class="term"><b>Example</b></span></dt>
+<dd>
+<p>Suppose  you call:</p>
+<pre class="programlisting">INKTextLogObjectCreate ("squid" , mode, NULL, &amp;log);</pre>
+<p>If <code class="code"><em class="replaceable"><code> mode </code></em></code> is
+              <code class="code">INK_LOG_MODE_DO_NOT_RENAME</code>, then you will <u>not</u> get a new
+              log if <code>squid.log</code> already exists  (you'll get an error instead).</p>
+<p>If <code class="code"><em class="replaceable"><code> mode </code></em></code> is not
+              <code class="code">INK_LOG_MODE_DO_NOT_RENAME</code>, then Traffic Server tries to
+              rename the log to a new name (it will try <code>squid_1.log</code>).</p>
+<p>If a log object is created <u>with</u> <code class="code">INK_LOG_MODE_DO_NOT_RENAME </code> <code class="replaceable"> mode </code> and a log with the
+              same file name already exists, then the signature (i.e., the type of log file)
+              is compared. If the signatures of the log files match, then the pre-existing
+              file is opened and logging is resumed at the end of the file. If
+              the signatures do not match, then an error is returned.</p>
+<p>If a log object is created <u>without</u> <code class="code">INK_LOG_MODE_DO_NOT_RENAME </code> <code class="replaceable"> mode </code> and a log with the
+              same file name already exists, then the signatures are compared. If the signatures of the log files match, then the 
+              pre-existing file is opened and logging is resumed at the end of
+              the file. If the signatures do not match, then another file with <code class="filename">filename_1.log</code> is tried and so on.</p>
+<p><b><u>Note</u>:</b> The log file signature indicates    log file type. Log files can
+              be structured (fixed format) log files or unstructured (free format)
+              log files. All free format log files have the same signature,
+              while fixed format log files have the same structured (fixed) format as the signature.</p>
+</dd>
+<dt><span class="term"><b>Returns</b></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>
+</dl></div>
+</div>
+</div>
+</body>
+</html>

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/LoggingFunctions.html
------------------------------------------------------------------------------
    svn:executable = *

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/MIMEFldsBelongAssocMIMEHdr.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/MIMEFldsBelongAssocMIMEHdr.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/MIMEFldsBelongAssocMIMEHdr.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,51 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>MIME Fields Always Belong to an Associated MIME
+        Header</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="DuplicateMIMEFlds.html">Prev</a> - Duplicate MIME Fields Are Not Coalesced</div>
+<div class="navnext">Release Marshal Buffer Handles - <a accesskey="n" href="RlsMarshalBufHandles.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="MIMEFldsBelongAssocMIMEHdr"></a>MIME Fields Always Belong to an Associated MIME
+        Header<a class="indexterm" name="id381034"></a></h3></div></div></div>
+<p>When using Traffic Server, you cannot create a
+        new MIME field without an associated MIME header or HTTP header; MIME
+        fields are always seen as part of a MIME header or HTTP
+        header.<a class="indexterm" name="id381045"></a></p>
+<p>To use a MIME field, you must specify the MIME header or HTTP
+        header to which it belongs - this is called the field's <b>parent
+        header</b>. The  <code class="function">INKMimeField*</code> functions in older
+        versions of the SDK have been deprecated, as they do not require the parent header<a class="indexterm" name="id381061"></a> as inputs. The current version of Traffic Server uses  new
+        functions, the <code class="function"><b>INKMimeHdrField*</b></code> series, which
+        require you to specify the location of the parent header along with
+        the location of the MIME field. For every deprecated
+        <code class="function">INKMimeField*</code> function, there is a new, preferred
+        <code class="function">INKMimeHdrField*</code> function. Therefore, you should use the
+        <code class="function"><b>INKMimeHdrField*</b></code> functions instead of the
+        deprecated <code class="function">INKMimeField*</code> series. Examples are provided below.</p>
+<p>Instead of:</p>
+<pre class="programlisting">INKMLoc INKMimeFieldCreate (INKMBuffer bufp)</pre>
+<p>You should use:</p>
+<pre class="programlisting">INKMLoc INKMimeHdrFieldCreate (INKMBuffer bufp, INKMLoc   hdr)</pre>
+<p>Instead of:</p>
+<pre class="programlisting">void INKMimeFieldCopyValues (INKMBuffer dest_bufp, INKMLoc dest_offset,
+   INKMBuffer src_bufp, INKMLoc src_offset)</pre>
+<p>You should use:</p>
+<pre class="programlisting">void INKMimeHdrFieldCopyValues (INKMBuffer dest_bufp, INKMLoc dest_hdr,
+   INKMLoc dest_field, INKMBuffer src_bufp, INKMLoc src_hdr, INKMLoc
+   src_field)</pre>
+<p>In the <code class="function">INKMimeHdrField*</code> function
+        prototypes, the <code class="code">INKMLoc</code> field corresponds to the
+        <code class="code">INKMLoc</code> offset used the deprecated
+        <code class="function">INKMimeField*</code> functions (see the discussion of
+        parent <code class="code">INKMLoc</code> in the following section).</p>
+</div>
+</body>
+</html>

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/MIMEFldsBelongAssocMIMEHdr.html
------------------------------------------------------------------------------
    svn:executable = *

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/MIMEHeaders.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/MIMEHeaders.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/MIMEHeaders.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,506 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>MIME Headers</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="URLs.html">Prev</a> - URLs</div>
+<div class="navnext">Chapter 11. Mutex Guide - <a accesskey="n" href="MutexGuide.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="MIMEHeaders"></a>MIME Headers</h2></div></div></div>
+<p>The Traffic Server <b class="index">MIME header functions </b> enable you to
+      retrieve and modify information about HTTP MIME fields.</p>
+<p>An HTTP request or response consists of a header, body, and
+      trailer. The <b>HTTP</b> <b>header</b><a class="indexterm" name="id383429"></a> contains  a request (or response) line and a MIME header<a class="indexterm" name="id383437"></a>. A <b>MIME</b> <b>header</b> is composed of zero or more <a class="indexterm" name="id383447"></a>MIME fields. A <b>MIME</b> <b>field</b> is composed of a field name, a
+      colon, and zero or more field values (values in a field are separated
+      by commas). </p>
+<p>In the  example below: <code>Foo</code> is the <a class="indexterm" name="id383456"></a>MIME field name, <code>bar</code> is the first <a class="indexterm" name="id383465"></a>MIME field value, and <code>car</code> is the second MIME field
+  value.</p>
+<pre class="programlisting">Foo: bar, car</pre>
+<p>The following example is an augmented <b>Backus-Naur Form</b> (BNF) for the form
+      of a <a class="indexterm" name="id383483"></a>MIME header - it specifies exactly what was described
+      above. A <b>header</b> consists of zero or more <b>fields</b> that contain  a name,
+       separating colon, and zero or more values. A <b>name</b> or <b>value</b> is simply a
+      string of tokens that is potentially zero length; a <b>token</b> is any
+      character except certain control characters and separators (such as
+      colons). For the purpose of retrieving a field, field names are not case-sensitive; therefore, the field names <code class="code">Foo</code>, <code class="code">foo</code> and <code class="code">fOO</code> are all equivalent.</p>
+<pre class="programlisting">MIME-header = *MIME-field
+MIME-field = field-name ":" #field-value
+field-name = *token
+field-value = *token
+</pre>
+<p>The MIME header data structure is a parsed version of a standard
+      Internet MIME header. The MIME header data structure is similar to the
+      URL data structure (see <a href="URLs.html" title="URLs">URLs</a>). The actual data is
+      stored in a marshal buffer; the MIME header functions operate on a
+      marshal buffer and a location (<code>INKMLoc</code>) within the buffer.</p>
+<p>After a call to <code class="function">INKMimeHdrFieldDestroy</code>,
+      <code class="function">INKMimeHdrFieldRemove</code>, or
+      <code class="function">INKUrlDestroy</code> is made, you must deallocate the
+      <code class="function">INKMLoc</code> handle with a call to
+      <code class="function">INKHandleMLocRelease</code>. You do not need to deallocate
+      a <code class="code">NULL</code> handles. For example: if you call
+      <code class="function">INKMimeHdrFieldValueStringGet</code> to get the value of
+      the content type field and the field does not exist, then it returns
+      <code class="code">INK_NULL_MLOC</code>. In such a case, you wouldn't need to
+      deallocate the handle with a call to
+      <code class="function">INKHandleMLocRelease</code>.</p>
+<p>The location (<code class="function">INKMLoc</code>) in the  <a href="MIMEHeaders.html#MimeHeaderFxns"> MIME header functions</a>  can be either an HTTP header location or a MIME header
+      location. If an HTTP header location is passed to these functions, then the
+      system locates the MIME header associated with that HTTP header and
+       executes the corresponding MIME header operations specified by the
+      functions (see the example in the description of <a href="MimeHeadersFunctions.html#INKMimeHdrCopy" title="INKMimeHdrCopy"><code class="code">INKMimeHdrCopy</code></a>).</p>
+<p><b>Note: </b>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, but this behavior came at a performance cost and
+      caused compatability issues with  older clients and servers.
+      Hence, the current version of Traffic Server does not coalesce duplicate
+      fields. Correctly-behaving plugins should check for the presence of
+      duplicate fields and iterate over the duplicate fields by using <code class="function">INKMimeHdrFieldNextDup</code>.</p>
+<p>To facilitate fast comparisons and  reduce storage size, Traffic
+      Server defines several pre-allocated field names. These field names
+      correspond to the field names  in HTTP and NNTP headers.</p>
+<div class="informaltable"><table border="1">
+<colgroup>
+<col />
+<col />
+<col />
+</colgroup>
+<tbody>
+<tr>
+<td align="center"><span class="bold"><strong>Traffic Server
+              Pre-allocated Field Names </strong></span></td>
+<td align="center"><span class="bold"><strong>HTTP and NNTP Header
+              Field Names</strong></span></td>
+<td align="center"><span class="bold"><strong>Associated String
+              Lengths</strong></span></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_ACCEPT</code></td>
+<td>"Accept"</td>
+<td><code>INK_MIME_LEN_ACCEPT</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_ACCEPT_CHARSET</code></td>
+<td>"Accept-Charset"</td>
+<td><code>INK_MIME_LEN_ACCEPT_CHARSET</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_ACCEPT_ENCODING</code></td>
+<td>"Accept-Encoding"</td>
+<td><code>INK_MIME_LEN_ACCEPT_ENCODING</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_ACCEPT_LANGUAGE</code></td>
+<td>"Accept-Language"</td>
+<td><code>INK_MIME_LEN_ACCEPT_LANGUAGE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_ACCEPT_RANGES</code></td>
+<td>"Accept-Ranges"</td>
+<td><code>INK_MIME_LEN_ACCEPT_RANGES</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_AGE</code></td>
+<td>"Age"</td>
+<td><code>INK_MIME_LEN_AGE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_ALLOW</code></td>
+<td>"Allow"</td>
+<td><code>INK_MIME_LEN_ALLOW</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_APPROVED</code></td>
+<td>"Approved"</td>
+<td><code>INK_MIME_LEN_APPROVED</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_AUTHORIZATION</code></td>
+<td>"Authorization"</td>
+<td><code>INK_MIME_LEN_AUTHORIZATION</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_BYTES</code></td>
+<td>"Bytes"</td>
+<td><code>INK_MIME_LEN_BYTES</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_CACHE_CONTROL</code></td>
+<td>"Cache-Control"</td>
+<td><code>INK_MIME_LEN_CACHE_CONTROL</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_CLIENT_IP</code></td>
+<td>"Client-ip"</td>
+<td><code>INK_MIME_LEN_CLIENT_IP</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_CONNECTION</code></td>
+<td>"Connection"</td>
+<td><code>INK_MIME_LEN_CONNECTION</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_CONTENT_BASE</code></td>
+<td>"Content-Base"</td>
+<td><code>INK_MIME_LEN_CONTENT_BASE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_CONTENT_ENCODING</code></td>
+<td>"Content-Encoding"</td>
+<td><code>INK_MIME_LEN_CONTENT_ENCODING</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_CONTENT_LANGUAGE</code></td>
+<td>"Content-Language"</td>
+<td><code>INK_MIME_LEN_CONTENT_LANGUAGE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_CONTENT_LENGTH</code></td>
+<td>"Content-Length"</td>
+<td><code>INK_MIME_LEN_CONTENT_LENGTH</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_CONTENT_LOCATION</code></td>
+<td>"Content-Location"</td>
+<td><code>INK_MIME_LEN_CONTENT_LOCATION</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_CONTENT_MD5</code></td>
+<td>"Content-MD5"</td>
+<td><code>INK_MIME_LEN_CONTENT_MD5</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_CONTENT_RANGE</code></td>
+<td>"Content-Range"</td>
+<td><code>INK_MIME_LEN_CONTENT_RANGE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_CONTENT_TYPE</code></td>
+<td>"Content-Type"</td>
+<td><code>INK_MIME_LEN_CONTENT_TYPE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_CONTROL</code></td>
+<td>"Control"</td>
+<td><code>INK_MIME_LEN_CONTROL</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_COOKIE</code></td>
+<td>"Cookie"</td>
+<td><code>INK_MIME_LEN_COOKIE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_DATE</code></td>
+<td>"Date"</td>
+<td><code>INK_MIME_LEN_DATE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_DISTRIBUTION</code></td>
+<td>"Distribution"</td>
+<td><code>INK_MIME_LEN_DISTRIBUTION</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_ETAG</code></td>
+<td>"Etag"</td>
+<td><code>INK_MIME_LEN_ETAG</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_EXPECT</code></td>
+<td>"Expect"</td>
+<td><code>INK_MIME_LEN_EXPECT</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_EXPIRES</code></td>
+<td>"Expires"</td>
+<td><code>INK_MIME_LEN_EXPIRES</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_FOLLOWUP_TO</code></td>
+<td>"Followup-To"</td>
+<td><code>INK_MIME_LEN_FOLLOWUP_TO</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_FROM</code></td>
+<td>"From"</td>
+<td><code>INK_MIME_LEN_FROM</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_HOST</code></td>
+<td>"Host"</td>
+<td><code>INK_MIME_LEN_HOST</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_IF_MATCH</code></td>
+<td>"If-Match"</td>
+<td><code>INK_MIME_LEN_IF_MATCH</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_IF_MODIFIED_SINCE</code></td>
+<td>"If-Modified-Since''</td>
+<td><code>INK_MIME_LEN_IF_MODIFIED_SINCE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_IF_NONE_MATCH</code></td>
+<td>"If-None-Match''</td>
+<td><code>INK_MIME_LEN_IF_NONE_MATCH</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_IF_RANGE</code></td>
+<td>"If-Range''</td>
+<td><code>INK_MIME_LEN_IF_RANGE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_IF_UNMODIFIED_SINCE</code></td>
+<td>"If-Unmodified-Since''</td>
+<td><code>INK_MIME_LEN_IF_UNMODIFIED_SINCE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_KEEP_ALIVE</code></td>
+<td>"Keep-Alive''</td>
+<td><code>INK_MIME_LEN_KEEP_ALIVE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_KEYWORDS</code></td>
+<td>"Keywords''</td>
+<td><code>INK_MIME_LEN_KEYWORDS</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_LAST_MODIFIED</code></td>
+<td>"Last-Modified''</td>
+<td><code>INK_MIME_LEN_LAST_MODIFIED</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_LINES</code></td>
+<td>"Lines''</td>
+<td><code>INK_MIME_LEN_LINES</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_LOCATION</code></td>
+<td>"Location''</td>
+<td><code>INK_MIME_LEN_LOCATION</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_MAX_FORWARDS</code></td>
+<td>"Max-Forwards''</td>
+<td><code>INK_MIME_LEN_MAX_FORWARDS</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_MESSAGE_ID</code></td>
+<td>"Message-ID''</td>
+<td><code>INK_MIME_LEN_MESSAGE_ID</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_NEWSGROUPS</code></td>
+<td>"Newsgroups''</td>
+<td><code>INK_MIME_LEN_NEWSGROUPS</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_ORGANIZATION</code></td>
+<td>"Organization''</td>
+<td><code>INK_MIME_LEN_ORGANIZATION</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_PATH</code></td>
+<td>"Path''</td>
+<td><code>INK_MIME_LEN_PATH</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_PRAGMA</code></td>
+<td>"Pragma''</td>
+<td><code>INK_MIME_LEN_PRAGMA</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_PROXY_AUTHENTICATE</code></td>
+<td>"Proxy-Authenticate''</td>
+<td><code>INK_MIME_LEN_PROXY_AUTHENTICATE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_PROXY_AUTHORIZATION</code></td>
+<td>"Proxy-Authorization''</td>
+<td><code>INK_MIME_LEN_PROXY_AUTHORIZATION</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_PROXY_CONNECTION</code></td>
+<td>"Proxy-Connection''</td>
+<td><code>INK_MIME_LEN_PROXY_CONNECTION</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_PUBLIC</code></td>
+<td>"Public''</td>
+<td><code>INK_MIME_LEN_PUBLIC</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_RANGE</code></td>
+<td>"Range''</td>
+<td><code>INK_MIME_LEN_RANGE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_REFERENCES</code></td>
+<td>"References''</td>
+<td><code>INK_MIME_LEN_REFERENCES</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_REFERER</code></td>
+<td>"Referer''</td>
+<td><code>INK_MIME_LEN_REFERER</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_REPLY_TO</code></td>
+<td>"Reply-To''</td>
+<td><code>INK_MIME_LEN_REPLY_TO</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_RETRY_AFTER</code></td>
+<td>"Retry-After''</td>
+<td><code>INK_MIME_LEN_RETRY_AFTER</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_SENDER</code></td>
+<td>"Sender''</td>
+<td><code>INK_MIME_LEN_SENDER</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_SERVER</code></td>
+<td>"Server''</td>
+<td><code>INK_MIME_LEN_SERVER</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_SET_COOKIE</code></td>
+<td>"Set-Cookie''</td>
+<td><code>INK_MIME_LEN_SET_COOKIE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_SUBJECT</code></td>
+<td>"Subject''</td>
+<td><code>INK_MIME_LEN_SUBJECTINK_MIME_LEN_SUBJECT</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_SUMMARY</code></td>
+<td>"Summary''</td>
+<td><code>INK_MIME_LEN_SUMMARY</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_TE</code></td>
+<td>"TE''</td>
+<td><code>INK_MIME_LEN_TE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_TRANSFER_ENCODING</code></td>
+<td>"Transfer-Encoding''</td>
+<td><code>INK_MIME_LEN_TRANSFER_ENCODING</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_UPGRADE</code></td>
+<td>"Upgrade''</td>
+<td><code>INK_MIME_LEN_UPGRADE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_USER_AGENT</code></td>
+<td>"User-Agent''</td>
+<td><code>INK_MIME_LEN_USER_AGENT</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_VARY</code></td>
+<td>"Vary''</td>
+<td><code>INK_MIME_LEN_VARY</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_VIA</code></td>
+<td>"Via''</td>
+<td><code>INK_MIME_LEN_VIA</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_WARNING</code></td>
+<td>"Warning''</td>
+<td><code>INK_MIME_LEN_WARNING</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_WWW_AUTHENTICATE</code></td>
+<td>"Www-Authenticate''</td>
+<td><code>INK_MIME_LEN_WWW_AUTHENTICATE</code></td>
+</tr>
+<tr>
+<td><code>INK_MIME_FIELD_XREF</code></td>
+<td>"Xref''</td>
+<td><code>INK_MIME_LEN_XREF</code></td>
+</tr>
+</tbody>
+</table></div>
+<p>The header field names above are defined in
+      <code class="filename">ts.h</code> as <code class="code"> const char* </code> strings. When
+      Traffic Server sets the name portion of a header field (or any portion
+      for that matter), it quickly checks to see if the new value is one
+      of the known values. If it is, then  Traffic Server stores a pointer into a global table instead of storing the known value in the
+      marshal buffer. The header field
+      names listed above are also pointers into this table, which enables simple
+      pointer comparison of the value returned from
+      <code class="function">INKMimeHdrFieldNameGet</code> with one of the values
+      listed above. It is  recommended that you use the above values when
+      referring to one of the known header field names to avoid  the
+      possibility of a spelling error.</p>
+<p>Traffic Server adds one important feature to MIME fields that
+      you may not know about: Traffic Server does not print a MIME field if the field name
+      begins with the '<code class="code">@</code>' symbol. For example: a plugin can add
+      the field "<code class="code">@My-Field</code>" to a header. Even though Traffic
+      Server never sends that field out in a request to an origin server or in
+      a response to a client, it can be printed to Traffic Server logs by defining a
+      custom log configuration file that explicitly logs such fields. This provides
+      a useful mechanism for plugins to store information about an object in
+      one of the MIME headers associated with the object.</p>
+<p><a name="MimeHeaderFxns"></a>The MIME header functions are listed below:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldAppend">INKMimeHdrFieldAppend</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldClone">INKMimeHdrFieldClone</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldCopy">INKMimeHdrFieldCopy</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldCopyValues">INKMimeHdrFieldCopyValues</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldCreate">INKMimeHdrFieldCreate</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldDestroy">INKMimeHdrFieldDestroy</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldLengthGet">INKMimeHdrFieldLengthGet</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldNameGet">INKMimeHdrFieldNameGet</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldNameSet">INKMimeHdrFieldNameSet</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldNext">INKMimeHdrFieldNext</a></li>
+
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldNextDup">INKMimeHdrFieldNextDup</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueAppend">INKMimeHdrFieldValueAppend</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueAppend">INKMimeHdrFieldValueAppend</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueDateGet">INKMimeHdrFieldValueDateGet</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueDateInsert">INKMimeHdrFieldValueDateInsert</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueDateSet">INKMimeHdrFieldValueDateSet</a></li>
+
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueInsert">INKMimeHdrFieldValueInsert</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueIntGet">INKMimeHdrFieldValueIntGet</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueIntSet">INKMimeHdrFieldValueIntSet</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueStringGet">INKMimeHdrFieldValueStringGet</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueStringInsert">INKMimeHdrFieldValueStringInsert</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueStringSet">INKMimeHdrFieldValueStringSet</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueUintGet">INKMimeHdrFieldValueUintGet</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueUintInsert">INKMimeHdrFieldValueUintInsert</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueUintSet">INKMimeHdrFieldValueUintSet</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValuesClear">INKMimeHdrFieldValuesClear</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValuesCount">INKMimeHdrFieldValuesCount</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrClone">INKMimeHdrClone</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrCopy">INKMimeHdrCopy</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrCreate">INKMimeHdrCreate</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrDestroy">INKMimeHdrDestroy</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldFind">INKMimeHdrFieldFind</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldGet">INKMimeHdrFieldGet</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldRemove">INKMimeHdrFieldRemove</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldsClear">INKMimeHdrFieldsClear</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrFieldsCount">INKMimeHdrFieldsCount</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrLengthGet">INKMimeHdrLengthGet</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrParse">INKMimeHdrParse</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeParserClear">INKMimeParserClear</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeParserCreate">INKMimeParserCreate</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeParserDestroy">INKMimeParserDestroy</a></li>
+<li><a href="MimeHeadersFunctions.html#INKMimeHdrPrint">INKMimeHdrPrint</a></li>
+</ul></div>
+</div>
+</body>
+</html>
+

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/MIMEHeaders.html
------------------------------------------------------------------------------
    svn:executable = *

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/ManagementInterfaceFunctions.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/ManagementInterfaceFunctions.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/ManagementInterfaceFunctions.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Management Interface Functions</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="INKIOBufferWrite.html">Prev</a> - INKIOBufferWrite</div>
+<div class="navnext">Configuration Read Functions - <a accesskey="n" href="TEConfigReadFunctions.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="ManagementInterfaceFunctions"></a>Management Interface Functions</h2></div></div></div>
+
+
+<ul><b>
+<li><a href="ManagementInterfaceFunctions.html#INKMgmtUpdateRegister">INKMgmtUpdateRegister</a></li>
+
+</b>
+</ul>
+
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="INKMgmtUpdateRegister"></a>INKMgmtUpdateRegister</h3></div></div></div>
+<p>Sets up a plugin's management interface.</p>
+<div class="variablelist"><dl>
+<dt><span class="term"><b>Prototype</b></span></dt>
+<dd><p><code class="code">INKReturnCode INKMgmtUpdateRegister (INKCont contp,
+        const char *<i class="replaceable">plugin_name</i>, const char *<i class="replaceable">path</i>)</code></p></dd>
+<dt><span class="term"><b>Arguments</b></span></dt>
+<dd>
+<p><code class="code">contp</code> is the continuation to be called back
+              if the plugin's configuration is changed. The handler function
+              for this continuation must handle the event
+              <code class="code">INK_EVENT_MGMT_UPDATE</code>.</p>
+<p><code class="replaceable"><i>plugin_name </i></code> is the name of the plugin. This
+              name must match the name of the plugin specified in your CGI
+              form submission for <code class="code">INK_PLUGIN_NAME</code>.</p>
+<p><code class="replaceable"><i>path </i></code> is the location of the plugin's
+              interface, relative to the Traffic Server plugin directory (as
+              specified by the <code class="filename">records.config</code> variable 
+              <code class="varname"><i>proxy.config.plugin.plugin_dir</i></code>). If your
+              plugin has a web user interface, then the path should be located in
+              the Traffic Server <code class="code">config</code> directory. For example, <code class="replaceable"><i> path </i></code>  could be <code class="code">Blacklist/ui/index.html</code> or
+              <code class="code">Blacklist/ui/index.cgi</code>.</p>
+</dd>
+<dt><span class="term"><b>Returns</b></span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if the operation completes
+              successfully.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs.</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</body>
+</html>

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/ManagementInterfaceFunctions.html
------------------------------------------------------------------------------
    svn:executable = *

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/MarshalBuffers.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/MarshalBuffers.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/MarshalBuffers.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Marshal Buffers</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="DeprecatedMarshBufFuncs.html">Prev</a> - Deprecated Functions</div>
+<div class="navnext">HTTP Headers - <a accesskey="n" href="HTTPHeaders2.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="MarshalBuffers"></a>Marshal Buffers</h2></div></div></div>
+<p>A  <b>marshal buffer</b>, or <code class="function">INKMBuffer</code>, is a heap
+      data structure that stores parsed URLs, MIME headers, and HTTP headers.
+      You can allocate new objects out of marshal buffers and change the
+      values within a marshal buffer. Whenever you manipulate an object, you
+      require the handle to the object (<code class="function">INKMLoc</code>) and the
+      marshal buffer containing the object
+      (<code class="function">INKMBuffer</code>).</p>
+<p>Routines exist for manipulating the object based on these two
+      pieces of information. For example, see one of the following:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><a href="HTTPHeaders2.html" title="HTTP Headers">HTTP Headers</a></li>
+<li><a href="URLs.html" title="URLs">URLs</a></li>
+<li><a href="MIMEHeaders.html" title="MIME Headers">MIME Headers</a></li>
+</ul></div>
+<p>The <b>marshal buffer functions</b> enable you to create and destroy
+      Traffic Server's marshal buffers, which are the data structures that
+      hold parsed URLs, MIME headers, and HTTP headers.</p>
+<div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="images/docbook/caution.png" /></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>Any marshal buffer fetched by
+        <code class="function">INKHttpTxn*Get</code> will be used by other parts of the
+        system. Be careful not to destroy these shared transaction marshal
+        buffers in functions such as those below:</p>
+        <ul>
+<li><code><a href="HTTPTransactionFunctions.html#INKHttpTxnCachedReqGet">INKHttpTxnCachedReqGet</a></code></li>
+<li><code><a href="HTTPTransactionFunctions.html#INKHttpTxnCachedRespGet">INKHttpTxnCachedRespGet</a></code></li>
+<li><code><a href="HTTPTransactionFunctions.html#INKHttpTxnClientReqGet">INKHttpTxnClientReqGet</a></code></li>
+<li><code><a href="HTTPTransactionFunctions.html#INKHttpTxnClientRespGet">INKHttpTxnClientRespGet</a></code></li>
+<li><code><a href="HTTPTransactionFunctions.html#INKHttpTxnServerReqGet">INKHttpTxnServerReqGet</a></code></li> 
+<li><code><a href="HTTPTransactionFunctions.html#INKHttpTxnServerRespGet">INKHttpTxnServerRespGet</a></code></li>
+<li><code><a href="HTTPTransactionFunctions.html#INKHttpTxnTransformRespGet">INKHttpTxnTransformRespGet</a></code></li> 
+</ul>
+</td></tr>
+</table></div>
+</div>
+</body>
+</html>

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/MarshalBuffers.html
------------------------------------------------------------------------------
    svn:executable = *

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/MarshallBuffersFunctions.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/MarshallBuffersFunctions.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/MarshallBuffersFunctions.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,65 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Marshal Buffers</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="ch18s09s04.html">Prev</a> - Handle Release Functions</div>
+<div class="navnext">INKMBufferDestroy - <a accesskey="n" href="INKMBufferDestroy.html">Next</a>
+</div>
+</div>
+
+
+
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="MarshallBuffersFunctions"></a>Marshal Buffers</h2></div></div></div>
+<div class="section" lang="en">
+<ul><b>
+<li><a href="MarshallBuffersFunctions.html#INKMBufferCreate">INKMBufferCreate</a></li>
+<li><a href="INKMBufferDestroy.html">INKMBufferDestroy</a></li>
+</b>
+</ul></div>
+<p>A <b>marshal buffer</b>, or <code class="function">INKMBuffer</code>, is a heap
+      data structure that stores parsed URLs, MIME headers, and HTTP headers.
+      You can allocate new objects out of marshal buffers, as well as change the
+      values within a marshal buffer. Whenever you manipulate an object, you
+      require the handle to the object (<code class="function">INKMLoc</code>) and the
+      marshal buffer containing the object
+      (<code class="function">INKMBuffer</code>).</p>
+<p>Routines exist for manipulating the object based on these two
+      pieces of information. See, for example,  the following:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><a href="HTTPHeaderFunctions.html" title="HTTP Header Functions">HTTP Header Functions</a></li>
+<li><a href="URLFunctions.html" title="URL Functions">URL Functions</a></li>
+<li><a href="MimeHeadersFunctions.html" title="MIIME Headers">MIIME Headers</a></li>
+</ul></div>
+<p>The marshal buffer functions enable you to create and destroy
+      Traffic Server's marshal buffers, which are the data structures that
+      hold parsed URLs, MIME headers, and HTTP headers.</p>
+<div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Caution">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="images/docbook/caution.png" /></td>
+<th align="left">Caution</th>
+</tr>
+<tr><td align="left" valign="top"><p>Any marshal buffer fetched by <code>INKHttpTxn*Get</code> (for example, <a href="HTTPTransactionFunctions.html#INKHttpTxnClientReqGet"><code>INKHttpTxnClientReqGet</code></a> or <code><a href="HTTPTransactionFunctions.html#INKHttpTxnServerRespGet">INKHttpTxnServerRespGet</a></code>) will be used by other parts of the system. Be careful not to destroy these shared transaction marshal buffers.</p></td></tr>
+</table></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="INKMBufferCreate"></a>INKMBufferCreate</h3></div></div></div>
+<p>Creates a new marshal buffer.</p>
+<div class="variablelist"><dl>
+<dt><span class="term"><b>Prototype</b></span></dt>
+<dd><p><code class="code">INKMBuffer INKMBufferCreate (void)</code></p></dd>
+<dt><span class="term"><b>Description</b></span></dt>
+<dd><p>Creates a new marshal buffer and initializes the reference
+        count to <code>1</code>.</p></dd>
+<dt><span class="term"><b>Returns</b></span></dt>
+<dd><p>A pointer to the new marshal buffer.</p></dd>
+</dl></div>
+</div>
+</div>
+</body>
+</html>

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/MarshallBuffersFunctions.html
------------------------------------------------------------------------------
    svn:executable = *

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/MemoryAllocation.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/MemoryAllocation.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/MemoryAllocation.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,38 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Memory Allocation</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="INKfopenFamily.html">Prev</a> - The INKfopen Family</div>
+<div class="navnext">Thread Functions - <a accesskey="n" href="Interface_ThreadFunctions.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="MemoryAllocation"></a>Memory Allocation</h2></div></div></div>
+<p>Traffic Server provides five routines for allocating and freeing
+      memory. These routines correspond to similar routines in the C library.
+      For example, <code class="function">INKrealloc</code> behaves like the C library
+      routine <code class="code">realloc</code>. </p>
+<p>There are two main reasons for using the routines
+  provided by Traffic Server. The first is portability: the Traffic Server
+  API routines behave the same on all of Traffic Server's supported
+  platforms. For example, <code>realloc</code> does not accept an argument of <code class="code">NULL</code> on some platforms. The second reason is that the
+  Traffic Server routines actually track the memory allocations by file
+  and line number. This tracking is very efficient, always turned on,
+  and  quite useful when tracking down memory leaks.</p>
+<p>The memory allocation functions are:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p><a href="MemoryAllocationFunctions.html#INKfree" title="INKfree">INKfree</a></p></li>
+<li><p><a href="INKmalloc.html" title="INKmalloc">INKmalloc</a></p></li>
+<li><p><a href="INKrealloc.html" title="INKrealloc">INKrealloc</a></p></li>
+<li><p><a href="INKstrdup.html" title="INKstrdup">INKstrdup</a></p></li>
+<li>
+  <p><a href="INKstrndup.html" title="INKstrndup">INKstrndup</a></p></li>
+</ul></div>
+</div>
+</body>
+</html>

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/MemoryAllocation.html
------------------------------------------------------------------------------
    svn:executable = *

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/MemoryAllocationFunctions.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/MemoryAllocationFunctions.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/MemoryAllocationFunctions.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Memory Allocation</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="INKfwrite.html">Prev</a> - INKfwrite</div>
+<div class="navnext">INKmalloc - <a accesskey="n" href="INKmalloc.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="MemoryAllocationFunctions"></a>Memory Allocation</h2></div></div></div>
+<p>Traffic Server provides five routines for allocating and freeing
+      memory. These routines correspond to similar routines in the C library.
+      For example, <code class="function">INKrealloc</code> behaves like the C library
+      routine <code class="function">realloc</code>. </p>
+<p>There are two main reasons to use the routines
+  provided by Traffic Server. The first is portability: the Traffic Server
+  API routines behave the same on all of Traffic Server's supported
+  platforms. For example, <code>realloc</code> does not accept an argument of <code class="code">NULL</code> on some platforms. The second reason is that the
+  Traffic Server routines actually track the memory allocations by file
+  and line number. This tracking is very efficient, is always turned on,
+  and is useful for tracking down memory leaks.</p>
+<p>The memory allocation functions are described below.</p>
+
+<b><ul>
+<li><span class="section"><a href="MemoryAllocationFunctions.html#INKfree">INKfree</a></span></li>
+<li><span class="section"><a href="INKmalloc.html">INKmalloc</a></span></li>
+<li><span class="section"><a href="INKrealloc.html">INKrealloc</a></span></li>
+<li><span class="section"><a href="INKstrndup.html">INKstrndup</a></span></li>
+<li><span class="section"><a href="INKstrndup.html">INKstrndup</a></span></li>
+</ul></b>
+
+
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="INKfree"></a>INKfree</h3></div></div></div>
+<p>Frees memory allocated by <code class="function">INKmalloc</code> or
+        <code class="function">INKrealloc</code>.</p>
+<div class="variablelist"><dl>
+<dt><span class="term"><b>Prototype</b></span></dt>
+<dd><p><code class="code">void INKfree (void
+              <em class="replaceable"><code>*ptr</code></em>)</code></p></dd>
+<dt><span class="term"><b>Arguments</b></span></dt>
+<dd>
+  <p><code class="code"><em class="replaceable"><code>ptr </code></em></code> is a pointer
+              to the memory to deallocate.</p></dd>
+<dt><span class="term"><b>Description</b></span></dt>
+<dd>
+  <p>Releases the memory allocated by
+              <code class="function">INKmalloc</code> or
+              <code class="function">INKrealloc</code>. If
+              <code class="code"><em class="replaceable"><code>ptr </code></em></code> is
+              <code class="code">NULL</code>, then <code class="function">INKfree</code> does not perform an
+              operation.</p></dd>
+</dl></div>
+</div>
+</div>
+</body>
+</html>

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/MemoryAllocationFunctions.html
------------------------------------------------------------------------------
    svn:executable = *