---
plugins/udevng.c | 52 ++++++++++++++++++++++++++++++----------------------
1 files changed, 30 insertions(+), 22 deletions(-)
diff --git a/plugins/udevng.c b/plugins/udevng.c
index 1365bd1..40cc1ff 100644
--- a/plugins/udevng.c
+++ b/plugins/udevng.c
@@ -264,16 +264,18 @@ static gboolean setup_huawei(struct modem_info *modem)
if (mdm != NULL && pcui != NULL)
break;
} else if (g_strcmp0(info->interface, "255/255/255") == 0) {
- if (g_strcmp0(info->number, "00") == 0)
+ if (mdm == NULL && g_strcmp0(info->number, "00") == 0)
mdm = info->devnode;
- else if (g_strcmp0(info->number, "01") == 0)
- pcui = info->devnode;
- else if (g_strcmp0(info->number, "02") == 0)
- pcui = info->devnode;
- else if (g_strcmp0(info->number, "03") == 0)
- pcui = info->devnode;
- else if (g_strcmp0(info->number, "04") == 0)
- pcui = info->devnode;
+ else if (pcui == NULL) {
+ if (g_strcmp0(info->number, "01") == 0)
+ pcui = info->devnode;
+ else if (g_strcmp0(info->number, "02") == 0)
+ pcui = info->devnode;
+ else if (g_strcmp0(info->number, "03") == 0)
+ pcui = info->devnode;
+ else if (g_strcmp0(info->number, "04") == 0)
+ pcui = info->devnode;
+ }
}
}
@@ -311,12 +313,14 @@ static gboolean setup_speedup(struct modem_info *modem)
if (aux != NULL)
break;
} else if (g_strcmp0(info->interface, "255/255/255") == 0) {
- if (g_strcmp0(info->number, "01") == 0)
+ if ( aux == NULL && g_strcmp0(info->number, "01") == 0)
aux = info->devnode;
- else if (g_strcmp0(info->number, "02") == 0)
- mdm = info->devnode;
- else if (g_strcmp0(info->number, "03") == 0)
- mdm = info->devnode;
+ else if (mdm == NULL) {
+ if (g_strcmp0(info->number, "02") == 0)
+ mdm = info->devnode;
+ else if (g_strcmp0(info->number, "03") == 0)
+ mdm = info->devnode;
+ }
}
}
@@ -385,9 +389,10 @@ static gboolean setup_alcatel(struct modem_info *modem)
if (aux != NULL)
break;
} else if (g_strcmp0(info->interface, "255/255/255") == 0) {
- if (g_strcmp0(info->number, "03") == 0)
+ if (aux == NULL && g_strcmp0(info->number, "03") == 0)
aux = info->devnode;
- else if (g_strcmp0(info->number, "05") == 0)
+ else if (mdm == NULL &&
+ g_strcmp0(info->number, "05") == 0)
mdm = info->devnode;
}
}
@@ -425,9 +430,10 @@ static gboolean setup_novatel(struct modem_info *modem)
if (aux != NULL)
break;
} else if (g_strcmp0(info->interface, "255/255/255") == 0) {
- if (g_strcmp0(info->number, "00") == 0)
+ if (aux == NULL && g_strcmp0(info->number, "00") == 0)
aux = info->devnode;
- else if (g_strcmp0(info->number, "01") == 0)
+ else if (mdm == NULL &&
+ g_strcmp0(info->number, "01") == 0)
mdm = info->devnode;
}
}
@@ -465,9 +471,10 @@ static gboolean setup_nokia(struct modem_info *modem)
if (aux != NULL)
break;
} else if (g_strcmp0(info->interface, "10/0/0") == 0) {
- if (g_strcmp0(info->number, "02") == 0)
+ if (mdm == NULL && g_strcmp0(info->number, "02") == 0)
mdm = info->devnode;
- else if (g_strcmp0(info->number, "04") == 0)
+ else if (aux == NULL &&
+ g_strcmp0(info->number, "04") == 0)
aux = info->devnode;
}
}
@@ -505,13 +512,14 @@ static gboolean setup_telit(struct modem_info *modem)
if (aux != NULL)
break;
} else if (g_strcmp0(info->interface, "255/255/255") == 0) {
- if (g_strcmp0(info->number, "00") == 0)
+ if (mdm == NULL && g_strcmp0(info->number, "00") == 0)
mdm = info->devnode;
else if (g_strcmp0(info->number, "01") == 0)
diag = info->devnode;
else if (g_strcmp0(info->number, "02") == 0)
gps = info->devnode;
- else if (g_strcmp0(info->number, "03") == 0)
+ else if (aux == NULL
+ && g_strcmp0(info->number, "03") == 0)
aux = info->devnode;
}
}
--
1.7.1