コード例 #1
0
ファイル: reply.c プロジェクト: InGenious-Justice/oio-sds
enum http_rc_e
_reply_success_json (struct req_args_s *args, GString * gstr)
{
	int code = gstr && gstr->len > 0 ? HTTP_CODE_OK : HTTP_CODE_NO_CONTENT;
	const gchar *msg = gstr && gstr->len > 0 ? "OK" : "No Content";
	return _reply_json (args, code, msg, gstr);
}
コード例 #2
0
ファイル: admin_actions.c プロジェクト: cloudcache/oio-sds
// TODO: factorize the two following functions
enum http_rc_e
action_admin_meta0_list(struct req_args_s *args)
{
	GError *err = NULL;
	GSList *m0_lst = NULL;
	GSList *m1_lst = NULL;
	GString *json = NULL;

	err = conscience_get_services(NS(), NAME_SRVTYPE_META0, FALSE, &m0_lst);
	if (!err) {
		for (GSList *l = m0_lst; l; l = l->next) {
			g_clear_error(&err);
			service_info_t *m0 = l->data;
			gchar m0_url[STRLEN_ADDRINFO] = {0};
			grid_addrinfo_to_string(&(m0->addr), m0_url, sizeof(m0_url));

			err = meta0_remote_get_meta1_all(m0_url, &m1_lst);

			if (!err || !CODE_IS_NETWORK_ERROR(err->code))
				break;
		}
		g_slist_free_full(m0_lst, (GDestroyNotify)service_info_clean);
	}

	if (m1_lst) {
		json = _m0_mapping_from_m1_list(m1_lst);
		meta0_utils_list_clean(m1_lst);
		return _reply_json(args, HTTP_CODE_OK, "OK", json);
	}
	return _reply_common_error(args, err);
}
コード例 #3
0
ファイル: reply.c プロジェクト: InGenious-Justice/oio-sds
enum http_rc_e
_reply_notfound_error (struct req_args_s *args, GError * err)
{
	return _reply_json (args, HTTP_CODE_NOT_FOUND, "Not found", _create_status_error (err));
}
コード例 #4
0
ファイル: reply.c プロジェクト: InGenious-Justice/oio-sds
enum http_rc_e
_reply_not_implemented (struct req_args_s *args)
{
	return _reply_json (args, HTTP_CODE_NOT_IMPLEMENTED, "Not implemented",
			_create_status_error (NEWERROR(CODE_NOT_IMPLEMENTED, "NYI")));
}
コード例 #5
0
ファイル: reply.c プロジェクト: InGenious-Justice/oio-sds
enum http_rc_e
_reply_bad_gateway (struct req_args_s *args, GError * err)
{
	return _reply_json (args, HTTP_CODE_BAD_GATEWAY, "Bad Gateway", _create_status_error (err));
}
コード例 #6
0
ファイル: reply.c プロジェクト: InGenious-Justice/oio-sds
enum http_rc_e
_reply_system_error (struct req_args_s *args, GError * err)
{
	return _reply_json (args, HTTP_CODE_INTERNAL_ERROR, "Internal error", _create_status_error (err));
}
コード例 #7
0
ファイル: reply.c プロジェクト: InGenious-Justice/oio-sds
enum http_rc_e
_reply_format_error (struct req_args_s *args, GError * err)
{
	return _reply_json (args, HTTP_CODE_BAD_REQUEST, "Bad request", _create_status_error (err));
}
コード例 #8
0
ファイル: reply.c プロジェクト: InGenious-Justice/oio-sds
enum http_rc_e
_reply_created (struct req_args_s *args)
{
	return _reply_json (args, HTTP_CODE_CREATED, "Created", NULL);
}
コード例 #9
0
ファイル: reply.c プロジェクト: InGenious-Justice/oio-sds
enum http_rc_e
_reply_accepted (struct req_args_s *args)
{
	return _reply_json (args, HTTP_CODE_ACCEPTED, "Already Accepted", NULL);
}
コード例 #10
0
ファイル: reply.c プロジェクト: InGenious-Justice/oio-sds
enum http_rc_e
_reply_nocontent (struct req_args_s *args)
{
	return _reply_json (args, HTTP_CODE_NO_CONTENT, "No Content", NULL);
}
コード例 #11
0
ファイル: reply.c プロジェクト: InGenious-Justice/oio-sds
enum http_rc_e
_reply_conflict_error (struct req_args_s *args, GError * err)
{
	return _reply_json (args, HTTP_CODE_CONFLICT, "Conflict", _create_status_error (err));
}
コード例 #12
0
ファイル: reply.c プロジェクト: InGenious-Justice/oio-sds
enum http_rc_e
_reply_method_error (struct req_args_s *args)
{
	return _reply_json (args, HTTP_CODE_METHOD_NOT_ALLOWED, "Method not allowed", NULL);
}
コード例 #13
0
ファイル: reply.c プロジェクト: InGenious-Justice/oio-sds
enum http_rc_e
_reply_forbidden_error (struct req_args_s *args, GError * err)
{
	return _reply_json (args, HTTP_CODE_FORBIDDEN, "Forbidden", _create_status_error (err));
}