]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_pjsip: dont return early from registration if init auth fails
authorNick French <nickfrench@gmail.com>
Thu, 25 Feb 2021 02:51:55 +0000 (20:51 -0600)
committerJoshua Colp <jcolp@sangoma.com>
Tue, 2 Mar 2021 17:18:00 +0000 (11:18 -0600)
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

index 99da044529d9cc19a6bf8a627c2c7f39dd412d57..ad603180f7962dbdd6fb8badb81e537f392361aa 100644 (file)
@@ -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