diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2013-02-15 17:20:53 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2013-02-15 17:25:58 +0200 |
commit | 9205135a977cacebb79df1309ef5eaab57127f06 (patch) | |
tree | fd9ed7ba7476d8d9c4272238119bcd644150463d /lib | |
parent | 62f22e19e0953022d68f220463104117a1a5b7e2 (diff) | |
download | eclat-9205135a977cacebb79df1309ef5eaab57127f06.tar.gz eclat-9205135a977cacebb79df1309ef5eaab57127f06.tar.bz2 |
Implement DescribeImages and RunInstances.
* TODO: Update.
* etc/describe-images.fln: New file.
* etc/run-instances.fln: New file.
* etc/Makefile.am: Add new files.
* lib/q2url.c (add_param): Accept NULL values.
* lib/qaddparm.c (eclat_query_add_param): Likewise.
* lib/qencode.c (encode_param): Likewise.
* lib/reqsign.c (eclat_query_signature): Likewise.
* src/dscrimgs-cl.opt: New file.
* src/dscrimgs.c: New file.
* src/runinsts-cl.opt: New file.
* src/runinsts.c: New file.
* src/Makefile.am: Add new files.
* src/eclat.c (cmdtab): Register new commands.
* src/eclat.h (eclat_run_instances)
(eclat_describe_images): New protos.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/q2url.c | 6 | ||||
-rw-r--r-- | lib/qaddparm.c | 2 | ||||
-rw-r--r-- | lib/qencode.c | 8 | ||||
-rw-r--r-- | lib/reqsign.c | 5 |
4 files changed, 13 insertions, 8 deletions
diff --git a/lib/q2url.c b/lib/q2url.c index c47c71b..9ec5bee 100644 --- a/lib/q2url.c +++ b/lib/q2url.c @@ -27,8 +27,10 @@ add_param(void *sym, void *data) grecs_txtacc_grow_char(acc, '&'); grecs_txtacc_grow(acc, p->name, strlen(p->name)); - grecs_txtacc_grow_char(acc, '='); - grecs_txtacc_grow(acc, p->value, strlen(p->value)); + if (p->value) { + grecs_txtacc_grow_char(acc, '='); + grecs_txtacc_grow(acc, p->value, strlen(p->value)); + } return 0; } diff --git a/lib/qaddparm.c b/lib/qaddparm.c index a4d0685..ce7a960 100644 --- a/lib/qaddparm.c +++ b/lib/qaddparm.c @@ -29,5 +29,5 @@ eclat_query_add_param(struct ec2_query *q, const char *name, const char *value) p = grecs_symtab_lookup_or_install(q->params, &key, &install); if (!install) free(p->value); - p->value = grecs_strdup(value); + p->value = value ? grecs_strdup(value) : NULL; } diff --git a/lib/qencode.c b/lib/qencode.c index 500a6b2..91feb68 100644 --- a/lib/qencode.c +++ b/lib/qencode.c @@ -25,9 +25,11 @@ encode_param(void *sym, void *data) struct ec2_param *p = sym; char *enc; - urlencode(p->value, strlen(p->value), &enc, NULL); - free(p->value); - p->value = enc; + if (p->value) { + urlencode(p->value, strlen(p->value), &enc, NULL); + free(p->value); + p->value = enc; + } return 0; } diff --git a/lib/reqsign.c b/lib/reqsign.c index 0b05501..a8a4e5e 100644 --- a/lib/reqsign.c +++ b/lib/reqsign.c @@ -95,9 +95,10 @@ eclat_query_signature(struct ec2_query *req, char *secret) if (i != 0) grecs_txtacc_grow_char(acc, '&'); grecs_txtacc_grow(acc, p->name, strlen(p->name)); - grecs_txtacc_grow_char(acc, '='); - if (p->value) + if (p->value) { + grecs_txtacc_grow_char(acc, '='); grecs_txtacc_grow(acc, p->value, strlen(p->value)); + } } grecs_txtacc_grow_char(acc, 0); str = grecs_txtacc_finish(acc, 0); |