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]; |