diff options
Diffstat (limited to 'src/testbed/gnunet-helper-testbed.c')
-rw-r--r-- | src/testbed/gnunet-helper-testbed.c | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/src/testbed/gnunet-helper-testbed.c b/src/testbed/gnunet-helper-testbed.c index 510b42dba..6b080cfa9 100644 --- a/src/testbed/gnunet-helper-testbed.c +++ b/src/testbed/gnunet-helper-testbed.c | |||
@@ -338,7 +338,7 @@ tokenizer_cb (void *cls, void *client, | |||
338 | char *config; | 338 | char *config; |
339 | char *xconfig; | 339 | char *xconfig; |
340 | char *evstr; | 340 | char *evstr; |
341 | char *str; | 341 | //char *str; |
342 | size_t config_size; | 342 | size_t config_size; |
343 | uLongf ul_config_size; | 343 | uLongf ul_config_size; |
344 | size_t xconfig_size; | 344 | size_t xconfig_size; |
@@ -407,7 +407,8 @@ tokenizer_cb (void *cls, void *client, | |||
407 | if (NULL != evstr) | 407 | if (NULL != evstr) |
408 | { | 408 | { |
409 | #if WINDOWS | 409 | #if WINDOWS |
410 | GNUNET_break (0 == putenv (GNUNET_TESTING_PREFIX "=")); | 410 | static char *evar = GNUNET_TESTING_PREFIX "="; |
411 | GNUNET_break (0 == putenv (evar)); | ||
411 | #else | 412 | #else |
412 | GNUNET_break (0 == unsetenv (GNUNET_TESTING_PREFIX)); | 413 | GNUNET_break (0 == unsetenv (GNUNET_TESTING_PREFIX)); |
413 | #endif | 414 | #endif |
@@ -417,11 +418,11 @@ tokenizer_cb (void *cls, void *client, | |||
417 | NULL); | 418 | NULL); |
418 | if (NULL != evstr) | 419 | if (NULL != evstr) |
419 | { | 420 | { |
420 | GNUNET_assert (0 < GNUNET_asprintf (&str, | 421 | static char evar[2* PATH_MAX]; |
422 | |||
423 | GNUNET_assert (0 < GNUNET_snprintf (evar, sizeof (evar), | ||
421 | GNUNET_TESTING_PREFIX "=%s", evstr)); | 424 | GNUNET_TESTING_PREFIX "=%s", evstr)); |
422 | putenv (str); | 425 | putenv (evar); |
423 | /* do not free str will be consumed by putenv */ | ||
424 | str = NULL; | ||
425 | /* do not free evstr */ | 426 | /* do not free evstr */ |
426 | evstr = NULL; | 427 | evstr = NULL; |
427 | } | 428 | } |
@@ -444,11 +445,15 @@ tokenizer_cb (void *cls, void *client, | |||
444 | } | 445 | } |
445 | LOG_DEBUG ("Staring testbed with config: %s\n", config); | 446 | LOG_DEBUG ("Staring testbed with config: %s\n", config); |
446 | binary = GNUNET_OS_get_libexec_binary_path ("gnunet-service-testbed"); | 447 | binary = GNUNET_OS_get_libexec_binary_path ("gnunet-service-testbed"); |
447 | /* expose testbed configuration through env variable */ | 448 | { |
448 | GNUNET_assert (0 < GNUNET_asprintf (&evstr, "%s=%s", ENV_TESTBED_CONFIG, config)); | 449 | static char evar[2 * PATH_MAX]; |
449 | GNUNET_assert (0 == putenv (evstr)); /* Do NOT free evstr; it is consumed by | 450 | |
450 | putenv */ | 451 | /* expose testbed configuration through env variable */ |
451 | evstr = NULL; | 452 | GNUNET_assert (0 < GNUNET_snprintf (evar, sizeof (evar), |
453 | "%s=%s", ENV_TESTBED_CONFIG, config)); | ||
454 | GNUNET_assert (0 == putenv (evar)); | ||
455 | evstr = NULL; | ||
456 | } | ||
452 | testbed = | 457 | testbed = |
453 | GNUNET_OS_start_process (PIPE_CONTROL, | 458 | GNUNET_OS_start_process (PIPE_CONTROL, |
454 | GNUNET_OS_INHERIT_STD_ERR /*verbose? */ , NULL, | 459 | GNUNET_OS_INHERIT_STD_ERR /*verbose? */ , NULL, |