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
This commit is contained in:
Nick French
2021-02-24 20:51:55 -06:00
committed by Joshua Colp
parent d2f623bae2
commit 8f6e0f9367

View 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