## NMVPNPlugin NMVPNPlugin |

## Synopsis

    #define             NM_VPN_PLUGIN_DBUS_SERVICE_NAME
    #define             NM_VPN_PLUGIN_STATE
    enum                NMVPNPluginError;
    #define             NM_VPN_PLUGIN_ERROR
    #define             NM_TYPE_VPN_PLUGIN_ERROR
                        NMVPNPlugin;
    GQuark              nm_vpn_plugin_error_quark           (void);
    GType               nm_vpn_plugin_error_get_type        (void);
    DBusGConnection *   nm_vpn_plugin_get_connection        (NMVPNPlugin *plugin);
    NMVPNServiceState   nm_vpn_plugin_get_state             (NMVPNPlugin *plugin);
    void                nm_vpn_plugin_set_state             (NMVPNPlugin *plugin,
                                                             NMVPNServiceState state);
    void                nm_vpn_plugin_set_login_banner      (NMVPNPlugin *plugin,
                                                             const char *banner);
    void                nm_vpn_plugin_failure               (NMVPNPlugin *plugin,
                                                             NMVPNPluginFailure reason);
    void                nm_vpn_plugin_set_ip4_config        (NMVPNPlugin *plugin,
                                                             GHashTable *ip4_config);
    gboolean            nm_vpn_plugin_disconnect            (NMVPNPlugin *plugin,
                                                             GError **err);

## Description

## Details

### 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

    typedef enum {
    	NM_VPN_PLUGIN_ERROR_GENERAL,
    	NM_VPN_PLUGIN_ERROR_STARTING_IN_PROGRESS,
    	NM_VPN_PLUGIN_ERROR_ALREADY_STARTED,
    	NM_VPN_PLUGIN_ERROR_STOPPING_IN_PROGRESS,
    	NM_VPN_PLUGIN_ERROR_ALREADY_STOPPED,
    	NM_VPN_PLUGIN_ERROR_WRONG_STATE,
    	NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS,
    	NM_VPN_PLUGIN_ERROR_LAUNCH_FAILED,
    	NM_VPN_PLUGIN_ERROR_CONNECTION_INVALID,
    } NMVPNPluginError;

### NM_VPN_PLUGIN_ERROR

    #define NM_VPN_PLUGIN_ERROR      (nm_vpn_plugin_error_quark ())

### NM_TYPE_VPN_PLUGIN_ERROR

    #define NM_TYPE_VPN_PLUGIN_ERROR (nm_vpn_plugin_error_get_type ())

### NMVPNPlugin

    typedef struct {
    	GObject parent;
    } NMVPNPlugin;

### nm_vpn_plugin_error_quark ()

    GQuark              nm_vpn_plugin_error_quark           (void);

Returns : |

### nm_vpn_plugin_error_get_type ()

    GType               nm_vpn_plugin_error_get_type        (void);

Returns : |

### nm_vpn_plugin_get_connection ()

    DBusGConnection *   nm_vpn_plugin_get_connection        (NMVPNPlugin *plugin);

`plugin` : |
Returns : |

### nm_vpn_plugin_get_state ()

    NMVPNServiceState   nm_vpn_plugin_get_state             (NMVPNPlugin *plugin);

`plugin` : |
Returns : |

### nm_vpn_plugin_set_state ()

    void                nm_vpn_plugin_set_state             (NMVPNPlugin *plugin,
                                                             NMVPNServiceState state);

`plugin` : |
`state` : |

### nm_vpn_plugin_set_login_banner ()

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

`plugin` : |
`banner` : |

### nm_vpn_plugin_failure ()

    void                nm_vpn_plugin_failure               (NMVPNPlugin *plugin,
                                                             NMVPNPluginFailure reason);

`plugin` : |
`reason` : |

### nm_vpn_plugin_set_ip4_config ()

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

`plugin` : |
`ip4_config` : |

### nm_vpn_plugin_disconnect ()

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

`plugin` : |
`err` : |
Returns : |