#129 A way to reset "t_on_branch" in serial forking

open
None
5
2008-08-10
2008-08-10
No

imagine this simple case:

--------------------------
route {
t_on_branch("1");
t_on_failure("2");

xlog("We are in 'route'");
t_relay("1.1.1.1");
}

branch_route[1] {
xlog("We are in 'branch_route[1]'");
# do something....
}

failure_route[2] {
xlog("We are in 'failure_route[2]'");
append_branch();
t_relay("2.2.2.2");
}
---------------------------

In case an error occurs when forwarding the request to 1.1.1.1 this would be the screen log output:

We are in 'route'
We are in 'branch_route[1]'
We are in 'failure_route[2]'
We are in 'branch_route[1]'

This is: branch_route[1] will also be runned **again** after the failure route since it was loaded in the first forward attemp.

I really don't know if this is intuitive or not. The only way to "dissable" branch_route[1] in the failure route is by adding:

-------------------
failure_route[2] {
t_on_branch("2"); # <--- Dissable t_on_branch("1")

xlog("We are in 'failure_route[2]'");
append_branch();
t_relay("2.2.2.2");
}

branch_route[2] {
xlog("We are in 'branch_route[2]'");
# Nothing to do here.
# This route is neccesary to dissable
# previous t_on_branch("1")
}
------------------

This would show:

We are in 'route'
We are in 'branch_route[1]'
We are in 'failure_route[2]'
We are in 'branch_route[2]'

What about if "t_on_branch" wouldn't remain loaded after a failure route or serial forking? wouldn't be more intuitive to re-enable it explicitely when required?

Or perhaps a way to reset the previosly loaded "t_on_branch"? Anyway I think is more simple and intuitive to reset it by default and if required load it again explicitely.

PD: The same occurs with "t_on_failure" and "t_on_reply".

Discussion

  • Daniel-Constantin Mierla

    Logged In: YES
    user_id=1246013
    Originator: NO

    Investigating the code should work with:
    t_on_branch("0")

    Similar with the rest of the cases. Can you test and see?

    Anyhow, some questions are still here:
    - shall they be rearmed by default, or reset once the callback route is executed
    - is 0 parameter enough meaningful to be a clear reset? Docs updated properly or new functions with proper name?

     
  • Daniel-Constantin Mierla

    • assigned_to: nobody --> miconda
     
  • Iñaki Baz Castillo

    Logged In: YES
    user_id=1844020
    Originator: YES

    Yes, t_on_branch("0") resets the "branch_route".

    > Anyhow, some questions are still here:
    > - shall they be rearmed by default, or reset once the callback
    > route is executed

    At least under my experience, is more intuitive and logical to reset it in each serial step.

    > - is 0 parameter enough meaningful to be a clear reset? Docs updated
    > properly or new functions with proper name?

    Well, if it was well documented, for me is the same.

     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks