<!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 &lt;a href="<a href="http://mina.apache.org" target="alexandria_uri">http://mina.apache.org</a>"&gt;Apache MINA Project&lt;/a&gt;</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> * @since MINA 2.0.0-M3</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment"> */</em>
<a name="57" href="#57">57</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="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> Logger LOGGER = LoggerFactory
<a name="59" href="#59">59</a>              .getLogger(ProxyFilter.<strong class="jxr_keyword">class</strong>);
<a name="60" href="#60">60</a>  
<a name="61" href="#61">61</a>      <em class="jxr_javadoccomment">/**</em>
<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * Create a new {@link ProxyFilter}.</em>
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     */</em>
<a name="64" href="#64">64</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/proxy/filter/ProxyFilter.html">ProxyFilter</a>() {
<a name="65" href="#65">65</a>          <em class="jxr_comment">// Do nothing</em>
<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>

