[asterisk-bugs] [JIRA] (ASTERISK-23099) [patch] WSS: enable ast_websocket_read() function to read the whole available data at first and then wait for any fragmented packets

Matt Jordan (JIRA) noreply at issues.asterisk.org
Fri Jan 31 11:51:03 CST 2014


    [ https://issues.asterisk.org/jira/browse/ASTERISK-23099?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=214704#comment-214704 ] 

Matt Jordan commented on ASTERISK-23099:
----------------------------------------

This patch is equivalent in purpose to ASTERISK-21930. It may be worthwhile for you and Moises to confer and determine which patch you feel is the better approach to solving this problem.
                
> [patch] WSS: enable ast_websocket_read() function to read the whole available data at first and then wait for any fragmented packets
> ------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ASTERISK-23099
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-23099
>             Project: Asterisk
>          Issue Type: Improvement
>      Security Level: None
>          Components: Resources/res_http_websocket
>    Affects Versions: 11.5.1
>         Environment: Linux, Chrome
>            Reporter: Thava Iyer
>         Attachments: ast_wss_r404720_v11_5_0.patch
>
>
> Asterisk websocket interface (res/res_http_websocket.c) works well for normal websockets (ws) but fails on secure - websockets (wss). The ast_websocket_read() function, first reads the header (14) bytes using first fread() call and then , for the remaining payload,  in a while loop, it first polls the raw-socket for the date before further reads. In the normal websocket, it is fine. But for the secure-websocket case, the underlying ssl_read() would have read the whole data, in the first fread() call (of course to decrypt ) and emptied the socket-fd. This would make the ast_websocket_read() to wait for data to appear on the socket.
> This patch enables the ast_websocket_read() function to read the whole available data at first and then wait for any fragmented packets. This makes the secure-websocket connection to work properly.
> This has been tested with  Chrome 31.0.1650.63.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.asterisk.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list