aboutsummaryrefslogtreecommitdiff
path: root/src/util/common_logging.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2011-12-06 18:06:13 +0000
committerChristian Grothoff <christian@grothoff.org>2011-12-06 18:06:13 +0000
commitc49a66e6dc9a7ba97e43a8b0f7d175c2a9e25fbf (patch)
tree2a2fd50bb3e6ac0b2db74c9a80115ee455154ac4 /src/util/common_logging.c
parentd234059375e77fe46c57e98751dc8491dff46e85 (diff)
downloadgnunet-c49a66e6dc9a7ba97e43a8b0f7d175c2a9e25fbf.tar.gz
gnunet-c49a66e6dc9a7ba97e43a8b0f7d175c2a9e25fbf.zip
LRN: Ensure that GTK can then do the internal call write(2, message, strlen
(message)); successfully by default.
Diffstat (limited to 'src/util/common_logging.c')
-rw-r--r--src/util/common_logging.c32
1 files changed, 28 insertions, 4 deletions
diff --git a/src/util/common_logging.c b/src/util/common_logging.c
index 22901bf26..ba51e550c 100644
--- a/src/util/common_logging.c
+++ b/src/util/common_logging.c
@@ -546,6 +546,7 @@ GNUNET_log_setup (const char *comp, const char *loglevel, const char *logfile)
546 int dirwarn; 546 int dirwarn;
547 char *fn; 547 char *fn;
548 const char *env_logfile = NULL; 548 const char *env_logfile = NULL;
549 int altlog_fd;
549 550
550 min_level = get_type (loglevel); 551 min_level = get_type (loglevel);
551#if !defined(GNUNET_CULL_LOGGING) 552#if !defined(GNUNET_CULL_LOGGING)
@@ -569,8 +570,33 @@ GNUNET_log_setup (const char *comp, const char *loglevel, const char *logfile)
569 if (NULL == fn) 570 if (NULL == fn)
570 return GNUNET_SYSERR; 571 return GNUNET_SYSERR;
571 dirwarn = (GNUNET_OK != GNUNET_DISK_directory_create_for_file (fn)); 572 dirwarn = (GNUNET_OK != GNUNET_DISK_directory_create_for_file (fn));
572 altlog = FOPEN (fn, "a"); 573 altlog_fd = OPEN (fn, O_APPEND |
573 if (altlog == NULL) 574#if WINDOWS
575 O_BINARY |
576#endif
577 O_WRONLY);
578 if (altlog_fd != -1)
579 {
580 int dup_return;
581 if (GNUNET_stderr != NULL)
582 fclose (GNUNET_stderr);
583 dup_return = dup2 (altlog_fd, 2);
584 close (altlog_fd);
585 if (dup_return != -1)
586 {
587 altlog = fdopen (2, "ab");
588 if (altlog == NULL)
589 {
590 close (2);
591 altlog_fd = -1;
592 }
593 }
594 else
595 {
596 altlog_fd = -1;
597 }
598 }
599 if (altlog_fd == -1)
574 { 600 {
575 GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "fopen", fn); 601 GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "fopen", fn);
576 if (dirwarn) 602 if (dirwarn)
@@ -581,8 +607,6 @@ GNUNET_log_setup (const char *comp, const char *loglevel, const char *logfile)
581 return GNUNET_SYSERR; 607 return GNUNET_SYSERR;
582 } 608 }
583 GNUNET_free (fn); 609 GNUNET_free (fn);
584 if (GNUNET_stderr != NULL)
585 fclose (GNUNET_stderr);
586 GNUNET_stderr = altlog; 610 GNUNET_stderr = altlog;
587 return GNUNET_OK; 611 return GNUNET_OK;
588} 612}