summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/main.c b/main.c
index 9b43e5e..c8c7c86 100644
--- a/main.c
+++ b/main.c
@@ -44,6 +44,7 @@ static const struct option uqmi_getopt[] = {
{ "keep-client-id", required_argument, NULL, 'k' },
{ "release-client-id", required_argument, NULL, 'r' },
{ "mbim", no_argument, NULL, 'm' },
+ { "proxy", no_argument, NULL, 'p' },
{ NULL, 0, NULL, 0 }
};
#undef __uqmi_command
@@ -57,6 +58,7 @@ static int usage(const char *progname)
" --keep-client-id <name>: Keep Client ID for service <name>\n"
" --release-client-id <name>: Release Client ID after exiting\n"
" --mbim, -m NAME is an MBIM device with EXT_QMUX support\n"
+ " --proxy, -p Connect via qmi-proxy or mbim-proxy\n"
"\n"
"Services: dms, nas, pds, wds, wms\n"
"\n"
@@ -107,12 +109,13 @@ int main(int argc, char **argv)
{
static struct qmi_dev dev;
int ch, ret;
+ bool use_proxy = false;
uloop_init();
signal(SIGINT, handle_exit_signal);
signal(SIGTERM, handle_exit_signal);
- while ((ch = getopt_long(argc, argv, "d:k:sm", uqmi_getopt, NULL)) != -1) {
+ while ((ch = getopt_long(argc, argv, "d:k:smp", uqmi_getopt, NULL)) != -1) {
int cmd_opt = CMD_OPT(ch);
if (ch < 0 && cmd_opt >= 0 && cmd_opt < __UQMI_COMMAND_LAST) {
@@ -136,6 +139,9 @@ int main(int argc, char **argv)
case 'm':
dev.is_mbim = true;
break;
+ case 'p':
+ use_proxy = true;
+ break;
default:
return usage(argv[0]);
}
@@ -146,7 +152,12 @@ int main(int argc, char **argv)
return usage(argv[0]);
}
- if (qmi_device_open(&dev, device)) {
+ if (use_proxy)
+ ret = qmi_device_proxy_open(&dev, device);
+ else
+ ret = qmi_device_open(&dev, device);
+
+ if (ret) {
fprintf(stderr, "Failed to open device\n");
return 2;
}