diff options
Diffstat (limited to 'src/modemman.c')
| -rw-r--r-- | src/modemman.c | 27 | 
1 files changed, 26 insertions, 1 deletions
| diff --git a/src/modemman.c b/src/modemman.c index 8fefbfa..5cf13ed 100644 --- a/src/modemman.c +++ b/src/modemman.c @@ -103,11 +103,36 @@ const char *get_listen_msn(int i) {  int modem_manager_init(int channels) {      int i; - +          assert(channels <= MAX_CHANNELS && channels > 0);       assert(n_llist == 0);      daemon_log(LOG_INFO, "Allocating %i channels.", channels); + +    if (args.device_arg) { +        char *p = args.device_arg; +         +        for (;;) {             +            char dev[PATH_MAX]; +            size_t l, n = strcspn(p, ":"); + +            l = n; +            if (sizeof(dev)-1 < l) +                l = sizeof(dev)-1; +             +            strncpy(dev, p, l); +            dev[l] = 0; +                 +            modem_try_open(dev, get_listen_msn(n_llist)); + +            if (p[n] == 0) +                break; + +            p[n] = 0; +            p+=n+1; +        } +    } +          for (i = TTY_START; i < TTY_START+MAX_CHANNELS && n_llist < channels; i++) {          char d[PATH_MAX]; | 
