int search_main(int argc, char **argv) { int ret = 0; int lock_fd = 0; struct manifest *MoM = NULL; if (!parse_options(argc, argv)) { return EXIT_FAILURE; } ret = swupd_init(&lock_fd); if (ret != 0) { printf("Failed swupd initialization, exiting now.\n"); goto clean_exit; } if (!check_network()) { printf("Error: Network issue, unable to proceed with update\n"); ret = EXIT_FAILURE; goto clean_exit; } if (!init) { printf("Searching for '%s'\n\n", search_string); } ret = download_manifests(&MoM); if (ret != 0) { printf("Error: Failed to download manifests\n"); goto clean_exit; } if (init) { printf("Successfully retreived manifests. Exiting\n"); ret = 0; goto clean_exit; } /* Arbitrary upper limit to ensure we aren't getting handed garbage */ if (!display_files && ((strlen(search_string) <= 0) || (strlen(search_string) > NAME_MAX))) { printf("Error - search string invalid\n"); ret = EXIT_FAILURE; goto clean_exit; } do_search(MoM, search_type, search_string); clean_exit: free_manifest(MoM); free_globals(); swupd_curl_cleanup(); v_lockfile(lock_fd); return ret; }
int search_main(int argc, char **argv) { int ret = 0; struct manifest *MoM = NULL; struct list *subs = NULL; if (!parse_options(argc, argv)) { return EINVALID_OPTION; } ret = swupd_init(); if (ret != 0) { fprintf(stderr, "Failed swupd initialization, exiting now.\n"); return ret; } if (!init) { fprintf(stderr, "Searching for '%s'\n\n", search_string); } ret = download_manifests(&MoM, &subs); if (ret != 0) { fprintf(stderr, "Error: Failed to download manifests\n"); goto clean_exit; } if (init) { fprintf(stderr, "Successfully retrieved manifests. Exiting\n"); ret = 0; goto clean_exit; } /* Arbitrary upper limit to ensure we aren't getting handed garbage */ if (!display_files && ((strlen(search_string) <= 0) || (strlen(search_string) > NAME_MAX))) { fprintf(stderr, "Error - search string invalid\n"); ret = EXIT_FAILURE; goto clean_exit; } do_search(MoM, search_type, search_string); clean_exit: free_manifest(MoM); free_subscriptions(&subs); swupd_deinit(); return ret; }