|
@@ -678,6 +678,11 @@ int init_ds_db(void)
|
|
}
|
|
}
|
|
|
|
|
|
ret = ds_load_db();
|
|
ret = ds_load_db();
|
|
|
|
+ if (ret == -2)
|
|
|
|
+ {
|
|
|
|
+ LM_WARN("failure while loading one or more dispatcher entries\n");
|
|
|
|
+ ret = 0;
|
|
|
|
+ }
|
|
|
|
|
|
ds_disconnect_db();
|
|
ds_disconnect_db();
|
|
|
|
|
|
@@ -691,6 +696,7 @@ int ds_load_db(void)
|
|
int flags;
|
|
int flags;
|
|
int priority;
|
|
int priority;
|
|
int nrcols;
|
|
int nrcols;
|
|
|
|
+ int dest_errs = 0;
|
|
str uri;
|
|
str uri;
|
|
str attrs = {0, 0};
|
|
str attrs = {0, 0};
|
|
db1_res_t * res;
|
|
db1_res_t * res;
|
|
@@ -764,17 +770,20 @@ int ds_load_db(void)
|
|
}
|
|
}
|
|
if(add_dest2list(id, uri, flags, priority, &attrs,
|
|
if(add_dest2list(id, uri, flags, priority, &attrs,
|
|
*next_idx, &setn) != 0)
|
|
*next_idx, &setn) != 0)
|
|
|
|
+ {
|
|
|
|
+ dest_errs++;
|
|
LM_WARN("unable to add destination %.*s to set %d -- skipping\n",
|
|
LM_WARN("unable to add destination %.*s to set %d -- skipping\n",
|
|
uri.len, uri.s, id);
|
|
uri.len, uri.s, id);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- ds_dbf.free_result(ds_db_handle, res);
|
|
|
|
-
|
|
|
|
if(reindex_dests(*next_idx, setn)!=0)
|
|
if(reindex_dests(*next_idx, setn)!=0)
|
|
{
|
|
{
|
|
LM_ERR("error on reindex\n");
|
|
LM_ERR("error on reindex\n");
|
|
goto err2;
|
|
goto err2;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ ds_dbf.free_result(ds_db_handle, res);
|
|
|
|
+
|
|
/* update data - should it be sync'ed? */
|
|
/* update data - should it be sync'ed? */
|
|
_ds_list_nr = setn;
|
|
_ds_list_nr = setn;
|
|
*crt_idx = *next_idx;
|
|
*crt_idx = *next_idx;
|
|
@@ -782,6 +791,8 @@ int ds_load_db(void)
|
|
|
|
|
|
ds_print_sets();
|
|
ds_print_sets();
|
|
|
|
|
|
|
|
+ if (dest_errs > 0)
|
|
|
|
+ return -2;
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
err2:
|
|
err2:
|