void *data;
} iter_data;
-static int __xsystem(const char *argv[])
-{
- int status = 0;
- pid_t pid;
- pid = fork();
- switch (pid) {
- case -1:
- perror("fork failed");
- return -1;
- case 0:
- /* child */
- execvp(argv[0], (char *const *)argv);
- _exit(-1);
- default:
- /* parent */
- break;
- }
- if (waitpid(pid, &status, 0) == -1) {
- perror("waitpid failed");
- return -1;
- }
- if (WIFSIGNALED(status)) {
- perror("signal");
- return -1;
- }
- if (!WIFEXITED(status)) {
- /* shouldn't happen */
- perror("should not happen");
- return -1;
- }
- return WEXITSTATUS(status);
-}
-
-static void __error_to_string(int errnumber, char **errstr)
-{
- if (errstr == NULL)
- return;
- switch (errnumber) {
- case PKGCMD_ERR_PACKAGE_NOT_FOUND:
- *errstr = PKGCMD_ERR_PACKAGE_NOT_FOUND_STR;
- break;
- case PKGCMD_ERR_PACKAGE_INVALID:
- *errstr = PKGCMD_ERR_PACKAGE_INVALID_STR;
- break;
- case PKGCMD_ERR_PACKAGE_LOWER_VERSION:
- *errstr = PKGCMD_ERR_PACKAGE_LOWER_VERSION_STR;
- break;
- case PKGCMD_ERR_PACKAGE_EXECUTABLE_NOT_FOUND:
- *errstr = PKGCMD_ERR_PACKAGE_EXECUTABLE_NOT_FOUND_STR;
- break;
- case PKGCMD_ERR_MANIFEST_INVALID:
- *errstr = PKGCMD_ERR_MANIFEST_INVALID_STR;
- break;
- case PKGCMD_ERR_CONFIG_NOT_FOUND:
- *errstr = PKGCMD_ERR_CONFIG_NOT_FOUND_STR;
- break;
- case PKGCMD_ERR_CONFIG_INVALID:
- *errstr = PKGCMD_ERR_CONFIG_INVALID_STR;
- break;
- case PKGCMD_ERR_SIGNATURE_NOT_FOUND:
- *errstr = PKGCMD_ERR_SIGNATURE_NOT_FOUND_STR;
- break;
- case PKGCMD_ERR_SIGNATURE_INVALID:
- *errstr = PKGCMD_ERR_SIGNATURE_INVALID_STR;
- break;
- case PKGCMD_ERR_SIGNATURE_VERIFICATION_FAILED:
- *errstr = PKGCMD_ERR_SIGNATURE_VERIFICATION_FAILED_STR;
- break;
- case PKGCMD_ERR_ROOT_CERTIFICATE_NOT_FOUND:
- *errstr = PKGCMD_ERR_ROOT_CERTIFICATE_NOT_FOUND_STR;
- break;
- case PKGCMD_ERR_CERTIFICATE_INVALID:
- *errstr = PKGCMD_ERR_CERTIFICATE_INVALID_STR;
- break;
- case PKGCMD_ERR_CERTIFICATE_CHAIN_VERIFICATION_FAILED:
- *errstr = PKGCMD_ERR_CERTIFICATE_CHAIN_VERIFICATION_FAILED_STR;
- break;
- case PKGCMD_ERR_CERTIFICATE_EXPIRED:
- *errstr = PKGCMD_ERR_CERTIFICATE_EXPIRED_STR;
- break;
- case PKGCMD_ERR_INVALID_PRIVILEGE:
- *errstr = PKGCMD_ERR_INVALID_PRIVILEGE_STR;
- break;
- case PKGCMD_ERR_MENU_ICON_NOT_FOUND:
- *errstr = PKGCMD_ERR_MENU_ICON_NOT_FOUND_STR;
- break;
- case PKGCMD_ERR_FATAL_ERROR:
- *errstr = PKGCMD_ERR_FATAL_ERROR_STR;
- break;
- case PKGCMD_ERR_OUT_OF_STORAGE:
- *errstr = PKGCMD_ERR_OUT_OF_STORAGE_STR;
- break;
- case PKGCMD_ERR_OUT_OF_MEMORY:
- *errstr = PKGCMD_ERR_OUT_OF_MEMORY_STR;
- break;
- case PKGCMD_ERR_ARGUMENT_INVALID:
- *errstr = PKGCMD_ERR_ARGUMENT_INVALID_STR;
- break;
- default:
- *errstr = PKGCMD_ERR_UNKNOWN_STR;
- break;
- }
-}
-
static void __add_op_cbinfo(pkgmgr_client_t *pc, int request_id,
const char *req_key, pkgmgr_handler event_cb, void *new_event_cb,
void *data)