Exemple #1
0
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;
}
Exemple #2
0
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;
}