about summary refs log tree commit diff
path: root/shared/nm-default.h
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2018-04-23 18:00:21 +0200
committerMichael Biebl <biebl@debian.org>2018-04-23 18:00:21 +0200
commitf60117b41d5433be1b4a96d82cd11d0c3dce9b63 (patch)
tree2dd55c4ab0fdcbe9cddb26adb4a554b1a45c73c8 /shared/nm-default.h
parent7e9ff09fcb2366b383b7ebbec80d2f6fff117290 (diff)
New upstream version 1.11.3 upstream/1.11.3
Diffstat (limited to 'shared/nm-default.h')
-rw-r--r--shared/nm-default.h163
1 files changed, 135 insertions, 28 deletions
diff --git a/shared/nm-default.h b/shared/nm-default.h
index 9e2377cf..b9be4768 100644
--- a/shared/nm-default.h
+++ b/shared/nm-default.h
@@ -22,19 +22,85 @@
 #ifndef __NM_DEFAULT_H__
 #define __NM_DEFAULT_H__
 
-/* makefiles define NETWORKMANAGER_COMPILATION for compiling NetworkManager.
- * Depending on which parts are compiled, different values are set. */
-#define NM_NETWORKMANAGER_COMPILATION_DEFAULT             0x0001
-#define NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON       0x0002
-#define NM_NETWORKMANAGER_COMPILATION_LIB                 0x0004
-#define NM_NETWORKMANAGER_COMPILATION_SYSTEMD             0x0008
-#define NM_NETWORKMANAGER_COMPILATION_LIB_LEGACY          0x0010
+#define NM_NETWORKMANAGER_COMPILATION_WITH_GLIB                 (1 <<  0)
+#define NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_LIB        (1 <<  1)
+#define NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_PROG       (1 <<  2)
+#define NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM                (1 <<  3)
+#define NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_PRIVATE        (1 <<  4)
+#define NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_CORE           (1 <<  5)
+#define NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_CORE_INTERNAL  (1 <<  6)
+#define NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_CORE_PRIVATE   (1 <<  7)
+#define NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_UTIL           (1 <<  8)
+#define NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_GLIB           (1 <<  9)
+#define NM_NETWORKMANAGER_COMPILATION_WITH_DAEMON               (1 << 10)
+#define NM_NETWORKMANAGER_COMPILATION_WITH_SYSTEMD              (1 << 11)
+
+#define NM_NETWORKMANAGER_COMPILATION_LIBNM_CORE     ( 0 \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_GLIB \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_LIB \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_CORE \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_CORE_PRIVATE \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_CORE_INTERNAL \
+                                                     )
+
+#define NM_NETWORKMANAGER_COMPILATION_LIBNM          ( 0 \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_GLIB \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_LIB \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_PRIVATE \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_CORE \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_CORE_INTERNAL \
+                                                     )
+
+#define NM_NETWORKMANAGER_COMPILATION_LIBNM_UTIL     ( 0 \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_GLIB \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_LIB \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_UTIL \
+                                                     )
+
+#define NM_NETWORKMANAGER_COMPILATION_LIBNM_GLIB     ( 0 \
+                                                     | NM_NETWORKMANAGER_COMPILATION_LIBNM_UTIL \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_GLIB \
+                                                     )
+
+#define NM_NETWORKMANAGER_COMPILATION_CLIENT         ( 0 \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_GLIB \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_PROG \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_CORE \
+                                                     )
+
+#define NM_NETWORKMANAGER_COMPILATION_DAEMON         ( 0 \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_GLIB \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_PROG \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_CORE \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_CORE_INTERNAL \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_DAEMON \
+                                                     )
+
+#define NM_NETWORKMANAGER_COMPILATION_SYSTEMD        ( 0 \
+                                                     | NM_NETWORKMANAGER_COMPILATION_DAEMON \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_SYSTEMD \
+                                                     )
+
+#define NM_NETWORKMANAGER_COMPILATION_GLIB           ( 0 \
+                                                     | NM_NETWORKMANAGER_COMPILATION_WITH_GLIB \
+                                                     )
 
 #ifndef NETWORKMANAGER_COMPILATION
-/* For convenience, we don't require our Makefile.am to define
- * -DNETWORKMANAGER_COMPILATION. As we now include this internal header,
- *  we know we do a NETWORKMANAGER_COMPILATION. */
-#define NETWORKMANAGER_COMPILATION NM_NETWORKMANAGER_COMPILATION_DEFAULT
+#error Define NETWORKMANAGER_COMPILATION accordingly
+#endif
+
+#ifndef G_LOG_DOMAIN
+#if defined(NETWORKMANAGER_COMPILATION_TEST)
+#define G_LOG_DOMAIN "test"
+#elif NETWORKMANAGER_COMPILATION & NM_NETWORKMANAGER_COMPILATION_WITH_DAEMON
+#define G_LOG_DOMAIN "NetworkManager"
+#else
+#error Need to define G_LOG_DOMAIN
+#endif
+#elif defined (NETWORKMANAGER_COMPILATION_TEST) || (NETWORKMANAGER_COMPILATION & NM_NETWORKMANAGER_COMPILATION_WITH_DAEMON)
+#error Do not define G_LOG_DOMAIN with NM_NETWORKMANAGER_COMPILATION_WITH_DAEMON
 #endif
 
 /*****************************************************************************/
