## NMVPNPlugin NMVPNPlugin |

## Functions

GQuark | nm_vpn_plugin_error_quark ()
DBusGConnection * | nm_vpn_plugin_get_connection ()
NMVPNServiceState | nm_vpn_plugin_get_state ()
void | nm_vpn_plugin_set_state ()
void | nm_vpn_plugin_secrets_required ()
void | nm_vpn_plugin_set_login_banner ()
void | nm_vpn_plugin_failure ()
void | nm_vpn_plugin_set_config ()
void | nm_vpn_plugin_set_ip4_config ()
void | nm_vpn_plugin_set_ip6_config ()
gboolean | nm_vpn_plugin_disconnect ()

## Types and Values

#define | NM_VPN_PLUGIN_DBUS_SERVICE_NAME
#define | NM_VPN_PLUGIN_STATE
enum | NMVPNPluginError

## Description

## Functions

### nm_vpn_plugin_error_quark ()

    GQuark
    nm_vpn_plugin_error_quark (void);

### nm_vpn_plugin_get_connection ()

    DBusGConnection *
    nm_vpn_plugin_get_connection (NMVPNPlugin *plugin);

### nm_vpn_plugin_get_state ()

    NMVPNServiceState
    nm_vpn_plugin_get_state (NMVPNPlugin *plugin);

### nm_vpn_plugin_set_state ()

    void
    nm_vpn_plugin_set_state (NMVPNPlugin *plugin,
                             NMVPNServiceState state);

### nm_vpn_plugin_secrets_required ()

    void
    nm_vpn_plugin_secrets_required (NMVPNPlugin *plugin,
                                    const char *message,
                                    const char **hints);

Called by VPN plugin implementations to signal to NetworkManager that secrets are required during the connection process. This signal may be used to request new secrets when the secrets originally provided by NetworkManager are insufficient, or the VPN process indicates that it needs additional information to complete the request.

#### Parameters

plugin | the NMVPNPlugin |
message | an information message about why secrets are required, if any |
hints | VPN specific secret names for required new secrets |

Since: 0.9.10

### nm_vpn_plugin_set_login_banner ()

    void
    nm_vpn_plugin_set_login_banner (NMVPNPlugin *plugin,
                                    const char *banner);

### nm_vpn_plugin_failure ()

    void
    nm_vpn_plugin_failure (NMVPNPlugin *plugin,
                           NMVPNPluginFailure reason);

### nm_vpn_plugin_set_config ()

    void
    nm_vpn_plugin_set_config (NMVPNPlugin *plugin,
                              GHashTable *config);

### nm_vpn_plugin_set_ip4_config ()

    void
    nm_vpn_plugin_set_ip4_config (NMVPNPlugin *plugin,
                                  GHashTable *ip4_config);

### nm_vpn_plugin_set_ip6_config ()

    void
    nm_vpn_plugin_set_ip6_config (NMVPNPlugin *plugin,
                                  GHashTable *ip6_config);

### nm_vpn_plugin_disconnect ()

    gboolean
    nm_vpn_plugin_disconnect (NMVPNPlugin *plugin,
                              GError **err);

## Types and Values

### NM_VPN_PLUGIN_DBUS_SERVICE_NAME

    #define NM_VPN_PLUGIN_DBUS_SERVICE_NAME "service-name"

### NM_VPN_PLUGIN_STATE

    #define NM_VPN_PLUGIN_STATE             "state"

### enum NMVPNPluginError

Returned by the VPN service plugin to indicate errors.

#### Members

NM_VPN_PLUGIN_ERROR_GENERAL | general failure |
NM_VPN_PLUGIN_ERROR_STARTING_IN_PROGRESS | the plugin is already starting, and another connect request was received |
NM_VPN_PLUGIN_ERROR_ALREADY_STARTED | the plugin is already connected, and another connect request was received |
NM_VPN_PLUGIN_ERROR_STOPPING_IN_PROGRESS | the plugin is already stopping, and another stop request was received |
NM_VPN_PLUGIN_ERROR_ALREADY_STOPPED | the plugin is already stopped, and another disconnect request was received |
NM_VPN_PLUGIN_ERROR_WRONG_STATE | the operation could not be performed in this state |
NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS | the operation could not be performed as the request contained malformed arguments, or arguments of unexpected type. Usually means that one of the VPN setting data items or secrets was not of the expected type (ie int, string, bool, etc). |
NM_VPN_PLUGIN_ERROR_LAUNCH_FAILED | a child process failed to launch |
NM_VPN_PLUGIN_ERROR_CONNECTION_INVALID | the operation could not be performed because the connection was invalid. Usually means that the connection's VPN setting was missing some required data item or secret. |
NM_VPN_PLUGIN_ERROR_INTERACTIVE_NOT_SUPPORTED | the operation could not be performed as the plugin does not support interactive operations, such as `ConnectInteractive()` or `NewSecrets()` |