diff options
author | LRN <lrn1986@gmail.com> | 2013-12-08 21:33:29 +0000 |
---|---|---|
committer | LRN <lrn1986@gmail.com> | 2013-12-08 21:33:29 +0000 |
commit | ef2d4d1604028a47f7cbd4f23681eba37dc2ac0c (patch) | |
tree | 53e10be2f640fa573f79421379b9fe52d575dec8 /src/testbed/gnunet-helper-testbed.c | |
parent | 65923cbc2746640d0a9c2851fdec6205c5cca8a6 (diff) | |
download | gnunet-ef2d4d1604028a47f7cbd4f23681eba37dc2ac0c.tar.gz gnunet-ef2d4d1604028a47f7cbd4f23681eba37dc2ac0c.zip |
Save the prefix value on W32, it does not survive unsetting
Diffstat (limited to 'src/testbed/gnunet-helper-testbed.c')
-rw-r--r-- | src/testbed/gnunet-helper-testbed.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/testbed/gnunet-helper-testbed.c b/src/testbed/gnunet-helper-testbed.c index 6b080cfa9..42a459636 100644 --- a/src/testbed/gnunet-helper-testbed.c +++ b/src/testbed/gnunet-helper-testbed.c | |||
@@ -406,9 +406,10 @@ tokenizer_cb (void *cls, void *client, | |||
406 | evstr = getenv (GNUNET_TESTING_PREFIX); | 406 | evstr = getenv (GNUNET_TESTING_PREFIX); |
407 | if (NULL != evstr) | 407 | if (NULL != evstr) |
408 | { | 408 | { |
409 | #if WINDOWS | 409 | #ifdef WINDOWS |
410 | static char *evar = GNUNET_TESTING_PREFIX "="; | 410 | /* unsetting the variable will invalidate the pointer! */ |
411 | GNUNET_break (0 == putenv (evar)); | 411 | evstr = GNUNET_strdup (evstr); |
412 | GNUNET_break (0 != SetEnvironmentVariable (GNUNET_TESTING_PREFIX, NULL)); | ||
412 | #else | 413 | #else |
413 | GNUNET_break (0 == unsetenv (GNUNET_TESTING_PREFIX)); | 414 | GNUNET_break (0 == unsetenv (GNUNET_TESTING_PREFIX)); |
414 | #endif | 415 | #endif |
@@ -418,11 +419,16 @@ tokenizer_cb (void *cls, void *client, | |||
418 | NULL); | 419 | NULL); |
419 | if (NULL != evstr) | 420 | if (NULL != evstr) |
420 | { | 421 | { |
422 | #ifdef WINDOWS | ||
423 | GNUNET_assert (0 != SetEnvironmentVariable (GNUNET_TESTING_PREFIX, evstr)); | ||
424 | GNUNET_free (evstr); | ||
425 | #else | ||
421 | static char evar[2* PATH_MAX]; | 426 | static char evar[2* PATH_MAX]; |
422 | 427 | ||
423 | GNUNET_assert (0 < GNUNET_snprintf (evar, sizeof (evar), | 428 | GNUNET_assert (0 < GNUNET_snprintf (evar, sizeof (evar), |
424 | GNUNET_TESTING_PREFIX "=%s", evstr)); | 429 | GNUNET_TESTING_PREFIX "=%s", evstr)); |
425 | putenv (evar); | 430 | putenv (evar); |
431 | #endif | ||
426 | /* do not free evstr */ | 432 | /* do not free evstr */ |
427 | evstr = NULL; | 433 | evstr = NULL; |
428 | } | 434 | } |