Commit Graph

1502 Commits

Author SHA1 Message Date
Dan Williams
1c0a0ec4a8 2008-10-11 Dan Williams <dcbw@redhat.com>
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
2008-10-11 14:26:41 +00:00
Dan Williams
ad7a46d867 2008-10-10 Dan Williams <dcbw@redhat.com>
Rework default route handling to consolidate decisions in the policy,
	and to take active VPN connections into account when changing the default
	route (bgo #545912)

	* src/NetworkManager.c
		- (main): pass the vpn_manager to the policy so it knows about active
			VPN connections; clean up the named manager which wasn't done before

	* src/NetworkManagerPolicy.c
	  src/NetworkManagerPolicy.h
		- (nm_policy_new): get a clue about the vpn_manager
		- (update_default_route): remove, fold into update_routing_and_dns()
		- (update_routing_and_dns): handle active VPN connections too; an
			active VPN connection becomes the default route if it does not have
			server-specified or user-specified custom routes.  Otherwise, the
			best active device gets the default route
		- (vpn_connection_activated, vpn_connection_deactivated, nm_policy_new,
		   nm_policy_destroy): track VPN connection activation and deactivation
			and update the default route when appropriate

	* src/NetworkManagerSystem.c
	  src/NetworkManagerSystem.h
		- (nm_system_vpn_device_unset_from_ip4_config): remove, put functionality
			in the VPN connection itself
		- (nm_system_vpn_device_set_from_ip4_config,
		   nm_system_device_set_from_ip4_config): merge together to make
			nm_system_apply_ip4_config()
		- (add_vpn_gateway_route): add a route to the VPN's external gateway
			via the parent device
		- (nm_system_apply_ip4_config): simplify
		- (add_ip4_route_to_gateway): new function; add a direct route to the
			gateway if needed
		- (nm_system_device_replace_default_ip4_route): simplify, break gateway
			route stuff out into add_ip4_route_to_gateway() for clarity

	* src/nm-device.c
		- (nm_device_set_ip4_config): update for nm_system_apply_ip4_config()

	* src/vpn-manager/nm-vpn-connection.c
	  src/vpn-manager/nm-vpn-connection.h
		- (nm_vpn_connection_get_ip4_config, nm_vpn_connection_get_ip_iface,
		   nm_vpn_connection_get_parent_device): add
		- (nm_vpn_connection_ip4_config_get): make the requirement of a tunnel
			device explicit
		- (connection_state_changed): update the named manager now that
			nm_system_vpn_device_unset_from_ip4_config() is gone; do something
			useful on errors

	* src/vpn-manager/nm-vpn-manager.c
	  src/vpn-manager/nm-vpn-manager.h
		- Add a 'connection-activated' signal
		- (nm_vpn_manager_get_active_connections): new function; mainly for the
			policy to find out about active VPN connections



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4167 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-10-10 23:05:45 +00:00
Tambet Ingo
9b82c1e92f 2008-10-10 Tambet Ingo <tambet@gmail.com>
* src/nm-logging.c (nm_logging_setup): Don't use LOG_CONS when running as
	a daemon to prevent NM logging spew on console on startup and shutdown (due
	to dependency loop between NM and syslog).

git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4166 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-10-10 12:05:04 +00:00
Dan Williams
1182e8579b 2008-10-08 Dan Williams <dcbw@redhat.com>
Add a 'hostname' dispatcher action triggered on hostname changes (bgo #552983)

	* src/NetworkManagerUtils.c
		- (nm_utils_call_dispatcher): add a 'hostname' action

	* src/NetworkManagerPolicy.c
		- (set_system_hostname): dispatch hostname changes

	* callouts/nm-dispatcher-action.c
		- (nm_dispatcher_action): handle 'hostname' actions



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4158 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-10-08 22:40:42 +00:00
Dan Williams
5a5d032901 Ref the route, not unref it
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4157 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-10-08 20:03:35 +00:00
Dan Williams
b339761a91 2008-10-08 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerSystem.c
		- (find_route): ref the route so it doesn't get destroyed when the cache
			is cleared
		- (nm_system_device_set_priority): unref the route here after it's done
			being used



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4156 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-10-08 19:45:52 +00:00
Dan Williams
9068f0b6c1 2008-10-08 Dan Williams <dcbw@redhat.com>
* src/nm-serial-device.c
		- Turn on serial debugging when NM_SERIAL_DEBUG is set in the environment



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4155 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-10-08 16:14:01 +00:00
Dan Williams
c468809b57 2008-10-06 Dan Williams <dcbw@redhat.com>
* src/nm-ip4-config.c
	  src/nm-ip4-config.h
		- nm_ip4_config_is_exported -> nm_ip4_config_get_dbus_path

	* src/nm-device-interface.c
		- (nm_device_interface_init): make 'ip4-config' a boxed property of type
			DBUS_TYPE_G_OBJECT_PATH so that we can make it NULL when we need to
			by using '/' for the object path

	* src/nm-device.c
		- (src/nm-device.c): marshal missing/unexported ip4-config through
			dbus as '/' since dbus-glib can't handle NULL objects nor can
			dbus handle NULL object paths



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4152 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-10-06 19:30:59 +00:00
Dan Williams
0a77ae735c 2008-10-02 Dan Williams <dcbw@redhat.com>
* src/nm-gsm-device.c
		- (enter_pin_done, enter_pin, check_pin_done, real_act_stage1_prepare):
			pass the required GSM secret along via user_data rather than keeping
			it around in the private data where it sometimes didn't get cleared
		- (real_get_ppp_name): implement using the GSM username



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4142 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-10-02 17:11:42 +00:00
Dan Williams
175d6db3ef 2008-10-02 Dan Williams <dcbw@redhat.com>
* src/ppp-manager/nm-ppp-manager.c
	  src/ppp-manager/nm-ppp-manager.h
		- (impl_ppp_manager_need_secrets): tries secrets twice before asking
			the settings daemon for completely new ones
		- (create_pppd_cmd_line): new parameter 'ppp_name' used to set the
			local PPP peer name; allow PPP debuging by launching NM with
			the environment variable NM_PPP_DEBUG defined
		- (nm_ppp_manager_start): new parameter 'ppp_name' passed to
			create_pppd_cmd_line()

	* src/nm-serial-device.c
	  src/nm-serial-device.h
		- New 'get_ppp_name' function for subclasses to implement to return the
			local PPP peer name
		- (real_act_stage2_config): call 'get_ppp_name' function of subclasses
			and pass that name to the PPP manager

	* src/nm-device-ethernet.c
		- (pppoe_stage2_config): pass the PPPoE username to the PPP manager as
			the local peer name

	* src/nm-cdma-device.c
		- (real_get_ppp_name): implement using the CDMA username



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4141 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-10-02 17:10:00 +00:00
Dan Williams
80fdf64b0b Small cleanup
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4140 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-10-02 17:06:58 +00:00
Dan Williams
64f8dfa0af 2008-10-02 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerPolicy.c
		- (device_state_changed): when marking a connection invalid, clear its
			secrets too so that fresh secrets get requested the next time



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4138 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-10-02 13:21:14 +00:00
Dan Williams
97f6070cfd 2008-09-30 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerPolicy.c
		- (lookup_thread_worker): don't store the idle handler ID becuase the
			idle handler could have already run and freed the LookupThread
			structure



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4126 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-30 16:48:16 +00:00
Tambet Ingo
50f3ec27a2 2008-09-30 Tambet Ingo <tambet@gmail.com>
* src/nm-device.c (nm_device_get_priority): Implement.
	(nm_device_set_ip4_config): Send the device priority to system ip4
	config setter.

	* src/NetworkManagerSystem.c (nm_system_device_set_from_ip4_config):
	Add priority argument and if it's >= 0, set the priority of the network
	route added automatically by netlink (or kernel?).
	(nm_system_device_set_priority): Implement.

	* src/NetworkManagerPolicy.c (get_best_device): Use
	nm_device_get_priority() instead of home-grown version. Revert the
	meaning, best priority is the lowest one.

git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4125 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-30 15:04:10 +00:00
Dan Williams
453940a799 2008-09-29 Dan Williams <dcbw@redhat.com>
Handle ipw3945 suspend/resume by retrying the GIWRANGE request a few times
	when it returns EAGAIN (rh #362421)

	* src/nm-device-wifi.c
		- (wireless_get_range): try GIWRANGE a few times until the card responds
		- (real_get_generic_capabilities, constructor): use wireless_get_range()



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4120 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-29 11:50:43 +00:00
Dan Williams
f1a41c0a8e 2008-09-28 Dan Williams <dcbw@redhat.com>
* src/nm-serial-device.c
	  src/nm-serial-device.h
		- (nm_serial_device_close): stop PPP manager here so that PPP gets
			cleaned at the right times when subclasses close the serial port too
		- (nm_serial_device_send_command): use a default send delay; don't
			spin forever on EAGAIN
		- (get_reply_done, get_reply_got_data, nm_serial_device_get_reply):
			remove, no longer used
		- (find_response): return the matched response if any
		- (nm_serial_device_wait_reply_blocking): wait for a reply but block
			while doing so
		- (wait_for_reply_done): pass the matched response to the callback
		- (wait_for_reply_got_data): save the matched response; simplify timeout
			handling
		- (nm_serial_device_wait_for_reply): make 'responses' and 'terminators'
			const since they never get modified
		- (cleanup_device): split out common cleanup stuff to a new function
		- (real_deactivate_quickly, finalize): use cleanup_device()

	* src/nm-gsm-device.c
		- (modem_get_reply): remove, unused
		- (set_apn): give the card a bit more time to respond
		- (manual_registration_again, schedule_manual_registration_again,
		   manual_registration_response, manual_registration): handle manual
			registration timeouts better by retrying registration a few times
			because cards are a bit slow after CFUN=1
		- (automatic_registration_get_network, get_network_response): use
			modem_wait_for_reply() because it interacts better with the serial
			buffer and does more intelligent matching; need to wait for 'OK'
			rather than just matching terminators
		- (schedule_automatic_registration_again,
		   automatic_registration_response, automatic_registration): retry
			registration a few times on timeout or "searching" because cards
			take a bit to find a network after being powered up with CFUN=1
		- (power_up_response, power_up, init_full_done, enter_pin,
		   check_pin_done): power up the card with CFUN=1 before trying to
			register with the network
		- (init_modem_full, init_modem): use more standard 3G init strings

	* src/nm-hso-gsm-device.c
		- (modem_get_reply): remove, unused
		- (hso_ip4_config_response, real_act_stage3_ip_config_start): use
			modem_wait_for_reply() to match actual responses instead of single
			termination characters; it doesn't leave stuff in the serial buffer
			that might confuse later calls
		- (real_deactivate_quickly): use nm_serial_device_wait_reply_blocking()
			to ensure that the call is really disconnected and not leave extra
			stuff in the serial buffer

	* src/nm-cdma-device.c
		- (power_up_response, power_up, init_done): try Sierra-style modem
			power up before attempting to connect



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4119 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-28 22:55:40 +00:00
Dan Williams
79256975d1 2008-09-25 Dan Williams <dcbw@redhat.com>
Fix bgo #549401 (inspired by patch from Alexander Sack)

	* src/nm-device-ethernet.c
		- (finish_supplicant_task): clean up scheduled tasks and free memory
		- (remove_supplicant_interface_error_handler): remove the supplicant
			error idle callback too
		- (supplicant_interface_release): rename from supplicant_interface_clean
			to match nm-device-wifi.c; clean up supplicant interface-related
			state tasks when the supplicant interface is disposed of
		- (schedule_state_handler): add scheduled tasks to a list so they can
			be cleaned up later
		- (supplicant_mgr_state_cb_handler, supplicant_iface_state_cb_handler,
		   supplicant_iface_connection_state_cb_handler): use
			finish_supplicant_task() to clean up each completed task
		- (supplicant_iface_connection_error_cb_handler,
		   supplicant_connection_timeout_cb): clear source id when the task is
			complete
		- (supplicant_iface_connection_error_cb): save scheduled task id for
			later cleanup
		- (nm_device_ethernet_dispose): clean up any pending supplicant state
			tasks

	* src/nm-device-wifi.c
		- (finish_supplicant_task): clean up scheduled tasks and free memory
		- (remove_supplicant_interface_error_handler): remove the supplicant
			error idle callback too
		- (supplicant_interface_release): clean up supplicant interface-related
			state tasks when the supplicant interface is disposed of
		- (schedule_state_handler): add scheduled tasks to a list so they can
			be cleaned up later
		- (supplicant_mgr_state_cb_handler, supplicant_iface_state_cb_handler,
		   supplicant_iface_connection_state_cb_handler): use
			finish_supplicant_task() to clean up each completed task
		- (supplicant_iface_connection_error_cb_handler): clear source id when
			the task is complete
		- (supplicant_iface_connection_error_cb): save scheduled task id for
			later cleanup
		- (nm_device_wifi_dispose): clean up any pending supplicant state tasks



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4105 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-25 10:02:28 +00:00
Tambet Ingo
6ac525267b 2008-09-24 Tambet Ingo <tambet@gmail.com>
* src/supplicant-manager/nm-supplicant-interface.c
	(nm_supplicant_interface_disconnect): Don't increment the reference
	count when disconnecting. The problem is on shutdown, when the replies
	to these commands do not arrive before NM exits, resulting on never
	calling supplicant interface's dispose(), which removes the interface
	from supplicant.

git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4093 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-24 11:45:44 +00:00
Tambet Ingo
b37fc86385 2008-09-22 Tambet Ingo <tambet@gmail.com>
* src/vpn-manager/nm-vpn-connection.c: Add a signal handler for the
	"Failure" signal from VPN plugins, store the failure reason, and
	use it when the state is changed to failure.

	* introspection/nm-vpn-plugin.xml: Fix the "Failure" signal's type
	description.

	* include/NetworkManagerVPN.h (NMVPNConnectionStateReason): Add a new
	reason to the end of the list to not break the API.
	(NMVPNPluginFailure): Move it here (from libnm-glib/nm-vpn-plugin.h)
	so it can be shared by plugins and daemon.

git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4088 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-22 15:29:00 +00:00
Dan Williams
ba2ad655de Check return value of sethostname(2)
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4082 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-19 17:40:48 +00:00
Dan Williams
e26a6a046e Use a glibc header for ifreq, not the linux header
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4080 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-19 17:13:30 +00:00
Dan Williams
0ab563c5ab Add required include
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4079 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-19 17:12:15 +00:00
Dan Williams
9d5a2291f7 2008-09-18 Dan Williams <dcbw@redhat.com>
Implement support for honoring configured and automatic hostnames, and for
	setting the configured hostname.

	* introspection/nm-ip4-config.xml
	  src/nm-ip4-config.c
	  src/nm-ip4-config.h
	  src/dhcp-manager/nm-dhcp-manager.c
		- Remove useless hostname property; it's not really part of the IPv4
			config

	* introspection/nm-settings-system.xml
	  libnm-glib/nm-dbus-settings-system.c
	  libnm-glib/nm-dbus-settings-system.h
		- Add SetHostname() call to system settings D-Bus interface
		- Add Hostname property to system settings D-Bus interface
		- (nm_dbus_settings_system_save_hostname,
		   nm_dbus_settings_system_get_hostname): implement

	* src/nm-device.c
	  src/nm-device.h
		- (nm_device_get_dhcp4_config): implement

	* src/nm-manager.c
	  src/nm-manager.h
		- Fetch and track system settings service hostname changes, and proxy
			the changes via a GObject property of the manager

	* system-settings/src/nm-system-config-interface.c
	  system-settings/src/nm-system-config-interface.h
		- Replace nm_system_config_interface_supports_add() with a capabilities
			bitfield

	* system-settings/src/nm-system-config-error.c
	  system-settings/src/nm-system-config-error.h
		- Add additional errors

	* system-settings/src/dbus-settings.c
	  system-settings/src/dbus-settings.h
		- (get_property, nm_sysconfig_settings_class_init): add hostname
			property; first plugin returning a hostname wins
		- (impl_settings_add_connection): use plugin capabilities instead of
			nm_system_config_interface_supports_add()
		- (impl_settings_save_hostname): implement hostname saving

	* src/NetworkManagerPolicy.c
		- (lookup_thread_run_cb, lookup_thread_worker, lookup_thread_new,
		   lookup_thread_die): implement an asynchronous hostname lookup thread
			which given an IPv4 address tries to look up the hostname for that
			address with reverse DNS
		- (get_best_device): split out best device code from
			update_routing_and_dns()
		- (update_etc_hosts): update /etc/hosts with the machine's new hostname
			to preserve the 127.0.0.1 reverse mapping that so many things require
		- (set_system_hostname): set a given hostname
		- (update_system_hostname): implement hostname policy; a configured
			hostname (from the system settings service) is used if available,
			otherwise an automatically determined hostname from DHCP, VPN, etc.
			If there was no automatically determined hostname, reverse DNS of
			the best device's IP address will be used, and as a last resort the
			hostname 'localhost.localdomain' is set.
		- (update_routing_and_dns): use get_best_device(); update the system
			hostname when the network config changes
		- (hostname_changed): update system hostname if the system settings
			service signals a hostname change
		- (nm_policy_new): list for system settings service hostname changes
		- (nm_policy_destroy): ensure that an in-progress hostname lookup thread
			gets told to die

	* system-settings/plugins/keyfile/plugin.c
	  system-settings/plugins/ifcfg-suse/plugin.c
		- (get_property, sc_plugin_ifcfg_class_init): implement hostname and
			capabilities properties

	* system-settings/plugins/ifcfg-fedora/shvar.c
		- (svOpenFile): re-enable R/W access of ifcfg files since the plugin
			writes out /etc/sysconfig/network now

	* system-settings/plugins/ifcfg-fedora/plugin.c
		- (plugin_get_hostname): get hostname from /etc/sysconfig/network
		- (plugin_set_hostname): save hostname to /etc/sysconfig/network
		- (sc_network_changed_cb): handle changes to /etc/sysconfig/network
		- (sc_plugin_ifcfg_init): monitor /etc/sysconfig/network for changes
		- (get_property, set_property, sc_plugin_ifcfg_class_init): implement
			hostname get/set and capabilities get



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4077 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-18 15:16:44 +00:00
Dan Williams
0b82d7b681 2008-09-15 Dan Williams <dcbw@redhat.com>
Patch from Alexander Sack <asac@ubuntu.com>

	* src/named-manager/nm-named-manager.c
		- (dispatch_resolvconf): respect resolvconf exit code



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4069 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-15 14:41:17 +00:00
Tambet Ingo
2f5ed47908 2008-09-12 Tambet Ingo <tambet@gmail.com>
* src/named-manager/nm-named-manager.c (dispatch_netconfig): Make it compile
	again. Add some debugging.

git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4060 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-12 11:22:06 +00:00
Dan Williams
a5de3b4656 Include config.h for TARGET_*
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4046 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-08 18:10:39 +00:00
Dan Williams
0760152f9f 2008-09-05 Dan Williams <dcbw@redhat.com>
Patch from Roy Marples <roy@marples.name> and others

	* configure.in
	  src/named-manager/nm-named-manager.c
		- Add support for resolvconf; use --with-resolvconf at configure time
			to enable it



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4043 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-05 18:57:07 +00:00
Dan Williams
178148a2c5 2008-09-04 Dan Williams <dcbw@redhat.com>
* src/nm-ip4-config.c
	  src/nm-ip4-config.h
		- (nm_ip4_config_new): don't export over D-Bus here
		- (nm_ip4_config_export): new function; export the config over D-Bus
		- (nm_ip4_config_is_exported): new function

	* src/nm-device.c
		- (nm_device_activate_stage5_ip_config_commit): fix leak of IP4Config
			objects by balancing the IP4Config constructor; the device holds
			a reference to the IP4Config already
		- (nm_device_set_ip4_config): export the IP4Config when needed



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4037 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-05 02:55:40 +00:00
Dan Williams
147d3293fd 2008-09-04 Dan Williams <dcbw@redhat.com>
* src/supplicant-manager/nm-supplicant-settings-verify.c
		- Allow WPA-NONE key management for Ad-Hoc WPA connections



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4035 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-04 17:26:19 +00:00
Dan Williams
ba15ee5f50 2008-09-04 Dan Williams <dcbw@redhat.com>
* libnm-util/nm-setting-vpn.c
	  libnm-util/nm-setting-vpn.h
		- Split VPN secrets from VPN data so that settings services can actually
			figure out that they are secrets and store them accordingly

	* system-settings/plugins/keyfile/nm-keyfile-connection.c
	  system-settings/plugins/keyfile/reader.c
	  system-settings/plugins/keyfile/reader.h
	  system-settings/plugins/keyfile/writer.c
		- Store VPN secrets separately from VPN data so that they can be fetched
			on demand
		- Implement the get_secrets() call so that (a) secrets don't leak out
			to unprivileged callers, and (b) secrets can be sent to privileged
			callers when needed

	* vpn-daemons/vpnc/src/nm-vpnc-service.c
		- Handle split VPN secrets



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4031 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-04 14:32:14 +00:00
Dan Williams
c89a99a723 Fix flawed comparison (Pablo Martí)
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4029 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-03 20:51:36 +00:00
Dan Williams
7466136be2 2008-08-27 Dan Williams <dcbw@redhat.com>
Ensure zombie children get cleaned up.  To get notifications when children
	die abnormally, g_spawn_async() requires G_SPAWN_DO_NOT_REAP_CHILD, but
	that requires calling waitpid() yourself if you've removed the child watch
	handler before the process has actually died, which NM needs to do in a few
	places.  So ensure that everything uses G_SPAWN_DO_NOT_REAP_CHILD and also
	cleans up after the child when required.  Should fix problems trying to
	activate mobile broadband connections after a previous failure.

	* src/dhcp-manager/nm-dhcp-dhclient.c
	  src/dhcp-manager/nm-dhcp-dhcpcd.c
		- Use G_SPAWN_DO_NOT_REAP_CHILD

	* src/dhcp-manager/nm-dhcp-manager.c
		- (nm_dhcp_device_destroy): ensure child is cleaned up
		- (nm_dhcp_client_stop, nm_dhcp_manager_cancel_transaction_real): always
			block on child quitting, since the non-blocking functionality was
			never actually used

	* src/dnsmasq-manager/nm-dnsmasq-manager.c
		- (dm_watch_cb): child is already reaped here
		- (ensure_killed, nm_dnsmasq_manager_stop): block until child is dead

	* src/nm-device.c
		- (aipd_cleanup): block until child is dead

	* src/named-manager/nm-named-manager.c
		- (run_netconfig): don't use G_SPAWN_DO_NOT_REAP_CHILD if we aren't
			event bothering to watch the child

	* src/ppp-manager/nm-ppp-manager.c
		- (ppp_watch_cb): child is already reaped here
		- (ensure_killed, nm_ppp_manager_stop): block until child is dead

	* src/vpn-manager/nm-vpn-service.c
		- (vpn_service_watch_cb): child is already reaped here
		- (nm_vpn_service_daemon_exec): use G_SPAWN_DO_NOT_REAP_CHILD so that
			status of the child is actually tracked
		- (ensure_killed, finalize): block until child is dead



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4020 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-27 17:22:32 +00:00
Michael Biebl
d7940bcb9b Rename private nm_* functions to _nm_*
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4012 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-26 09:34:31 +00:00
Michael Biebl
d29e75ceef Include nm-utils.h for nm_info ()
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4004 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-22 19:59:31 +00:00
Michael Biebl
3c78ec4fbb Do not restart nscd, simply invalidate the hosts cache.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4003 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-22 19:58:13 +00:00
Dan Williams
8779eef14c Fix warning
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4000 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-22 15:58:22 +00:00
Dan Williams
1be9a6ecb7 More verbose tracking of pppd
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3990 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-21 12:55:36 +00:00
Dan Williams
0b4d557319 2008-08-18 Dan Williams <dcbw@redhat.com>
* libnm-util/nm-utils.c
	  libnm-util/nm-utils.h
		- (nm_utils_garray_to_string): remove; NM was the only user and doesn't
			export anything that needs to be converted with this function

	* src/dhcp-manager/nm-dhcp-manager.c
		- (garray_to_string): convert a byte array to a UTF-8 string with
			minimal validation; the DHCP client sends it in ASCII anyway
		- (get_option, copy_option): use garray_to_string()



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3985 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-18 21:24:31 +00:00
Dan Williams
728dccd92c 2008-08-18 Dan Williams <dcbw@redhat.com>
* include/NetworkManager.h
	  introspection/nm-device.xml
		- Add a "missing firmware" device state reason

	* src/NetworkManagerSystem.c
	  src/NetworkManagerSystem.h
		- (nm_system_device_set_up_down): add a no_firmware argument
		- (nm_system_device_set_up_down_with_iface): if the result of setting
			IFF_UP is ENOENT, that almost always means missing firmware

	* src/backends/NetworkManagerGeneric.c
	  src/nm-device-ethernet.c
	  src/nm-device-private.h
	  src/nm-device-wifi.c
	  src/nm-device.c
	  src/nm-device.h
	  src/nm-hso-gsm-device.c
	  src/vpn-manager/nm-vpn-connection.c
		- Pass no_firmware along; check it where appropriate



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3983 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-18 18:29:47 +00:00
Dan Williams
afe47b8d3a 2008-08-17 Dan Williams <dcbw@redhat.com>
* include/NetworkManager.h
	  introspection/nm-device.xml
	  src/nm-gsm-device.c
		- Finer-grained GSM registration failure error codes



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3978 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-17 23:41:41 +00:00
Dan Williams
a419bdfb9e 2008-08-17 Dan Williams <dcbw@redhat.com>
* callouts/Makefile.am
	  src/Makefile.am
		- Move dispatcher directory creation to callouts/Makefile.am

	* system-settings/plugins/keyfile/Makefile.am
		- Create keyfile connections directory in DESTDIR (bgo #546833)



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3976 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-17 22:54:49 +00:00
Dan Williams
02b28e6cd2 2008-08-15 Dan Williams <dcbw@redhat.com>
Do connection sharing in a cleaner manner; all required iptables rules
	are now stored in the activation request and pertain only to the device
	which is being shared to other computers.

	* src/nm-activation-request.c
	  src/nm-activation-request.h
		- (nm_act_request_add_share_rule): new function; add a sharing rule to
			the activation request which will get torn down automatically when
			the activation request dies
		- (nm_act_request_set_shared): push sharing rules to iptables when sharing
			is started, and tear them down when sharing is stopped

	* src/nm-device.c
		- (start_sharing): start up sharing by doing the required iptables magic
		- (share_init): poke the right bits of the kernel and load the right
			modules for NAT
		- (nm_device_activate_stage5_ip_config_commit): start NAT-ing this
			connection if it's a 'shared' connection

	* src/NetworkManagerPolicy.c
		- Remove all sharing stuff; done in the device code itself



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3969 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-15 15:34:28 +00:00
Dan Williams
d682f35bf0 2008-08-15 Dan Williams <dcbw@redhat.com>
* src/dnsmasq-manager/nm-dnsmasq-manager.c
		- (create_dm_cmd_line): send the right router address



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3968 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-15 15:06:44 +00:00
Dan Williams
8f1066ea35 2008-08-15 Dan Williams <dcbw@redhat.com>
* src/ppp-manager/nm-ppp-manager.c
		- (pppd_timed_out): ensure timeouts fail the connection



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3967 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-15 12:49:54 +00:00
Dan Williams
680259ef68 2008-08-14 Dan Williams <dcbw@redhat.com>
* src/nm-properties-changed-signal.c
	  src/nm-properties-changed-signal.h
		- Add a property spec flag for "don't export this property" in
			property changed signals

	* src/nm-hso-gsm-device.c
	  src/nm-gsm-device.c
	  src/nm-cdma-device.c
		- Don't export monitor interface or netdev interface properties



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3966 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-14 20:02:06 +00:00
Dan Williams
5fe8f48237 2008-08-14 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerPolicy.c
		- (update_routing_and_dns): 'hso' devices can be default even if they
			don't have a gateway



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3964 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-14 18:59:58 +00:00
Dan Williams
7069202c90 2008-08-14 Dan Williams <dcbw@redhat.com>
* src/nm-device.c
		- (nm_device_deactivate_quickly): tear down activation request after
			calling device-specific deactivation

	* src/nm-hso-gsm-device.c
		- (real_deactivate_quickly): terminate connection when deactivating



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3963 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-14 17:45:47 +00:00
Dan Williams
dbb7455778 Turn off serial debug again
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3962 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-14 17:34:58 +00:00
Dan Williams
b3d2fb40e6 2008-08-14 Dan Williams <dcbw@redhat.com>
* src/nm-activation-request.h
		- Add HSO secrets caller

	* src/nm-gsm-device.c
	  src/nm-gsm-device.h
		- (modem_wait_for_reply): add a 'user_data' argument so callers can pass
			something to the callback function
		- (set_apn, set_apn_done): call class dial function, not a static one
		- (nm_gsm_device_class_init): add a class 'dial' function

	* src/nm-hal-manager.c
		- (get_hso_netdev): find the hso-driven hardware's net device
		- (modem_device_creator): recognize hso-driven hardware and create the
			right type of device object for it

	* src/Makefile.am
	  src/nm-hso-gsm-device.c
	  src/nm-hso-gsm-device.h
		- Implement support for devices driven by the 'hso' driver as a subclass
			of NMGsmDevice



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3961 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-14 17:03:12 +00:00
Dan Williams
91497f2949 2008-08-14 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerSystem.c
		- (nm_system_device_is_up_with_iface): ensure ifreq is cleared before using
		- (nm_system_device_set_up_down_with_iface): cleanups; only return
			success if the operation really was successful



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3959 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-14 16:52:06 +00:00