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, &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 < 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"><timestamp></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, &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 = *