summaryrefslogtreecommitdiffstats
path: root/src/modemman.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/modemman.c')
-rw-r--r--src/modemman.c27
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];