Merge "chan_dahdi: remove by_name support"
[asterisk/asterisk.git] / channels / chan_dahdi.c
index 78ebaa3..d224a20 100644 (file)
@@ -11977,38 +11977,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.
@@ -17424,33 +17392,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;
 
@@ -17460,7 +17404,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) {
@@ -17482,39 +17425,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;
                        }
                }