NMVPNPlugin

NMVPNPlugin

Synopsis

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

Description

Details

NMVPNPlugin

typedef struct {
	GObject parent;
} NMVPNPlugin;


NMVPNPluginClass

typedef struct {
	GObjectClass parent;

	/* virtual methods */
	gboolean (*connect)      (NMVPNPlugin   *plugin,
	                          NMConnection  *connection,
	                          GError       **err);

	gboolean (*need_secrets) (NMVPNPlugin *plugin,
	                          NMConnection *connection,
	                          char **setting_name,
	                          GError **error);

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

	/* Signals */
	void (*state_changed)  (NMVPNPlugin *plugin,
	                        NMVPNServiceState state);

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

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

	void (*failure)        (NMVPNPlugin *plugin,
	                        NMVPNPluginFailure reason);

	void (*quit)           (NMVPNPlugin *plugin);

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

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

	/* Padding for future expansion */
	void (*_reserved1) (void);
	void (*_reserved2) (void);
	void (*_reserved3) (void);
	void (*_reserved4) (void);
} NMVPNPluginClass;


enum NMVPNPluginError

typedef enum {
	NM_VPN_PLUGIN_ERROR_GENERAL,              /*< nick=General >*/
	NM_VPN_PLUGIN_ERROR_STARTING_IN_PROGRESS, /*< nick=StartingInProgress >*/
	NM_VPN_PLUGIN_ERROR_ALREADY_STARTED,      /*< nick=AlreadyStarted >*/
	NM_VPN_PLUGIN_ERROR_STOPPING_IN_PROGRESS, /*< nick=StoppingInProgress >*/
	NM_VPN_PLUGIN_ERROR_ALREADY_STOPPED,      /*< nick=AlreadyStopped >*/
	NM_VPN_PLUGIN_ERROR_WRONG_STATE,          /*< nick=WrongState >*/
	NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS,        /*< nick=BadArguments >*/
	NM_VPN_PLUGIN_ERROR_LAUNCH_FAILED,        /*< nick=LaunchFailed >*/
	NM_VPN_PLUGIN_ERROR_CONNECTION_INVALID,   /*< nick=ConnectionInvalid >*/
} NMVPNPluginError;

Returned by the VPN service plugin to indicate errors.

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_DBUS_SERVICE_NAME

#define NM_VPN_PLUGIN_DBUS_SERVICE_NAME "service-name"


NM_VPN_PLUGIN_STATE

#define NM_VPN_PLUGIN_STATE             "state"


nm_vpn_plugin_disconnect ()

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


nm_vpn_plugin_error_quark ()

GQuark              nm_vpn_plugin_error_quark           (void);


nm_vpn_plugin_failure ()

void                nm_vpn_plugin_failure               (NMVPNPlugin *plugin,
                                                         NMVPNPluginFailure reason);


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_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_set_login_banner ()

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


nm_vpn_plugin_set_state ()

void                nm_vpn_plugin_set_state             (NMVPNPlugin *plugin,
                                                         NMVPNServiceState state);