]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
cdr_adaptive_odbc: Also apply a filter when the CDR value is empty.
authorRichard Mudgett <rmudgett@digium.com>
Wed, 23 Oct 2013 16:49:51 +0000 (16:49 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Wed, 23 Oct 2013 16:49:51 +0000 (16:49 +0000)
Extra CDR records are written if a filtered CDR value is empty because the
filter is not checked.

(closes issue ASTERISK-22272)
Reported by: Jordi Llull Chavarria
........

Merged revisions 401577 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 401579 from http://svn.asterisk.org/svn/asterisk/branches/11

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@401581 65c4cc65-6c06-0410-ace0-fbb531ad65f3

cdr/cdr_adaptive_odbc.c

index a590fb32a1ec1dccc49604d090a17b4993d4de53..0a9cfdbdd9a11e77c7d17e90ed57ec988b6311dd 100644 (file)
@@ -720,6 +720,14 @@ static int odbc_log(struct ast_cdr *cdr)
                                        continue;
                                }
                                first = 0;
+                       } else if (entry->filtervalue
+                               && ((!entry->negatefiltervalue && entry->filtervalue[0] != '\0')
+                                       || (entry->negatefiltervalue && entry->filtervalue[0] == '\0'))) {
+                               ast_verb(4, "CDR column '%s' was not set and does not match filter of"
+                                       " %s'%s'.  Cancelling this CDR.\n",
+                                       entry->cdrname, entry->negatefiltervalue ? "!" : "",
+                                       entry->filtervalue);
+                               goto early_release;
                        }
                }