From dedfb334bdd4726867721958517576a91f9e81f1 Mon Sep 17 00:00:00 2001
From: Nick French <nickfrench@gmail.com>
Date: Wed, 24 Feb 2021 20:51:55 -0600
Subject: [PATCH] res_pjsip: dont return early from registration if init auth
 fails

If set_outbound_initial_authentication_credentials() fails,
handle_client_registration() bails early without creating or
sending a register message.

[set_outbound_initial_authentication_credentials() failures
can occur during the process of retrieving an oauth access
token.]

The return from handle_client_registration is ignored, so
returning an error doesn't do any good.

This is a real problem when the registration request is a
re-register, because then the registration will still be
marked 'active' despite the re-register never being sent at all.

So instead, log a warning but let the registration be created
and sent (and probably fail) and follow the normal registration
failed retry/abort logic.

ASTERISK-29315 #close

Change-Id: I2e03b1ea7fba1fa1a8279086aa4b17679e7fa7fa
---
 res/res_pjsip_outbound_registration.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/res/res_pjsip_outbound_registration.c b/res/res_pjsip_outbound_registration.c
index 99da044529..ad603180f7 100644
--- a/res/res_pjsip_outbound_registration.c
+++ b/res/res_pjsip_outbound_registration.c
@@ -672,7 +672,6 @@ static int handle_client_registration(void *data)
 
 	if (set_outbound_initial_authentication_credentials(client_state->client, &client_state->outbound_auths)) {
 		ast_log(LOG_WARNING, "Failed to set initial authentication credentials\n");
-		return -1;
 	}
 
 	if (client_state->status == SIP_REGISTRATION_STOPPED
-- 
GitLab