mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-06 19:00:16 +01:00
2007-01-30 Dan Williams <dcbw@redhat.com>
* configure.in src/Makefile.am - Add configure bits to pick up libnm-util * src/nm-vpnc-service.c - Convert to new dict-based IP4Config signal format git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2256 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
parent
c184da0dcd
commit
c33d6e868f
4 changed files with 136 additions and 57 deletions
|
|
@ -1,3 +1,12 @@
|
|||
2007-01-30 Dan Williams <dcbw@redhat.com>
|
||||
|
||||
* configure.in
|
||||
src/Makefile.am
|
||||
- Add configure bits to pick up libnm-util
|
||||
|
||||
* src/nm-vpnc-service.c
|
||||
- Convert to new dict-based IP4Config signal format
|
||||
|
||||
2006-12-07 Dan Williams <dcbw@redhat.com>
|
||||
|
||||
Patch from Christian Persch <chpe@gnome.org>
|
||||
|
|
|
|||
|
|
@ -52,7 +52,6 @@ AC_SUBST(DBUS_LIBS)
|
|||
|
||||
PKG_CHECK_MODULES(NETWORK_MANAGER, NetworkManager >= 0.4.1)
|
||||
AC_SUBST(NETWORK_MANAGER_CFLAGS)
|
||||
AC_SUBST(NETWORK_MANAGER_LIBS)
|
||||
|
||||
PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.6)
|
||||
AC_SUBST(GTK_CFLAGS)
|
||||
|
|
@ -78,6 +77,11 @@ PKG_CHECK_MODULES(GNOMEKEYRING, gnome-keyring-1)
|
|||
AC_SUBST(GNOMEKEYRING_CFLAGS)
|
||||
AC_SUBST(GNOMEKEYRING_LIBS)
|
||||
|
||||
AC_CHECK_LIB(nm-util, nmu_dbus_dict_append_string_array)
|
||||
PKG_CHECK_MODULES(NM_UTILS, NetworkManager)
|
||||
AC_SUBST(NM_UTILS_CFLAGS)
|
||||
AC_SUBST(NM_UTILS_LIBS)
|
||||
|
||||
AS_AC_EXPAND(LOCALSTATEDIR, $localstatedir)
|
||||
AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
|
||||
AS_AC_EXPAND(DATADIR, $datadir)
|
||||
|
|
|
|||
|
|
@ -1,42 +1,42 @@
|
|||
INCLUDES = -I${top_srcdir} -I${top_srcdir}/utils -I${top_srcdir}/vpn-daemons/vpnc
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
$(DBUS_CFLAGS) \
|
||||
$(GTHREAD_CFLAGS) \
|
||||
$(NETWORK_MANAGER_CFLAGS) \
|
||||
-Wall \
|
||||
-DDBUS_API_SUBJECT_TO_CHANGE \
|
||||
-DG_DISABLE_DEPRECATED \
|
||||
-DBINDIR=\"$(bindir)\" \
|
||||
-DPREFIX=\""$(prefix)"\" \
|
||||
-DSYSCONFDIR=\""$(sysconfdir)"\" \
|
||||
-DVERSION="\"$(VERSION)\"" \
|
||||
-DLIBDIR=\""$(libdir)"\" \
|
||||
-DLIBEXECDIR=\""$(libexecdir)"\" \
|
||||
-DLOCALSTATEDIR=\""$(localstatedir)"\" \
|
||||
AM_CPPFLAGS = \
|
||||
$(DBUS_CFLAGS) \
|
||||
$(GTHREAD_CFLAGS) \
|
||||
$(NETWORK_MANAGER_CFLAGS) \
|
||||
$(NM_UTILS_CFLAGS) \
|
||||
-Wall \
|
||||
-DDBUS_API_SUBJECT_TO_CHANGE \
|
||||
-DG_DISABLE_DEPRECATED \
|
||||
-DBINDIR=\"$(bindir)\" \
|
||||
-DPREFIX=\""$(prefix)"\" \
|
||||
-DSYSCONFDIR=\""$(sysconfdir)"\" \
|
||||
-DVERSION="\"$(VERSION)\"" \
|
||||
-DLIBDIR=\""$(libdir)"\" \
|
||||
-DLIBEXECDIR=\""$(libexecdir)"\" \
|
||||
-DLOCALSTATEDIR=\""$(localstatedir)"\" \
|
||||
-DDATADIR=\"$(datadir)\"
|
||||
|
||||
bin_PROGRAMS = nm-vpnc-service nm-vpnc-service-vpnc-helper
|
||||
|
||||
nm_vpnc_service_SOURCES = \
|
||||
nm-vpnc-service.c \
|
||||
nm-vpnc-service.h \
|
||||
nm-utils.c \
|
||||
nm_vpnc_service_SOURCES = \
|
||||
nm-vpnc-service.c \
|
||||
nm-vpnc-service.h \
|
||||
nm-utils.c \
|
||||
nm-utils.h
|
||||
|
||||
|
||||
nm_vpnc_service_LDADD = \
|
||||
$(DBUS_LIBS) \
|
||||
$(GTHREAD_LIBS) \
|
||||
$(NETWORK_MANAGER_LIBS)
|
||||
nm_vpnc_service_LDADD = \
|
||||
$(DBUS_LIBS) \
|
||||
$(GTHREAD_LIBS)
|
||||
|
||||
|
||||
nm_vpnc_service_vpnc_helper_SOURCES = \
|
||||
nm_vpnc_service_vpnc_helper_SOURCES = \
|
||||
nm-vpnc-service-vpnc-helper.c
|
||||
|
||||
nm_vpnc_service_vpnc_helper_LDADD = \
|
||||
$(DBUS_LIBS) \
|
||||
$(GTHREAD_LIBS) \
|
||||
$(NETWORK_MANAGER_LIBS)
|
||||
nm_vpnc_service_vpnc_helper_LDADD = \
|
||||
$(DBUS_LIBS) \
|
||||
$(GTHREAD_LIBS) \
|
||||
$(NM_UTILS_LIBS)
|
||||
|
||||
CLEANFILES = *~
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@
|
|||
|
||||
#include "nm-vpnc-service.h"
|
||||
#include "nm-utils.h"
|
||||
#include "dbus-dict-helpers.h"
|
||||
|
||||
|
||||
static const char *vpnc_binary_paths[] =
|
||||
|
|
@ -868,7 +869,10 @@ print_vpn_config (guint32 ip4_vpn_gateway,
|
|||
* Signal the bus
|
||||
*
|
||||
*/
|
||||
static void nm_vpnc_dbus_process_helper_ip4_config (DBusConnection *con, DBusMessage *message, NmVpncData *data)
|
||||
static void
|
||||
nm_vpnc_dbus_process_helper_ip4_config (DBusConnection *con,
|
||||
DBusMessage *message,
|
||||
NmVpncData *data)
|
||||
{
|
||||
guint32 ip4_vpn_gateway;
|
||||
char * tundev;
|
||||
|
|
@ -879,11 +883,11 @@ static void nm_vpnc_dbus_process_helper_ip4_config (DBusConnection *con, DBusMes
|
|||
guint32 ip4_dns_len;
|
||||
guint32 * ip4_nbns;
|
||||
guint32 ip4_nbns_len;
|
||||
guint32 mss;
|
||||
char * cisco_def_domain;
|
||||
char * cisco_banner;
|
||||
gboolean success = FALSE;
|
||||
DBusMessage * signal;
|
||||
DBusMessageIter iter, iter_dict;
|
||||
|
||||
g_return_if_fail (data != NULL);
|
||||
g_return_if_fail (con != NULL);
|
||||
|
|
@ -896,44 +900,107 @@ static void nm_vpnc_dbus_process_helper_ip4_config (DBusConnection *con, DBusMes
|
|||
nm_vpnc_cancel_helper_timer (data);
|
||||
|
||||
if (!dbus_message_get_args(message, NULL,
|
||||
DBUS_TYPE_UINT32, &ip4_vpn_gateway,
|
||||
DBUS_TYPE_STRING, &tundev,
|
||||
DBUS_TYPE_UINT32, &ip4_address,
|
||||
DBUS_TYPE_UINT32, &ip4_netmask,
|
||||
DBUS_TYPE_ARRAY, DBUS_TYPE_UINT32, &ip4_dns, &ip4_dns_len,
|
||||
DBUS_TYPE_ARRAY, DBUS_TYPE_UINT32, &ip4_nbns, &ip4_nbns_len,
|
||||
DBUS_TYPE_STRING, &cisco_def_domain,
|
||||
DBUS_TYPE_STRING, &cisco_banner, DBUS_TYPE_INVALID))
|
||||
DBUS_TYPE_UINT32, &ip4_vpn_gateway,
|
||||
DBUS_TYPE_STRING, &tundev,
|
||||
DBUS_TYPE_UINT32, &ip4_address,
|
||||
DBUS_TYPE_UINT32, &ip4_netmask,
|
||||
DBUS_TYPE_ARRAY, DBUS_TYPE_UINT32, &ip4_dns, &ip4_dns_len,
|
||||
DBUS_TYPE_ARRAY, DBUS_TYPE_UINT32, &ip4_nbns, &ip4_nbns_len,
|
||||
DBUS_TYPE_STRING, &cisco_def_domain,
|
||||
DBUS_TYPE_STRING, &cisco_banner, DBUS_TYPE_INVALID))
|
||||
goto out;
|
||||
|
||||
/* For Cisco/vpnc, PtP address == local VPN address */
|
||||
ip4_ptp_address = ip4_address;
|
||||
|
||||
/* and we don't specify an MSS */
|
||||
mss = 0;
|
||||
|
||||
#if 0
|
||||
print_vpn_config (ip4_vpn_gateway, tundev, ip4_address, ip4_netmask,
|
||||
ip4_dns, ip4_dns_len, ip4_nbns, ip4_nbns_len,
|
||||
cisco_def_domain, cisco_banner);
|
||||
#endif
|
||||
|
||||
if (!(signal = dbus_message_new_signal (NM_DBUS_PATH_VPNC, NM_DBUS_INTERFACE_VPNC, NM_DBUS_VPN_SIGNAL_IP4_CONFIG)))
|
||||
signal = dbus_message_new_signal (NM_DBUS_PATH_VPNC,
|
||||
NM_DBUS_INTERFACE_VPNC,
|
||||
NM_DBUS_VPN_SIGNAL_IP4_CONFIG);
|
||||
if (signal == NULL)
|
||||
goto out;
|
||||
|
||||
dbus_message_append_args (signal,
|
||||
DBUS_TYPE_UINT32, &ip4_vpn_gateway,
|
||||
DBUS_TYPE_STRING, &tundev,
|
||||
DBUS_TYPE_UINT32, &ip4_address,
|
||||
DBUS_TYPE_UINT32, &ip4_ptp_address,
|
||||
DBUS_TYPE_UINT32, &ip4_netmask,
|
||||
DBUS_TYPE_ARRAY, DBUS_TYPE_UINT32, &ip4_dns, ip4_dns_len,
|
||||
DBUS_TYPE_ARRAY, DBUS_TYPE_UINT32, &ip4_nbns, ip4_nbns_len,
|
||||
DBUS_TYPE_UINT32, &mss,
|
||||
DBUS_TYPE_STRING, &cisco_def_domain,
|
||||
DBUS_TYPE_STRING, &cisco_banner, DBUS_TYPE_INVALID);
|
||||
if (!dbus_connection_send (data->con, signal, NULL))
|
||||
{
|
||||
dbus_message_iter_init_append (signal, &iter);
|
||||
if (!nmu_dbus_dict_open_write (&iter, &iter_dict)) {
|
||||
nm_warning ("dict open write failed!");
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!nmu_dbus_dict_append_uint32 (&iter_dict, "gateway", ip4_vpn_gateway)) {
|
||||
nm_warning ("couldn't append gateway to dict");
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!nmu_dbus_dict_append_string (&iter_dict, "tundev", tundev)) {
|
||||
nm_warning ("couldn't append tundev to dict");
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!nmu_dbus_dict_append_uint32 (&iter_dict, "local_addr", ip4_address)) {
|
||||
nm_warning ("couldn't append local_address to dict");
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!nmu_dbus_dict_append_uint32 (&iter_dict, "ptp_addr", ip4_ptp_address)) {
|
||||
nm_warning ("couldn't append ptp_address to dict");
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!nmu_dbus_dict_append_uint32 (&iter_dict, "netmask", ip4_netmask)) {
|
||||
nm_warning ("couldn't append local_address to dict");
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (ip4_dns_len > 0) {
|
||||
if (!nmu_dbus_dict_append_uint32_array (&iter_dict,
|
||||
"dns_server",
|
||||
ip4_dns,
|
||||
ip4_dns_len)) {
|
||||
nm_warning ("couldn't append dns_servers to dict");
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
if (ip4_nbns_len > 0) {
|
||||
if (!nmu_dbus_dict_append_uint32_array (&iter_dict,
|
||||
"nbns_server",
|
||||
ip4_nbns,
|
||||
ip4_nbns_len)) {
|
||||
nm_warning ("couldn't append nbns_servers to dict");
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
if (!nmu_dbus_dict_append_uint32 (&iter_dict, "mtu", 1412)) {
|
||||
nm_warning ("couldn't append mtu to dict");
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!nmu_dbus_dict_append_string (&iter_dict,
|
||||
"dns_domain",
|
||||
cisco_def_domain)) {
|
||||
nm_warning ("couldn't append DNS domain");
|
||||
}
|
||||
|
||||
if (cisco_banner && strlen (cisco_banner)) {
|
||||
if (!nmu_dbus_dict_append_string (&iter_dict,
|
||||
"banner",
|
||||
cisco_banner)) {
|
||||
nm_warning ("couldn't append login banner");
|
||||
}
|
||||
}
|
||||
|
||||
if (!nmu_dbus_dict_close_write (&iter, &iter_dict)) {
|
||||
nm_warning ("dict close write failed!");
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!dbus_connection_send (data->con, signal, NULL)) {
|
||||
nm_warning ("Could not raise the "NM_DBUS_VPN_SIGNAL_IP4_CONFIG" signal!");
|
||||
goto out;
|
||||
}
|
||||
|
|
@ -943,8 +1010,7 @@ static void nm_vpnc_dbus_process_helper_ip4_config (DBusConnection *con, DBusMes
|
|||
success = TRUE;
|
||||
|
||||
out:
|
||||
if (!success)
|
||||
{
|
||||
if (!success) {
|
||||
nm_warning ("Received invalid IP4 Config information from helper, terminating vpnc.");
|
||||
nm_vpnc_dbus_handle_stop_vpn (data);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue