static lagopus_result_t tmp_dir_opt_parse(const char *const *argv[], void *c, void *out_configs, lagopus_dstring_t *result) { lagopus_result_t ret = LAGOPUS_RESULT_ANY_FAILURES; char *path = NULL; (void) out_configs; (void) c; if (argv != NULL && out_configs != NULL && result != NULL) { if (*(*argv + 1) != NULL) { (*argv)++; if (IS_VALID_STRING(*(*argv)) == true) { ret = flow_cmd_dump_tmp_dir_set(*(*argv)); if (ret != LAGOPUS_RESULT_OK) { ret = datastore_json_result_string_setf(result, ret, "Bad opt value = %s.", *(*argv)); } } else { ret = datastore_json_result_string_setf(result, ret, "Bad opt value = %s.", *(*argv)); } } else { if ((ret = flow_cmd_dump_tmp_dir_get(&path)) == LAGOPUS_RESULT_OK) { if ((ret = lagopus_dstring_appendf(result, "{")) != LAGOPUS_RESULT_OK) { lagopus_perror(ret); goto done; } if ((ret = datastore_json_string_append( result, ATTR_NAME_GET(opt_strs, OPT_TMP_DIR), path, false)) != LAGOPUS_RESULT_OK) { lagopus_perror(ret); goto done; } if ((ret = lagopus_dstring_appendf(result, "}")) != LAGOPUS_RESULT_OK) { lagopus_perror(ret); goto done; } } else { ret = datastore_json_result_string_setf(result, ret, "Can't get tmp dir."); } } } else { ret = datastore_json_result_set(result, LAGOPUS_RESULT_INVALID_ARGS, NULL); } done: free(path); return ret; }
static inline lagopus_result_t s_parse_begin_show(lagopus_dstring_t *result) { lagopus_result_t ret = LAGOPUS_RESULT_ANY_FAILURES; lagopus_dstring_t show_result = NULL; char *str = NULL; /* show. */ if ((ret = lagopus_dstring_create(&show_result)) == LAGOPUS_RESULT_OK) { if ((ret = lagopus_dstring_appendf(&show_result, "{")) != LAGOPUS_RESULT_OK) { lagopus_perror(ret); goto done; } if ((ret = datastore_json_string_append( &show_result, ATTR_NAME_GET(opt_strs, OPT_TMP_DIR), save_tmp_dir, false)) != LAGOPUS_RESULT_OK) { lagopus_perror(ret); goto done; } if ((ret = lagopus_dstring_appendf(&show_result, "}")) != LAGOPUS_RESULT_OK) { lagopus_perror(ret); goto done; } ret = lagopus_dstring_str_get(&show_result, &str); if (ret == LAGOPUS_RESULT_OK) { ret = datastore_json_result_set(result, LAGOPUS_RESULT_OK, str); } } else { lagopus_perror(ret); } done: free(str); lagopus_dstring_destroy(&show_result); return ret; }