dect
/
asterisk
Archived
13
0
Fork 0

Reload fixes (bug #2991)

git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4421 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
markster 2004-12-11 00:02:08 +00:00
parent 110963f6ff
commit d935d8b8e8
1 changed files with 59 additions and 55 deletions

View File

@ -6283,13 +6283,15 @@ static struct zt_pvt *mkintf(int channel, int signalling, int radio, struct zt_p
prev = NULL;
while (tmp2) {
if (tmp2->channel == channel) {
tmp = tmp2;
here = 1;
break;
}
if (tmp2->channel > channel) {
break;
if (!tmp2->destroy) {
if (tmp2->channel == channel) {
tmp = tmp2;
here = 1;
break;
}
if (tmp2->channel > channel) {
break;
}
}
prev = tmp2;
tmp2 = tmp2->next;
@ -9131,61 +9133,63 @@ static int setup_zap(int reload)
return -1;
}
#ifdef ZAPATA_PRI
/* Process trunkgroups first */
v = ast_variable_browse(cfg, "trunkgroups");
while(v) {
if (!strcasecmp(v->name, "trunkgroup")) {
trunkgroup = atoi(v->value);
if (trunkgroup > 0) {
if ((c = strchr(v->value, ','))) {
i = 0;
memset(dchannels, 0, sizeof(dchannels));
while(c && (i < NUM_DCHANS)) {
dchannels[i] = atoi(c + 1);
if (dchannels[i] < 0) {
ast_log(LOG_WARNING, "D-channel for trunk group %d must be a postiive number at line %d of zapata.conf\n", trunkgroup, v->lineno);
if (!reload) {
/* Process trunkgroups first */
v = ast_variable_browse(cfg, "trunkgroups");
while(v) {
if (!strcasecmp(v->name, "trunkgroup")) {
trunkgroup = atoi(v->value);
if (trunkgroup > 0) {
if ((c = strchr(v->value, ','))) {
i = 0;
memset(dchannels, 0, sizeof(dchannels));
while(c && (i < NUM_DCHANS)) {
dchannels[i] = atoi(c + 1);
if (dchannels[i] < 0) {
ast_log(LOG_WARNING, "D-channel for trunk group %d must be a postiive number at line %d of zapata.conf\n", trunkgroup, v->lineno);
} else
i++;
c = strchr(c + 1, ',');
}
if (i) {
if (pri_create_trunkgroup(trunkgroup, dchannels)) {
ast_log(LOG_WARNING, "Unable to create trunk group %d with Primary D-channel %d at line %d of zapata.conf\n", trunkgroup, dchannels[0], v->lineno);
} else if (option_verbose > 1)
ast_verbose(VERBOSE_PREFIX_2 "Created trunk group %d with Primary D-channel %d and %d backup%s\n", trunkgroup, dchannels[0], i - 1, (i == 1) ? "" : "s");
} else
i++;
c = strchr(c + 1, ',');
}
if (i) {
if (pri_create_trunkgroup(trunkgroup, dchannels)) {
ast_log(LOG_WARNING, "Unable to create trunk group %d with Primary D-channel %d at line %d of zapata.conf\n", trunkgroup, dchannels[0], v->lineno);
} else if (option_verbose > 1)
ast_verbose(VERBOSE_PREFIX_2 "Created trunk group %d with Primary D-channel %d and %d backup%s\n", trunkgroup, dchannels[0], i - 1, (i == 1) ? "" : "s");
ast_log(LOG_WARNING, "Trunk group %d lacks any valid D-channels at line %d of zapata.conf\n", trunkgroup, v->lineno);
} else
ast_log(LOG_WARNING, "Trunk group %d lacks any valid D-channels at line %d of zapata.conf\n", trunkgroup, v->lineno);
ast_log(LOG_WARNING, "Trunk group %d lacks a primary D-channel at line %d of zapata.conf\n", trunkgroup, v->lineno);
} else
ast_log(LOG_WARNING, "Trunk group %d lacks a primary D-channel at line %d of zapata.conf\n", trunkgroup, v->lineno);
} else
ast_log(LOG_WARNING, "Trunk group identifier must be a positive integer at line %d of zapata.conf\n", v->lineno);
} else if (!strcasecmp(v->name, "spanmap")) {
spanno = atoi(v->value);
if (spanno > 0) {
if ((c = strchr(v->value, ','))) {
trunkgroup = atoi(c + 1);
if (trunkgroup > 0) {
if ((c = strchr(c + 1, ',')))
logicalspan = atoi(c + 1);
else
logicalspan = 0;
if (logicalspan >= 0) {
if (pri_create_spanmap(spanno - 1, trunkgroup, logicalspan)) {
ast_log(LOG_WARNING, "Failed to map span %d to trunk group %d (logical span %d)\n", spanno, trunkgroup, logicalspan);
} else if (option_verbose > 1)
ast_verbose(VERBOSE_PREFIX_2 "Mapped span %d to trunk group %d (logical span %d)\n", spanno, trunkgroup, logicalspan);
ast_log(LOG_WARNING, "Trunk group identifier must be a positive integer at line %d of zapata.conf\n", v->lineno);
} else if (!strcasecmp(v->name, "spanmap")) {
spanno = atoi(v->value);
if (spanno > 0) {
if ((c = strchr(v->value, ','))) {
trunkgroup = atoi(c + 1);
if (trunkgroup > 0) {
if ((c = strchr(c + 1, ',')))
logicalspan = atoi(c + 1);
else
logicalspan = 0;
if (logicalspan >= 0) {
if (pri_create_spanmap(spanno - 1, trunkgroup, logicalspan)) {
ast_log(LOG_WARNING, "Failed to map span %d to trunk group %d (logical span %d)\n", spanno, trunkgroup, logicalspan);
} else if (option_verbose > 1)
ast_verbose(VERBOSE_PREFIX_2 "Mapped span %d to trunk group %d (logical span %d)\n", spanno, trunkgroup, logicalspan);
} else
ast_log(LOG_WARNING, "Logical span must be a postive number, or '0' (for unspecified) at line %d of zapata.conf\n", v->lineno);
} else
ast_log(LOG_WARNING, "Logical span must be a postive number, or '0' (for unspecified) at line %d of zapata.conf\n", v->lineno);
ast_log(LOG_WARNING, "Trunk group must be a postive number at line %d of zapata.conf\n", v->lineno);
} else
ast_log(LOG_WARNING, "Trunk group must be a postive number at line %d of zapata.conf\n", v->lineno);
ast_log(LOG_WARNING, "Missing trunk group for span map at line %d of zapata.conf\n", v->lineno);
} else
ast_log(LOG_WARNING, "Missing trunk group for span map at line %d of zapata.conf\n", v->lineno);
} else
ast_log(LOG_WARNING, "Span number must be a postive integer at line %d of zapata.conf\n", v->lineno);
} else {
ast_log(LOG_NOTICE, "Ignoring unknown keyword '%s' in trunkgroups\n", v->name);
ast_log(LOG_WARNING, "Span number must be a postive integer at line %d of zapata.conf\n", v->lineno);
} else {
ast_log(LOG_NOTICE, "Ignoring unknown keyword '%s' in trunkgroups\n", v->name);
}
v = v->next;
}
v = v->next;
}
#endif
v = ast_variable_browse(cfg, "channels");