From da13a5c885c1bc74c0f06e97075c3515419e890e Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Fri, 29 Oct 2004 22:31:36 +0000 Subject: Oopsies... git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4128 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- pbx/pbx_dundi.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'pbx') diff --git a/pbx/pbx_dundi.c b/pbx/pbx_dundi.c index 07dd70c40..8b583ef71 100755 --- a/pbx/pbx_dundi.c +++ b/pbx/pbx_dundi.c @@ -3605,8 +3605,8 @@ static void reschedule_precache(const char *number, const char *context, int exp }; if (!qe) { len = sizeof(struct dundi_precache_queue); - len += strlen(number + 1); - len += strlen(context + 1); + len += strlen(number) + 1; + len += strlen(context) + 1; qe = malloc(len); if (qe) { memset(qe, 0, len); @@ -4110,7 +4110,7 @@ static void populate_addr(struct dundi_peer *peer, dundi_eid *eid) } -static void build_peer(dundi_eid *eid, struct ast_variable *v) +static void build_peer(dundi_eid *eid, struct ast_variable *v, int *globalpcmode) { struct dundi_peer *peer; struct ast_hostent he; @@ -4237,6 +4237,7 @@ static void build_peer(dundi_eid *eid, struct ast_variable *v) } v = v->next; } + (*globalpcmode) |= peer->pcmodel; if (!peer->model && !peer->pcmodel) { ast_log(LOG_WARNING, "Peer '%s' lacks a model or pcmodel, discarding!\n", dundi_eid_to_str(eid_str, sizeof(eid_str), &peer->eid)); @@ -4393,6 +4394,7 @@ static int set_config(char *config_file, struct sockaddr_in* sin) struct hostent *hp; struct sockaddr_in sin2; static int last_port = 0; + int globalpcmodel = 0; dundi_eid testeid; dundi_ttl = DUNDI_DEFAULT_TTL; @@ -4512,7 +4514,7 @@ static int set_config(char *config_file, struct sockaddr_in* sin) if (strcasecmp(cat, "general") && strcasecmp(cat, "mappings")) { /* Entries */ if (!dundi_str_to_eid(&testeid, cat)) - build_peer(&testeid, ast_variable_browse(cfg, cat)); + build_peer(&testeid, ast_variable_browse(cfg, cat), &globalpcmodel); else ast_log(LOG_NOTICE, "Ignoring invalid EID entry '%s'\n", cat); } @@ -4521,7 +4523,8 @@ static int set_config(char *config_file, struct sockaddr_in* sin) prune_peers(); ast_destroy(cfg); load_password(); - dundi_precache_full(); + if (globalpcmodel & DUNDI_MODEL_OUTBOUND) + dundi_precache_full(); return 0; } -- cgit v1.2.3