Modified:
websites/staging/trafficserver/trunk/content/docs/trunk/sdk/mutex-guide/index.en.html
==============================================================================
---
websites/staging/trafficserver/trunk/content/docs/trunk/sdk/mutex-guide/index.en.html
(original)
+++
websites/staging/trafficserver/trunk/content/docs/trunk/sdk/mutex-guide/index.en.html
Thu Sep 1 21:34:56 2011
@@ -181,15 +181,15 @@ Refer to the example below, which uses a
called <code>txn_contp</code>.</p>
<div class="codehilite"><pre> <span class="kt">void</span> <span
class="nf">TSPluginInit</span><span class="p">(</span><span
class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span
class="k">const</span> <span class="kt">char</span> <span
class="o">*</span><span class="n">argv</span><span class="p">[])</span>
<span class="p">{</span>
- <span class="cm">/* Plugin continuation */</span>
- <span class="n">TSCont</span> <span class="n">contp</span><span
class="p">;</span>
- <span class="k">if</span> <span class="p">((</span><span
class="n">contp</span> <span class="o">=</span> <span
class="n">TSContCreate</span> <span class="p">(</span><span
class="n">plugin_cont_handler</span><span class="p">,</span> <span
class="nb">NULL</span><span class="p">))</span> <span class="o">==</span> <span
class="n">TS_ERROR_PTR</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">LOG_ERROR</span><span class="p">(</span><span
class="s">"TSContCreate"</span><span class="p">);</span>
- <span class="p">}</span> <span class="k">else</span> <span
class="p">{</span>
- <span class="k">if</span> <span class="p">(</span><span
class="n">TSHttpHookAdd</span> <span class="p">(</span><span
class="n">TS_HTTP_TXN_START_HOOK</span><span class="p">,</span> <span
class="n">contp</span><span class="p">)</span> <span class="o">==</span> <span
class="n">TS_ERROR</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">LOG_ERROR</span><span class="p">(</span><span
class="s">"TSHttpHookAdd"</span><span class="p">);</span>
- <span class="p">}</span>
- <span class="p">}</span>
+ <span class="cm">/* Plugin continuation */</span>
+ <span class="n">TSCont</span> <span class="n">contp</span><span
class="p">;</span>
+ <span class="k">if</span> <span class="p">((</span><span
class="n">contp</span> <span class="o">=</span> <span
class="n">TSContCreate</span> <span class="p">(</span><span
class="n">plugin_cont_handler</span><span class="p">,</span> <span
class="nb">NULL</span><span class="p">))</span> <span class="o">==</span> <span
class="n">TS_ERROR_PTR</span><span class="p">)</span> <span class="p">{</span>
+ <span class="n">LOG_ERROR</span><span class="p">(</span><span
class="s">"TSContCreate"</span><span class="p">);</span>
+ <span class="p">}</span> <span class="k">else</span> <span
class="p">{</span>
+ <span class="k">if</span> <span class="p">(</span><span
class="n">TSHttpHookAdd</span> <span class="p">(</span><span
class="n">TS_HTTP_TXN_START_HOOK</span><span class="p">,</span> <span
class="n">contp</span><span class="p">)</span> <span class="o">==</span> <span
class="n">TS_ERROR</span><span class="p">)</span> <span class="p">{</span>
+ <span class="n">LOG_ERROR</span><span
class="p">(</span><span class="s">"TSHttpHookAdd"</span><span
class="p">);</span>
+ <span class="p">}</span>
+ <span class="p">}</span>
<span class="p">}</span>
</pre></div>
@@ -198,31 +198,31 @@ called <code>txn_contp</code>.</p>
and then register it to be called back at
<code>TS_HTTP_TXN_CLOSE_HOOK</code>:</p>
<div class="codehilite"><pre> <span class="k">static</span> <span
class="kt">int</span> <span class="nf">plugin_cont_handler</span><span
class="p">(</span><span class="n">TSCont</span> <span
class="n">contp</span><span class="p">,</span> <span class="n">TSEvent</span>
<span class="n">event</span><span class="p">,</span> <span
class="kt">void</span> <span class="o">*</span><span
class="n">edata</span><span class="p">)</span>
<span class="p">{</span>
- <span class="n">TSHttpTxn</span> <span class="n">txnp</span> <span
class="o">=</span> <span class="p">(</span><span
class="n">TSHttpTxn</span><span class="p">)</span><span
class="n">edata</span><span class="p">;</span>
- <span class="n">TSCont</span> <span class="n">txn_contp</span><span
class="p">;</span>
+ <span class="n">TSHttpTxn</span> <span class="n">txnp</span> <span
class="o">=</span> <span class="p">(</span><span
class="n">TSHttpTxn</span><span class="p">)</span><span
class="n">edata</span><span class="p">;</span>
+ <span class="n">TSCont</span> <span class="n">txn_contp</span><span
class="p">;</span>
- <span class="k">switch</span> <span class="p">(</span><span
class="n">event</span><span class="p">)</span> <span class="p">{</span>
- <span class="k">case</span> <span
class="n">TS_EVENT_HTTP_TXN_START</span>:
- <span class="cm">/* Create the HTTP txn continuation */</span>
- <span class="n">txn_contp</span> <span class="o">=</span>
<span class="n">TSContCreate</span><span class="p">(</span><span
class="n">txn_cont_handler</span><span class="p">,</span> <span
class="nb">NULL</span><span class="p">);</span>
-
- <span class="cm">/* Register txn_contp to be called back when
txnp reaches TS_HTTP_TXN_CLOSE_HOOK */</span>
- <span class="k">if</span> <span class="p">(</span><span
class="n">TSHttpTxnHookAdd</span> <span class="p">(</span><span
class="n">txnp</span><span class="p">,</span> <span
class="n">TS_HTTP_TXN_CLOSE_HOOK</span><span class="p">,</span> <span
class="n">txn_contp</span><span class="p">)</span> <span class="o">==</span>
<span class="n">TS_ERROR</span><span class="p">)</span> <span
class="p">{</span>
- <span class="n">LOG_ERROR</span><span
class="p">(</span><span class="s">"TSHttpTxnHookAdd"</span><span
class="p">);</span>
- <span class="p">}</span>
+ <span class="k">switch</span> <span class="p">(</span><span
class="n">event</span><span class="p">)</span> <span class="p">{</span>
+ <span class="k">case</span> <span
class="n">TS_EVENT_HTTP_TXN_START</span>:
+ <span class="cm">/* Create the HTTP txn continuation
*/</span>
+ <span class="n">txn_contp</span> <span class="o">=</span>
<span class="n">TSContCreate</span><span class="p">(</span><span
class="n">txn_cont_handler</span><span class="p">,</span> <span
class="nb">NULL</span><span class="p">);</span>
+
+ <span class="cm">/* Register txn_contp to be called back
when txnp reaches TS_HTTP_TXN_CLOSE_HOOK */</span>
+ <span class="k">if</span> <span class="p">(</span><span
class="n">TSHttpTxnHookAdd</span> <span class="p">(</span><span
class="n">txnp</span><span class="p">,</span> <span
class="n">TS_HTTP_TXN_CLOSE_HOOK</span><span class="p">,</span> <span
class="n">txn_contp</span><span class="p">)</span> <span class="o">==</span>
<span class="n">TS_ERROR</span><span class="p">)</span> <span
class="p">{</span>
+ <span class="n">LOG_ERROR</span><span
class="p">(</span><span class="s">"TSHttpTxnHookAdd"</span><span
class="p">);</span>
+ <span class="p">}</span>
+
+ <span class="k">break</span><span class="p">;</span>
+
+ <span class="nl">default:</span>
+ <span class="n">TSAssert</span><span
class="p">(</span><span class="o">!</span><span class="s">"Unexpected
Event"</span><span class="p">);</span>
+ <span class="k">break</span><span class="p">;</span>
+ <span class="p">}</span>
+
+ <span class="k">if</span> <span class="p">(</span><span
class="n">TSHttpTxnReenable</span><span class="p">(</span><span
class="n">txnp</span><span class="p">,</span> <span
class="n">TS_EVENT_HTTP_CONTINUE</span><span class="p">)</span> <span
class="o">==</span> <span class="n">TS_ERROR</span><span class="p">)</span>
<span class="p">{</span>
+ <span class="n">LOG_ERROR</span><span class="p">(</span><span
class="s">"TSHttpTxnReenable"</span><span class="p">);</span>
+ <span class="p">}</span>
- <span class="k">break</span><span class="p">;</span>
-
- <span class="nl">default:</span>
- <span class="n">TSAssert</span><span class="p">(</span><span
class="o">!</span><span class="s">"Unexpected Event"</span><span
class="p">);</span>
- <span class="k">break</span><span class="p">;</span>
- <span class="p">}</span>
-
- <span class="k">if</span> <span class="p">(</span><span
class="n">TSHttpTxnReenable</span><span class="p">(</span><span
class="n">txnp</span><span class="p">,</span> <span
class="n">TS_EVENT_HTTP_CONTINUE</span><span class="p">)</span> <span
class="o">==</span> <span class="n">TS_ERROR</span><span class="p">)</span>
<span class="p">{</span>
- <span class="n">LOG_ERROR</span><span class="p">(</span><span
class="s">"TSHttpTxnReenable"</span><span class="p">);</span>
- <span class="p">}</span>
-
- <span class="k">return</span> <span class="mi">0</span><span
class="p">;</span>
+ <span class="k">return</span> <span class="mi">0</span><span
class="p">;</span>
<span class="p">}</span>
</pre></div>
@@ -231,23 +231,23 @@ and then register it to be called back a
is closed. If you forget to do this, then your plugin will have a memory leak.
</p>
<div class="codehilite"><pre> <span class="k">static</span> <span
class="kt">int</span> <span class="nf">txn_cont_handler</span><span
class="p">(</span><span class="n">TSCont</span> <span
class="n">txn_contp</span><span class="p">,</span> <span
class="n">TSEvent</span> <span class="n">event</span><span class="p">,</span>
<span class="kt">void</span> <span class="o">*</span><span
class="n">edata</span><span class="p">)</span>
<span class="p">{</span>
- <span class="n">TSHttpTxn</span> <span class="n">txnp</span><span
class="p">;</span>
- <span class="k">switch</span> <span class="p">(</span><span
class="n">event</span><span class="p">)</span> <span class="p">{</span>
- <span class="k">case</span> <span
class="n">TS_EVENT_HTTP_TXN_CLOSE</span>:
- <span class="n">txnp</span> <span class="o">=</span> <span
class="p">(</span><span class="n">TSHttpTxn</span><span class="p">)</span>
<span class="n">edata</span><span class="p">;</span>
- <span class="n">TSContDestroy</span><span
class="p">(</span><span class="n">txn_contp</span><span class="p">);</span>
- <span class="k">break</span><span class="p">;</span>
-
- <span class="nl">default:</span>
- <span class="n">TSAssert</span><span class="p">(</span><span
class="o">!</span><span class="s">"Unexpected Event"</span><span
class="p">);</span>
- <span class="k">break</span><span class="p">;</span>
- <span class="p">}</span>
-
- <span class="k">if</span> <span class="p">(</span><span
class="n">TSHttpTxnReenable</span><span class="p">(</span><span
class="n">txnp</span><span class="p">,</span> <span
class="n">TS_EVENT_HTTP_CONTINUE</span><span class="p">)</span> <span
class="o">==</span> <span class="n">TS_ERROR</span><span class="p">)</span>
<span class="p">{</span>
- <span class="n">LOG_ERROR</span><span class="p">(</span><span
class="s">"TSHttpTxnReenable"</span><span class="p">);</span>
- <span class="p">}</span>
+ <span class="n">TSHttpTxn</span> <span class="n">txnp</span><span
class="p">;</span>
+ <span class="k">switch</span> <span class="p">(</span><span
class="n">event</span><span class="p">)</span> <span class="p">{</span>
+ <span class="k">case</span> <span
class="n">TS_EVENT_HTTP_TXN_CLOSE</span>:
+ <span class="n">txnp</span> <span class="o">=</span> <span
class="p">(</span><span class="n">TSHttpTxn</span><span class="p">)</span>
<span class="n">edata</span><span class="p">;</span>
+ <span class="n">TSContDestroy</span><span
class="p">(</span><span class="n">txn_contp</span><span class="p">);</span>
+ <span class="k">break</span><span class="p">;</span>
+
+ <span class="nl">default:</span>
+ <span class="n">TSAssert</span><span
class="p">(</span><span class="o">!</span><span class="s">"Unexpected
Event"</span><span class="p">);</span>
+ <span class="k">break</span><span class="p">;</span>
+ <span class="p">}</span>
+
+ <span class="k">if</span> <span class="p">(</span><span
class="n">TSHttpTxnReenable</span><span class="p">(</span><span
class="n">txnp</span><span class="p">,</span> <span
class="n">TS_EVENT_HTTP_CONTINUE</span><span class="p">)</span> <span
class="o">==</span> <span class="n">TS_ERROR</span><span class="p">)</span>
<span class="p">{</span>
+ <span class="n">LOG_ERROR</span><span class="p">(</span><span
class="s">"TSHttpTxnReenable"</span><span class="p">);</span>
+ <span class="p">}</span>
- <span class="k">return</span> <span class="mi">0</span><span
class="p">;</span>
+ <span class="k">return</span> <span class="mi">0</span><span
class="p">;</span>
<span class="p">}</span>
</pre></div>
@@ -267,39 +267,39 @@ the state of the HTTP transaction:</p>
back with <code>TS_EVENT_HTTP_TXN_START</code></p>
<div class="codehilite"><pre> <span class="k">static</span> <span
class="kt">int</span> <span class="nf">plugin_cont_handler</span><span
class="p">(</span><span class="n">TSCont</span> <span
class="n">contp</span><span class="p">,</span> <span class="n">TSEvent</span>
<span class="n">event</span><span class="p">,</span> <span
class="kt">void</span> <span class="o">*</span><span
class="n">edata</span><span class="p">)</span>
<span class="p">{</span>
- <span class="n">TSHttpTxn</span> <span class="n">txnp</span> <span
class="o">=</span> <span class="p">(</span><span
class="n">TSHttpTxn</span><span class="p">)</span><span
class="n">edata</span><span class="p">;</span>
- <span class="n">TSCont</span> <span class="n">txn_contp</span><span
class="p">;</span>
- <span class="n">ContData</span> <span class="o">*</span><span
class="n">contData</span><span class="p">;</span>
-
- <span class="k">switch</span> <span class="p">(</span><span
class="n">event</span><span class="p">)</span> <span class="p">{</span>
- <span class="k">case</span> <span
class="n">TS_EVENT_HTTP_TXN_START</span>:
- <span class="cm">/* Create the HTTP txn continuation */</span>
- <span class="n">txn_contp</span> <span class="o">=</span>
<span class="n">TSContCreate</span><span class="p">(</span><span
class="n">txn_cont_handler</span><span class="p">,</span> <span
class="nb">NULL</span><span class="p">);</span>
-
- <span class="cm">/* Allocate and initialize the txn_contp data
*/</span>
- <span class="n">contData</span> <span class="o">=</span> <span
class="p">(</span><span class="n">ContData</span><span class="o">*</span><span
class="p">)</span> <span class="n">TSmalloc</span><span class="p">(</span><span
class="k">sizeof</span><span class="p">(</span><span
class="n">ContData</span><span class="p">));</span>
- <span class="n">contData</span><span
class="o">-></span><span class="n">state</span> <span class="o">=</span>
<span class="mi">0</span><span class="p">;</span>
- <span class="k">if</span> <span class="p">(</span><span
class="n">TSContDataSet</span><span class="p">(</span><span
class="n">txn_contp</span><span class="p">,</span> <span
class="n">contData</span><span class="p">)</span> <span class="o">==</span>
<span class="n">TS_ERROR</span><span class="p">)</span> <span
class="p">{</span>
- <span class="n">LOG_ERROR</span><span
class="p">(</span><span class="s">"TSContDataSet"</span><span
class="p">);</span>
- <span class="p">}</span>
-
- <span class="cm">/* Register txn_contp to be called back when
txnp reaches TS_HTTP_TXN_CLOSE_HOOK */</span>
- <span class="k">if</span> <span class="p">(</span><span
class="n">TSHttpTxnHookAdd</span> <span class="p">(</span><span
class="n">txnp</span><span class="p">,</span> <span
class="n">TS_HTTP_TXN_CLOSE_HOOK</span><span class="p">,</span> <span
class="n">txn_contp</span><span class="p">)</span> <span class="o">==</span>
<span class="n">TS_ERROR</span><span class="p">)</span> <span
class="p">{</span>
- <span class="n">LOG_ERROR</span><span
class="p">(</span><span class="s">"TSHttpTxnHookAdd"</span><span
class="p">);</span>
- <span class="p">}</span>
+ <span class="n">TSHttpTxn</span> <span class="n">txnp</span> <span
class="o">=</span> <span class="p">(</span><span
class="n">TSHttpTxn</span><span class="p">)</span><span
class="n">edata</span><span class="p">;</span>
+ <span class="n">TSCont</span> <span class="n">txn_contp</span><span
class="p">;</span>
+ <span class="n">ContData</span> <span class="o">*</span><span
class="n">contData</span><span class="p">;</span>
+
+ <span class="k">switch</span> <span class="p">(</span><span
class="n">event</span><span class="p">)</span> <span class="p">{</span>
+ <span class="k">case</span> <span
class="n">TS_EVENT_HTTP_TXN_START</span>:
+ <span class="cm">/* Create the HTTP txn continuation
*/</span>
+ <span class="n">txn_contp</span> <span class="o">=</span>
<span class="n">TSContCreate</span><span class="p">(</span><span
class="n">txn_cont_handler</span><span class="p">,</span> <span
class="nb">NULL</span><span class="p">);</span>
+
+ <span class="cm">/* Allocate and initialize the txn_contp
data */</span>
+ <span class="n">contData</span> <span class="o">=</span>
<span class="p">(</span><span class="n">ContData</span><span
class="o">*</span><span class="p">)</span> <span class="n">TSmalloc</span><span
class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span
class="n">ContData</span><span class="p">));</span>
+ <span class="n">contData</span><span
class="o">-></span><span class="n">state</span> <span class="o">=</span>
<span class="mi">0</span><span class="p">;</span>
+ <span class="k">if</span> <span class="p">(</span><span
class="n">TSContDataSet</span><span class="p">(</span><span
class="n">txn_contp</span><span class="p">,</span> <span
class="n">contData</span><span class="p">)</span> <span class="o">==</span>
<span class="n">TS_ERROR</span><span class="p">)</span> <span
class="p">{</span>
+ <span class="n">LOG_ERROR</span><span
class="p">(</span><span class="s">"TSContDataSet"</span><span
class="p">);</span>
+ <span class="p">}</span>
+
+ <span class="cm">/* Register txn_contp to be called back
when txnp reaches TS_HTTP_TXN_CLOSE_HOOK */</span>
+ <span class="k">if</span> <span class="p">(</span><span
class="n">TSHttpTxnHookAdd</span> <span class="p">(</span><span
class="n">txnp</span><span class="p">,</span> <span
class="n">TS_HTTP_TXN_CLOSE_HOOK</span><span class="p">,</span> <span
class="n">txn_contp</span><span class="p">)</span> <span class="o">==</span>
<span class="n">TS_ERROR</span><span class="p">)</span> <span
class="p">{</span>
+ <span class="n">LOG_ERROR</span><span
class="p">(</span><span class="s">"TSHttpTxnHookAdd"</span><span
class="p">);</span>
+ <span class="p">}</span>
+
+ <span class="k">break</span><span class="p">;</span>
+
+ <span class="nl">default:</span>
+ <span class="n">TSAssert</span><span
class="p">(</span><span class="o">!</span><span class="s">"Unexpected
Event"</span><span class="p">);</span>
+ <span class="k">break</span><span class="p">;</span>
+ <span class="p">}</span>
+
+ <span class="k">if</span> <span class="p">(</span><span
class="n">TSHttpTxnReenable</span><span class="p">(</span><span
class="n">txnp</span><span class="p">,</span> <span
class="n">TS_EVENT_HTTP_CONTINUE</span><span class="p">)</span> <span
class="o">==</span> <span class="n">TS_ERROR</span><span class="p">)</span>
<span class="p">{</span>
+ <span class="n">LOG_ERROR</span><span class="p">(</span><span
class="s">"TSHttpTxnReenable"</span><span class="p">);</span>
+ <span class="p">}</span>
- <span class="k">break</span><span class="p">;</span>
-
- <span class="nl">default:</span>
- <span class="n">TSAssert</span><span class="p">(</span><span
class="o">!</span><span class="s">"Unexpected Event"</span><span
class="p">);</span>
- <span class="k">break</span><span class="p">;</span>
- <span class="p">}</span>
-
- <span class="k">if</span> <span class="p">(</span><span
class="n">TSHttpTxnReenable</span><span class="p">(</span><span
class="n">txnp</span><span class="p">,</span> <span
class="n">TS_EVENT_HTTP_CONTINUE</span><span class="p">)</span> <span
class="o">==</span> <span class="n">TS_ERROR</span><span class="p">)</span>
<span class="p">{</span>
- <span class="n">LOG_ERROR</span><span class="p">(</span><span
class="s">"TSHttpTxnReenable"</span><span class="p">);</span>
- <span class="p">}</span>
-
- <span class="k">return</span> <span class="mi">0</span><span
class="p">;</span>
+ <span class="k">return</span> <span class="mi">0</span><span
class="p">;</span>
<span class="p">}</span>
</pre></div>
@@ -310,7 +310,7 @@ back with <code>TS_EVENT_HTTP_TXN_START<
<span class="n">contData</span> <span class="o">=</span> <span
class="n">TSContDataGet</span><span class="p">(</span><span
class="n">txn_contp</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span
class="n">contData</span> <span class="o">==</span> <span
class="n">TS_ERROR_PTR</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">LOG_ERROR</span><span class="p">(</span><span
class="s">"TSContDataGet"</span><span class="p">);</span>
+ <span class="n">LOG_ERROR</span><span class="p">(</span><span
class="s">"TSContDataGet"</span><span class="p">);</span>
<span class="p">}</span>
<span class="n">contData</span><span class="o">-></span><span
class="n">state</span> <span class="o">=</span> <span class="mi">1</span><span
class="p">;</span>
</pre></div>
@@ -319,30 +319,30 @@ back with <code>TS_EVENT_HTTP_TXN_START<
<p>Remember to free this memory before destroying the continuation:</p>
<div class="codehilite"><pre> <span class="k">static</span> <span
class="kt">int</span> <span class="nf">txn_cont_handler</span><span
class="p">(</span><span class="n">TSCont</span> <span
class="n">txn_contp</span><span class="p">,</span> <span
class="n">TSEvent</span> <span class="n">event</span><span class="p">,</span>
<span class="kt">void</span> <span class="o">*</span><span
class="n">edata</span><span class="p">)</span>
<span class="p">{</span>
- <span class="n">TSHttpTxn</span> <span class="n">txnp</span><span
class="p">;</span>
- <span class="n">ContData</span> <span class="o">*</span><span
class="n">contData</span><span class="p">;</span>
- <span class="k">switch</span> <span class="p">(</span><span
class="n">event</span><span class="p">)</span> <span class="p">{</span>
- <span class="k">case</span> <span
class="n">TS_EVENT_HTTP_TXN_CLOSE</span>:
- <span class="n">txnp</span> <span class="o">=</span> <span
class="p">(</span><span class="n">TSHttpTxn</span><span class="p">)</span>
<span class="n">edata</span><span class="p">;</span>
- <span class="n">contData</span> <span class="o">=</span> <span
class="n">TSContDataGet</span><span class="p">(</span><span
class="n">txn_contp</span><span class="p">);</span>
- <span class="k">if</span> <span class="p">(</span><span
class="n">contData</span> <span class="o">==</span> <span
class="n">TS_ERROR_PTR</span><span class="p">)</span> <span class="p">{</span>
- <span class="n">LOG_ERROR</span><span
class="p">(</span><span class="s">"TSContDataGet"</span><span
class="p">);</span>
- <span class="p">}</span> <span class="k">else</span> <span
class="p">{</span>
- <span class="n">TSfree</span><span class="p">(</span><span
class="n">contData</span><span class="p">);</span>
- <span class="p">}</span>
- <span class="n">TSContDestroy</span><span
class="p">(</span><span class="n">txn_contp</span><span class="p">);</span>
- <span class="k">break</span><span class="p">;</span>
-
- <span class="nl">default:</span>
- <span class="n">TSAssert</span><span class="p">(</span><span
class="o">!</span><span class="s">"Unexpected Event"</span><span
class="p">);</span>
- <span class="k">break</span><span class="p">;</span>
- <span class="p">}</span>
-
- <span class="k">if</span> <span class="p">(</span><span
class="n">TSHttpTxnReenable</span><span class="p">(</span><span
class="n">txnp</span><span class="p">,</span> <span
class="n">TS_EVENT_HTTP_CONTINUE</span><span class="p">)</span> <span
class="o">==</span> <span class="n">TS_ERROR</span><span class="p">)</span>
<span class="p">{</span>
- <span class="n">LOG_ERROR</span><span class="p">(</span><span
class="s">"TSHttpTxnReenable"</span><span class="p">);</span>
- <span class="p">}</span>
+ <span class="n">TSHttpTxn</span> <span class="n">txnp</span><span
class="p">;</span>
+ <span class="n">ContData</span> <span class="o">*</span><span
class="n">contData</span><span class="p">;</span>
+ <span class="k">switch</span> <span class="p">(</span><span
class="n">event</span><span class="p">)</span> <span class="p">{</span>
+ <span class="k">case</span> <span
class="n">TS_EVENT_HTTP_TXN_CLOSE</span>:
+ <span class="n">txnp</span> <span class="o">=</span> <span
class="p">(</span><span class="n">TSHttpTxn</span><span class="p">)</span>
<span class="n">edata</span><span class="p">;</span>
+ <span class="n">contData</span> <span class="o">=</span>
<span class="n">TSContDataGet</span><span class="p">(</span><span
class="n">txn_contp</span><span class="p">);</span>
+ <span class="k">if</span> <span class="p">(</span><span
class="n">contData</span> <span class="o">==</span> <span
class="n">TS_ERROR_PTR</span><span class="p">)</span> <span class="p">{</span>
+ <span class="n">LOG_ERROR</span><span
class="p">(</span><span class="s">"TSContDataGet"</span><span
class="p">);</span>
+ <span class="p">}</span> <span class="k">else</span> <span
class="p">{</span>
+ <span class="n">TSfree</span><span
class="p">(</span><span class="n">contData</span><span class="p">);</span>
+ <span class="p">}</span>
+ <span class="n">TSContDestroy</span><span
class="p">(</span><span class="n">txn_contp</span><span class="p">);</span>
+ <span class="k">break</span><span class="p">;</span>
+
+ <span class="nl">default:</span>
+ <span class="n">TSAssert</span><span
class="p">(</span><span class="o">!</span><span class="s">"Unexpected
Event"</span><span class="p">);</span>
+ <span class="k">break</span><span class="p">;</span>
+ <span class="p">}</span>
+
+ <span class="k">if</span> <span class="p">(</span><span
class="n">TSHttpTxnReenable</span><span class="p">(</span><span
class="n">txnp</span><span class="p">,</span> <span
class="n">TS_EVENT_HTTP_CONTINUE</span><span class="p">)</span> <span
class="o">==</span> <span class="n">TS_ERROR</span><span class="p">)</span>
<span class="p">{</span>
+ <span class="n">LOG_ERROR</span><span class="p">(</span><span
class="s">"TSHttpTxnReenable"</span><span class="p">);</span>
+ <span class="p">}</span>
- <span class="k">return</span> <span class="mi">0</span><span
class="p">;</span>
+ <span class="k">return</span> <span class="mi">0</span><span
class="p">;</span>
<span class="p">}</span>
</pre></div>