summaryrefslogtreecommitdiff
path: root/src/testbed/gnunet-helper-testbed.c
diff options
context:
space:
mode:
authorLRN <lrn1986@gmail.com>2013-12-08 21:33:29 +0000
committerLRN <lrn1986@gmail.com>2013-12-08 21:33:29 +0000
commitef2d4d1604028a47f7cbd4f23681eba37dc2ac0c (patch)
tree53e10be2f640fa573f79421379b9fe52d575dec8 /src/testbed/gnunet-helper-testbed.c
parent65923cbc2746640d0a9c2851fdec6205c5cca8a6 (diff)
downloadgnunet-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.c12
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 }