<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>ProxyFilter xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/proxy/filter/ProxyFilter.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> *  Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> *  or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> *  distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> *  regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> *  to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> *  "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> *  with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> *    <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *  Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> *  software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> *  KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> *  specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> *  under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> *</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> */</em>
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.proxy.filter;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.buffer.IoBuffer;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.filterchain.IoFilter;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.filterchain.IoFilterAdapter;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.filterchain.IoFilterChain;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IdleStatus;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSession;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.write.WriteRequest;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.proxy.ProxyAuthException;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.proxy.ProxyConnector;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.proxy.ProxyLogicHandler;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.proxy.event.IoSessionEvent;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.proxy.event.IoSessionEventQueue;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.proxy.event.IoSessionEventType;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.proxy.handlers.ProxyRequest;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.proxy.handlers.http.HttpSmartProxyHandler;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.proxy.handlers.socks.Socks4LogicHandler;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.proxy.handlers.socks.Socks5LogicHandler;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.proxy.handlers.socks.SocksProxyConstants;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.proxy.handlers.socks.SocksProxyRequest;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.proxy.session.ProxyIoSession;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">/**</em>
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * ProxyFilter.java - Proxy {@link IoFilter}. </em>
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * Automatically inserted into the {@link IoFilter} chain by {@link ProxyConnector}.</em>
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * Sends the initial handshake message to the proxy and handles any response</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * to the handshake. Once the handshake has completed and the proxied connection has been</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> * established this filter becomes transparent to data flowing through the connection.</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * Based upon SSLFilter from mina-filter-ssl.</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> * </em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> * @version $Rev: 759663 $, $Date: 2009-03-29 12:46:40 +0200 (Sun, 29 Mar 2009) $</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment"> * @since MINA 2.0.0-M3</em>
<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment"> */</em>
<a name="58" href="#58">58</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/proxy/filter/ProxyFilter.html">ProxyFilter</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilterAdapter.html">IoFilterAdapter</a> {
<a name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> Logger logger = LoggerFactory
<a name="60" href="#60">60</a>              .getLogger(ProxyFilter.<strong class="jxr_keyword">class</strong>);
<a name="61" href="#61">61</a>  
<a name="62" href="#62">62</a>      <em class="jxr_javadoccomment">/**</em>
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * Create a new {@link ProxyFilter}.</em>
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     */</em>
<a name="65" href="#65">65</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/proxy/filter/ProxyFilter.html">ProxyFilter</a>() {
<a name="66" href="#66">66</a>      }
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>      <em class="jxr_javadoccomment">/**</em>
<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * Called before the filter is added into the filter chain.</em>
<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     * Checks if chain already holds an {@link ProxyFilter} instance. </em>
<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     * </em>
<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     * @param chain the filter chain</em>
<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * @param name the name assigned to this filter</em>
<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     * @param nextFilter the next filter</em>
<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     * @throws IllegalStateException if chain already contains an instance of </em>
<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * {@link ProxyFilter}</em>
<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     */</em>
<a name="78" href="#78">78</a>      @Override
<a name="79" href="#79">79</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onPreAdd(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">IoFilterChain</a> chain, <strong class="jxr_keyword">final</strong> String name,
<a name="80" href="#80">80</a>              <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">NextFilter</a> nextFilter) {
<a name="81" href="#81">81</a>          <strong class="jxr_keyword">if</strong> (chain.contains(ProxyFilter.<strong class="jxr_keyword">class</strong>)) {
<a name="82" href="#82">82</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(
<a name="83" href="#83">83</a>                      <span class="jxr_string">"A filter chain cannot contain more than one ProxyFilter."</span>);
<a name="84" href="#84">84</a>          }
<a name="85" href="#85">85</a>      }
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</a>      <em class="jxr_javadoccomment">/**</em>
<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * Called when the filter is removed from the filter chain.</em>
<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * Cleans the {@link ProxyIoSession} instance from the session.</em>
<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * </em>
<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     * @param chain the filter chain</em>
<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     * @param name the name assigned to this filter</em>
<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     * @param nextFilter the next filter</em>
<a name="94" href="#94">94</a>  <em class="jxr_javadoccomment">     */</em>
<a name="95" href="#95">95</a>      @Override
<a name="96" href="#96">96</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onPreRemove(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">IoFilterChain</a> chain, <strong class="jxr_keyword">final</strong> String name,
<a name="97" href="#97">97</a>              <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">NextFilter</a> nextFilter) {
<a name="98" href="#98">98</a>          <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session = chain.getSession();
<a name="99" href="#99">99</a>          session.removeAttribute(ProxyIoSession.PROXY_SESSION);
<a name="100" href="#100">100</a>     }
<a name="101" href="#101">101</a> 
<a name="102" href="#102">102</a>     <em class="jxr_javadoccomment">/**</em>
<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     * Called when an exception occurs in the chain. A flag is set in the</em>
<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     * {@link ProxyIoSession} session's instance to signal that handshake</em>
<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     * failed.  </em>
<a name="106" href="#106">106</a> <em class="jxr_javadoccomment">     * </em>
<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     * @param chain the filter chain</em>
<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * @param name the name assigned to this filter</em>
<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     * @param nextFilter the next filter</em>
<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     */</em>
<a name="111" href="#111">111</a>     @Override
<a name="112" href="#112">112</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> exceptionCaught(<a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">NextFilter</a> nextFilter, <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session,
<a name="113" href="#113">113</a>             Throwable cause) <strong class="jxr_keyword">throws</strong> Exception {
<a name="114" href="#114">114</a>         <a href="../../../../../org/apache/mina/proxy/session/ProxyIoSession.html">ProxyIoSession</a> proxyIoSession = (ProxyIoSession) session
<a name="115" href="#115">115</a>                 .getAttribute(ProxyIoSession.PROXY_SESSION);
<a name="116" href="#116">116</a>         proxyIoSession.setAuthenticationFailed(<strong class="jxr_keyword">true</strong>);
<a name="117" href="#117">117</a>         <strong class="jxr_keyword">super</strong>.exceptionCaught(nextFilter, session, cause);
<a name="118" href="#118">118</a>     }
<a name="119" href="#119">119</a> 
<a name="120" href="#120">120</a>     <em class="jxr_javadoccomment">/**</em>
<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     * Get the {@link ProxyLogicHandler} for a given session.</em>
<a name="122" href="#122">122</a> <em class="jxr_javadoccomment">     * </em>
<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">     * @param session the session object</em>
<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     * @return the handler which will handle handshaking with the proxy</em>
<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     */</em>
<a name="126" href="#126">126</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/proxy/ProxyLogicHandler.html">ProxyLogicHandler</a> getProxyHandler(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session) {
<a name="127" href="#127">127</a>         <a href="../../../../../org/apache/mina/proxy/ProxyLogicHandler.html">ProxyLogicHandler</a> handler = ((ProxyIoSession) session
<a name="128" href="#128">128</a>                 .getAttribute(ProxyIoSession.PROXY_SESSION)).getHandler();
<a name="129" href="#129">129</a> 
<a name="130" href="#130">130</a>         <strong class="jxr_keyword">if</strong> (handler == <strong class="jxr_keyword">null</strong>) {
<a name="131" href="#131">131</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException();
<a name="132" href="#132">132</a>         }
<a name="133" href="#133">133</a> 
<a name="134" href="#134">134</a>         <em class="jxr_comment">// Sanity check</em>
<a name="135" href="#135">135</a>         <strong class="jxr_keyword">if</strong> (handler.getProxyIoSession().getProxyFilter() != <strong class="jxr_keyword">this</strong>) {
<a name="136" href="#136">136</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Not managed by this filter."</span>);
<a name="137" href="#137">137</a>         }
<a name="138" href="#138">138</a> 
<a name="139" href="#139">139</a>         <strong class="jxr_keyword">return</strong> handler;
<a name="140" href="#140">140</a>     }
<a name="141" href="#141">141</a> 
<a name="142" href="#142">142</a>     <em class="jxr_javadoccomment">/**</em>
<a name="143" href="#143">143</a> <em class="jxr_javadoccomment">     * Receives data from the remote host, passes to the handler if a handshake is in progress, </em>
<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     * otherwise passes on transparently.</em>
<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * </em>
<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     * @param nextFilter the next filter in filter chain</em>
<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">     * @param session the session object</em>
<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     * @param message the object holding the received data</em>
<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     */</em>
<a name="150" href="#150">150</a>     @Override
<a name="151" href="#151">151</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> messageReceived(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">NextFilter</a> nextFilter,
<a name="152" href="#152">152</a>             <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session, <strong class="jxr_keyword">final</strong> Object message)
<a name="153" href="#153">153</a>             <strong class="jxr_keyword">throws</strong> <a href="../../../../../org/apache/mina/proxy/ProxyAuthException.html">ProxyAuthException</a> {
<a name="154" href="#154">154</a>         <a href="../../../../../org/apache/mina/proxy/ProxyLogicHandler.html">ProxyLogicHandler</a> handler = getProxyHandler(session);
<a name="155" href="#155">155</a> 
<a name="156" href="#156">156</a>         <strong class="jxr_keyword">synchronized</strong> (handler) {
<a name="157" href="#157">157</a>             <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> buf = (IoBuffer) message;
<a name="158" href="#158">158</a> 
<a name="159" href="#159">159</a>             <strong class="jxr_keyword">if</strong> (handler.isHandshakeComplete()) {
<a name="160" href="#160">160</a>                 <em class="jxr_comment">// Handshake done - pass data on as-is</em>
<a name="161" href="#161">161</a>                 nextFilter.messageReceived(session, buf);
<a name="162" href="#162">162</a> 
<a name="163" href="#163">163</a>             } <strong class="jxr_keyword">else</strong> {
<a name="164" href="#164">164</a>                 logger.debug(<span class="jxr_string">" Data Read: {} ({})"</span>, handler, buf);
<a name="165" href="#165">165</a> 
<a name="166" href="#166">166</a>                 <em class="jxr_comment">// Keep sending handshake data to the handler until we run out</em>
<a name="167" href="#167">167</a>                 <em class="jxr_comment">// of data or the handshake is finished</em>
<a name="168" href="#168">168</a>                 <strong class="jxr_keyword">while</strong> (buf.hasRemaining() &amp;&amp; !handler.isHandshakeComplete()) {
<a name="169" href="#169">169</a>                     logger.debug(<span class="jxr_string">" Pre-handshake - passing to handler"</span>);
<a name="170" href="#170">170</a> 
<a name="171" href="#171">171</a>                     <strong class="jxr_keyword">int</strong> pos = buf.position();
<a name="172" href="#172">172</a>                     handler.messageReceived(nextFilter, buf);
<a name="173" href="#173">173</a> 
<a name="174" href="#174">174</a>                     <em class="jxr_comment">// Data not consumed or session closing</em>
<a name="175" href="#175">175</a>                     <strong class="jxr_keyword">if</strong> (buf.position() == pos || session.isClosing()) {
<a name="176" href="#176">176</a>                         <strong class="jxr_keyword">return</strong>;
<a name="177" href="#177">177</a>                     }
<a name="178" href="#178">178</a>                 }
<a name="179" href="#179">179</a> 
<a name="180" href="#180">180</a>                 <em class="jxr_comment">// Pass on any remaining data to the next filter</em>
<a name="181" href="#181">181</a>                 <strong class="jxr_keyword">if</strong> (buf.hasRemaining()) {
<a name="182" href="#182">182</a>                     logger.debug(<span class="jxr_string">" Passing remaining data to next filter"</span>);
<a name="183" href="#183">183</a> 
<a name="184" href="#184">184</a>                     nextFilter.messageReceived(session, buf);
<a name="185" href="#185">185</a>                 }
<a name="186" href="#186">186</a>             }
<a name="187" href="#187">187</a>         }
<a name="188" href="#188">188</a>     }
<a name="189" href="#189">189</a> 
<a name="190" href="#190">190</a>     <em class="jxr_javadoccomment">/**</em>
<a name="191" href="#191">191</a> <em class="jxr_javadoccomment">     * Filters outgoing writes, queueing them up if necessary while a handshake </em>
<a name="192" href="#192">192</a> <em class="jxr_javadoccomment">     * is ongoing.</em>
<a name="193" href="#193">193</a> <em class="jxr_javadoccomment">     * </em>
<a name="194" href="#194">194</a> <em class="jxr_javadoccomment">     * @param nextFilter the next filter in filter chain</em>
<a name="195" href="#195">195</a> <em class="jxr_javadoccomment">     * @param session the session object</em>
<a name="196" href="#196">196</a> <em class="jxr_javadoccomment">     * @param writeRequest the data to write</em>
<a name="197" href="#197">197</a> <em class="jxr_javadoccomment">     */</em>
<a name="198" href="#198">198</a>     @Override
<a name="199" href="#199">199</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> filterWrite(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">NextFilter</a> nextFilter,
<a name="200" href="#200">200</a>             <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session, <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/write/WriteRequest.html">WriteRequest</a> writeRequest) {
<a name="201" href="#201">201</a>         writeData(nextFilter, session, writeRequest, false);
<a name="202" href="#202">202</a>     }
<a name="203" href="#203">203</a> 
<a name="204" href="#204">204</a>     <em class="jxr_javadoccomment">/**</em>
<a name="205" href="#205">205</a> <em class="jxr_javadoccomment">     * Actually write data. Queues the data up unless it relates to the handshake or the </em>
<a name="206" href="#206">206</a> <em class="jxr_javadoccomment">     * handshake is done.</em>
<a name="207" href="#207">207</a> <em class="jxr_javadoccomment">     * </em>
<a name="208" href="#208">208</a> <em class="jxr_javadoccomment">     * @param nextFilter the next filter in filter chain</em>
<a name="209" href="#209">209</a> <em class="jxr_javadoccomment">     * @param session the session object</em>
<a name="210" href="#210">210</a> <em class="jxr_javadoccomment">     * @param writeRequest the data to write</em>
<a name="211" href="#211">211</a> <em class="jxr_javadoccomment">     * @param isHandshakeData true if writeRequest is written by the proxy classes.</em>
<a name="212" href="#212">212</a> <em class="jxr_javadoccomment">     */</em>
<a name="213" href="#213">213</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> writeData(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">NextFilter</a> nextFilter, <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session,
<a name="214" href="#214">214</a>             <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/write/WriteRequest.html">WriteRequest</a> writeRequest, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> isHandshakeData) {
<a name="215" href="#215">215</a>         <a href="../../../../../org/apache/mina/proxy/ProxyLogicHandler.html">ProxyLogicHandler</a> handler = getProxyHandler(session);
<a name="216" href="#216">216</a> 
<a name="217" href="#217">217</a>         <strong class="jxr_keyword">synchronized</strong> (handler) {
<a name="218" href="#218">218</a>             <strong class="jxr_keyword">if</strong> (handler.isHandshakeComplete()) {
<a name="219" href="#219">219</a>                 <em class="jxr_comment">// Handshake is done - write data as normal</em>
<a name="220" href="#220">220</a>                 nextFilter.filterWrite(session, writeRequest);
<a name="221" href="#221">221</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (isHandshakeData) {
<a name="222" href="#222">222</a>                 logger.debug(<span class="jxr_string">"   handshake data: {}"</span>, writeRequest.getMessage());
<a name="223" href="#223">223</a>                 
<a name="224" href="#224">224</a>                 <em class="jxr_comment">// Writing handshake data</em>
<a name="225" href="#225">225</a>                 nextFilter.filterWrite(session, writeRequest);
<a name="226" href="#226">226</a>             } <strong class="jxr_keyword">else</strong> {
<a name="227" href="#227">227</a>                 <em class="jxr_comment">// Writing non-handshake data before the handshake finished</em>
<a name="228" href="#228">228</a>                 <strong class="jxr_keyword">if</strong> (!session.isConnected()) {
<a name="229" href="#229">229</a>                     <em class="jxr_comment">// Not even connected - ignore</em>
<a name="230" href="#230">230</a>                     logger.debug(<span class="jxr_string">" Write request on closed session. Request ignored."</span>);
<a name="231" href="#231">231</a>                 } <strong class="jxr_keyword">else</strong> {
<a name="232" href="#232">232</a>                     <em class="jxr_comment">// Queue the data to be sent as soon as the handshake completes</em>
<a name="233" href="#233">233</a>                     logger.debug(<span class="jxr_string">" Handshaking is not complete yet. Buffering write request."</span>);
<a name="234" href="#234">234</a>                     handler.enqueueWriteRequest(nextFilter, writeRequest);
<a name="235" href="#235">235</a>                 }
<a name="236" href="#236">236</a>             }
<a name="237" href="#237">237</a>         }
<a name="238" href="#238">238</a>     }
<a name="239" href="#239">239</a> 
<a name="240" href="#240">240</a>     <em class="jxr_javadoccomment">/**</em>
<a name="241" href="#241">241</a> <em class="jxr_javadoccomment">     * Filter handshake related messages from reaching the messageSent callbacks of </em>
<a name="242" href="#242">242</a> <em class="jxr_javadoccomment">     * downstream filters.</em>
<a name="243" href="#243">243</a> <em class="jxr_javadoccomment">     * </em>
<a name="244" href="#244">244</a> <em class="jxr_javadoccomment">     * @param nextFilter the next filter in filter chain</em>
<a name="245" href="#245">245</a> <em class="jxr_javadoccomment">     * @param session the session object</em>
<a name="246" href="#246">246</a> <em class="jxr_javadoccomment">     * @param writeRequest the data written</em>
<a name="247" href="#247">247</a> <em class="jxr_javadoccomment">     */</em>
<a name="248" href="#248">248</a>     @Override
<a name="249" href="#249">249</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> messageSent(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">NextFilter</a> nextFilter,
<a name="250" href="#250">250</a>             <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session, <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/write/WriteRequest.html">WriteRequest</a> writeRequest)
<a name="251" href="#251">251</a>             <strong class="jxr_keyword">throws</strong> Exception {
<a name="252" href="#252">252</a>         <strong class="jxr_keyword">if</strong> (writeRequest.getMessage() != <strong class="jxr_keyword">null</strong>
<a name="253" href="#253">253</a>                 &amp;&amp; writeRequest.getMessage() instanceof ProxyHandshakeIoBuffer) {
<a name="254" href="#254">254</a>             <em class="jxr_comment">// Ignore buffers used in handshaking</em>
<a name="255" href="#255">255</a>             <strong class="jxr_keyword">return</strong>;
<a name="256" href="#256">256</a>         }
<a name="257" href="#257">257</a> 
<a name="258" href="#258">258</a>         nextFilter.messageSent(session, writeRequest);
<a name="259" href="#259">259</a>     }
<a name="260" href="#260">260</a> 
<a name="261" href="#261">261</a>     <em class="jxr_javadoccomment">/**</em>
<a name="262" href="#262">262</a> <em class="jxr_javadoccomment">     * Called when the session is created. Will create the handler able to handle</em>
<a name="263" href="#263">263</a> <em class="jxr_javadoccomment">     * the {@link ProxyIoSession#getRequest()} request stored in the session. Event</em>
<a name="264" href="#264">264</a> <em class="jxr_javadoccomment">     * is stored in an {@link IoSessionEventQueue} for later delivery to the next filter</em>
<a name="265" href="#265">265</a> <em class="jxr_javadoccomment">     * in the chain when the handshake would have succeed. This will prevent the rest of </em>
<a name="266" href="#266">266</a> <em class="jxr_javadoccomment">     * the filter chain from being affected by this filter internals. </em>
<a name="267" href="#267">267</a> <em class="jxr_javadoccomment">     * </em>
<a name="268" href="#268">268</a> <em class="jxr_javadoccomment">     * Please note that this event can occur multiple times because of some http </em>
<a name="269" href="#269">269</a> <em class="jxr_javadoccomment">     * proxies not handling keep-alive connections thus needing multiple sessions </em>
<a name="270" href="#270">270</a> <em class="jxr_javadoccomment">     * during the handshake.</em>
<a name="271" href="#271">271</a> <em class="jxr_javadoccomment">     * </em>
<a name="272" href="#272">272</a> <em class="jxr_javadoccomment">     * @param nextFilter the next filter in filter chain</em>
<a name="273" href="#273">273</a> <em class="jxr_javadoccomment">     * @param session the session object</em>
<a name="274" href="#274">274</a> <em class="jxr_javadoccomment">     */</em>
<a name="275" href="#275">275</a>     @Override
<a name="276" href="#276">276</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sessionCreated(<a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">NextFilter</a> nextFilter, <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session)
<a name="277" href="#277">277</a>             <strong class="jxr_keyword">throws</strong> Exception {
<a name="278" href="#278">278</a>         logger.debug(<span class="jxr_string">"Session created: "</span> + session);
<a name="279" href="#279">279</a>         <a href="../../../../../org/apache/mina/proxy/session/ProxyIoSession.html">ProxyIoSession</a> proxyIoSession = (ProxyIoSession) session
<a name="280" href="#280">280</a>                 .getAttribute(ProxyIoSession.PROXY_SESSION);
<a name="281" href="#281">281</a>         logger.debug(<span class="jxr_string">"  get proxyIoSession: "</span> + proxyIoSession);
<a name="282" href="#282">282</a>         proxyIoSession.setProxyFilter(<strong class="jxr_keyword">this</strong>);
<a name="283" href="#283">283</a> 
<a name="284" href="#284">284</a>         <em class="jxr_comment">// Create a HTTP proxy handler and start handshake.		</em>
<a name="285" href="#285">285</a>         <a href="../../../../../org/apache/mina/proxy/ProxyLogicHandler.html">ProxyLogicHandler</a> handler = proxyIoSession.getHandler();
<a name="286" href="#286">286</a> 
<a name="287" href="#287">287</a>         <em class="jxr_comment">// This test prevents from loosing handler conversationnal state when</em>
<a name="288" href="#288">288</a>         <em class="jxr_comment">// reconnection occurs during an http handshake.</em>
<a name="289" href="#289">289</a>         <strong class="jxr_keyword">if</strong> (handler == <strong class="jxr_keyword">null</strong>) {
<a name="290" href="#290">290</a>             <a href="../../../../../org/apache/mina/proxy/handlers/ProxyRequest.html">ProxyRequest</a> request = proxyIoSession.getRequest();
<a name="291" href="#291">291</a> 
<a name="292" href="#292">292</a>             <strong class="jxr_keyword">if</strong> (request instanceof SocksProxyRequest) {
<a name="293" href="#293">293</a>                 <a href="../../../../../org/apache/mina/proxy/handlers/socks/SocksProxyRequest.html">SocksProxyRequest</a> req = (SocksProxyRequest) request;
<a name="294" href="#294">294</a>                 <strong class="jxr_keyword">if</strong> (req.getProtocolVersion() == SocksProxyConstants.SOCKS_VERSION_4) {
<a name="295" href="#295">295</a>                     handler = <strong class="jxr_keyword">new</strong> Socks4LogicHandler(proxyIoSession);
<a name="296" href="#296">296</a>                 } <strong class="jxr_keyword">else</strong> {
<a name="297" href="#297">297</a>                     handler = <strong class="jxr_keyword">new</strong> Socks5LogicHandler(proxyIoSession);
<a name="298" href="#298">298</a>                 }
<a name="299" href="#299">299</a>             } <strong class="jxr_keyword">else</strong> {
<a name="300" href="#300">300</a>                 handler = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/proxy/handlers/http/HttpSmartProxyHandler.html">HttpSmartProxyHandler</a>(proxyIoSession);
<a name="301" href="#301">301</a>             }
<a name="302" href="#302">302</a> 
<a name="303" href="#303">303</a>             proxyIoSession.setHandler(handler);
<a name="304" href="#304">304</a>             handler.doHandshake(nextFilter);
<a name="305" href="#305">305</a>         }
<a name="306" href="#306">306</a> 
<a name="307" href="#307">307</a>         proxyIoSession.getEventQueue().enqueueEventIfNecessary(
<a name="308" href="#308">308</a>                 <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/proxy/event/IoSessionEvent.html">IoSessionEvent</a>(nextFilter, session,
<a name="309" href="#309">309</a>                         IoSessionEventType.CREATED));
<a name="310" href="#310">310</a>     }
<a name="311" href="#311">311</a> 
<a name="312" href="#312">312</a>     <em class="jxr_javadoccomment">/**</em>
<a name="313" href="#313">313</a> <em class="jxr_javadoccomment">     * Event is stored in an {@link IoSessionEventQueue} for later delivery to the next filter</em>
<a name="314" href="#314">314</a> <em class="jxr_javadoccomment">     * in the chain when the handshake would have succeed. This will prevent the rest of </em>
<a name="315" href="#315">315</a> <em class="jxr_javadoccomment">     * the filter chain from being affected by this filter internals.</em>
<a name="316" href="#316">316</a> <em class="jxr_javadoccomment">     * </em>
<a name="317" href="#317">317</a> <em class="jxr_javadoccomment">     * @param nextFilter the next filter in filter chain</em>
<a name="318" href="#318">318</a> <em class="jxr_javadoccomment">     * @param session the session object</em>
<a name="319" href="#319">319</a> <em class="jxr_javadoccomment">     */</em>
<a name="320" href="#320">320</a>     @Override
<a name="321" href="#321">321</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sessionOpened(<a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">NextFilter</a> nextFilter, <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session)
<a name="322" href="#322">322</a>             <strong class="jxr_keyword">throws</strong> Exception {
<a name="323" href="#323">323</a>         <a href="../../../../../org/apache/mina/proxy/session/ProxyIoSession.html">ProxyIoSession</a> proxyIoSession = (ProxyIoSession) session
<a name="324" href="#324">324</a>                 .getAttribute(ProxyIoSession.PROXY_SESSION);
<a name="325" href="#325">325</a>         proxyIoSession.getEventQueue().enqueueEventIfNecessary(
<a name="326" href="#326">326</a>                 <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/proxy/event/IoSessionEvent.html">IoSessionEvent</a>(nextFilter, session,
<a name="327" href="#327">327</a>                         IoSessionEventType.OPENED));
<a name="328" href="#328">328</a>     }
<a name="329" href="#329">329</a> 
<a name="330" href="#330">330</a>     <em class="jxr_javadoccomment">/**</em>
<a name="331" href="#331">331</a> <em class="jxr_javadoccomment">     * Event is stored in an {@link IoSessionEventQueue} for later delivery to the next filter</em>
<a name="332" href="#332">332</a> <em class="jxr_javadoccomment">     * in the chain when the handshake would have succeed. This will prevent the rest of </em>
<a name="333" href="#333">333</a> <em class="jxr_javadoccomment">     * the filter chain from being affected by this filter internals.</em>
<a name="334" href="#334">334</a> <em class="jxr_javadoccomment">     * </em>
<a name="335" href="#335">335</a> <em class="jxr_javadoccomment">     * @param nextFilter the next filter in filter chain</em>
<a name="336" href="#336">336</a> <em class="jxr_javadoccomment">     * @param session the session object</em>
<a name="337" href="#337">337</a> <em class="jxr_javadoccomment">     */</em>    
<a name="338" href="#338">338</a>     @Override
<a name="339" href="#339">339</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sessionIdle(<a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">NextFilter</a> nextFilter, <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session,
<a name="340" href="#340">340</a>             <a href="../../../../../org/apache/mina/core/session/IdleStatus.html">IdleStatus</a> status) <strong class="jxr_keyword">throws</strong> Exception {
<a name="341" href="#341">341</a>         <a href="../../../../../org/apache/mina/proxy/session/ProxyIoSession.html">ProxyIoSession</a> proxyIoSession = (ProxyIoSession) session
<a name="342" href="#342">342</a>                 .getAttribute(ProxyIoSession.PROXY_SESSION);
<a name="343" href="#343">343</a>         proxyIoSession.getEventQueue().enqueueEventIfNecessary(
<a name="344" href="#344">344</a>                 <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/proxy/event/IoSessionEvent.html">IoSessionEvent</a>(nextFilter, session, status));
<a name="345" href="#345">345</a>     }
<a name="346" href="#346">346</a> 
<a name="347" href="#347">347</a>     <em class="jxr_javadoccomment">/**</em>
<a name="348" href="#348">348</a> <em class="jxr_javadoccomment">     * Event is stored in an {@link IoSessionEventQueue} for later delivery to the next filter</em>
<a name="349" href="#349">349</a> <em class="jxr_javadoccomment">     * in the chain when the handshake would have succeed. This will prevent the rest of </em>
<a name="350" href="#350">350</a> <em class="jxr_javadoccomment">     * the filter chain from being affected by this filter internals.</em>
<a name="351" href="#351">351</a> <em class="jxr_javadoccomment">     * </em>
<a name="352" href="#352">352</a> <em class="jxr_javadoccomment">     * @param nextFilter the next filter in filter chain</em>
<a name="353" href="#353">353</a> <em class="jxr_javadoccomment">     * @param session the session object</em>
<a name="354" href="#354">354</a> <em class="jxr_javadoccomment">     */</em>    
<a name="355" href="#355">355</a>     @Override
<a name="356" href="#356">356</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sessionClosed(<a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">NextFilter</a> nextFilter, <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session)
<a name="357" href="#357">357</a>             <strong class="jxr_keyword">throws</strong> Exception {
<a name="358" href="#358">358</a>         <a href="../../../../../org/apache/mina/proxy/session/ProxyIoSession.html">ProxyIoSession</a> proxyIoSession = (ProxyIoSession) session
<a name="359" href="#359">359</a>                 .getAttribute(ProxyIoSession.PROXY_SESSION);
<a name="360" href="#360">360</a>         proxyIoSession.getEventQueue().enqueueEventIfNecessary(
<a name="361" href="#361">361</a>                 <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/proxy/event/IoSessionEvent.html">IoSessionEvent</a>(nextFilter, session,
<a name="362" href="#362">362</a>                         IoSessionEventType.CLOSED));
<a name="363" href="#363">363</a>     }
<a name="364" href="#364">364</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

