static enum qmi_cmd_result do_sel_network(void) { static bool use_sel_req = false; if (!use_sel_req) { use_sel_req = true; uqmi_add_command(NULL, __UQMI_COMMAND_nas_do_set_system_selection); } return QMI_CMD_DONE; }
int main(int argc, char **argv) { static struct qmi_dev dev; int ch; while ((ch = getopt_long(argc, argv, "d:k:", uqmi_getopt, NULL)) != -1) { int cmd_opt = CMD_OPT(ch); if (ch < 0 && cmd_opt >= 0 && cmd_opt < __UQMI_COMMAND_LAST) { uqmi_add_command(optarg, cmd_opt); continue; } switch(ch) { case 'r': release_client_id(&dev, optarg); break; case 'k': keep_client_id(&dev, optarg); break; case 'd': device = optarg; break; default: return usage(argv[0]); } } if (!device) { fprintf(stderr, "No device given\n"); return usage(argv[0]); } uloop_init(); signal(SIGINT, handle_exit_signal); signal(SIGTERM, handle_exit_signal); if (qmi_device_open(&dev, device)) { fprintf(stderr, "Failed to open device\n"); uloop_done(); return 2; } uqmi_run_commands(&dev); qmi_device_close(&dev); uloop_done(); return 0; }