@@ -49,7 +115,6 @@
 /* for internal compilation we don't want the deprecation macros
  * to be in effect. Define the widest range of versions to effectively
  * disable deprecation checks */
-#define NM_VERSION_MAX_ALLOWED   NM_VERSION_NEXT_STABLE
 #define NM_VERSION_MIN_REQUIRED  NM_VERSION_0_9_8
 
 #ifndef NM_MORE_ASSERTS
@@ -109,9 +174,52 @@
 #endif
 #endif
 
+#if NM_MORE_ASSERTS == 0
+#ifndef G_DISABLE_CAST_CHECKS
+/* Unless compiling with G_DISABLE_CAST_CHECKS, glib performs type checking
+ * during G_VARIANT_TYPE() via g_variant_type_checked_(). This is not necesary
+ * because commonly this cast is needed during something like
+ *
+ *   g_variant_builder_init (&props, G_VARIANT_TYPE ("a{sv}"));
+ *
+ * Note that in if the variant type would be invalid, the check still
+ * wouldn't make the buggy code magically work. Instead of passing a
+ * bogus type string (bad), it would pass %NULL to g_variant_builder_init()
+ * (also bad).
+ *
+ * Also, a function like g_variant_builder_init() already validates
+ * the input type via something like
+ *
+ *   g_return_if_fail (g_variant_type_is_container (type));
+ *
+ * So, by having G_VARIANT_TYPE() also validate the type, we validate
+ * twice, whereas the first validation is rather pointless because it
+ * doesn't prevent the function to be called with invalid arguments.
+ *
+ * Just patch G_VARIANT_TYPE() to perform no check.
+ */
+#undef G_VARIANT_TYPE
+#define G_VARIANT_TYPE(type_string) ((const GVariantType *) (type_string))
+#endif
+#endif
+
 #include <stdlib.h>
+
+/*****************************************************************************/
+
+#if (NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_WITH_GLIB
+
 #include <glib.h>
 
+#if (NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_PROG
+#if (NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_LIB
+#error Cannot define NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_PROG and NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_LIB
+#endif
+#include <glib/gi18n.h>
+#elif (NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_WITH_GLIB_I18N_LIB
+#include <glib/gi18n-lib.h>
+#endif
+
 /*****************************************************************************/
 
 #if NM_MORE_ASSERTS == 0
@@ -178,31 +286,30 @@ _nm_g_return_if_fail_warning (const char *log_domain,
 #include "nm-utils/nm-macros-internal.h"
 #include "nm-utils/nm-shared-utils.h"
 
-#include "nm-version.h"
-
-/*****************************************************************************/
-
-#if ((NETWORKMANAGER_COMPILATION) == NM_NETWORKMANAGER_COMPILATION_LIB) || ((NETWORKMANAGER_COMPILATION) == NM_NETWORKMANAGER_COMPILATION_LIB_LEGACY)
-
-#include <glib/gi18n-lib.h>
-
+#if (NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_UTIL
+/* no hash-utils in legacy code. */
 #else
-
-#include <glib/gi18n.h>
-
-#endif /* NM_NETWORKMANAGER_COMPILATION_LIB || NM_NETWORKMANAGER_COMPILATION_LIB_LEGACY */
+#include "nm-utils/nm-hash-utils.h"
+#endif
 
 /*****************************************************************************/
 
-#if (NETWORKMANAGER_COMPILATION) == NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON || (NETWORKMANAGER_COMPILATION) == NM_NETWORKMANAGER_COMPILATION_SYSTEMD
+#if (NETWORKMANAGER_COMPILATION) & (NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_CORE | NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_UTIL)
+#include "nm-version.h"
+#endif
 
-/* the header is used inside src/, where additional
- * headers are available. */
+/*****************************************************************************/
 
+#if (NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_WITH_DAEMON
 #include "nm-types.h"
 #include "nm-logging.h"
+#endif
+
+#if ((NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM) && !((NETWORKMANAGER_COMPILATION) & (NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_PRIVATE | NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_CORE_INTERNAL))
+#include "NetworkManager.h"
+#endif
 
-#endif /* NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON */
+#endif /* NM_NETWORKMANAGER_COMPILATION_WITH_GLIB */
 
 /*****************************************************************************/