mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-24 19:30:07 +01:00
Add support for VPN subnet gateways (bgo #549196) * include/NetworkManager.h - Add key for internal VPN subnet gateway * src/vpn-manager/nm-vpn-connection.c - (ip_address_to_string): return a const from a static buffer so we don't leak a lot of strings - (print_vpn_config): print internal VPN gateway as well - (nm_vpn_connection_ip4_config_get): grab internal VPN gateway from VPN service too - (nm_vpn_connection_get_ip4_internal_gateway): new function * src/NetworkManagerSystem.c src/NetworkManagerSystem.h - (nm_system_device_replace_default_ip4_route): split into two, one for VPN connections and one for normal devices - (replace_default_ip4_route): break out route stuff into its own function - (nm_system_replace_default_ip4_route_vpn, nm_system_replace_default_ip4_route): simplify by having two cases, one for VPNs and one for normal devices * src/NetworkManagerPolicy.c - (update_routing_and_dns): simplify, use split default route replacement functions git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4169 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
134 lines
4.8 KiB
C
134 lines
4.8 KiB
C
/* NetworkManager -- Network link manager
|
|
*
|
|
* Dan Williams <dcbw@redhat.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*
|
|
* (C) Copyright 2004 Red Hat, Inc.
|
|
*/
|
|
|
|
#ifndef NETWORK_MANAGER_VPN_H
|
|
#define NETWORK_MANAGER_VPN_H
|
|
|
|
/*
|
|
* dbus services details
|
|
*/
|
|
#define NM_DBUS_PATH_VPN "/org/freedesktop/NetworkManager/VPN/Manager"
|
|
#define NM_DBUS_INTERFACE_VPN "org.freedesktop.NetworkManager.VPN.Manager"
|
|
|
|
#define NM_DBUS_PATH_VPN_CONNECTION "/org/freedesktop/NetworkManager/VPN/Connection"
|
|
#define NM_DBUS_INTERFACE_VPN_CONNECTION "org.freedesktop.NetworkManager.VPN.Connection"
|
|
|
|
#define NM_VPN_DBUS_PLUGIN_PATH "/org/freedesktop/NetworkManager/VPN/Plugin"
|
|
#define NM_VPN_DBUS_PLUGIN_INTERFACE "org.freedesktop.NetworkManager.VPN.Plugin"
|
|
|
|
/*
|
|
* VPN Errors
|
|
*/
|
|
#define NM_DBUS_NO_ACTIVE_VPN_CONNECTION "org.freedesktop.NetworkManager.VPNConnections.NoActiveVPNConnection"
|
|
#define NM_DBUS_NO_VPN_CONNECTIONS "org.freedesktop.NetworkManager.VPNConnections.NoVPNConnections"
|
|
#define NM_DBUS_INVALID_VPN_CONNECTION "org.freedesktop.NetworkManager.VPNConnections.InvalidVPNConnection"
|
|
|
|
#define NM_DBUS_VPN_STARTING_IN_PROGRESS "StartingInProgress"
|
|
#define NM_DBUS_VPN_ALREADY_STARTED "AlreadyStarted"
|
|
#define NM_DBUS_VPN_STOPPING_IN_PROGRESS "StoppingInProgress"
|
|
#define NM_DBUS_VPN_ALREADY_STOPPED "AlreadyStopped"
|
|
#define NM_DBUS_VPN_WRONG_STATE "WrongState"
|
|
#define NM_DBUS_VPN_BAD_ARGUMENTS "BadArguments"
|
|
|
|
|
|
/*
|
|
* VPN daemon signals
|
|
*/
|
|
#define NM_DBUS_VPN_SIGNAL_LOGIN_BANNER "LoginBanner"
|
|
#define NM_DBUS_VPN_SIGNAL_LOGIN_FAILED "LoginFailed"
|
|
#define NM_DBUS_VPN_SIGNAL_LAUNCH_FAILED "LaunchFailed"
|
|
#define NM_DBUS_VPN_SIGNAL_CONNECT_FAILED "ConnectFailed"
|
|
#define NM_DBUS_VPN_SIGNAL_VPN_CONFIG_BAD "VPNConfigBad"
|
|
#define NM_DBUS_VPN_SIGNAL_IP_CONFIG_BAD "IPConfigBad"
|
|
#define NM_DBUS_VPN_SIGNAL_STATE_CHANGE "StateChange"
|
|
#define NM_DBUS_VPN_SIGNAL_IP4_CONFIG "IP4Config"
|
|
|
|
/*
|
|
* VPN daemon states
|
|
*/
|
|
typedef enum NMVPNServiceState
|
|
{
|
|
NM_VPN_SERVICE_STATE_UNKNOWN = 0,
|
|
NM_VPN_SERVICE_STATE_INIT,
|
|
NM_VPN_SERVICE_STATE_SHUTDOWN,
|
|
NM_VPN_SERVICE_STATE_STARTING,
|
|
NM_VPN_SERVICE_STATE_STARTED,
|
|
NM_VPN_SERVICE_STATE_STOPPING,
|
|
NM_VPN_SERVICE_STATE_STOPPED
|
|
} NMVPNServiceState;
|
|
|
|
|
|
/*
|
|
* VPN connection states
|
|
*/
|
|
typedef enum NMVPNConnectionState
|
|
{
|
|
NM_VPN_CONNECTION_STATE_UNKNOWN = 0,
|
|
NM_VPN_CONNECTION_STATE_PREPARE,
|
|
NM_VPN_CONNECTION_STATE_NEED_AUTH,
|
|
NM_VPN_CONNECTION_STATE_CONNECT,
|
|
NM_VPN_CONNECTION_STATE_IP_CONFIG_GET,
|
|
NM_VPN_CONNECTION_STATE_ACTIVATED,
|
|
NM_VPN_CONNECTION_STATE_FAILED,
|
|
NM_VPN_CONNECTION_STATE_DISCONNECTED
|
|
} NMVPNConnectionState;
|
|
|
|
typedef enum NMVPNConnectionStateReason
|
|
{
|
|
NM_VPN_CONNECTION_STATE_REASON_UNKNOWN = 0,
|
|
NM_VPN_CONNECTION_STATE_REASON_NONE,
|
|
NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED,
|
|
NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED,
|
|
NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED,
|
|
NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID,
|
|
NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT,
|
|
NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT,
|
|
NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED,
|
|
NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS,
|
|
NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED
|
|
} NMVPNConnectionStateReason;
|
|
|
|
typedef enum {
|
|
NM_VPN_PLUGIN_FAILURE_LOGIN_FAILED,
|
|
NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED,
|
|
NM_VPN_PLUGIN_FAILURE_BAD_IP_CONFIG
|
|
} NMVPNPluginFailure;
|
|
|
|
|
|
#define NM_VPN_PLUGIN_IP4_CONFIG_EXT_GATEWAY "gateway"
|
|
#define NM_VPN_PLUGIN_IP4_CONFIG_INT_GATEWAY "internal-gateway"
|
|
#define NM_VPN_PLUGIN_IP4_CONFIG_ADDRESS "address"
|
|
#define NM_VPN_PLUGIN_IP4_CONFIG_PTP "ptp"
|
|
#define NM_VPN_PLUGIN_IP4_CONFIG_PREFIX "prefix"
|
|
#define NM_VPN_PLUGIN_IP4_CONFIG_DNS "dns"
|
|
#define NM_VPN_PLUGIN_IP4_CONFIG_NBNS "nbns"
|
|
#define NM_VPN_PLUGIN_IP4_CONFIG_MSS "mss"
|
|
#define NM_VPN_PLUGIN_IP4_CONFIG_MTU "mtu"
|
|
#define NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV "tundev"
|
|
#define NM_VPN_PLUGIN_IP4_CONFIG_DOMAIN "domain"
|
|
#define NM_VPN_PLUGIN_IP4_CONFIG_BANNER "banner"
|
|
#define NM_VPN_PLUGIN_IP4_CONFIG_ROUTES "routes"
|
|
|
|
/* Deprecated */
|
|
#define NM_VPN_PLUGIN_IP4_CONFIG_GATEWAY NM_VPN_PLUGIN_IP4_CONFIG_EXT_GATEWAY
|
|
|
|
|
|
#endif /* NETWORK_MANAGER_VPN_H */
|