res_pjsip_outbound_registration.c: Misc fixes.
authorRichard Mudgett <rmudgett@digium.com>
Wed, 2 Aug 2017 23:41:49 +0000 (18:41 -0500)
committerRichard Mudgett <rmudgett@digium.com>
Thu, 3 Aug 2017 21:26:52 +0000 (16:26 -0500)
* Remove unnecessary CMP_STOP.

* In handle_client_registration() use DEBUG_ATLEAST() to only do work
needed for the debug log message when the debug log message is needed.

* In sip_outbound_registration_state_destroy() check state->registration
for NULL.

Change-Id: I656d0fa11dda0b00048103efb1558e67a426fd80

res/res_pjsip_outbound_registration.c

index 8a840ff..7b605b9 100644 (file)
@@ -459,7 +459,7 @@ static int line_identify_relationship(void *obj, void *arg, int flags)
        struct sip_outbound_registration_state *state = obj;
        pjsip_param *line = arg;
 
-       return !pj_strcmp2(&line->value, state->client_state->line) ? CMP_MATCH | CMP_STOP : 0;
+       return !pj_strcmp2(&line->value, state->client_state->line) ? CMP_MATCH : 0;
 }
 
 static struct pjsip_param *get_uri_option_line(const void *uri)
@@ -558,20 +558,21 @@ static int handle_client_registration(void *data)
 {
        RAII_VAR(struct sip_outbound_registration_client_state *, client_state, data, ao2_cleanup);
        pjsip_tx_data *tdata;
-       pjsip_regc_info info;
-       char server_uri[PJSIP_MAX_URL_SIZE];
-       char client_uri[PJSIP_MAX_URL_SIZE];
 
        if (client_state->status == SIP_REGISTRATION_STOPPED
                || pjsip_regc_register(client_state->client, PJ_FALSE, &tdata) != PJ_SUCCESS) {
                return 0;
        }
 
-       pjsip_regc_get_info(client_state->client, &info);
-       ast_copy_pj_str(server_uri, &info.server_uri, sizeof(server_uri));
-       ast_copy_pj_str(client_uri, &info.client_uri, sizeof(client_uri));
-       ast_debug(1, "Outbound REGISTER attempt %u to '%s' with client '%s'\n",
-               client_state->retries + 1, server_uri, client_uri);
+       if (DEBUG_ATLEAST(1)) {
+               pjsip_regc_info info;
+
+               pjsip_regc_get_info(client_state->client, &info);
+               ast_log(LOG_DEBUG, "Outbound REGISTER attempt %u to '%.*s' with client '%.*s'\n",
+                       client_state->retries + 1,
+                       (int) info.server_uri.slen, info.server_uri.ptr,
+                       (int) info.client_uri.slen, info.client_uri.ptr);
+       }
 
        if (client_state->support_path) {
                pjsip_supported_hdr *hdr;
@@ -987,7 +988,8 @@ static void sip_outbound_registration_state_destroy(void *obj)
        struct sip_outbound_registration_state *state = obj;
 
        ast_debug(3, "Destroying registration state for registration to server '%s' from client '%s'\n",
-                       state->registration->server_uri, state->registration->client_uri);
+               state->registration ? state->registration->server_uri : "",
+               state->registration ? state->registration->client_uri : "");
        ao2_cleanup(state->registration);
 
        if (!state->client_state) {