diff options
Diffstat (limited to 'lib/reqcreat.c')
-rw-r--r-- | lib/reqcreat.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/lib/reqcreat.c b/lib/reqcreat.c new file mode 100644 index 0000000..65f7880 --- /dev/null +++ b/lib/reqcreat.c @@ -0,0 +1,51 @@ +/* This file is part of Eclat. + Copyright (C) 2012-2015 Sergey Poznyakoff. + + Eclat is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + Eclat is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Eclat. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> +#include "libeclat.h" +#include "grecs.h" + +static void +ec2_param_free(void *ptr) +{ + struct ec2_param *p = ptr; + free(p->name); + free(p->value); + free(p); +} + +struct ec2_request * +eclat_request_create(int flags, const char *endpoint, const char *uri, + char const *region, char const *access_key, + char const *token) +{ + struct ec2_request *req = grecs_zalloc(sizeof(*req)); + req->flags = flags; + req->params = grecs_symtab_create(sizeof(struct ec2_param), + NULL, + NULL, + NULL, + NULL, + ec2_param_free); + eclat_request_add_param(req, "Version", EC2_API_VERSION); + req->endpoint = grecs_strdup(endpoint); + req->uri = grecs_strdup(uri); + req->ttl = 5; + req->region = grecs_strdup(region ? region : "us-east-1"); + req->access_key = grecs_strdup(access_key); + req->token = token ? grecs_strdup(token) : NULL; + return req; +} |