summary refs log tree commit diff
path: root/src/ndisc/nm-ndisc-private.h
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2017-01-17 20:25:09 +0100
committerMichael Biebl <biebl@debian.org>2017-01-17 20:25:09 +0100
commit58f8be580039b0575b197b9573a1c92745d96d30 (patch)
tree2c226233f623a0dcb529be0eb8cdf97e4a2ae0c0 /src/ndisc/nm-ndisc-private.h
parent45cb5bb3c0e6edb887cf69b417fcaf7053814a9b (diff)
New upstream version 1.5.90 upstream/1.5.90
Diffstat (limited to 'src/ndisc/nm-ndisc-private.h')
-rw-r--r--src/ndisc/nm-ndisc-private.h78
1 files changed, 78 insertions, 0 deletions
diff --git a/src/ndisc/nm-ndisc-private.h b/src/ndisc/nm-ndisc-private.h
new file mode 100644
index 00000000..2308675a
--- /dev/null
+++ b/src/ndisc/nm-ndisc-private.h
@@ -0,0 +1,78 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/* nm-ndisc.h - Perform IPv6 neighbor discovery
+ *
+ * This program 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 option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Copyright 2015 Red Hat, Inc.
+ */
+
+#ifndef __NETWORKMANAGER_NDISC_PRIVATE_H__
+#define __NETWORKMANAGER_NDISC_PRIVATE_H__
+
+#include "nm-ndisc.h"
+
+/* Functions only used by ndisc implementations */
+
+struct _NMNDiscDataInternal {
+	NMNDiscData public;
+	GArray *gateways;
+	GArray *addresses;
+	GArray *routes;
+	GArray *dns_servers;
+	GArray *dns_domains;
+};
+
+typedef struct _NMNDiscDataInternal NMNDiscDataInternal;
+
+void nm_ndisc_ra_received (NMNDisc *ndisc, guint32 now, NMNDiscConfigMap changed);
+void nm_ndisc_rs_received (NMNDisc *ndisc);
+
+gboolean nm_ndisc_add_gateway              (NMNDisc *ndisc, const NMNDiscGateway *new);
+gboolean nm_ndisc_complete_and_add_address (NMNDisc *ndisc, NMNDiscAddress *new);
+gboolean nm_ndisc_add_route                (NMNDisc *ndisc, const NMNDiscRoute *new);
+gboolean nm_ndisc_add_dns_server           (NMNDisc *ndisc, const NMNDiscDNSServer *new);
+gboolean nm_ndisc_add_dns_domain           (NMNDisc *ndisc, const NMNDiscDNSDomain *new);
+
+/*****************************************************************************/
+
+#define _NMLOG_DOMAIN                     LOGD_IP6
+#define _NMLOG(level, ...)                _LOG(level, _NMLOG_DOMAIN,  ndisc, __VA_ARGS__)
+
+#define _LOG(level, domain, self, ...) \
+    G_STMT_START { \
+        const NMLogLevel __level = (level); \
+        const NMLogDomain __domain = (domain); \
+        \
+        if (nm_logging_enabled (__level, __domain)) { \
+            NMNDisc *const __self = (self); \
+            char __prefix[64]; \
+            \
+            _nm_log (__level, __domain, 0, \
+                     "%s: " _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \
+                     (__self \
+                        ? ({ \
+                            const char *__ifname = nm_ndisc_get_ifname (__self); \
+                            nm_sprintf_buf (__prefix, "%s[%p,%s%s%s]", \
+                                            _NMLOG_PREFIX_NAME, __self, \
+                                            NM_PRINT_FMT_QUOTE_STRING (__ifname)); \
+                            }) \
+                        : _NMLOG_PREFIX_NAME) \
+                     _NM_UTILS_MACRO_REST (__VA_ARGS__)); \
+        } \
+    } G_STMT_END
+
+/*****************************************************************************/
+
+#endif /* __NETWORKMANAGER_NDISC_PRIVATE_H__ */