NMVPNPlugin

NMVPNPlugin

Synopsis

#define             NM_VPN_PLUGIN_DBUS_SERVICE_NAME
#define             NM_VPN_PLUGIN_STATE
enum                NMVPNPluginError;
                    NMVPNPlugin;
                    NMVPNPluginClass;
GQuark              nm_vpn_plugin_error_quark           (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_secrets_required      (NMVPNPlugin *plugin,
                                                         const char *message,
                                                         const char **hints);
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_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);
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,                   /*< 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 >*/
	NM_VPN_PLUGIN_ERROR_INTERACTIVE_NOT_SUPPORTED  /*< nick=InteractiveNotSupported >*/
} 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_ERROR_INTERACTIVE_NOT_SUPPORTED

the operation could not be performed as the plugin does not support interactive operations, such as ConnectInteractive() or NewSecrets()

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);

	/* more methods */
	gboolean (*new_secrets)  (NMVPNPlugin *plugin,
	                          NMConnection *connection,
	                          GError **error);

	gboolean (*connect_interactive) (NMVPNPlugin *plugin,
	                                 NMConnection *connection,
	                                 GHashTable *details,
	                                 GError **error);

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


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.

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);