GByteArray* sqlx_pack_RESTORE(struct sqlx_name_s *name, const guint8 *raw, gsize rawsize) { MESSAGE req = make_request(NAME_MSGNAME_SQLX_RESTORE, name); metautils_message_set_BODY(req, raw, rawsize); return message_marshall_gba_and_clean(req); }
gint reply_context_reply (struct reply_context_s *ctx, GError **err) { EXTRA_ASSERT (ctx != NULL); register gchar *ptr_msg = ctx->header.msg ? ctx->header.msg : "NOMSG"; MESSAGE answer = metaXServer_reply_simple (ctx->req_ctx->request, ctx->header.code, ptr_msg); if (ctx->extra_headers) g_hash_table_foreach(ctx->extra_headers, reply_ctx_header_adder, answer); if (ctx->body.buffer && (ctx->body.size > 0)) metautils_message_set_BODY(answer, ctx->body.buffer, ctx->body.size); GByteArray *encoded = message_marshall_gba_and_clean(answer); answer = NULL; if (encoded) { gint _to = MAX(MS_REPLY_TIMEOUT, MIN(60000, default_to_operation)); gint sent = sock_to_write(ctx->req_ctx->fd, _to, encoded->data, encoded->len, err); gboolean done = (sent > 0) && (encoded->len == (guint)sent); g_byte_array_unref (encoded); if (!done) { g_prefix_error(err, "Failed to reply: "); return 0; } } return 1; }
void metautils_message_add_body_unref (MESSAGE m, GByteArray *body) { if (!body) return; if (body->len && body->data) metautils_message_set_BODY (m, body->data, body->len); g_byte_array_unref (body); }
GError* meta0_remote_disable_meta1(const char *m0, gchar **urls, gboolean nocheck) { if (!urls || !*urls) return NEWERROR(CODE_BAD_REQUEST, "Too few URL's"); MESSAGE request = metautils_message_create_named(NAME_MSGNAME_M0_DISABLE_META1); if (nocheck) metautils_message_add_field_str(request, NAME_MSGKEY_NOCHECK, "yes"); gchar *body = g_strjoinv("\n", urls); metautils_message_set_BODY(request, body, strlen(body)); g_free(body); return _m0_remote_no_return (m0, message_marshall_gba_and_clean(request)); }
GError* meta0_remote_fill(const char *m0, gchar **urls, guint nbreplicas) { if (nbreplicas < 1) return NEWERROR(CODE_BAD_REQUEST, "Too few replicas"); if (!urls || !*urls) return NEWERROR(CODE_BAD_REQUEST, "Too few URL's"); if (nbreplicas > g_strv_length(urls)) return NEWERROR(CODE_BAD_REQUEST, "Too many replicas for the URL's set"); MESSAGE request = metautils_message_create_named(NAME_MSGNAME_M0_FILL); metautils_message_add_field_strint64(request, NAME_MSGKEY_REPLICAS, nbreplicas); gchar *body = g_strjoinv("\n", urls); metautils_message_set_BODY(request, body, strlen(body)); g_free(body); return _m0_remote_no_return (m0, message_marshall_gba_and_clean(request)); }