config.c: Fix successful DELETE treated as failure
authorAlexei Gradinari <alex2grad@gmail.com>
Fri, 18 May 2018 21:45:22 +0000 (17:45 -0400)
committerAlexei Gradinari <alex2grad@gmail.com>
Tue, 22 May 2018 14:29:29 +0000 (08:29 -0600)
The config engine destroy_func callback function returns the number of
rows deleted or -1 on error.  But the function
ast_destroy_realtime_fields treated non-zero return values as error.

ASTERISK-27863

Change-Id: Ied02b38e8196cb03043e609a0679feebd288d17b

main/config.c

index 2684fc0..d0447fc 100644 (file)
@@ -3568,7 +3568,7 @@ int ast_destroy_realtime_fields(const char *family, const char *keyfield, const
 
        for (i = 1; ; i++) {
                if ((eng = find_engine(family, i, db, sizeof(db), table, sizeof(table)))) {
-                       if (eng->destroy_func && !(res = eng->destroy_func(db, table, keyfield, lookup, fields))) {
+                       if (eng->destroy_func && ((res = eng->destroy_func(db, table, keyfield, lookup, fields)) >= 0)) {
                                break;
                        }
                } else {