Пример #1
0
	int
meta2_filter_action_deduplicate_container(struct gridd_filter_ctx_s *ctx,
		struct gridd_reply_ctx_s *reply)
{
	GSList* result = NULL;   // list of list
	GSList* common_prefixes = NULL;

	SRVSTUB_PRINTF("packet received...DEDUP");

	void send_result()
	{
		GSList *list_of_lists = NULL;
		list_of_lists = gslist_split(result, 32);
		for (GSList *cursor = list_of_lists; cursor; cursor = cursor->next) {
			reply->add_body(bean_sequence_marshall(cursor->data));
			reply->send_reply(206, "Partial content");
		}
		if (NULL != common_prefixes) {
			char **array = (char **)metautils_list_to_array(common_prefixes);
			reply->add_header("COMMON_PREFIXES", metautils_encode_lines(array));
			g_strfreev(array);
		}

		/* TODO : max-keys, truncated */

		reply->send_reply(200, "OK");

		gslist_chunks_destroy(list_of_lists, NULL);
	}
Пример #2
0
static GByteArray *
marshall_stringv(gchar **v)
{
	GByteArray *result = metautils_encode_lines(v);
	g_strfreev(v);
	return result;
}
static GByteArray *
marshall_stringv_and_clean(gchar ***pv)
{
	GByteArray *result = metautils_encode_lines(*pv);
	g_strfreev(*pv);
	*pv = NULL;
	return result;
}
	void send_result()
	{
		if (NULL != common_prefixes) {
			char **array = (char **)metautils_list_to_array(common_prefixes);
			reply->add_header("COMMON_PREFIXES", metautils_encode_lines(array));
			g_strfreev(array);
		}

		S3_RESPONSE_HEADER(M2_KEY_PREFIX, lp->params.s3.prefix);
		S3_RESPONSE_HEADER(M2_KEY_MARKER, lp->params.s3.marker);
		S3_RESPONSE_HEADER(M2_KEY_DELIMITER, lp->params.s3.delimiter);
		S3_RESPONSE_HEADER(M2_KEY_MAX_KEYS, (maxkeys_str) ? maxkeys_str : "1000");
		S3_RESPONSE_HEADER("TRUNCATED", truncated ? "true" : "false");
		S3_RESPONSE_HEADER("NEXT_MARKER", next_marker);

		_on_bean_ctx_send_list(obc, TRUE);
	}