[asterisk-dev] [svn-commits] elguero: branch 11 r381893 - /branches/11/res/res_agi.c
Paul Belanger
paul.belanger at polybeacon.com
Fri Feb 22 14:50:04 CST 2013
On 13-02-22 02:38 PM, SVN commits to the Digium repositories wrote:
> Author: elguero
> Date: Fri Feb 22 13:38:06 2013
> New Revision: 381893
>
> URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=381893
> Log:
> Fix FastAGI To Properly Check For A Connection
>
> When IPv6 support was added to FastAGI, the intent was to have the ability to
> check all addresses resolved for a host since we might receive an IPv4 address
> and an IPv6 address. The problem with the current code, is that, since we are
> doing O_NONBLOCK, we get EINPROGRESS when calling ast_connect() but are ignoring
> this instead of handling it. We break out of the loop and continue on. When we
> later call ast_poll(), it succeeds but we never check if we have a connection or
> not on the socket level. We then attempt to send data to the host address that
> we think is setup and it fails. We then check the errno and see that we have
> "connection refused" and then return with agi failed.
>
> This patch does the following:
>
> * Handles EINPROGRESS by creating the function handle_connection()
> - ast_poll() was moved into this function
> - This function checks the results of the connection on the socket level after
> calling ast_poll()
> * Continues to the next address if the above fails to create a connection
> * Once all addresses resolved are tried and we still are unable to establish a
> connection, then we return that the FastAGI call failed
>
> (closes issue ASTERISK-21065)
> Reported by: Jeremy Kister
> Tested by: Jeremy Kister, Michael L. Young
> Patches:
> asterisk-21065_poll_correctly_v4.diff Michael L. Young (license 5026)
>
> Review: https://reviewboard.asterisk.org/r/2330/
>
> Modified:
> branches/11/res/res_agi.c
>
We should at lest modify one of the existing fastagi tests in the
testsuite to test IPv6, to test.
--
Paul Belanger | PolyBeacon, Inc.
Jabber: paul.belanger at polybeacon.com | IRC: pabelanger (Freenode)
Github: https://github.com/pabelanger | Twitter:
https://twitter.com/pabelanger
More information about the asterisk-dev
mailing list