aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2013-02-15 17:20:53 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2013-02-15 17:25:58 +0200
commit9205135a977cacebb79df1309ef5eaab57127f06 (patch)
treefd9ed7ba7476d8d9c4272238119bcd644150463d /lib
parent62f22e19e0953022d68f220463104117a1a5b7e2 (diff)
downloadeclat-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.c6
-rw-r--r--lib/qaddparm.c2
-rw-r--r--lib/qencode.c8
-rw-r--r--lib/reqsign.c5
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);

Return to:

Send suggestions and report system problems to the System administrator.