/*
This file is part of GNUnet.
- (C) 2006-2013 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2006-2013 Christian Grothoff (and other contributing authors)
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
* @author Christian Grothoff
*/
#include "platform.h"
-#include "gnunet_util_lib.h"
+#include "gnunet_crypto_lib.h"
+#include "gnunet_strings_lib.h"
#include <regex.h>
* Abort the process, generate a core dump if possible.
*/
void
-GNUNET_abort ()
+GNUNET_abort_ ()
{
#if WINDOWS
DebugBreak ();
* Setup the log file.
*
* @param tm timestamp for which we should setup logging
- * @return GNUNET_OK on success, GNUNET_SYSERR on error
+ * @return #GNUNET_OK on success, #GNUNET_SYSERR on error
*/
static int
setup_log_file (const struct tm *tm)
{
static char last_fn[PATH_MAX + 1];
char fn[PATH_MAX + 1];
- int dirwarn;
int altlog_fd;
int dup_return;
FILE *altlog;
return GNUNET_OK; /* no change */
log_rotate (last_fn);
strcpy (last_fn, fn);
- dirwarn = (GNUNET_OK != GNUNET_DISK_directory_create_for_file (fn));
#if WINDOWS
altlog_fd = OPEN (fn, O_APPEND |
O_BINARY |
if (-1 == altlog_fd)
{
GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "open", fn);
- if (dirwarn)
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
- _("Failed to create or access directory for log file `%s'\n"),
- fn);
return GNUNET_SYSERR;
}
GNUNET_stderr = altlog;
return GNUNET_OK;
}
+
/**
* Utility function - adds a parsed definition to logdefs array.
*
* Add a custom logger.
*
* @param logger log function
- * @param logger_cls closure for logger
+ * @param logger_cls closure for @a logger
*/
void
GNUNET_logger_add (GNUNET_Logger logger, void *logger_cls)
{
struct CustomLogger *entry;
- entry = GNUNET_malloc (sizeof (struct CustomLogger));
+ entry = GNUNET_new (struct CustomLogger);
entry->logger = logger;
entry->logger_cls = logger_cls;
entry->next = loggers;
* Remove a custom logger.
*
* @param logger log function
- * @param logger_cls closure for logger
+ * @param logger_cls closure for @a logger
*/
void
GNUNET_logger_remove (GNUNET_Logger logger, void *logger_cls)
prev = NULL;
pos = loggers;
- while ((pos != NULL) &&
+ while ((NULL != pos) &&
((pos->logger != logger) || (pos->logger_cls != logger_cls)))
{
prev = pos;
pos = pos->next;
}
- GNUNET_assert (pos != NULL);
- if (prev == NULL)
+ GNUNET_assert (NULL != pos);
+ if (NULL == prev)
loggers = pos->next;
else
prev->next = pos->next;
static char buf[256];
char *ret;
- ret = GNUNET_CRYPTO_ecc_public_sign_key_to_string (&pid->public_key);
+ ret = GNUNET_CRYPTO_eddsa_public_key_to_string (&pid->public_key);
strcpy (buf, ret);
GNUNET_free (ret);
buf[4] = '\0';
static char buf[256];
char *ret;
- ret = GNUNET_CRYPTO_ecc_public_sign_key_to_string (&pid->public_key);
+ ret = GNUNET_CRYPTO_eddsa_public_key_to_string (&pid->public_key);
strcpy (buf, ret);
GNUNET_free (ret);
return buf;
* will be overwritten by next call to #GNUNET_a2s.
*/
const char *
-GNUNET_a2s (const struct sockaddr *addr, socklen_t addrlen)
+GNUNET_a2s (const struct sockaddr *addr,
+ socklen_t addrlen)
{
- static char buf[INET6_ADDRSTRLEN + 8];
+#ifndef WINDOWS
+#define LEN GNUNET_MAX ((INET6_ADDRSTRLEN + 8), \
+ (1 + sizeof (struct sockaddr_un) - sizeof (sa_family_t)))
+#else
+#define LEN (INET6_ADDRSTRLEN + 8)
+#endif
+ static char buf[LEN];
+#undef LEN
static char b2[6];
const struct sockaddr_in *v4;
const struct sockaddr_un *un;
if ('\0' == un->sun_path[0])
off++;
memset (buf, 0, sizeof (buf));
- snprintf (buf, sizeof (buf) - 1, "%s%.*s", (off == 1) ? "@" : "",
- (int) (addrlen - sizeof (sa_family_t) - 1 - off),
- &un->sun_path[off]);
+ GNUNET_snprintf (buf,
+ sizeof (buf),
+ "%s%.*s",
+ (1 == off) ? "@" : "",
+ (int) (addrlen - sizeof (sa_family_t) - off),
+ &un->sun_path[off]);
return buf;
default:
return _("invalid address");
/**
* Initializer
*/
-void __attribute__ ((constructor)) GNUNET_util_cl_init ()
+void __attribute__ ((constructor))
+GNUNET_util_cl_init ()
{
GNUNET_stderr = stderr;
#ifdef MINGW
#endif
#if WINDOWS
if (!InitializeCriticalSectionAndSpinCount (&output_message_cs, 0x00000400))
- GNUNET_abort ();
+ GNUNET_abort_ ();
#endif
}
/**
* Destructor
*/
-void __attribute__ ((destructor)) GNUNET_util_cl_fini ()
+void __attribute__ ((destructor))
+GNUNET_util_cl_fini ()
{
#if WINDOWS
DeleteCriticalSection (&output_message_cs);