<html><head><meta http-equiv="content-type" content="text/html; charset=us-ascii"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Hi,<br><br>Is there any good solution for the scenario of an auth_challenge() with two separate transaction suspensions?<br><br>To clarify (simplified):<br><br><b style="font-family: "Courier New";"> </b><font face="FiraCodeNerdFontComplete-Regular"><span style="font-style: normal;"> request_route {<br> ...<br><br> t_newtran();<br><br> if(!is_present_hf("Authorization") && !is_present_hf("Proxy-Authorization")) {<br> auth_challenge("$fd", "1");<br> exit;<br> }<br><br> # TM suspend/continue<br> t_newtran();<br><br> async credentials query("RESUME_AUTH");<br> }<br><br> route[RESUME_AUTH] {<br> # Credentials received into PVs.<br><br> if(!pv_auth_check("...")) {<br> auth_challenge("$fd", "1");<br> exit;<br> }<br><br> # Create transaction shell if not exists already from auth query.<br> if(!t_lookup_request())<br> t_newtran();<br><br> # TM suspend/continue<br> async route query("RESUME_ROUTING");<br> }<br><br> route[RESUME_ROUTING] {<br> # Unmarshal etc.<br><br> t_relay(); # etc.</span></font><br><font face="Courier New"> }</font><br><br>What happens here is that the first auth_challenge() results in a retransmission of its 407 challenge without absorbing the negative ACK. This is despite the ostensibly stateful behaviour of auth_challenge() without "force_stateless_reply" enabled.<br><br>In this case, it eclipses the second, unrelated 407 challenge from the subsequent routing query (407 challenge with +1 CSeq):<div><br></div><div><br><div><img src="cid:9CBA8AB8-B28A-423C-A469-DB4727F2E6CF" alt="Screenshot 2022-12-12 at 3.44.15 PM.jpeg"></div><div><br></div><div>-- Alex</div><div><br></div><div>
-- <br>Alex Balashov | Principal | Evariste Systems LLC<br><br>Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)<br>Web: http://www.evaristesys.com/, http://www.csrpswitch.com/<br>
</div>
<br></div></div></body></html>