void mdataDelete(const char *keyname) { string_t *data; char *errmsg = NULL; mdata_response_t mdr; if (initialized_proto == 0) { if (proto_init(&mdp, &errmsg) != 0) { fatal(ERR_MDATA_INIT, "could not initialize metadata: %s\n", errmsg); } initialized_proto = 1; } if (proto_version(mdp) < 2) { fatal(ERR_MDATA_TOO_OLD, "mdata protocol must be >= 2 for DELETE"); } if (proto_execute(mdp, "DELETE", keyname, &mdr, &data) != 0) { fatal(ERR_MDATA_FAIL, "failed to DELETE"); } dlog("MDATA DELETE %s\n", keyname); }
int main(int argc, char **argv) { mdata_proto_t *mdp; mdata_response_t mdr; string_t *data; const char *errmsg = NULL; if (argc < 2) { errx(MDEC_USAGE_ERROR, "Usage: %s <keyname>", argv[0]); } if (proto_init(&mdp, &errmsg) != 0) { fprintf(stderr, "ERROR: could not initialise protocol: %s\n", errmsg); return (MDEC_ERROR); } if (proto_version(mdp) < 2) { fprintf(stderr, "ERROR: host does not support DELETE\n"); return (MDEC_ERROR); } keyname = strdup(argv[1]); if (proto_execute(mdp, "DELETE", keyname, &mdr, &data) != 0) { fprintf(stderr, "ERROR: could not execute GET\n"); return (MDEC_ERROR); } return (print_response(mdr, data)); }
void mdataPut(const char *keyname, const char *value) { string_t *data; char *errmsg = NULL; mdata_response_t mdr; string_t *req = dynstr_new(); if (initialized_proto == 0) { if (proto_init(&mdp, &errmsg) != 0) { fatal(ERR_MDATA_INIT, "could not initialize metadata: %s\n", errmsg); } initialized_proto = 1; } base64_encode(keyname, strlen(keyname), req); dynstr_appendc(req, ' '); base64_encode(value, strlen(value), req); if (proto_version(mdp) < 2) { fatal(ERR_MDATA_TOO_OLD, "mdata protocol must be >= 2 for PUT"); } if (proto_execute(mdp, "PUT", dynstr_cstr(req), &mdr, &data) != 0) { fatal(ERR_MDATA_FAIL, "failed to PUT"); } dynstr_free(req); dlog("MDATA PUT %s=%s\n", keyname, value); }