static gboolean
meta1_dispatch_v2_SRV_LIST(struct gridd_reply_ctx_s *reply,
		struct meta1_backend_s *m1, gpointer ignored UNUSED)
{
	struct oio_url_s *url = metautils_message_extract_url (reply->request);
	gchar *srvtype = metautils_message_extract_string_copy (reply->request, NAME_MSGKEY_TYPENAME);
	reply->subject("%s|%s|%s", oio_url_get(url, OIOURL_WHOLE), oio_url_get(url, OIOURL_HEXID), srvtype);
	STRING_STACKIFY(srvtype);

	gchar **result = NULL;
	GError *err = meta1_backend_services_list(m1, url, srvtype, &result);
	if (NULL != err)
		reply->send_error(0, err);
	else {
		reply->add_body(encode_and_clean(STRV_encode_gba, result));
		reply->send_reply(CODE_FINAL_OK, "OK");
	}

	oio_url_clean (url);
	return TRUE;
}
static gboolean
meta1_dispatch_v2_SRV_LIST(struct gridd_reply_ctx_s *reply,
		struct meta1_backend_s *m1, gpointer ignored)
{
	GError *err;
	gchar **result = NULL;
	struct oio_url_s *url = metautils_message_extract_url (reply->request);
	gchar *srvtype = metautils_message_extract_string_copy (reply->request, NAME_MSGKEY_TYPENAME);
	reply->subject("%s|%s|%s", oio_url_get(url, OIOURL_WHOLE), oio_url_get(url, OIOURL_HEXID), srvtype);
	(void) ignored;

	if (NULL != (err = meta1_backend_services_list(m1, url, srvtype, &result)))
		reply->send_error(0, err);
	else {
		reply->add_body(marshall_stringv_and_clean(&result));
		reply->send_reply(CODE_FINAL_OK, "OK");
	}

	if (result) g_strfreev (result);
	oio_url_clean (url);
	g_free0 (srvtype);
	return TRUE;
}