diff options
| author | Michael Biebl <biebl@debian.org> | 2022-01-13 22:30:39 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2022-01-13 22:30:39 +0100 |
| commit | 88c227d90a6b7b388c5c85d72802a0ca8f05ed5c (patch) | |
| tree | 71f32df6617802270e8a78574bd8e1637dc532f4 /src/libnm-base | |
| parent | e74c568b07b50b97873fb4ee1d776dedefbd54d6 (diff) | |
New upstream version 1.34.0 upstream/1.34.0
Diffstat (limited to 'src/libnm-base')
| -rw-r--r-- | src/libnm-base/meson.build | 1 | ||||
| -rw-r--r-- | src/libnm-base/nm-base.h | 7 | ||||
| -rw-r--r-- | src/libnm-base/nm-priv-helper-utils.c | 56 | ||||
| -rw-r--r-- | src/libnm-base/nm-priv-helper-utils.h | 23 |
4 files changed, 87 insertions, 0 deletions
diff --git a/src/libnm-base/meson.build b/src/libnm-base/meson.build index d7e7a1b8..1bb61020 100644 --- a/src/libnm-base/meson.build +++ b/src/libnm-base/meson.build @@ -5,6 +5,7 @@ libnm_base = static_library( sources: files( 'nm-ethtool-base.c', 'nm-net-aux.c', + 'nm-priv-helper-utils.c', ), include_directories: [ src_inc, diff --git a/src/libnm-base/nm-base.h b/src/libnm-base/nm-base.h index 3257b3f0..0363e3b6 100644 --- a/src/libnm-base/nm-base.h +++ b/src/libnm-base/nm-base.h @@ -13,6 +13,11 @@ #define _NM_MAX_CLIENT_ID_LEN (sizeof(guint32) + 128) +enum { + NM_DNS_PRIORITY_DEFAULT_NORMAL = 100, + NM_DNS_PRIORITY_DEFAULT_VPN = 50, +}; + /*****************************************************************************/ typedef enum { @@ -386,4 +391,6 @@ typedef struct { /****************************************************************************/ +#define NM_BOND_PORT_QUEUE_ID_DEF 0 + #endif /* __NM_LIBNM_BASE_H__ */ diff --git a/src/libnm-base/nm-priv-helper-utils.c b/src/libnm-base/nm-priv-helper-utils.c new file mode 100644 index 00000000..8e6e4075 --- /dev/null +++ b/src/libnm-base/nm-priv-helper-utils.c @@ -0,0 +1,56 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ + +#include "libnm-glib-aux/nm-default-glib-i18n-lib.h" + +#include "nm-priv-helper-utils.h" + +#include <sys/socket.h> +#include <sys/un.h> + +#include "libnm-glib-aux/nm-io-utils.h" + +/*****************************************************************************/ + +int +nm_priv_helper_utils_open_fd(NMPrivHelperGetFDType fd_type, GError **error) +{ + nm_auto_close int fd = -1; + int r; + int errsv; + + switch (fd_type) { + case NM_PRIV_HELPER_GET_FD_TYPE_OVSDB_SOCKET: + { + struct sockaddr_un sock; + int sock_len; + + G_STATIC_ASSERT_EXPR(NM_STRLEN(NM_OVSDB_SOCKET) + 1 < sizeof(sock.sun_path)); + sock_len = nm_io_sockaddr_un_set(&sock, FALSE, NM_OVSDB_SOCKET); + nm_assert(sock_len > 0); + + fd = socket(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0); + if (fd < 0) { + errsv = NM_ERRNO_NATIVE(errno); + g_set_error(error, G_IO_ERROR, g_io_error_from_errno(errsv), "error creating socket"); + return -errsv; + } + + r = connect(fd, (const struct sockaddr *) &sock, sock_len); + if (r != 0) { + errsv = NM_ERRNO_NATIVE(errno); + g_set_error(error, + G_IO_ERROR, + g_io_error_from_errno(errsv), + "error connecting socket (%s)", + nm_strerror_native(errsv)); + return -errsv; + } + + return nm_steal_fd(&fd); + } + case NM_PRIV_HELPER_GET_FD_TYPE_NONE: + default: + nm_utils_error_set(error, NM_UTILS_ERROR_UNKNOWN, "invalid fd_type"); + return -EINVAL; + } +} diff --git a/src/libnm-base/nm-priv-helper-utils.h b/src/libnm-base/nm-priv-helper-utils.h new file mode 100644 index 00000000..22387cff --- /dev/null +++ b/src/libnm-base/nm-priv-helper-utils.h @@ -0,0 +1,23 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ + +#ifndef __NM_PRIV_HELPER_UTILS_H__ +#define __NM_PRIV_HELPER_UTILS_H__ + +/*****************************************************************************/ + +#define NM_PRIV_HELPER_DBUS_BUS_NAME "org.freedesktop.nm-priv-helper" +#define NM_PRIV_HELPER_DBUS_OBJECT_PATH "/org/freedesktop/nm-priv-helper" +#define NM_PRIV_HELPER_DBUS_IFACE_NAME "org.freedesktop.nm-priv-helper" + +/*****************************************************************************/ + +#define NM_OVSDB_SOCKET RUNSTATEDIR "/openvswitch/db.sock" + +typedef enum { + NM_PRIV_HELPER_GET_FD_TYPE_NONE = 0, + NM_PRIV_HELPER_GET_FD_TYPE_OVSDB_SOCKET = 1, +} NMPrivHelperGetFDType; + +int nm_priv_helper_utils_open_fd(NMPrivHelperGetFDType fd_type, GError **error); + +#endif /* __NM_PRIV_HELPER_UTILS_H__ */ |