diff options
author | Lennart Poettering <lennart@poettering.net> | 2004-01-14 18:09:07 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2004-01-14 18:09:07 +0000 |
commit | a232b80501f2d403322b9f3d215ebbef0b40af54 (patch) | |
tree | 07a5e5016fa52f1315c3dd8465a1767532c25733 /src/modemman.c | |
parent | de500fc2c9a21e3c97176f8f090e149b5f3771d2 (diff) |
add device spec command line option
git-svn-id: file:///home/lennart/svn/public/ivam2/trunk@39 dbf6933d-3bce-0310-9bcc-ed052ba35b35
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]; |