Implement data ack in CADET MQ API
[oweals/gnunet.git] / src / include / platform.h
index d0591b107f177fee40f1a33723d81f832037ae6f..add58821f77b1c5b77575b5976ea7843ba05cb9d 100644 (file)
@@ -1,10 +1,10 @@
 /*
      This file is part of GNUnet.
 /*
      This file is part of GNUnet.
-     (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2012 GNUnet e.V.
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
+     by the Free Software Foundation; either version 3, or (at your
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
 
      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.
 */
 
 /**
 */
 
 /**
- * @file include/platform.h
- * @brief plaform specifics
- *
  * @author Nils Durner
  * @author Nils Durner
+ * @author Christian Grothoff
+ *
+ * @file
+ * Plaform specific includes and defines.
  *
  * This file should never be included by installed
  *
  * This file should never be included by installed
- * header files (thos starting with "gnunet_").
+ * header files (those starting with "gnunet_").
  */
  */
-
 #ifndef PLATFORM_H
 #define PLATFORM_H
 
 #ifndef PLATFORM_H
 #define PLATFORM_H
 
 #include <sys/types.h>
 #endif
 
 #include <sys/types.h>
 #endif
 
-#define ALLOW_EXTRA_CHECKS GNUNET_NO
+/**
+ * These may be expensive, but good for debugging...
+ */
+#define ALLOW_EXTRA_CHECKS GNUNET_YES
 
 /**
  * For strptime (glibc2 needs this).
  */
 #ifndef _XOPEN_SOURCE
 
 /**
  * For strptime (glibc2 needs this).
  */
 #ifndef _XOPEN_SOURCE
-#define _XOPEN_SOURCE
+#define _XOPEN_SOURCE 499
 #endif
 
 #ifndef _REENTRANT
 #endif
 
 #ifndef _REENTRANT
@@ -88,7 +91,9 @@
 #if HAVE_NETINET_IN_SYSTM_H
 #include <netinet/in_systm.h>
 #endif
 #if HAVE_NETINET_IN_SYSTM_H
 #include <netinet/in_systm.h>
 #endif
+#if HAVE_NETINET_IP_H
 #include <netinet/ip.h>         /* superset of previous */
 #include <netinet/ip.h>         /* superset of previous */
+#endif
 #include <arpa/inet.h>
 #include <netinet/tcp.h>
 #include <pwd.h>
 #include <arpa/inet.h>
 #include <netinet/tcp.h>
 #include <pwd.h>
 #ifdef WINDOWS
 #include <malloc.h>             /* for alloca(), on other OSes it's in stdlib.h */
 #endif
 #ifdef WINDOWS
 #include <malloc.h>             /* for alloca(), on other OSes it's in stdlib.h */
 #endif
+#ifdef HAVE_MALLOC_H
+#include <malloc.h>             /* for mallinfo on GNU */
+#endif
 #ifndef _MSC_VER
 #include <unistd.h>             /* KLB_FIX */
 #endif
 #ifndef _MSC_VER
 #include <unistd.h>             /* KLB_FIX */
 #endif
 #ifdef SOMEBSD
 #include <net/if.h>
 #endif
 #ifdef SOMEBSD
 #include <net/if.h>
 #endif
-#ifdef GNUNET_freeBSD
+#ifdef FREEBSD
 #include <semaphore.h>
 #endif
 #ifdef DARWIN
 #include <semaphore.h>
 #endif
 #ifdef DARWIN
 #if HAVE_UCRED_H
 #include <ucred.h>
 #endif
 #if HAVE_UCRED_H
 #include <ucred.h>
 #endif
+#if HAVE_SYS_UCRED_H
+#include <sys/ucred.h>
+#endif
 #ifdef CYGWIN
 #include <windows.h>
 #include <cygwin/if.h>
 #ifdef CYGWIN
 #include <windows.h>
 #include <cygwin/if.h>
@@ -263,4 +274,9 @@ atoll (const char *nptr);
 #define SOCKTYPE int
 #endif
 
 #define SOCKTYPE int
 #endif
 
+/**
+ * The termination signal
+ */
+#define GNUNET_TERM_SIG SIGTERM
+
 #endif
 #endif