summary refs log tree commit diff
path: root/shared/nm-utils/nm-vpn-editor-plugin-call.h
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2021-10-01 23:05:04 +0200
committerMichael Biebl <biebl@debian.org>2021-10-01 23:05:04 +0200
commite74c568b07b50b97873fb4ee1d776dedefbd54d6 (patch)
tree3469f17ea9af91f7ff169b890633bda68b0cf76e /shared/nm-utils/nm-vpn-editor-plugin-call.h
parentbfe522304da217296e2a61040f58e35ec5d6f3f2 (diff)
New upstream version 1.32.12 upstream/1.32.12
Diffstat (limited to 'shared/nm-utils/nm-vpn-editor-plugin-call.h')
-rw-r--r--shared/nm-utils/nm-vpn-editor-plugin-call.h167
1 files changed, 0 insertions, 167 deletions
diff --git a/shared/nm-utils/nm-vpn-editor-plugin-call.h b/shared/nm-utils/nm-vpn-editor-plugin-call.h
deleted file mode 100644
index 5772b843..00000000
--- a/shared/nm-utils/nm-vpn-editor-plugin-call.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/* SPDX-License-Identifier: LGPL-2.1-or-later */
-/*
- * Copyright (C) 2016 Red Hat, Inc.
- */
-
-#ifndef __NM_VPN_EDITOR_PLUGIN_CALL_H__
-#define __NM_VPN_EDITOR_PLUGIN_CALL_H__
-
-/* This header is an internal, header-only file that can be copied to
- * other projects to call well-known service functions on VPN plugins.
- *
- * This uses the NMVpnEditorPluginVT and allows a user (nm-applet)
- * to directly communicate with a VPN plugin using API that is newer
- * then the current libnm version. That is, it allows to call to a VPN
- * plugin bypassing libnm. */
-
-#include <NetworkManager.h>
-
-/* we make use of other internal header files, you need those too. */
-#include "nm-glib-aux/nm-macros-internal.h"
-
-/*****************************************************************************/
-
-/**
- * NMVpnEditorPluginServiceFlags:
- * @NM_VPN_EDITOR_PLUGIN_SERVICE_FLAGS_NONE: no flags
- * @NM_VPN_EDITOR_PLUGIN_SERVICE_FLAGS_CAN_ADD: whether the plugin can
- *   add a new connection for the given service-type.
- **/
-typedef enum { /*< skip >*/
-               NM_VPN_EDITOR_PLUGIN_SERVICE_FLAGS_NONE    = 0x00,
-               NM_VPN_EDITOR_PLUGIN_SERVICE_FLAGS_CAN_ADD = 0x01,
-} NMVpnEditorPluginServiceFlags;
-
-struct _NMVpnEditorPluginVT {
-    gboolean (*fcn_get_service_info)(NMVpnEditorPlugin *            plugin,
-                                     const char *                   service_type,
-                                     char **                        out_short_name,
-                                     char **                        out_pretty_name,
-                                     char **                        out_description,
-                                     NMVpnEditorPluginServiceFlags *out_flags);
-    char **(*fcn_get_service_add_details)(NMVpnEditorPlugin *plugin, const char *service_name);
-    gboolean (*fcn_get_service_add_detail)(NMVpnEditorPlugin *plugin,
-                                           const char *       service_type,
-                                           const char *       add_detail,
-                                           char **            out_pretty_name,
-                                           char **            out_description,
-                                           char **            out_add_detail_key,
-                                           char **            out_add_detail_val,
-                                           guint *            out_flags);
-};
-
-/*****************************************************************************
- * Call
- *
- * The following wrap the calling of generic functions for a VPN plugin.
- * They are used by callers (for example nm-connection-editor).
- *****************************************************************************/
-
-static inline gboolean
-nm_vpn_editor_plugin_get_service_info(NMVpnEditorPlugin *            plugin,
-                                      const char *                   service_type,
-                                      char **                        out_short_name,
-                                      char **                        out_pretty_name,
-                                      char **                        out_description,
-                                      NMVpnEditorPluginServiceFlags *out_flags)
-{
-    NMVpnEditorPluginVT vt;
-    gs_free char *      short_name_local  = NULL;
-    gs_free char *      pretty_name_local = NULL;
-    gs_free char *      description_local = NULL;
-    guint               flags_local       = 0;
-
-    g_return_val_if_fail(NM_IS_VPN_EDITOR_PLUGIN(plugin), FALSE);
-    g_return_val_if_fail(service_type, FALSE);
-
-    nm_vpn_editor_plugin_get_vt(plugin, &vt, sizeof(vt));
-    if (!vt.fcn_get_service_info
-        || !vt.fcn_get_service_info(plugin,
-                                    service_type,
-                                    out_short_name ? &short_name_local : NULL,
-                                    out_pretty_name ? &pretty_name_local : NULL,
-                                    out_description ? &description_local : NULL,
-                                    out_flags ? &flags_local : NULL))
-        return FALSE;
-    NM_SET_OUT(out_short_name, g_steal_pointer(&short_name_local));
-    NM_SET_OUT(out_pretty_name, g_steal_pointer(&pretty_name_local));
-    NM_SET_OUT(out_description, g_steal_pointer(&description_local));
-    NM_SET_OUT(out_flags, flags_local);
-    return TRUE;
-}
-
-static inline char **
-nm_vpn_editor_plugin_get_service_add_details(NMVpnEditorPlugin *plugin, const char *service_name)
-{
-    NMVpnEditorPluginVT vt;
-    char **             details = NULL;
-
-    g_return_val_if_fail(NM_IS_VPN_EDITOR_PLUGIN(plugin), NULL);
-    g_return_val_if_fail(service_name, NULL);
-
-    nm_vpn_editor_plugin_get_vt(plugin, &vt, sizeof(vt));
-    if (vt.fcn_get_service_add_details)
-        details = vt.fcn_get_service_add_details(plugin, service_name);
-    if (!details)
-        return g_new0(char *, 1);
-    return details;
-}
-
-static inline gboolean
-nm_vpn_editor_plugin_get_service_add_detail(NMVpnEditorPlugin *plugin,
-                                            const char *       service_type,
-                                            const char *       add_detail,
-                                            char **            out_pretty_name,
-                                            char **            out_description,
-                                            char **            out_add_detail_key,
-                                            char **            out_add_detail_val,
-                                            guint *            out_flags)
-{
-    NMVpnEditorPluginVT vt;
-    gs_free char *      pretty_name_local    = NULL;
-    gs_free char *      description_local    = NULL;
-    gs_free char *      add_detail_key_local = NULL;
-    gs_free char *      add_detail_val_local = NULL;
-    guint               flags_local          = 0;
-
-    g_return_val_if_fail(NM_IS_VPN_EDITOR_PLUGIN(plugin), FALSE);
-    g_return_val_if_fail(service_type, FALSE);
-    g_return_val_if_fail(add_detail, FALSE);
-
-    nm_vpn_editor_plugin_get_vt(plugin, &vt, sizeof(vt));
-    if (!vt.fcn_get_service_add_detail
-        || !vt.fcn_get_service_add_detail(plugin,
-                                          service_type,
-                                          add_detail,
-                                          out_pretty_name ? &pretty_name_local : NULL,
-                                          out_description ? &description_local : NULL,
-                                          out_add_detail_key ? &add_detail_key_local : NULL,
-                                          out_add_detail_val ? &add_detail_val_local : NULL,
-                                          out_flags ? &flags_local : NULL))
-        return FALSE;
-    NM_SET_OUT(out_pretty_name, g_steal_pointer(&pretty_name_local));
-    NM_SET_OUT(out_description, g_steal_pointer(&description_local));
-    NM_SET_OUT(out_add_detail_key, g_steal_pointer(&add_detail_key_local));
-    NM_SET_OUT(out_add_detail_val, g_steal_pointer(&add_detail_val_local));
-    NM_SET_OUT(out_flags, flags_local);
-    return TRUE;
-}
-
-/*****************************************************************************
- * Implementation
- *
- * The following glue code can be used to implement calls in a VPN plugin.
- *****************************************************************************/
-
-#define NM_VPN_EDITOR_PLUGIN_VT_DEFINE(vt_name, get_vt, ...)                                \
-    static const NMVpnEditorPluginVT  vt_name = {__VA_ARGS__};                              \
-    static const NMVpnEditorPluginVT *get_vt(NMVpnEditorPlugin *plugin, gsize *out_vt_size) \
-    {                                                                                       \
-        nm_assert(NM_IS_VPN_EDITOR_PLUGIN(plugin));                                         \
-        nm_assert(out_vt_size);                                                             \
-                                                                                            \
-        *out_vt_size = sizeof(vt_name);                                                     \
-        return &vt_name;                                                                    \
-    }
-
-#endif /* __NM_VPN_EDITOR_PLUGIN_CALL_H__ */