I have found a problem with loop detection in Yxa.  The Request-URI used
when creating the loop cookie is not the original URI but the URI after
any translation, which is a problem.

This results in spiraled requests are sometimes classified as looped.
This happens if Yxa sends a request to itself, after changing the
Request-URI. In this case all fields used for loop detection including
the Request-URI may be unchanged, since Yxa used the wrong URI when
calculating the branch cookie.

The patch changes three lines. Only the first change was needed for my
particular test scenario, but I think the last two are also needed under
other conditions.

My test scenario is:

User A calls a telephone number N which is looked up in ENUM into URI B
in the home domain. URI B is handled by a regexp route, and sent to
local user C which has a CPL script registered. This script forks into
multiple local users D, E, F and G in parallel.

The loop occurred when receiving the request for user C.


Attachment: loop_fix_orig_uri.dpatch
Description: application/shellscript

Yxa-devel mailing list

Reply via email to