diff options
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -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; } |