summaryrefslogtreecommitdiff
path: root/channels/chan_dahdi.c
diff options
context:
space:
mode:
Diffstat (limited to 'channels/chan_dahdi.c')
-rw-r--r--channels/chan_dahdi.c84
1 files changed, 5 insertions, 79 deletions
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index 8cccf843b..dde3c08fc 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -11979,38 +11979,6 @@ static int sigtype_to_signalling(int sigtype)
/*!
* \internal
- * \brief Get file name and channel number from (subdir,number)
- *
- * \param subdir name of the subdirectory under /dev/dahdi/
- * \param channel name of device file under /dev/dahdi/<subdir>/
- * \param path buffer to put file name in
- * \param pathlen maximal length of path
- *
- * \retval minor number of dahdi channel.
- * \retval -errno on error.
- */
-static int device2chan(const char *subdir, int channel, char *path, int pathlen)
-{
- struct stat stbuf;
- int num;
-
- snprintf(path, pathlen, "/dev/dahdi/%s/%d", subdir, channel);
- if (stat(path, &stbuf) < 0) {
- ast_log(LOG_ERROR, "stat(%s) failed: %s\n", path, strerror(errno));
- return -errno;
- }
- if (!S_ISCHR(stbuf.st_mode)) {
- ast_log(LOG_ERROR, "%s: Not a character device file\n", path);
- return -EINVAL;
- }
- num = minor(stbuf.st_rdev);
- ast_debug(1, "%s -> %d\n", path, num);
- return num;
-
-}
-
-/*!
- * \internal
* \brief Initialize/create a channel interface.
*
* \param channel Channel interface number to initialize/create.
@@ -17426,33 +17394,9 @@ static int unload_module(void)
return __unload_module();
}
-static void string_replace(char *str, int char1, int char2)
-{
- for (; *str; str++) {
- if (*str == char1) {
- *str = char2;
- }
- }
-}
-
-static char *parse_spanchan(char *chanstr, char **subdir)
-{
- char *p;
-
- if ((p = strrchr(chanstr, '!')) == NULL) {
- *subdir = NULL;
- return chanstr;
- }
- *p++ = '\0';
- string_replace(chanstr, '!', '/');
- *subdir = chanstr;
- return p;
-}
-
static int build_channels(struct dahdi_chan_conf *conf, const char *value, int reload, int lineno)
{
char *c, *chan;
- char *subdir;
int x, start, finish;
struct dahdi_pvt *tmp;
@@ -17462,7 +17406,6 @@ static int build_channels(struct dahdi_chan_conf *conf, const char *value, int r
}
c = ast_strdupa(value);
- c = parse_spanchan(c, &subdir);
while ((chan = strsep(&c, ","))) {
if (sscanf(chan, "%30d-%30d", &start, &finish) == 2) {
@@ -17484,39 +17427,22 @@ static int build_channels(struct dahdi_chan_conf *conf, const char *value, int r
}
for (x = start; x <= finish; x++) {
- char fn[PATH_MAX];
- int real_channel = x;
-
- if (!ast_strlen_zero(subdir)) {
- real_channel = device2chan(subdir, x, fn, sizeof(fn));
- if (real_channel < 0) {
- if (conf->ignore_failed_channels) {
- ast_log(LOG_WARNING, "Failed configuring %s!%d, (got %d). But moving on to others.\n",
- subdir, x, real_channel);
- continue;
- } else {
- ast_log(LOG_ERROR, "Failed configuring %s!%d, (got %d).\n",
- subdir, x, real_channel);
- return -1;
- }
- }
- }
if (conf->wanted_channels_start &&
- (real_channel < conf->wanted_channels_start ||
- real_channel > conf->wanted_channels_end)
+ (x < conf->wanted_channels_start ||
+ x > conf->wanted_channels_end)
) {
continue;
}
- tmp = mkintf(real_channel, conf, reload);
+ tmp = mkintf(x, conf, reload);
if (tmp) {
- ast_verb(3, "%s channel %d, %s signalling\n", reload ? "Reconfigured" : "Registered", real_channel, sig2str(tmp->sig));
+ ast_verb(3, "%s channel %d, %s signalling\n", reload ? "Reconfigured" : "Registered", x, sig2str(tmp->sig));
} else {
ast_log(LOG_ERROR, "Unable to %s channel '%s'\n",
(reload == 1) ? "reconfigure" : "register", value);
return -1;
}
- if (real_channel == CHAN_PSEUDO) {
+ if (x == CHAN_PSEUDO) {
has_pseudo = 1;
}
}