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 [23/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/URLs.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/URLs.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/URLs.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,151 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>URLs</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="HTTPHeaders2.html">Prev</a> - HTTP Headers</div>
+<div class="navnext">MIME Headers - <a accesskey="n" href="MIMEHeaders.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="URLs"></a>URLs</h2></div></div></div>
+<p>API URL functions provide access to URL data stored in marshal
+      buffers. The URL functions can create, copy, retrieve or delete entire
+      URLs; they can also retrieve or modify parts of URLs, such as  port or scheme
+      information.</p>
+<p>The general form of an Internet URL is:</p>
+<pre class="programlisting">scheme://user:password@host:port/stuff</pre>
+<p>The URL data structure includes support for two specific types of
+      internet URLs. HTTP URLs have the form:</p>
+<pre class="programlisting">http://user:password@host:port/path;params?query#fragment</pre>
+<p>FTP URLs have the form:</p>
+<pre class="programlisting">ftp://user:password@host:port/path;type=val</pre>
+<p>The URL port and FTP type are stored as integers. All remaining
+      parts of the URL (scheme, user, etc.) are stored as strings. Traffic Server URL functions are named according to the portion of the URL on
+      which they operate. For instance, the function that retrieves the host
+      portion of a URL is named <code class="function">INKUrlHostGet</code>.</p>
+<p>To facilitate fast comparisons and  reduce storage size, Traffic
+      Server defines several preallocated scheme names.</p>
+<div class="informaltable"><table border="1">
+<colgroup>
+<col />
+<col />
+<col />
+</colgroup>
+<tbody>
+<tr>
+<td align="center"><span class="bold"><strong>Traffic Server
+              Definition</strong></span></td>
+<td align="center"><span class="bold"><strong>Pre-Allocated Scheme
+              Name</strong></span></td>
+<td align="center"><span class="bold"><strong>URL Scheme String
+              Lengths</strong></span></td>
+</tr>
+<tr>
+<td><code>INK_URL_SCHEME_FILE</code></td>
+<td>"file"</td>
+<td><code>INK_URL_LEN_FILE</code></td>
+</tr>
+<tr>
+<td><code>INK_URL_SCHEME_FTP</code></td>
+<td>"ftp"</td>
+<td><code>INK_URL_LEN_FTP</code></td>
+</tr>
+<tr>
+<td><code>INK_URL_SCHEME_GOPHER</code></td>
+<td>"gopher"</td>
+<td><code>INK_URL_LEN_GOPHER</code></td>
+</tr>
+<tr>
+<td><code>INK_URL_SCHEME_HTTP</code></td>
+<td>"http"</td>
+<td><code>INK_URL_LEN_HTTP</code></td>
+</tr>
+<tr>
+<td><code>INK_URL_SCHEME_HTTPS</code></td>
+<td>"https"</td>
+<td><code>INK_URL_LEN_HTTPS</code></td>
+</tr>
+<tr>
+<td><code>INK_URL_SCHEME_MAILTO</code></td>
+<td>"mailto"</td>
+<td><code>INK_URL_LEN_MAILTO</code></td>
+</tr>
+<tr>
+<td><code>INK_URL_SCHEME_NEWS</code></td>
+<td>"news"</td>
+<td><code>INK_URL_LEN_NEWS</code></td>
+</tr>
+<tr>
+<td><code>INK_URL_SCHEME_NNTP</code></td>
+<td>"nntp"</td>
+<td><code>INK_URL_LEN_NNTP</code></td>
+</tr>
+<tr>
+<td><code>INK_URL_SCHEME_PROSPERO</code></td>
+<td>"prospero"</td>
+<td><code>INK_URL_LEN_PROSPERO</code></td>
+</tr>
+<tr>
+<td><code>INK_URL_SCHEME_TELNET</code></td>
+<td>"telnet"</td>
+<td><code>INK_URL_LEN_TELNET</code></td>
+</tr>
+<tr>
+<td><code>INK_URL_SCHEME_WAIS</code></td>
+<td>"wais"</td>
+<td><code>INK_URL_LEN_WAIS</code></td>
+</tr>
+</tbody>
+</table></div>
+<p>The scheme names above are defined in <code>ts.h</code> as <code>const</code> <code>char*</code> strings. When Traffic Server sets the scheme portion of the URL (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 it stores a pointer into a global table (instead of storing the known value
+      in the marshal buffer). The
+      scheme values listed above are also pointers into this table. This
+      allows simple pointer comparison of the value returned from
+      <code>INKUrlSchemeGet</code> with one of the values listed above. You should 
+       use the Traffic Server-defined values when referring to one of
+      the known schemes, since doing so can prevent the possibility of spelling errors.</p>
+<p>Traffic Server <b>URL functions</b> are listed below:</p>
+<div class="itemizedlist"><ul type="disc">
+<b>
+<li><a href="URLFunctions.html#INKUrlClone">INKUrlClone</a></li>
+<li><a href="URLFunctions.html#INKUrlCopy">INKUrlCopy</a></li>
+<li><a href="URLFunctions.html#INKUrlCreate">INKUrlCreate</a></li>
+<li><a href="URLFunctions.html#INKUrlDestroy">INKUrlDestroy</a></li>
+<li><a href="URLFunctions.html#INKUrlPrint">INKUrlPrint</a></li>
+<li><a href="URLFunctions.html#INKUrlFtpTypeGet">INKUrlFtpTypeGet</a></li>
+<li><a href="URLFunctions.html#INKUrlFtpTypeSet">INKUrlFtpTypeSet</a></li>
+<li><a href="URLFunctions.html#INKUrlHostGet">INKUrlHostGet</a></li>
+<li><a href="URLFunctions.html#INKUrlHostSet">INKUrlHostSet</a></li>
+<li><a href="URLFunctions.html#INKUrlHttpFragmentGet">INKUrlHttpFragmentGet</a></li>
+<li><a href="URLFunctions.html#INKUrlHttpFragmentSet">INKUrlHttpFragmentSet</a></li>
+<li><a href="URLFunctions.html#INKUrlHttpParamsGet">INKUrlHttpParamsGet</a></li>
+<li><a href="URLFunctions.html#INKUrlHttpParamsSet">INKUrlHttpParamsSet</a></li>
+<li><a href="URLFunctions.html#INKUrlHttpQueryGet">INKUrlHttpQueryGet</a></li>
+<li><a href="URLFunctions.html#INKUrlHttpQuerySet">INKUrlHttpQuerySet</a></li>
+<li><a href="URLFunctions.html#INKUrlLengthGet">INKUrlLengthGet</a></li>
+<li><a href="URLFunctions.html#INKUrlParse">INKUrlParse</a></li>
+<li><a href="URLFunctions.html#INKUrlPasswordGet">INKUrlPasswordGet</a></li>
+<li><a href="URLFunctions.html#INKUrlPasswordSet">INKUrlPasswordSet</a></li>
+<li><a href="URLFunctions.html#INKUrlPathGet">INKUrlPathGet</a></li>
+<li><a href="URLFunctions.html#INKUrlPathSet">INKUrlPathSet</a></li>
+<li><a href="URLFunctions.html#INKUrlPortGet">INKUrlPortGet</a></li>
+<li><a href="URLFunctions.html#INKUrlPortSet">INKUrlPortSet</a></li>
+<li><a href="URLFunctions.html#INKUrlSchemeGet">INKUrlSchemeGet</a></li>
+<li><a href="URLFunctions.html#INKUrlSchemeSet">INKUrlSchemeSet</a></li>
+<li><a href="URLFunctions.html#INKUrlStringGet">INKUrlStringGet</a></li>
+<li><a href="URLFunctions.html#INKUrlUserGet">INKUrlUserGet</a></li>
+<li><a href="URLFunctions.html#INKUrlUserSet">INKUrlUserSet</a></li>
+
+</b>
+</ul></div>
+</div>
+</body>
+</html>
+

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/Updatingplugin.configFile.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/Updatingplugin.configFile.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/Updatingplugin.configFile.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,28 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Update the plugin.config File</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="ASimplePlugin.html">Prev</a> - A Simple Plugin</div>
+<div class="navnext">Specify the Plugin's Location - <a accesskey="n" href="SpecifyingPluginLocation.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="Updatingplugin.configFile"></a>Update the <code class="filename">plugin.config</code> File</h3></div></div></div>
+<p>Your next step is to tell Traffic Server about the plugin by
+        adding the following line to the <code class="filename">plugin.config</code>
+        file. Since our simple plugin does not require any arguments, the
+        following <code class="filename">plugin.config</code> will work:</p>
+<pre class="programlisting"># a simple plugin.config for hello-world
+hello-world.so</pre>
+<p><a name="MultiplePlugins"></a>Traffic Server can accommodate multiple
+        plugins. If several plugin functions are triggered by the same event,
+        then Traffic Server invokes each plugin's function in the  order each was 
+         defined in the <code class="filename">plugin.config</code> file.<a class="indexterm" name="id307332"></a></p>
+</div>
+</body>
+</html>

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/VIOFunctions.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/VIOFunctions.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/VIOFunctions.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>VIO Functions</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="INKTransformOutputVConnGet.html">Prev</a> - INKTransformOutputVConnGet</div>
+<div class="navnext">INKVIOContGet - <a accesskey="n" href="INKVIOContGet.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="VIOFunctions"></a>VIO Functions</h2></div></div></div>
+<ul><b>
+<li><a href="VIOFunctions.html#INKVIOBufferGet">INKVIOBufferGet</a></li>
+<li><a href="INKVIOContGet.html">INKVIOContGet</a></li>
+<li><a href="INKVIOMutexGet.html">INKVIOMutexGet</a></li>
+<li><a href="INKVIONBytesGet.html">INKVIONBytesGet</a></li>
+<li><a href="INKVIONBytesSet.html">INKVIONBytesSet</a></li>
+<li><a href="INKVIONDoneGet.html">INKVIONDoneGet</a> </li>
+<li><a href="INKVIONDoneSet.html">INKVIONDoneSet</a></li>
+<li><a href="INKVIONTodoGet.html">INKVIONTodoGet</a></li>
+<li><a href="INKVIOReaderGet.html">INKVIOReaderGet</a></li>
+<li><a href="INKVIOReenable.html">INKVIOReenable</a></li>
+<li><a href="INKVIOVConnGet.html">INKVIOVConnGet</a></li>
+</b>
+</ul>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="INKVIOBufferGet"></a>INKVIOBufferGet</h3></div></div></div>
+<p>Gets a VIO buffer.</p>
+<div class="variablelist"><dl>
+<dt><span class="term"><b>Prototype</b></span></dt>
+<dd><p><code class="code">INKIOBuffer INKVIOBufferGet (INKVIO
+              <em class="replaceable"><code>viop</code></em>)</code></p></dd>
+<dt><span class="term"><b>Description</b></span></dt>
+<dd>
+  <p>Gets the buffer for the IO operation described by <code><i>viop</i></code>. <code class="function">INKVIOBufferGet</code> is used by vconnections
+              performing read operations (i.e., read operations write into their
+        buffers).</p></dd>
+<dt><span class="term"><b>Returns</b></span></dt>
+<dd>
+<p>The buffer for the specified IO operation.</p>
+<p><code class="code">INK_ERROR_PTR</code> if an error occurs.</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</body>
+</html>

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/VIOs_IO.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/VIOs_IO.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/VIOs_IO.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,53 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>VIOs</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="Transformations_IO.html">Prev</a> - Transformations</div>
+<div class="navnext">IO Buffers - <a accesskey="n" href="IOBuffers_IO.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="VIOs_IO"></a>VIOs</h2></div></div></div>
+<p>A <b>VIO</b>, or <b>virtual IO</b>, is a description of an IO
+      operation that's currently in progress. The VIO data structure is used by vconnection users to
+      determine how much progress has been made on a particular IO operation
+      and to re-enable an IO operation when it stalls due to buffer space issues.
+      VIOs are used by vconnection implementors to determine the buffer for an
+      IO operation,  how much work to do on the IO operation, and
+       which continuation to call back when progress on the IO
+      operation is made.</p>
+<p>The <code class="function">INKVIO</code> data structure itself is opaque,
+      but it could be defined as follows:</p>
+<pre class="programlisting">typedef struct {
+    INKCont continuation;
+    INKVConn vconnection;
+    INKIOBufferReader reader;
+    INKMutex mutex;
+    int nbytes;
+    int ndone;
+} *INKVIO;</pre>
+<p>The VIO functions below  access and modify various parts of the
+      data structure.</p>
+<div class="itemizedlist"><ul type="disc">
+<b>
+<li><a href="VIOFunctions.html#INKVIOBufferGet">INKVIOBufferGet</a></li>
+<li><a href="INKVIOVConnGet.html">INKVIOVConnGet</a></li>
+<li><a href="INKVIOContGet.html">INKVIOContGet</a></li>
+<li><a href="INKVIOMutexGet.html">INKVIOMutexGet</a></li>
+<li><a href="INKVIONBytesGet.html">INKVIONBytesGet</a></li>
+<li><a href="INKVIONBytesSet.html">INKVIONBytesSet</a></li>
+<li><a href="INKVIONDoneGet.html">INKVIONDoneGet</a> </li>
+<li><a href="INKVIONDoneSet.html">INKVIONDoneSet</a></li>
+<li><a href="INKVIONTodoGet.html">INKVIONTodoGet</a></li>
+<li><a href="INKVIOReaderGet.html">INKVIOReaderGet</a></li>
+<li><a href="INKVIOReenable.html">INKVIOReenable</a></li>
+</b>
+</ul></div>
+</div>
+</body>
+</html>

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/VconnectionFunctions.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/VconnectionFunctions.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/VconnectionFunctions.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>Vconnection Functions</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="INKHostLookupResultIPGet.html">Prev</a> - INKHostLookupResultIPGet</div>
+<div class="navnext">INKVConnClose - <a accesskey="n" href="INKVConnClose.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="VconnectionFunctions"></a>Vconnection Functions</h2></div></div></div>
+
+
+<ul><b>
+<li><a href="VconnectionFunctions.html#INKVConnAbort">INKVConnAbort</a></li>
+<li><a href="INKVConnClose.html">INKVConnClose</a></li>
+<li><a href="INKVConnClosedGet.html">INKVConnClosedGet</a></li>
+<li><a href="INKVConnRead.html">INKVConnRead</a></li>
+<li><a href="INKVConnReadVIOGet.html">INKVConnReadVIOGet</a></li>
+<li><a href="INKVConnShutdown.html">INKVConnShutdown</a></li>
+<li><a href="INKVConnWrite.html">INKVConnWrite</a> </li>
+<li><a href="INKVConnWriteVIOGet.html">INKVConnWriteVIOGet</a></li>
+</b>
+</ul>
+
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="INKVConnAbort"></a>INKVConnAbort</h3></div></div></div>
+<p>Closes a vconnection and specifies that  operations being performing were aborted.</p>
+<div class="variablelist"><dl>
+<dt><span class="term"><b>Prototype</b></span></dt>
+<dd><p><code class="code">INKReturnCode INKVConnAbort (INKVConn
+              <em class="replaceable"><code>connp</code></em>, int
+              <em class="replaceable"><code>error</code></em>)</code></p></dd>
+<dt><span class="term"><b>Description</b></span></dt>
+<dd>
+  <p>Closes the vconnection
+              <code class="code"><em class="replaceable"><code>connp </code></em></code> and specifies that
+              the operations it was performing were aborted. The vconnection
+              will be deallocated at some point in the near future, after              <code class="function">INKVConnAbort</code> is called. After
+              calling <code class="function">INKVConnClose</code>, a user will not
+              receive any more events from
+              <code class="code"><em class="replaceable"><code>connp</code></em></code>. For most
+              vconnections, <code class="function">INKVConnClose</code> and
+              <code class="function">INKVConnAbort</code> perform identical operations; a potential difference is that when a vconnection is aborted, the
+              vconnection implementor can decide to do something special. For
+              example, a vconnection writing a file to disk might decide to
+        delete the file.</p></dd>
+<dt><span class="term"><b>Returns</b></span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if the connection is successfully
+              aborted.</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/VconnectionFunctions.html
------------------------------------------------------------------------------
    svn:executable = *

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/ViewStatsUsingTrafLine.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/ViewStatsUsingTrafLine.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/ViewStatsUsingTrafLine.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,32 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Viewing Statistics Using Traffic Line</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="CoupledStatistics.html">Prev</a> - Coupled Statistics</div>
+<div class="navnext">Chapter 18. Function Reference - <a accesskey="n" href="FunctionReference.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="ViewStatsUsingTrafLine"></a>Viewing Statistics Using Traffic Line<a class="indexterm" name="id391657"></a><a class="indexterm" name="id391665"></a></h2></div></div></div>
+<p>To view statistics for your plugin, follow the steps below:</p>
+<div class="orderedlist"><ol type="1">
+<li>
+  <p>Make sure you know the name of your statistic (i.e., the name used
+          in the <code class="code">INKStatCoupledGlobalAdd</code>,
+          <code class="code">INKStatCreate</code>, or
+          <code class="code">INKStatCoupledGlobalCategoryCreate</code> call).</p></li>
+<li>
+<p>In your <code class="varname">&lt;Traffic
+          Server&gt;</code><code class="filename">/bin</code> directory, enter the
+          following:</p>
+<pre class="programlisting">./traffic_line -r <code class="varname">the_name</code></pre>
+</li>
+</ol></div>
+</div>
+</body>
+</html>

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/WorkWHTTPHeaderFunc.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/WorkWHTTPHeaderFunc.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/WorkWHTTPHeaderFunc.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>Working with HTTP Header Functions</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="SettingUpTransacHook.html">Prev</a> - Setting Up a Transaction Hook</div>
+<div class="navnext">The Basic Authorization Plugin - <a accesskey="n" href="BasicAuthorizatonPlugin.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="WorkWHTTPHeaderFunc"></a>Working with HTTP Header Functions</h3></div></div></div>
+<p>The Blacklist plugin examines the host header in every client
+        transaction. This is done in the <code>handle_dns</code> routine, using <code class="code">INKHttpTxnClientIPGet</code>, <code class="code">INKHttpHdrUrlGet</code>, and
+        <code class="code">INKUrlHostGet</code>.</p>
+<pre class="programlisting">INKUrlHostGet.
+static void
+handle_dns (INKHttpTxn txnp, INKCont contp)
+{
+     INKMBuffer bufp;
+     INKMLoc hdr_loc;
+     INKMLoc url_loc;
+     const char *host;
+     int i;
+
+     if (!INKHttpTxnClientIPGet (txnp, &amp;bufp, &amp;hdr_loc)) {
+          INKError ("couldn't retrieve client request header\n");
+          goto done;
+     }
+
+     url_loc = INKHttpHdrUrlGet (bufp, hdr_loc);
+
+     if (!url_loc) {
+          INKError ("couldn't retrieve request url\n");
+          INKHandleMLocRelease (bufp, INK_NULL_MLOC, hdr_loc);
+          goto done;
+     }
+
+     host = INKUrlHostGet (bufp, url_loc, NULL);
+     if (!host) {
+          INKError ("couldn't retrieve request hostname\n");
+          INKHandleMLocRelease (bufp, hdr_loc, url_loc);
+          INKHandleMLocRelease (bufp, INK_NULL_MLOC, hdr_loc);
+          goto done;
+     }</pre>
+<p>To access the host header, the plugin must first  get the
+        client request,  retrieve the URL portion, and then obtain the
+        host header. See <a href="HTTPHeaders.html" title="Chapter 10. HTTP Headers">HTTP Headers</a> for more information
+        about these calls. See <a href="RlsMarshalBufHandles.html" title="Release Marshal Buffer Handles">Release Marshal Buffer Handles</a> for guidelines on
+        using <code class="code">INKHandleMLocRelease</code>.</p>
+</div>
+</body>
+</html>

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/WorkWithHTTPHeaders.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/WorkWithHTTPHeaders.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/WorkWithHTTPHeaders.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,88 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Working With HTTP Headers</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="ImplementHandler_GetTransHandle.html">Prev</a> - Implementing the Handler and Getting a Handle to the
+        Transaction</div>
+<div class="navnext">Setting a Transaction Hook - <a accesskey="n" href="SetTransactionHook.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="WorkWithHTTPHeaders"></a>Working With HTTP Headers</h3></div></div></div>
+<p>The plugin checks all client request headers for the
+        Proxy-Authorization MIME field, which should contain the user name and
+        password. The plugin's continuation handler, <code class="code">auth-plugin</code>,
+        calls <code class="code">handle_dns</code> to check the
+        <code class="code">Proxy-Authorization</code> field. The <code>handle_dns</code> routine uses <code class="code">INKHttpTxnClientReqGet</code>
+        and <code class="code">INKMimeHdrFieldFind</code> to obtain the
+        <code class="code">Proxy-Authorization</code> field:</p>
+<pre class="programlisting">{
+     INKMBuffer bufp;
+     INKMLoc hdr_loc;
+     INKMLoc field_loc;
+     const char *val;
+     char *user, *password;
+
+     if (!INKHttpTxnClientReqGet (txnp, &amp;bufp, &amp;hdr_loc)) {
+          INKError ("couldn't retrieve client request header\n");
+          goto done;
+     }
+
+     field_loc = INKMimeHdrFieldFind (bufp, hdr_loc,
+          INK_MIME_FIELD_PROXY_AUTHORIZATION);</pre>
+<p>If the <code class="code">Proxy-Authorization</code> field is present, then the
+        plugin checks that the authentication type is "Basic", and the user
+        name and password are present and valid:</p>
+<pre class="programlisting">val = INKMimeHdrFieldValueStringGet (bufp, hdr_loc, field_loc, 0, &amp;authval_length);
+if (!val) {
+     INKError ("no value in Proxy-Authorization field\n");
+     INKHandleMLocRelease (bufp, hdr_loc, field_loc);
+     INKHandleMLocRelease (bufp, INK_NULL_MLOC, hdr_loc);
+     goto done;
+     }
+
+     if (strncmp (val, "Basic", 5) != 0) {
+          INKError ("no Basic auth type in Proxy-Authorization\n");
+          INKHandleMLocRelease (bufp, hdr_loc, field_loc);
+          INKHandleMLocRelease (bufp, INK_NULL_MLOC, hdr_loc);
+          goto done;
+     }
+
+     val += 5;
+     while ((*val == ' ') || (*val == '\t')) {
+          val += 1;
+     }
+
+     user = base64_decode (val);
+     password = strchr (user, ':');
+     if (!password) {
+          INKError ("no password in authorization information\n");
+          INKfree (user);
+          INKHandleMLocRelease (bufp, hdr_loc, field_loc);
+          INKHandleMLocRelease (bufp, INK_NULL_MLOC, hdr_loc);
+          goto done;
+     }
+     *password = '\0';
+     password += 1;
+
+     if (!authorized (user, password)) {
+          INKError ("%s:%s not authorized\n", user, password);
+          INKfree (user);
+          INKHandleMLocRelease (bufp, hdr_loc, field_loc);
+          INKHandleMLocRelease (bufp, INK_NULL_MLOC, hdr_loc);
+          goto done;
+     }
+
+     INKfree (user);
+     INKHandleMLocRelease (bufp, hdr_loc, field_loc);
+     INKHandleMLocRelease (bufp, INK_NULL_MLOC, hdr_loc);
+     INKHttpTxnReenable (txnp, INK_EVENT_HTTP_CONTINUE);
+     return;</pre>
+</div>
+</body>
+</html>

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/WritingHandlerFunctions.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/WritingHandlerFunctions.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/WritingHandlerFunctions.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,292 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Writing Handler Functions</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="ActivateContinuations.html">Prev</a> - How to Activate Continuations</div>
+<div class="navnext">Chapter 13. Plugin Configurations - <a accesskey="n" href="PluginConfigurations.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="WritingHandlerFunctions"></a>Writing Handler Functions</h2></div></div></div>
+<p>The handler function is the key component of a  continuation. It is
+      supposed to examine the event and event data, and then do something
+      appropriate. The probable action might be to schedule another event for
+      the continuation to received, to open up a connection to a server, or
+      simply to destroy itself.</p>
+<p>The continuation's handler function is a function of type
+      <code class="function">INKEventFunc</code>. Its arguments are a continuation, an
+      event, and a pointer to some data (this data is passed to the
+      continuation by the caller - do not confuse this data with the
+      continuation's own data, associated by
+      <code class="function">INKContDataSet</code>). When the continuation is called
+      back, the continuation and an event are passed to the handler function.
+      The continuation is a handle to the same continuation that is invoked.
+      The handler function typically has a switch statement to handle the
+      events it receives:</p>
+<pre class="programlisting">static int some_handler (INKcont contp, INKEvent event, void *edata)
+{
+    .....
+   switch(event) {
+       case INK_EVENT_SOME_EVENT_1:
+          do_some_thing_1;
+          return;
+      case INK_EVENT_SOME_EVENT_2:
+         do_some_thing_2;
+         return;
+     case INK_EVENT_SOME_EVENT_3:
+         do_some_thing_3;
+         return;
+     default: break;
+     }
+   return 0;
+}</pre>
+<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>You might notice that a continuation cannot determine if more
+        events are "in flight" toward it. Do not use
+        <code class="function">INKContDestroy</code> to delete a continuation before
+        you make sure that all incoming events, such as those sent because of
+        <code class="function">INKHttpTxnHookAdd</code>, have been handled.</p></td></tr>
+</table></div>
+<p>The following table lists events and the corresponding type of
+      <code>void * </code>data passed to handler functions:</p>
+<div class="informaltable"><table border="1">
+<colgroup>
+<col />
+<col />
+<col />
+</colgroup>
+<tbody>
+<tr>
+<td align="center"><span class="bold"><strong>Event</strong></span></td>
+<td align="center"><span class="bold"><strong>Hook or API Function
+              That Sends the Event</strong></span></td>
+<td align="center"><span class="bold"><strong><code>void *</code> Data
+              Type</strong></span></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_HTTP_READ_REQUEST_HDR</code></td>
+<td><code>INK_HTTP_READ_REQUEST_HDR_HOOK</code></td>
+<td><code>INKHttpTxn</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_HTTP_OS_DNS</code></td>
+<td><code>INK_HTTP_OS_DNS_HOOK</code></td>
+<td><code>INKHttpTxn</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_HTTP_SEND_REQUEST_HDR</code></td>
+<td><code>INK_HTTP_SEND_REQUEST_HDR_HOOK</code></td>
+<td><code>INKHttpTxn</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_HTTP_READ_CACHE_HDR</code></td>
+<td><code>INK_HTTP_READ_CACHE_HDR_HOOK</code></td>
+<td><code>INKHttpTxn</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_HTTP_READ_RESPONSE_HDR</code></td>
+<td><code>INK_HTTP_READ_RESPONSE_HDR_HOOK</code></td>
+<td><code>INKHttpTxn</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_HTTP_SEND_RESPONSE_HDR</code></td>
+<td><code>INK_HTTP_SEND_RESPONSE_HDR_HOOK</code></td>
+<td><code>INKHttpTxn</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_HTTP_SELECT_ALT</code></td>
+<td><code>INK_HTTP_SELECT_ALT_HOOK</code></td>
+<td><code>INKHttpTxn</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_HTTP_TXN_START</code></td>
+<td><code>INK_HTTP_TXN_START_HOOK</code></td>
+<td><code>INKHttpTxn</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_HTTP_TXN_CLOSE</code></td>
+<td><code>INK_HTTP_TXN_CLOSE_HOOK</code></td>
+<td><code>INKHttpTxn</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_HTTP_SSN_START</code></td>
+<td><code>INK_HTTP_SSN_START_HOOK</code></td>
+<td><code>INKHttpSsn</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_HTTP_SSN_CLOSE</code></td>
+<td><code>INK_HTTP_SSN_CLOSE_HOOK</code></td>
+<td><code>INKHttpSsn</code></td>
+</tr>
+<tr>
+<td><code> </code></td>
+<td><code> </code></td>
+<td><code> </code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_NONE</code></td>
+<td><code> </code></td>
+<td><code> </code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_CACHE_LOOKUP_COMPLETE</code></td>
+<td><code>INK_HTTP_CACHE_LOOKUP_COMPLETE_HOOK</code></td>
+<td><code>INKHttpTxn</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_IMMEDIATE</code></td>
+<td><code>INKVConnClose, INKVIOReenable, INKContSchedule</code></td>
+<td><code> </code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_IMMEDIATE</code></td>
+<td><code>INK_HTTP_REQUEST_TRANSFORM_HOOK</code></td>
+<td><code> </code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_IMMEDIATE</code></td>
+<td><code>INK_HTTP_RESPONSE_TRANSFORM_HOOK</code></td>
+<td><code> </code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_CACHE_OPEN_READ</code></td>
+<td><code>INKCacheRead</code></td>
+<td>Cache VC</td>
+</tr>
+<tr>
+<td><code>INK_EVENT_CACHE_OPEN_READ_FAILED</code></td>
+<td><code>INKCacheRead</code></td>
+<td>Error code, see <code>INK_CACHE_ERROR_XXX</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_CACHE_OPEN_WRITE</code></td>
+<td><code>INKCacheWrite</code></td>
+<td>Cache VC</td>
+</tr>
+<tr>
+<td><code>INK_EVENT_CACHE_OPEN_WRITE_FAILED</code></td>
+<td><code>INKCacheWrite</code></td>
+<td>Error code, see <code>INK_CACHE_ERROR_XXX</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_CACHE_REMOVE</code></td>
+<td><code>INKCacheRemove</code></td>
+<td>Nothing</td>
+</tr>
+<tr>
+<td><code>INK_EVENT_CACHE_REMOVE_FAILED</code></td>
+<td><code>INKCacheRemove</code></td>
+<td>Error code, see <code>INK_CACHE_ERROR_XXX</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_NET_ACCEPT</code></td>
+<td><code>INKNetAccept, INKHttpTxnServerIntercept,
+              INKHttpTxnIntercept</code></td>
+<td>Net VConnection</td>
+</tr>
+<tr>
+<td><code>INK_EVENT_NET_ACCEPT_FAILED</code></td>
+<td><code>INKNetAccept, INKHttpTxnServerIntercept,
+              INKHttpTxnIntercept</code></td>
+<td>Nothing</td>
+</tr>
+<tr>
+<td><code>INK_EVENT_HOST_LOOKUP</code></td>
+<td><code>INKHostLookup</code></td>
+<td>Null pointer - error Non null pointer -
+              <code>INKHostLookupResult</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_TIMEOUT</code></td>
+<td><code>INKContSchedule</code></td>
+<td><code> </code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_ERROR</code></td>
+<td><code> </code></td>
+<td><code> </code></td>
+</tr>
+<tr>
+<td><code> </code></td>
+<td><code> </code></td>
+<td><code> </code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_VCONN_READ_READY</code></td>
+<td><code>INKVConnRead</code></td>
+<td><code>INKVConn</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_VCONN_WRITE_READY</code></td>
+<td><code>INKVConnWrite</code></td>
+<td><code>INKVConn</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_VCONN_READ_COMPLETE</code></td>
+<td><code>INKVConnRead</code></td>
+<td><code>INKVConn</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_VCONN_WRITE_COMPLETE</code></td>
+<td><code>INKVConnWrite</code></td>
+<td><code>INKVConn</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_VCONN_EOS</code></td>
+<td><code>INKVConnRead</code></td>
+<td><code>INKVConn</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_NET_CONNECT</code></td>
+<td><code>INKNetConnect</code></td>
+<td><code>INKVConn</code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_NET_CONNECT_FAILED</code></td>
+<td><code>INKNetConnect</code></td>
+<td><code>INKVConn</code></td>
+</tr>
+<tr>
+<td><code> </code></td>
+<td><code> </code></td>
+<td><code> </code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_HTTP_CONTINUE</code></td>
+<td><code> </code></td>
+<td><code> </code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_HTTP_ERROR</code></td>
+<td><code> </code></td>
+<td><code> </code></td>
+</tr>
+<tr>
+<td><code>INK_EVENT_MGMT_UPDATE</code></td>
+<td><code>INKMgmtUpdateRegister</code></td>
+<td><code>NULL</code></td>
+</tr>
+</tbody>
+</table></div>
+<p>The continuation functions are listed below:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p><code class="function">INKContCall</code></p></li>
+<li><p><code class="function">INKContCreate</code></p></li>
+<li><p><code class="function">INKContDataGet</code></p></li>
+<li><p><code class="function">INKContDataSet</code></p></li>
+<li><p><code class="function">INKContDestroy</code></p></li>
+<li><p><code class="function">INKContMutexGet</code></p></li>
+<li><p><code class="function">INKContSchedule</code></p></li>
+</ul></div>
+</div>
+</body>
+</html>

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch03.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch03.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch03.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>Chapter 3. Remap Plugin</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="Roadmap_CreatingPlugins.html">Prev</a> - Roadmap for Creating Plugins</div>
+<div class="navnext">Example: Query Remap Plugin - <a accesskey="n" href="RemapAPI_Example.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="id372633"></a>Chapter 3. Remap Plugin</h2></div></div></div>
+
+<p><b>Table of Contents</b></p>
+<ul>
+<li><span class="section"><a href="ch03.html#GettingStarted">Getting Started</a></span></li>
+<ul><li><a href="ch03.html#RemapHeaderFile">Remap Header File </a></li>
+<li><a href="ch03.html#RequiredFunctions">Required Functions </a></li>
+<li><a href="ch03.html#Configuration">Configuration </a></li>
+</ul>
+<li><span class="section"><a href="RemapAPI_Example.html">Example: Query Remap</a></span></li>
+<li><span class="section"><a href="ch03s02.html">API Function Reference</a></span></li>
+</ul>
+<div></div>
+<p>The Remap plugin provides a more flexible, dynamic way of specifying
+    remap rules. It is not built on top of the Traffic Server APIs and
+    exists solely for the purpose of URL remapping. The remap plugin is not
+    global --it is configured on a per-remap rule basis, which enables you to customize
+  how URLs are redirected based on individual rules in the <code class="filename">remap.config</code> file.</p>
+<p>The Traffic Server Remap API enables a plugin to dynamically map a client request to a target URL. Each plugin is associated with one or more remap rules in <code class="filename">remap.config</code> (an &quot;instance&quot;). If a request URL matches a remap rule's "fromURL", then Traffic Server  calls the plugin-defined remap function for that request.</p>
+<p>&nbsp;</p>
+<p>((Editor's note: additional text TBD; text in this chapter is still under development))</p>
+<div class="section" lang="en">
+  <div class="titlepage"><div><div>
+    <h2 class="title">
+  <a name="GettingStarted"></a>Getting Started</h2></div></div></div>
+  <h3><a name="RemapHeaderFile">Remap Header File </a> </h3>
+<p>The <code class="filename"> remap.h</code> header file contains the Traffic Server remap API.  By default, the header file location  is: <code class="filename">/usr/local/include/ts/remap.h</code></p>
+  <p>&nbsp;</p>
+      <h3><a name="RequiredFunctions">Required Functions </a></h3>
+  <p>A remap plugin is required to implement the following functions: 
+    <ul>
+      
+      <li><a href="ch03s02.html#tsremap_init"><code><b>tsremap_init</b></code></a>: the remap initialization function, called once when the plugin is loaded</li>
+      <li><a href="ch03s02.html#tsremap_new_instance"><code><b>tsremap_new_instance</b></code></a>: a new instance is created for each rule associated with the plugin.  Called each time the plugin used in a remap rule (this function is what processes the pparam values)</li>
+      <li><a href="ch03s02.html#tsremap_remap"><code><b>tsremap_remap</b></code></a>: the entry point used by Traffic Server to find the new URL to which it remaps; called every time a request comes in</li>
+    </ul> </p>
+  
+  <h3><a name="Configuration">Configuration </a></h3>
+          <p>To associate a remap plugin with a remap rule, use the <code>@plugin</code> parameter. See the Admin Guide section (?TBD?) for details on configuring remap plugins</p>
+  
+  
+</div>
+      
+      </ul>
+       </p>
+</div>
+</div>
+</body>
+</html>

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch03s02.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch03s02.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch03s02.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,201 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Remap Plugin Function Reference</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="RemapAPI_Example.html">Prev</a> - Example: Query Remap Plugin</div>
+<div class="navnext">Chapter 4: Header-Based Plugin Examples - <a accesskey="n" href="HeaderBasedPluginEx.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div>
+  <h2 class="title">
+<a name="id372670"></a>Remap Plugin Function Reference  </h2>
+  <ul>
+  <li><a href="#tsremap_init">tsremap_init </a> </li>
+  <li><a href="#tsremap_new_instance">tsremap_new_instance </a> </li>
+  <li><a href="#tsremap_remap">tsremap_remap </a> </li>
+  <li><a href="#tsremap_delete_instance">tsremap_delete_instance </a> </li>
+  <li><a href="#tsremap_os_response">tsremap_os_response </a> </li>
+  </ul>
+  <p></p>
+</div></div></div>
+<h4 class="title"><a name="tsremap_init"></a>tsremap_init</h4>
+<p>The remap plugin initialization function.</p>
+<div class="variablelist">
+  <dl>
+    <dt><span class="term"><b>Prototype</b></span></dt>
+    <dd>
+      <p><code class="code">int tsremap_init(TSRemapInterface *<span class="replaceable">api_info</span>, char *<span class="replaceable">errbuf</span>, int <span class="replaceable">errbuf_size</span>);</code></p>
+    </dd>
+    <dt><span class="term"><b>Arguments</b></span></dt>
+    <dd>
+      <p><code class="code"><em class="replaceable">api_info </em></code> is a <code class="code">TSRemapInterface</code> struct containing remap API interface version information.</p>
+      <p><code class="code"><em class="replaceable">errbuf </em></code> is a buffer to which the plugin may write  error messages about initialization errors.</p>
+      <p><code class="code"><em class="replaceable">errbuf_size </em></code> is the size, in bytes, of the buffer pointed to by <code class="code">errbuf</code>.</p>
+    </dd>
+    <dt><span class="term"><b>Description</b></span></dt>
+    <dd>
+      <p>Traffic Server calls this initialization routine once per remap plugin. All remap plugins are required to implement this function.</p>
+    </dd>
+    <dt><span class="term"><b>Returns</b></span></dt>
+    <dd>
+      <p>The function must return <code class="code">0</code> upon successful plugin initialization.</p></dd></dl></div>
+<h4 class="title"><a name="tsremap_new_instance"></a>tsremap_new_instance</h4>
+<p>The remap instance initialization function.</p>
+<div class="variablelist">
+  <dl>
+    <dt><span class="term"><b>Prototype</b></span></dt>
+    <dd>
+      <p><code class="code">int tsremap_new_instance(int <em class="replaceable">argc</em>, char *<em class="replaceable">argv</em>[], ihandle *<em class="replaceable">ih</em>, char *<em class="replaceable">errbuf</em>, int <span class="replaceable"> </span><em class="replaceable">errbuf_size</em>);</code></p>
+    </dd>
+    <dt><span class="term"><b>Arguments</b></span></dt>
+    <dd>
+      <p><code class="code"><em class="replaceable">argc </em></code> is a count of the number of arguments in the argument vector,<code class="code"><em class="replaceable"> argv</em></code>.</p>
+      <p><code class="code"><em class="replaceable">argv </em></code> is the vector of arguments. The number of arguments in the vector is <code class="code">argc</code>. <code class="code"> argv[0]</code> and <code class="code">argv[1] </code> contain the <code class="code">fromURL</code> and <code class="code">toURL</code>, respectively, from the remap rule in canonical form. Additional plugin parameters can be passed to the plugin by using <code class="code">@pparam=plugin_name</code> in the configuration file.</p>
+      <p>The <code class="code"><em class="replaceable">ih, </em></code> or <code class="code">ihandle</code>, is a opaque pointer that can be used by the plugin to store per-instance data.  Traffic Server  passes this handle to <code class="code">tsremap_remap</code>, <code class="code">tsremap_os_response</code>, and <code class="code">tsremap_delete_instance</code> for operations on this instance.  If memory is allocated for the ihandle, then it can be freed via <code class="code">tsremap_delete_instance</code>.</p>
+      <p><code class="code"><em class="replaceable">errbuf </em></code> is a  buffer to which the plugin may write informational error messages about instance initialization errors.</p>
+      <p><code class="code"><em class="replaceable">errbuf_size </em></code> is the size, in bytes, of the buffer pointed to by <code class="code"><em class="replaceable"> errbuf</em></code>.</p>
+    </dd>
+    <dt><span class="term"><b>Description</b></span></dt>
+    <dd>
+      <p>Traffic Server calls this initialization routine once per remap instance for which the plugin is configured (i.e. once per rule in <code>remap.config</code> that has <code class="code">@plugin=</code>).  All remap plugins are required to implement this function.</p>
+    </dd>
+    <dt><span class="term"><b>Returns</b></span></dt>
+    <dd>
+      <p>The function must return <code class="code">0</code> on successful instance initialization.</p>
+    </dd>
+  </dl>
+</div>
+<h4 class="title"><a name="tsremap_remap"></a>tsremap_remap</h4>
+<p>Remap request function.</p>
+<div class="variablelist">
+  <dl>
+    <dt><span class="term"><b>Prototype</b></span></dt>
+    <dd>
+      <p><code class="code">int tsremap_remap(ihandle<em class="replaceable"> ih</em>, rhandle <span class="replaceable"> </span><em class="replaceable">rh</em>, TSRemapRequestInfo *<em class="replaceable">rri</em>)</code></p>
+    </dd>
+    <dt><span class="term"><b>Arguments</b></span></dt>
+    <dd>
+      <p><code class="code"><em class="replaceable">ih </em></code> is the ihandle for the instance set during <code>tsremap_new_instance</code>.</p>
+      <p><code class="code"><em class="replaceable">rh </em></code> is the <code>INKHttpTxn</code> for the request.  This allows remap plugins to use APIs from<code> ts.h</code>.</p>
+      <p><code class="code"><em class="replaceable">rri </em></code> is the <code>TSRemapRequestInfo</code> struct contains input and output parameters for the remap operation for a single request. The struct members are as follows:</p>
+      <h5 class="title">Input (read-only) members</h5>
+      <pre class="programlisting">
+    unsigned long size;          /* sizeof(TSRemapRequestInfo) */
+
+    int request_port;            /* request port number */
+    int remap_from_port;         /* fromURL port number (from remap rule) */
+    int remap_to_port;           /* toURL port number (from remap rule) */
+
+    const char *orig_url;        /* request URL */
+    int orig_url_size;           /* request URL size */
+
+    const char *request_host;    /* request host string (not NULL terminated) */
+    int request_host_size;       /* request host string size */
+
+    const char *remap_from_host; /* fromURL host (from remap rule, not NULL terminated) */
+    int remap_from_host_size;    /* fromURL host size */
+
+    const char *remap_to_host;   /* toURL host (from remap rule, not NULL terminated) */
+    int remap_to_host_size;      /* toURL host size */
+    
+    const char *request_path;    /* request path (from client, not NULL terminated) */
+    int request_path_size;       /* request path size */
+
+    const char *remap_from_path; /* fromURL path (from remap rule, not NULL terminated) */
+    int remap_from_path_size;    /* fromURL path size */
+
+    const char *remap_to_path;   /* toURL path (from remap rule, not NULL terminated) */
+    int remap_to_path_size;      /* toURL path size */
+
+    const char *request_cookie;  /* request 'Cookie:' value string (from client, not NULL terminated) */
+    int request_cookie_size;     /* request cookie header size */
+
+    const char *request_query;   /* request query string (from client, not NULL terminated) */
+    int request_query_size;      /* request query string size. */
+
+    const char *request_matrix;  /* request matrix string (from client, not NULL terminated) */
+    int request_matrix_size;     /* request matrix string size. */
+    
+    const char *from_scheme;     /* The "from" scheme (e.g. http) */
+    int from_scheme_len;         /* The len of the "from" scheme */
+
+    const char *to_scheme;       /* The "to" scheme (e.g. http) */
+    int to_scheme_len;           /* The len of the "to" scheme */
+
+    unsigned int client_ip;      /* The client IP is an unsigned 32-bit network byte order (big-endian) value */
+</pre>
+      <h5 class="title">Output members</h5>
+      <pre class="programlisting">
+    char new_host[TSREMAP_RRI_MAX_HOST_SIZE];   /* new host string */
+    int new_host_size;                          /* new host string size (if 0 - do not change request host) */
+    int new_port;                               /* new port number (0 - do not change request port) */
+    char new_path[TSREMAP_RRI_MAX_PATH_SIZE];   /* new path string */
+    int new_path_size;                          /* new path string size (0 - do not change request path) */
+    char new_query[TSREMAP_RRI_MAX_PATH_SIZE];  /* new query string */
+    int new_query_size;                         /* new query string size (0 - do not change request query) */
+    char new_matrix[TSREMAP_RRI_MAX_PATH_SIZE]; /* new matrix parameter string */
+    int new_matrix_size;                        /* new matrix parameter string size (0 - do not change matrix parameters) */
+    char redirect_url[TSREMAP_RRI_MAX_REDIRECT_URL];    /* redirect url (to redirect/reject request) */
+    int redirect_url_size;                      /* redirect url size (0 - empty redirect url string) */
+    int require_ssl;                            /* Require the toScheme to become SSL (e.g. HTTPS).  */
+                                                /*    0 -&gt; Disable SSL if toScheme is SSL */                                                 
+                                                /*    1 -&gt; Enable SSL if toScheme is not SSL */
+                                                /*   -1 (default) -&gt; Don't modify scheme */
+</pre>
+    </dd>
+    <dt><span class="term"><b>Returns</b></span></dt>
+    <dd>
+      <p>A non-zero return value indicates  that the plugin modified the output members of the <code class="replaceable"> rri </code> argument. Traffic Server  uses those values to modify the client request.  Otherwise, the plugin can return <code class="code">0</code> to indicate that Traffic Server should use the default <code class="code">toURL</code> from the remap rule.</p>
+    </dd>
+    <dt><span class="term"><b>Description</b></span></dt>
+    <dd>
+      <p>This is the main remap function in which the plugin can modify the client request based on the <code class="replaceable">rri</code> input members.  The function must be reentrant, as TS may call the remap function concurrently from multiple threads.</p>
+      <p>The function is called for client requests matching the remap rule associated with the plugin  (based on <code class="code">fromURL</code>).  If multiple rules match the client request, then Traffic Server uses the first match. In relation to Traffic Server's HTTP transaction APIs, <code class="code">tsremap_remap</code> is invoked before <code class="code">INK_HTTP_READ_REQUEST_HDR_HOOK</code> and before a cache lookup.  Thus, the cache lookup key is altered if the plugin modifies the request.</p>
+    </dd>
+  </dl>
+</div>
+<h4 class="title"><a name="tsremap_delete_instance"></a>tsremap_delete_instance</h4>
+<div class="variablelist">
+  <dl>
+    <dt><span class="term"><b>Prototype</b></span></dt>
+    <dd>
+      <p><code class="code">void tsremap_delete_instance(ihandle <span class="replaceable">ih</span>)</code></p>
+    </dd>
+    <dt><span class="term"><b>Arguments</b></span></dt>
+    <dd>
+      <p><code class="code"><em class="replaceable">ih </em></code> is the ihandle for the instance set during <code>tsremap_new_instance</code>.</p>
+    </dd>
+    <dt><span class="term"><b>Description</b></span></dt>
+    <dd>
+      <p>The plugin can optionally define this function, which is called when a remap instance is released. For example: when <code>remap.config</code> is reloaded, all existing instances are released and new instances are created.</p>
+    </dd>
+  </dl>
+</div>
+<h4 class="title"><a name="tsremap_os_response"></a>tsremap_os_response</h4>
+<div class="variablelist">
+  <dl>
+    <dt><span class="term"><b>Prototype</b></span></dt>
+    <dd>
+      <p><code class="code">void tsremap_os_response(ihandle <span class="replaceable">ih</span>, rhandle <span class="replaceable">rh</span>, int <span class="replaceable">os_response_type</span>)</code></p>
+    </dd>
+    <dt><span class="term"><b>Arguments</b></span></dt>
+    <dd>
+      <p><code class="code"><em class="replaceable">ih </em></code> is the ihandle for the instance set during <code>tsremap_new_instance</code>.</p>
+      <p><code class="code"><em class="replaceable">rh </em></code> is the <code>INKHttpTxn</code> for the request.  It enables  remap plugins to use APIs from <code>ts.h</code></p>
+      <p><code class="code"><em class="replaceable">os_response_type </em></code> is the value of <code>INKServerState</code> that indicates the state of the response.</p>
+    </dd>
+    <dt><span class="term"><b>Description</b></span></dt>
+    <dd>
+      <p>This optional function is called after Traffic Server receives a response from the origin server. If the request is served from cache, then the function is not called.</p>
+    </dd>
+  </dl>
+</div>
+<p>&nbsp;</p>
+</div>
+</body>
+</html>

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch03s03.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch03s03.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch03s03.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,32 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Functions You Need to Implement</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="ch03s02.html">Prev</a> - Remap.API.h</div>
+<div class="navnext">Examples - <a accesskey="n" href="ch03s04.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="id372696"></a>Functions You Need to Implement</h2></div></div></div>
+<p>In order to use a remap plugin, you must implement the functions
+      below:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p><b>Initialization function</b>: called only once, when the plugin is
+      loaded <a href="GetingStarted.html#PluginInitialization" title="Plugin Initialization">Plugin Initialization</a></p></li>
+<li><p><b>Instantiation function: </b>called each time it's used in a remap
+      rule (this function is what processes the pparam values)</p></li>
+<li><p><b>"Processing" function:</b> the entry point used by Traffic Server
+          to find the new URL to which it remaps; called every time a request
+      comes in</p></li>
+<li><p>(Destruction function<b>?</b>): (optional) a "cleanup" function
+      called only if/when the plugin is unloaded</p></li>
+</ul></div>
+<p>((Editor's note: text TBD; above text still under development))</p>
+</div>
+</body>
+</html>

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch03s04.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch03s04.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch03s04.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,19 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Examples</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="ch03s03.html">Prev</a> - Functions You Need to Implement</div>
+<div class="navnext">Chapter 4. Header-Based Plugin Examples - <a accesskey="n" href="HeaderBasedPluginEx.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="id372809"></a>Examples</h2></div></div></div>
+<p>((Editor's note: text TBD))</p>
+</div>
+</body>
+</html>

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch07.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch07.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch07.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,39 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Chapter 7. Cache Plugin</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="NewProtocolPlugins.html">Prev</a> - Chapter 6. New Protocol Plugins</div>
+<div class="navnext">Reads and Writes - <a accesskey="n" href="ch07s02.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="id378017"></a>Chapter 7. Cache Plugin</h2></div></div></div>
+
+<p><b>Table of Contents</b></p>
+<ul>
+<li><span class="section"><a href="ch07.html#id378027">Getting Started</a></span></li>
+<li><span class="section"><a href="ch07s02.html">Reads and Writes</a></span></li>
+<li><span class="section"><a href="ch07s03.html">State Diagram</a></span></li>
+<li><span class="section"><a href="ch07s04.html">Sample Plugin</a></span></li>
+<li><span class="section"><a href="ch07s05.html">Cache Events</a></span></li>
+</ul>
+
+
+<p>The Traffic Server cache plugin replaces the cache engine and the
+    underlying storage of Traffic Server's built-in cache. Writing your own
+    plugin enables you to control the storage mechanisms (ie, memory, disk,
+    network storage) as well as the cache replacement policy (ie, LRU,
+    LFU).</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="id378027"></a>Getting Started</h2></div></div></div>
+<p>((Editor's note: text TBD))</p>
+</div>
+</div>
+</body>
+</html>

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch07s02.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch07s02.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch07s02.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,19 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Reads and Writes</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="ch07.html">Prev</a> - Chapter 7. Cache Plugin</div>
+<div class="navnext">State Diagram - <a accesskey="n" href="ch07s03.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="id378037"></a>Reads and Writes</h2></div></div></div>
+<p>((Editor's note: text TBD))</p>
+</div>
+</body>
+</html>

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch07s03.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch07s03.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch07s03.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,19 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>State Diagram</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="ch07s02.html">Prev</a> - Reads and Writes</div>
+<div class="navnext">Sample Plugin - <a accesskey="n" href="ch07s04.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="id378046"></a>State Diagram</h2></div></div></div>
+<p>((Editor's note: text forthcoming))</p>
+</div>
+</body>
+</html>

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch07s04.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch07s04.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch07s04.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,19 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Sample Plugin</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="ch07s03.html">Prev</a> - State Diagram</div>
+<div class="navnext">Cache Events - <a accesskey="n" href="ch07s05.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="id378056"></a>Sample Plugin</h2></div></div></div>
+<p>((Editor's Note: text forthcoming))</p>
+</div>
+</body>
+</html>

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch07s05.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch07s05.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch07s05.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,20 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Cache Events</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="ch07s04.html">Prev</a> - Sample Plugin</div>
+<div class="navnext">Chapter 8. HTTP Hooks and Transactions - <a accesskey="n" href="HTTPHooksAndTransactions.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="id378066"></a>Cache Events</h2></div></div></div>
+<p> ((Editor's Note: This section may be added to Cache plugin chapter or elsewhere in the
+      doc))</p>
+</div>
+</body>
+</html>

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch18s09s04.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch18s09s04.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/ch18s09s04.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Handle Release Functions</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="AlternateSelectionFunctions.html">Prev</a> - Alternate Selection Functions</div>
+<div class="navnext">Marshal Buffers - <a accesskey="n" href="MarshallBuffersFunctions.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="id400125"></a>Handle Release Functions</h3></div></div></div>
+
+
+<ul><b>
+<li><a href="ch18s09s04.html#INKHandleMLocRelease">INKHandleMLocRelease</a></li>
+
+</b></ul>
+
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKHandleMLocRelease"></a>INKHandleMLocRelease</h4></div></div></div>
+<p>Releases <code>INKMLoc</code> handles.</p>
+<div class="variablelist"><dl>
+<dt><span class="term"><b>Prototype</b></span></dt>
+<dd><p><code class="code">INKReturnCode INKHandleMLocRelease (INKMBuffer
+                <em class="replaceable"><code>bufp</code></em>, INKMLoc
+                <em class="replaceable"><code>parent</code></em>, INKMLoc
+                <em class="replaceable"><code>mloc</code></em>)</code></p></dd>
+<dt><span class="term"><b>Arguments</b></span></dt>
+<dd>
+<p><code class="code"><em class="replaceable"><code>bufp </code></em></code> is the
+                marshal buffer containing the <code class="function">INKMLoc</code> to
+                be released.</p>
+<p><code class="code"><em class="replaceable"><code>parent </code></em></code> is the
+                location of the parent object from which the handle was
+                created.</p>
+<p><code class="code"><em class="replaceable"><code>mloc </code></em></code> is the
+                <code class="function">INKMLoc</code> to be released.</p>
+</dd>
+<dt><span class="term"><b>Description</b></span></dt>
+<dd>
+  <p>Releases the <code class="function">INKMLoc</code> mloc created
+                from the <code class="function">INKMLoc</code> parent. If there is no
+                parent <code class="function">INKMLoc</code>, then use
+                <code class="code">INK_NULL_MLOC</code>. See <a href="RlsMarshalBufHandles.html" title="Release Marshal Buffer Handles">Release Marshal Buffer Handle</a> for details about parent
+                <code class="function">INKMLocs</code> and the use of the null
+        parent.</p></dd>
+<dt><span class="term"><b>Returns</b></span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if the handle is successfully
+                released.</p>
+<p><code class="code">INK_ERROR</code> if the hook is not added.</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</body>
+</html>

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

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/css/ydoc.css
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/css/ydoc.css (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/css/ydoc.css Tue Dec 24 18:32:14 2013
@@ -0,0 +1,106 @@
+body { background: #fff; margin: 4px; }
+
+h1, h2, h3, h4, h5, h6 {
+  color: #036;
+  font-family: verdana, arial, sans-serif;
+  font-weight: bold;
+  margin: 0.5em 0em;
+}
+h1 {font-size: 167%;}
+h1.title {border-bottom: 1px solid #036; }
+h2, div.section h2, div.sect1 h2, div.sect2 h2 {font-size: 152%;}
+div.chapter h2 {font-size: 167%; }
+h2.subtitle {font-size: 122%;} 
+h3 {font-size: 122%;}
+
+.note th, .caution th, .warning th, .tip th {
+  color: #036;
+  font-family: verdana, arial, sans-serif;
+  font-size: 122%;
+  font-weight: bold;
+}
+.note, .caution, .warning, .tip { margin-top: 0.5em; }
+
+td, th { padding: 2px; }
+th {font-weight: bold; }
+
+p { margin: 0.5em 0em; }
+
+pre { background: #eee; border: 1px solid gray; padding: 0.5em; }
+pre.configline { white-space: pre-wrap; padding-left: 1.5em; text-indent: -1em; }
+.cmdsynopsis p { background: #ddd; border-left: 1px solid black; padding: 2px 4px; }
+pre, code, .cmdsynopsis { font-family: courier; font-size: 100%; }
+strong.userinput, strong.userinput code, .classname { font-weight: bold; }
+em, cite { font-style: italic; }
+strong, .guibutton, .guiicon, .guilabel, .guimenu, .guimenuitem, .guisubmenu {font-weight: bold;}
+.replaceable, .replaceable code { font-style: italic; color: #036; }
+.remark { color: red; }
+.command { color: #303; font-family: monospace; font-weight: bold;}
+
+ul { list-style-type: disc; margin-left: 20px;}
+ol { list-style-type: decimal; margin-left: 20px;}
+ol ol { list-style-type: lower-alpha;}
+dl { margin-left: 20px; }
+dd { margin-left: 20px; }
+
+/*
+ * Title, search box, home and index navigation
+ */
+div.doctitle {
+	background: #FFFFFF;
+	border-top-width: 0px;
+	border-right-width: 0px;
+	border-bottom-width: 1px;
+	border-left-width: 0px;
+	border-top-style: solid;
+	border-right-style: solid;
+	border-bottom-style: solid;
+	border-left-style: solid;
+	border-top-color: #000000;
+	border-right-color: #000000;
+	border-bottom-color: #000000;
+	border-left-color: #000000;
+}
+div.doctitle h1 { color: #000000; display: inline; vertical-align: 50%; font-size: 197%; top:-8px;}
+
+div.doctitle img {padding: 0 30px 0 0;}
+a img { border-width: 0px }
+
+#cse-search-box {
+display:inline;
+float:right;
+margin:15px 5px 0;
+}
+
+div.navheader { font-weight: bold; color: #036;  padding: 2px; font-family: verdana, arial, sans-serif; }
+div.navheader a { font-size: 100%; }
+div.navnext { text-align: right; }
+div.navprev { float: left; margin-left:280px; }
+
+/*
+ * Side TOC styling. Move the TOC to the left, move everything else over
+ * to make room.  
+ */
+div#toc { position: absolute; top: 75px; left: 0px; padding: 5px; width: 270px; }
+div.book, div.article, div.index, div.chapter, div.section, div.preface, div.appendix, div.glossary, div.sect1, div.sect2 {
+  margin-left: 280px;
+}
+
+div.section div.section, div.article div.section, div.chapter div.section, div.preface div.section, div.appendix div.section, div.index div.index, div.chapter div.sect1, div.preface div.sect1, div.appendix div.sect1, div.sect1 div.sect2 {
+  margin-left: 0px;
+  margin-top: 1.5em;
+}
+
+
+/*
+ * Highlight the selected link in the TOC.
+ */
+.expanded, .expanded:link, .expanded:visited, .expanded:hover {
+  margin-left: 2px;
+  text-decoration: none;
+  font-weight: bold;
+  padding: 2px;
+  background: #606;
+  color: #fff;
+}
+.leftcol{float:left; margin: 0 25px 0 0;}

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/Protocol_state_diagram.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/Protocol_state_diagram.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/Uses.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/Uses.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/blacklist75.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/blacklist75.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/docbook/caution.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/docbook/caution.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/docbook/important.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/docbook/important.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/docbook/note.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/docbook/note.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/docbook/tip.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/docbook/tip.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/docbook/ts75.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/docbook/ts75.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/event_sys80.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/event_sys80.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/evt_plugin120.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/evt_plugin120.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/http_header_struct.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/http_header_struct.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/http_headers.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/http_headers.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/http_state2.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/http_state2.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/marshall_buffers.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/marshall_buffers.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/plugin_process.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/plugin_process.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/protocol_evt.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/protocol_evt.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/protocol_sm_big.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/protocol_sm_big.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/transact75.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/transact75.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/transact_hook75.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/transact_hook75.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/txn_sm.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/txn_sm.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/vconn_buf_output.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/vconn_buf_output.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/vconn_buffer.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/vconn_buffer.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/vconnection.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/vconnection.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/vconnection1.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/vconnection1.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/vconnection2.jpg
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/trafficserver/trunk/content/docs/v2/sdk/images/vconnection2.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: websites/staging/trafficserver/trunk/content/docs/v2/sdk/index.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/v2/sdk/index.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/v2/sdk/index.html Tue Dec 24 18:32:14 2013
@@ -0,0 +1,34 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>Apache Traffic Server Software Developers Kit</title>
+<!--#include file="top.html" -->
+<div class="navheader">
+<div class="navprev"></div>
+<div class="navnext">Preface - <a accesskey="n" href="Preface.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="book" lang="en">
+<div class="titlepage">
+<div>
+<div><h1 class="title">
+<a name="id334484"></a>Apache Traffic Server&trade; Software Developers Kit</h1></div>
+<div><h2 class="subtitle">Programmers Guide</h2></div>
+<div>
+  <p class="releaseinfo"><i>In progress</i></p></div>
+<div><div class="legalnotice">
+<a name="id306665"></a>
+</div></div>
+<div><div class="abstract">
+<p class="title"><b>Abstract</b></p>
+<p>The <span class="emphasis"><em>Traffic Server Software Developers Kit</em></span>
+      shows you how to create plugins using the Traffic Server SDK.</p>
+</div></div>
+</div>
+<hr />
+<p>This documentation is a work in progress.  It was originally written for a previous, commercially-available version of Traffic Server that  supported different operating systems and more functions than the current version.  As a result, some of the sections may refer to functionality that no longer exists.</p>
+</div>
+</div>
+</body>
+</html>

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