[Asterisk-code-review] cdr.c: Defer misc checks. (asterisk[13])
Richard Mudgett
asteriskteam at digium.com
Wed Oct 11 13:28:18 CDT 2017
Richard Mudgett has uploaded this change for review. ( https://gerrit.asterisk.org/6750
Change subject: cdr.c: Defer misc checks.
......................................................................
cdr.c: Defer misc checks.
Try to defer some checks until needed in case there is an early exit.
Change-Id: Ibc6b34c38a4f60ad4f9b67984b7d070a07257064
---
M main/cdr.c
1 file changed, 11 insertions(+), 9 deletions(-)
git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/50/6750/1
diff --git a/main/cdr.c b/main/cdr.c
index 8a1226b..ecf7bd3 100644
--- a/main/cdr.c
+++ b/main/cdr.c
@@ -1932,6 +1932,10 @@
if (!peer && !caller) {
return;
}
+ if (filter_channel_snapshot(peer) || (caller && filter_channel_snapshot(caller))) {
+ return;
+ }
+
dial_status_blob = ast_json_object_get(ast_multi_channel_blob_get_json(payload), "dialstatus");
if (dial_status_blob) {
dial_status = ast_json_string_get(dial_status_blob);
@@ -1943,10 +1947,6 @@
peer ? peer->name : "(none)",
(unsigned int)stasis_message_timestamp(message)->tv_sec,
(unsigned int)stasis_message_timestamp(message)->tv_usec);
-
- if (filter_channel_snapshot(peer) || (caller && filter_channel_snapshot(caller))) {
- return;
- }
/* Figure out who is running this show */
if (caller) {
@@ -2077,8 +2077,6 @@
struct stasis_cache_update *update = stasis_message_data(message);
struct ast_channel_snapshot *old_snapshot;
struct ast_channel_snapshot *new_snapshot;
- const char *uniqueid;
- const char *name;
struct cdr_object *it_cdr;
ast_assert(update != NULL);
@@ -2086,8 +2084,6 @@
old_snapshot = stasis_message_data(update->old_snapshot);
new_snapshot = stasis_message_data(update->new_snapshot);
- uniqueid = new_snapshot ? new_snapshot->uniqueid : old_snapshot->uniqueid;
- name = new_snapshot ? new_snapshot->name : old_snapshot->name;
if (filter_channel_cache_message(old_snapshot, new_snapshot)) {
return;
@@ -2101,11 +2097,17 @@
cdr->is_root = 1;
ao2_link(active_cdrs_by_channel, cdr);
} else {
+ const char *uniqueid;
+
+ uniqueid = new_snapshot ? new_snapshot->uniqueid : old_snapshot->uniqueid;
cdr = ao2_find(active_cdrs_by_channel, uniqueid, OBJ_SEARCH_KEY);
}
/* Handle Party A */
if (!cdr) {
+ const char *name;
+
+ name = new_snapshot ? new_snapshot->name : old_snapshot->name;
ast_log(AST_LOG_WARNING, "No CDR for channel %s\n", name);
ast_assert(0);
} else {
@@ -4288,7 +4290,7 @@
RAII_VAR(struct module_config *, old_mod_cfg, ao2_global_obj_ref(module_configs), ao2_cleanup);
RAII_VAR(struct module_config *, mod_cfg, NULL, ao2_cleanup);
- if (process_config(1)) {
+ if (!old_mod_cfg || process_config(1)) {
return -1;
}
--
To view, visit https://gerrit.asterisk.org/6750
To unsubscribe, visit https://gerrit.asterisk.org/settings
Gerrit-Project: asterisk
Gerrit-Branch: 13
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibc6b34c38a4f60ad4f9b67984b7d070a07257064
Gerrit-Change-Number: 6750
Gerrit-PatchSet: 1
Gerrit-Owner: Richard Mudgett <rmudgett at digium.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20171011/7fc53d98/attachment.html>
More information about the asterisk-code-review
mailing list