On Mon, May 20, 2013 at 3:45 PM, Niki Dokovski <nick...@gmail.com> wrote:

>
>
>
> On Fri, May 17, 2013 at 3:53 PM, Niki Dokovski <nick...@gmail.com> wrote:
>
>>
>>
>>
>> On Fri, May 17, 2013 at 3:35 PM, Mark Thomas <ma...@apache.org> wrote:
>>
>>> On 17/05/2013 13:07, Niki Dokovski wrote:
>>> > Hi,
>>> >
>>> > Developing some sample apps with websockets and tomcat 8 revealed two
>>> > issues I’d like to discuss here.
>>> >
>>> > 1.       There is no proxy support in the implementation of
>>> > WebSocketContainer.connectToServer calls. While playing around with the
>>> > code it was relatively easy to add this in the implementation with
>>> simple
>>> > consideration of http.proxyHost and xxxxPort system properties;
>>> replacing
>>> > host and port values which were obtained from path method parameter and
>>> > making initial HTTP CONNECT message to the proxy. In this case, do you
>>> > think we can add proxy support here? I was thinking how to provide some
>>> > kind of automation test as well, but no luck so far.
>>>
>>> Personally I dislike the global nature system properties for
>>> configuration unless they are absolutely the only option.
>>>
>>> Since the WebSocket API has no way of setting a proxy at the moment,
>>> system properties might be the only choice :(
>>>
>>> This is an issue you should raise with the WebSocket EG group. I suggest
>>> opening a Jira to request proxy support in a future version.
>>> https://java.net/jira/browse/WEBSOCKET_SPEC
>>
>>
>> Here is the issue:
>> https://java.net/jira/browse/WEBSOCKET_SPEC-202
>>
>>
>>
>>>
>>>
>>>
>>> > 2.       So when I got my proxy tunneling in place (with the CONNECT
>>> http
>>> > request) I hit a tougher problem with SSL handshake implementation in
>>> > WebSocketSslHandshakeThread. The SSL handshake was successful while I
>>> was
>>> > stepping with the debugger through the code and failed when I  run the
>>> > test. It should be some timing issue. This bit needs more debugging.
>>> Have
>>> > you seen this before?
>>>
>>> No, but the SSL support for WebSocket clients hasn't been heavily used
>>> yet so there could still be some bugs to iron out. If you haven't
>>> already, take a look at
>>> TestWsWebSocketContainer.testConnectToServerEndpointSSL()
>>>
>>> Mark
>>>
>>>
>>>
>> Thanks. I'll take a look at it.
>>
>>
>
> Doing some debugging in the implementation of
> AsyncChannelWeapperSecure.WebSocketSslHandshakeThread run()
> revealed that by having small timeout (thread sleep) in "NEED_WRAP" case,
> allows SSL handshake to complete successfully.
> (This is still the case when there is a HTTP Proxy tunnel established
> between Endpoints) This is not the solution for the problem, of course.
> Here I attach some sysout logs with working and non-working flows.
> 1. working example:
> after sending initial message sleep the executing thread in "need_wrap"
> case for little and you get following sequence
> write: 154
> write done: true
> NEED_UNWRAP
> read: 2357
> read done: true
> ....
> SSL Handshake is OK
>
>
> 2. non working example
> write: 154
> write done: true
> NEED_UNWRAP
> read: 1460 << much less bytes to consider
> read done: true
> ...
> Exception
>
>
> Any comments?
>

getting closer as the error condition is caused by BUFFER_UNDERFLOW state.
Will try to read again in this condition. Basically there is no enough
bytes to construct the message in SSLEngine.

>
>
>
>
>
>
>>  ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
>>> For additional commands, e-mail: dev-h...@tomcat.apache.org
>>>
>>>
>>
>

Reply via email to