diff options
author | Christian Grothoff <christian@grothoff.org> | 2009-11-16 08:32:27 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2009-11-16 08:32:27 +0000 |
commit | b1685ed04171415c242ae8e39061e899a8c6f2f5 (patch) | |
tree | 1c7ba32c278eae2e37cc8933757548785d220bd3 /src/util | |
parent | c3140081a55e9913de37ff21734b3da5b89b4302 (diff) | |
download | gnunet-b1685ed04171415c242ae8e39061e899a8c6f2f5.tar.gz gnunet-b1685ed04171415c242ae8e39061e899a8c6f2f5.zip |
bugfix
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/Makefile.am | 1 | ||||
-rw-r--r-- | src/util/program.c | 24 | ||||
-rw-r--r-- | src/util/pseudonym.c | 4 |
3 files changed, 28 insertions, 1 deletions
diff --git a/src/util/Makefile.am b/src/util/Makefile.am index 47744001b..c85a2cd75 100644 --- a/src/util/Makefile.am +++ b/src/util/Makefile.am | |||
@@ -362,6 +362,7 @@ perf_crypto_hash_LDADD = \ | |||
362 | 362 | ||
363 | 363 | ||
364 | EXTRA_DIST = \ | 364 | EXTRA_DIST = \ |
365 | program_lib_argz.c \ | ||
365 | test_configuration_data.conf \ | 366 | test_configuration_data.conf \ |
366 | test_container_meta_data_image.jpg \ | 367 | test_container_meta_data_image.jpg \ |
367 | test_program_data.conf \ | 368 | test_program_data.conf \ |
diff --git a/src/util/program.c b/src/util/program.c index 695a6f9bc..f74da8c7f 100644 --- a/src/util/program.c +++ b/src/util/program.c | |||
@@ -35,6 +35,12 @@ | |||
35 | #include "gnunet_scheduler_lib.h" | 35 | #include "gnunet_scheduler_lib.h" |
36 | #include <gcrypt.h> | 36 | #include <gcrypt.h> |
37 | 37 | ||
38 | #if HAVE_ARGZ_H | ||
39 | #include <argz.h> | ||
40 | #else | ||
41 | #include "program_lib_argz.c" | ||
42 | #endif | ||
43 | |||
38 | /** | 44 | /** |
39 | * Context for the command. | 45 | * Context for the command. |
40 | */ | 46 | */ |
@@ -139,7 +145,25 @@ GNUNET_PROGRAM_run (int argc, | |||
139 | GNUNET_GETOPT_OPTION_VERSION (PACKAGE_VERSION) | 145 | GNUNET_GETOPT_OPTION_VERSION (PACKAGE_VERSION) |
140 | }; | 146 | }; |
141 | struct GNUNET_GETOPT_CommandLineOption *allopts; | 147 | struct GNUNET_GETOPT_CommandLineOption *allopts; |
148 | const char *gargs; | ||
142 | 149 | ||
150 | gargs = getenv ("GNUNET_ARGS"); | ||
151 | if (gargs != NULL) | ||
152 | { | ||
153 | char *gargz; | ||
154 | size_t gargl; | ||
155 | char **gargv; | ||
156 | int i; | ||
157 | |||
158 | argz_create_sep (gargs, ' ', &gargz, &gargl); | ||
159 | for (i=0;i<argc;i++) | ||
160 | argz_insert (&gargz, &gargl, gargz, argv[i]); | ||
161 | gargv = GNUNET_malloc (sizeof (char*) * (gargl+1)); | ||
162 | argz_extract (gargz, gargl, gargv); | ||
163 | argc = argz_count (gargz, gargl); | ||
164 | free (gargz); | ||
165 | argv = (char *const *) gargv; | ||
166 | } | ||
143 | memset (&cc, 0, sizeof (cc)); | 167 | memset (&cc, 0, sizeof (cc)); |
144 | loglev = NULL; | 168 | loglev = NULL; |
145 | cc.task = task; | 169 | cc.task = task; |
diff --git a/src/util/pseudonym.c b/src/util/pseudonym.c index 91bdd6c9d..67bca2e4a 100644 --- a/src/util/pseudonym.c +++ b/src/util/pseudonym.c | |||
@@ -409,7 +409,7 @@ list_pseudonym_helper (void *cls, const char *fullname) | |||
409 | int rating; | 409 | int rating; |
410 | struct GNUNET_CONTAINER_MetaData *meta; | 410 | struct GNUNET_CONTAINER_MetaData *meta; |
411 | const char *fn; | 411 | const char *fn; |
412 | const char *str = "not null"; | 412 | char *str; |
413 | 413 | ||
414 | if (strlen (fullname) < sizeof (struct GNUNET_CRYPTO_HashAsciiEncoded)) | 414 | if (strlen (fullname) < sizeof (struct GNUNET_CRYPTO_HashAsciiEncoded)) |
415 | return GNUNET_OK; | 415 | return GNUNET_OK; |
@@ -421,8 +421,10 @@ list_pseudonym_helper (void *cls, const char *fullname) | |||
421 | ret = GNUNET_OK; | 421 | ret = GNUNET_OK; |
422 | if (GNUNET_OK != GNUNET_CRYPTO_hash_from_string (fn, &id)) | 422 | if (GNUNET_OK != GNUNET_CRYPTO_hash_from_string (fn, &id)) |
423 | return GNUNET_OK; /* invalid name */ | 423 | return GNUNET_OK; /* invalid name */ |
424 | str = NULL; | ||
424 | if (GNUNET_OK != read_info (c->cfg, &id, &meta, &rating, &str)) | 425 | if (GNUNET_OK != read_info (c->cfg, &id, &meta, &rating, &str)) |
425 | return GNUNET_OK; /* ignore entry */ | 426 | return GNUNET_OK; /* ignore entry */ |
427 | GNUNET_free_non_null (str); | ||
426 | if (c->iterator != NULL) | 428 | if (c->iterator != NULL) |
427 | ret = c->iterator (c->closure, &id, meta, rating); | 429 | ret = c->iterator (c->closure, &id, meta, rating); |
428 | GNUNET_CONTAINER_meta_data_destroy (meta); | 430 | GNUNET_CONTAINER_meta_data_destroy (meta); |