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:
Dan Williams 2007-01-30 22:36:26 +00:00
parent c184da0dcd
commit c33d6e868f
4 changed files with 136 additions and 57 deletions

View file

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

View file

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

View file

@ -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 = *~

View file

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