static MESSAGE make_srv_request(const gchar *rn, struct sqlxsrv_name_s *name) { MESSAGE req = NULL; gchar strcid[65], strseq[32]; GByteArray *gba_cid; gba_cid = metautils_gba_from_cid(*(name->cid)); memset(strcid, 0, sizeof(strcid)); buffer2str(name->cid, sizeof(container_id_t), strcid, sizeof(strcid)); g_snprintf(strseq, sizeof(strseq), "%"G_GINT64_FORMAT, name->seq); req = message_create_request(NULL, NULL, rn, NULL, NULL); message_add_fields_str(req, "BASE_SEQ", strseq, "BASE_NAME", strcid, "BASE_TYPE", name->schema, "SCHEMA", name->schema, "NAMESPACE", name->ns, "VIRTUAL_NAMESPACE", name->ns, NULL); message_add_fields_gba(req, "CONTAINER_ID", gba_cid, NULL); g_byte_array_free(gba_cid, TRUE); return req; }
GByteArray* m2v2_remote_pack_SUBST_CHUNKS(GByteArray *sid, struct hc_url_s *url, GSList *new_chunks, GSList *old_chunks, gboolean restrict_to_alias) { struct message_s *msg; GByteArray *new_chunks_gba = bean_sequence_marshall(new_chunks); GByteArray *old_chunks_gba = bean_sequence_marshall(old_chunks); msg = _m2v2_build_request("M2V2_SUBST_CHUNKS", sid, url, NULL); if (restrict_to_alias) { (void) message_add_field(msg, M2_KEY_RESTRICT_TO_ALIAS, sizeof(M2_KEY_RESTRICT_TO_ALIAS)-1, "TRUE", 5, NULL); } message_add_fields_gba(msg, M2_KEY_NEW_CHUNKS, new_chunks_gba, M2_KEY_OLD_CHUNKS, old_chunks_gba, NULL); g_byte_array_unref(new_chunks_gba); g_byte_array_unref(old_chunks_gba); return message_marshall_gba_and_clean(msg); }