diff options
author | Matt Jordan <mjordan@digium.com> | 2015-09-10 08:39:21 -0500 |
---|---|---|
committer | Matt Jordan <mjordan@digium.com> | 2015-09-10 08:39:21 -0500 |
commit | 1dd0e220bf98ca93b825d7b5af4160f7718eab38 (patch) | |
tree | 3066c0e11bf3b87e84b2e9d4c561213cccfc3fea /res/res_pjsip_nat.c | |
parent | 777f9adfc7be50b634e0b131af611ac936f9cca8 (diff) |
res/res_pjsip_nat: Ignore REGISTER requests when looking for a Record-Route
We will only rewrite the Contact header if there is no Record-Route header in
the received request. If a malfunctioning proxy places a Record-Route header
into a REGISTER request, we will decide that we shouldn't update the IP/port
in the Contact header, and we will end up storing a contact with an AoR that
contains the NAT'd IP address.
While it is nice to have the proxy *not* send a Record-Route in a REGISTER
request, it's also a good idea to not process the header in a non-dialog
message. This patch updates the code to explicitly ignore the Record-Route
header in REGISTER requests.
ASTERISK-25387 #close
Change-Id: I4bd3bcccc4003d460cc354d986b0dea2e433ef3f
Diffstat (limited to 'res/res_pjsip_nat.c')
-rw-r--r-- | res/res_pjsip_nat.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/res/res_pjsip_nat.c b/res/res_pjsip_nat.c index c32b71d76..a2eb6ad86 100644 --- a/res/res_pjsip_nat.c +++ b/res/res_pjsip_nat.c @@ -56,7 +56,7 @@ static int rewrite_route_set(pjsip_rx_data *rdata, pjsip_dialog *dlg) break; } } - } else { + } else if (pjsip_method_cmp(&rdata->msg_info.msg->line.req.method, &pjsip_register_method)) { rr = pjsip_msg_find_hdr(rdata->msg_info.msg, PJSIP_H_RECORD_ROUTE, NULL); } |