Commit graph

61 commits

Author SHA1 Message Date
Dan Williams
b3f192e216 dbus: final dbus policy fixes (bgo #563730)
Keep explicit denials, consolidate stuff, ensure that when denying
send_interface it's almost always matched with send_destination.
2009-02-17 10:45:44 -05:00
Dan Williams
6d498a1f94 system-settings: fix shutdown issues
Shutdown on SIGTERM, and don't segfault when quitting cleanly.  Can't
send signals on an object that's being disposed of, so don't do that.
Fix a memory leak of the Hal manager's priv->devices on shutdown, not
that it matters.
2009-02-17 10:45:36 -05:00
Dan Williams
58f0541ff4 makefile cleanups
0.7 requires dbus 1.1 or greater (for system bus activation), so make that
explicit, and remove compat code for D-Bus 0.6 and earlier.  Consolidate
the various glib pkgconfig checks into one, since most anything will require
gthread, glib, and gobject anyway.  Fixup the docs makefile to be more
automake-compatible and let 'make clean' actually work correctly when
docs are built.
2009-02-15 11:23:31 -05:00
Przemysław Grzegorczyk
bac45aa0d5 clean up glib includes (bgo #564376)
Only <glib.h> and <gtk/gtk.h> need to be included.
2009-01-19 00:16:40 -05:00
Jan Kantert
4ca66db721 Use g_timeout_add_seconds() to reduce wakeups
(and refine the older glib compat mechanism, by Dan)
2008-12-31 18:57:36 -05:00
Dan Williams
f6225d7a94 2008-11-26 Dan Williams <dcbw@redhat.com>
* libnm-glib/nm-settings.c
	  libnm-glib/nm-settings.h
		- (nm_exported_connection_delete): rename 'delete' to 'do_delete' to
			avoid using C++ reserved keywords in headers

	* libnm-glib/nm-dbus-connection.c
	  system-settings/plugins/ifcfg-rh/nm-ifcfg-connection.c
	  system-settings/plugins/ifcfg-suse/nm-suse-connection.c
	  system-settings/plugins/ifupdown/nm-ifupdown-connection.c
	  system-settings/plugins/keyfile/nm-keyfile-connection.c
	  system-settings/src/nm-sysconfig-connection.c
		- Change 'delete' to 'do_delete'



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4343 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-11-27 00:00:14 +00:00
Dan Williams
04be05e59f 2008-11-25 Dan Williams <dcbw@redhat.com>
* system-settings/plugins/ifcfg-rh
		- Rename 'ifcfg-fedora' to 'ifcfg-rh'; it's not just used on Fedora

	* system-settings/src/main.c
		- (load_plugins): transparently handle ifcfg-fedora as ifcfg-rh



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4337 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-11-25 22:42:21 +00:00
Dan Williams
c531e1cd9e 2008-11-14 Dan Williams <dcbw@redhat.com>
* introspection/nm-settings-system.xml
	  system-settings/src/dbus-settings.c
	  system-settings/src/dbus-settings.h
		- Add a "CanModify" property to indicate if any plugins support
			connection modification



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4286 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-11-14 18:24:38 +00:00
Dan Williams
201fd4ed8e 2008-11-03 Dan Williams <dcbw@redhat.com>
* system-settings/src/main.c
		- (add_default_dhcp_connection): make the fallback connection read-only

	* libnm-glib/nm-settings.c
	  libnm-glib/nm-settings.h
		- Add detailed errors
		- (impl_exported_connection_update, impl_exported_connection_delete):
			return an error if the connection is read-only

	* system-settings/plugins/ifupdown/nm-ifupdown-connection.c
	  system-settings/plugins/keyfile/nm-keyfile-connection.c
	  system-settings/src/main.c
		- Use more detailed errors

	* system-settings/src/nm-system-config-error.c
	  system-settings/src/nm-system-config-error.h
	  system-settings/src/dbus-settings.c
		- Remove NM_SYSCONFIG_SETTINGS_ERROR_INVALID_CONNECTION, replaced by
			NM_SETTINGS_ERROR_INVALID_CONNECTION



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4254 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-11-03 22:32:49 +00:00
Dan Williams
7a0a9809dc Normalize license headers
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4249 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-11-03 04:45:50 +00:00
Dan Williams
7d723b54a4 2008-10-26 Dan Williams <dcbw@redhat.com>
Patch from Tambet Ingo <tambet@gmail.com>

	* libnm-util/libnm-util.ver
	  libnm-util/nm-setting-connection.c
	  libnm-util/nm-setting-connection.h
		- Make properties private and add accessor functions

	* src/NetworkManagerPolicy.c
	  src/nm-cdma-device.c
	  src/nm-device-ethernet.c
	  src/nm-device-interface.c
	  src/nm-device-wifi.c
	  src/nm-gsm-device.c
	  src/nm-manager.c
	  src/ppp-manager/nm-ppp-manager.c
	  src/vpn-manager/nm-vpn-connection.c
	  system-settings/plugins/ifcfg-fedora/nm-ifcfg-connection.c
	  system-settings/plugins/ifcfg-fedora/plugin.c
	  system-settings/plugins/ifcfg-fedora/reader.c
	  system-settings/plugins/ifcfg-suse/parser.c
	  system-settings/plugins/ifupdown/parser.c
	  system-settings/plugins/keyfile/nm-keyfile-connection.c
	  system-settings/plugins/keyfile/plugin.c
	  system-settings/plugins/keyfile/writer.c
	  system-settings/src/main.c
		- Use those accessors



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4220 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-10-26 17:41:37 +00:00
Dan Williams
fff2e85bd6 2008-10-26 Dan Williams <dcbw@redhat.com>
Patch from Tambet Ingo <tambet@gmail.com>

	* libnm-util/libnm-util.ver
	  libnm-util/nm-setting-wired.c
	  libnm-util/nm-setting-wired.h
		- Make properties private and add accessor functions

	* src/nm-device-ethernet.c
	  system-settings/plugins/ifcfg-fedora/nm-ifcfg-connection.c
	  system-settings/plugins/ifcfg-suse/parser.c
	  system-settings/src/main.c
		- Use those accessors



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4215 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-10-26 17:02:05 +00:00
Alexander Sack
400cceb393 2008-10-03 Alexander Sack <asac@ubuntu.com>
* system-settings/plugins/ifcfg-fedora/nm-inotify-helper.c
	  system-settings/plugins/ifcfg-fedora/nm-inotify-helper.h
	  system-settings/plugins/ifcfg-fedora/Makefile.am
	  system-settings/src/nm-inotify-helper.c
	  system-settings/src/nm-inotify-helper.h
	  src/Makefile.am
		- Move ifcfg-fedora inotify helpers to the system settings service so
			they are available to all plugins



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4150 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-10-06 18:05:05 +00:00
Alexander Sack
e28b126389 2008-10-03 Alexander Sack <asac@ubuntu.com>
* system-settings/src/main.c:
		- (add_default_dhcp_connection, device_removed_cb): ensure the UDI is
			always used as the hash key; fixes a crash when removing wired
			devices



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4147 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-10-06 16:03:57 +00:00
Dan Williams
d83cc33a7f 2008-10-01 Dan Williams <dcbw@redhat.com>
* system-settings/src/dbus-settings.c
		- (nm_sysconfig_settings_init): cache system hostname on startup as
			a fallback if no plugin provides a hostname
		- (get_property): fall back to cached hostname if no plugin provides
			a hostname



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4136 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-10-01 22:59:21 +00:00
Dan Williams
8fbf9cfdbc Fix spacing
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4135 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-10-01 22:31:53 +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
3028e29272 Flag connections as loaded before getting unmanaged devices as that can trigger connection recursive connection reloads (Alexander Sack)
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4075 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-09-18 14:46:57 +00:00
Dan Williams
81f8f39920 2008-08-26 Dan Williams <dcbw@redhat.com>
Add connection UUIDs, since connection names can be changed, and since
	old-style connection IDs could change over the life of the connection.  The
	UUID should be assigned at connection creation time, be stable for a given
	connection, and should be unique among all connections for a given settings
	service.

	* configure.in
	  libnm-util/Makefile.am
		- Require libuuid

	* introspection/nm-exported-connection.xml
		- Remove "GetID" method

	* libnm-glib/nm-dbus-connection.c
	  libnm-glib/nm-settings.c
	  libnm-glib/nm-settings.h
		- Remove id-related stuff

	* libnm-util/nm-utils.c
	  libnm-util/nm-utils.h
	  libnm-util/libnm-util.ver
		- (nm_utils_uuid_generate, nm_utils_uuid_generate_from_string): Add
			utility functions to generate UUIDs

	* libnm-util/nm-setting-connection.c
	  libnm-util/nm-setting-connection.h
		- Add 'uuid' member to the connection setting
		- (verify): require valid 'uuid' for a valid connection

	* system-settings/plugins/ifcfg-fedora/nm-ifcfg-connection.c
	  system-settings/plugins/ifcfg-fedora/reader.c
	  system-settings/plugins/ifcfg-suse/nm-suse-connection.c
	  system-settings/plugins/ifcfg-suse/parser.c
	  system-settings/plugins/keyfile/nm-keyfile-connection.c
	  system-settings/src/main.c
		- Remove id-related stuff
		- Give connections UUIDs where needed



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4013 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-27 02:57:21 +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
Dan Williams
5611f4c4d0 2008-08-12 Dan Williams <dcbw@redhat.com>
Revert most of the 'hostname' patch.  Too much stuff still breaks when
	hostname is updated at runtime.  Distros or users who want hostname updates
	can use dispatcher scripts to update the hostname if they need it.



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3945 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-12 22:37:08 +00:00
Dan Williams
029ea7ff96 Require only one . in hostname
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3942 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-12 20:21:03 +00:00
Dan Williams
a3be3b6e90 2008-08-12 Dan Williams <dcbw@redhat.com>
* introspection/nm-settings-system.xml
	  system-settings/src/dbus-settings.c
	  system-settings/src/dbus-settings.h
		- Add a 'Hostname' property (rw) which represents the configured
			hostname and domain of the system, if any

	* system-settings/src/nm-system-config-error.c
	  system-settings/src/nm-system-config-error.h
	  system-settings/src/nm-system-config-interface.c
	  system-settings/src/nm-system-config-interface.h
		- Add a 'hostname' property to the plugin interface
		- Add a method to send updated hostname to plugins to save in their
			backing configuration store

	* system-settings/plugins/keyfile/nm-keyfile-connection.c
	  system-settings/plugins/keyfile/plugin.c
	  system-settings/plugins/keyfile/writer.c
	  system-settings/plugins/keyfile/writer.h
	  system-settings/plugins/ifcfg-suse/plugin.c
		- Add minimal hostname support

	* system-settings/plugins/ifcfg-fedora/plugin.c
		- Add support for updating system hostname in /etc/sysconfig/network



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3941 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-08-12 18:39:03 +00:00
Tambet Ingo
5262883e96 2008-07-16 Tambet Ingo <tambet@gmail.com>
* system-settings/src/nm-system-config-interface.c
	(nm_system_config_interface_supports_add): Implement.
	(nm_system_config_interface_add_connection): Return a boolean to notify
	of errors.

	* system-settings/src/nm-polkit-helpers.c:
	* system-settings/src/nm-polkit-helpers.h: Move error declarations to
	a separate file.

	* system-settings/src/dbus-settings.c (impl_settings_add_connection):
	Return an error when none of the plugins support add or if addition
	failed for some reason.

	* system-settings/src/nm-system-config-error.h:
	* system-settings/src/nm-system-config-error.c: New files, mostly moved
	here from nm-polkit-helpers.[ch].

	* system-settings/src/Makefile.am: Build new files.

	* system-settings/plugins/keyfile/reader.c
	(read_array_of_array_of_uint): Make it more general so that it would
	work for routes as well.

	* system-settings/plugins/keyfile/writer.c
	(write_array_of_array_of_uint): Ditto.
	Fix the netmask/prefix writing.

	* system-settings/plugins/keyfile/plugin.c (add_connection): Return
	boolean to notify errors.

	* system-settings/plugins/ifcfg-suse/nm-suse-connection.c (update):
	Return more specific error.
	(delete): Ditto.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3821 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-07-16 07:37:10 +00:00
Dan Williams
b0cf66eda8 2008-06-26 Dan Williams <dcbw@redhat.com>
* Update FSF address in license headers (Michael Biebl <biebl@debian.org>)



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3775 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-06-26 18:31:52 +00:00
Dan Williams
8afd2d8ecd 2008-06-26 Dan Williams <dcbw@redhat.com>
Patch from Michael Biebl <biebl@debian.org>

	* Clean up build system stuff



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3773 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-06-26 17:34:04 +00:00
Dan Williams
403ab8c332 Move system settings daemon config file to /etc/NetworkManager (Michael Biebl)
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3758 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-06-17 17:54:19 +00:00
Dan Williams
05e9de9402 2008-06-12 Dan Williams <dcbw@redhat.com>
Add a GError argument to nm_connection_verify() and nm_setting_verify(),
	and add error enums to each NMSetting subclass.  Each NMSetting subclass now
	returns a descriptive GError when verification fails.



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3751 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-06-12 23:58:08 +00:00
Dan Williams
2b00116361 2008-06-10 Dan Williams <dcbw@redhat.com>
The grand 802-3-ethernet rename.  Get rid of the 802-3/8023/802_3 bits.



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3741 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-06-10 15:54:23 +00:00
Dan Williams
a7f2b61cdf 2008-06-06 Dan Williams <dcbw@redhat.com>
* system-settings/src/nm-polkit-helpers.c
		- (create_polkit_context): in PolicyKit 0.6, polkit_context_init() will
			unref the context if the initialization fails; also avoid spew when
			the error isn't set



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3731 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-06-06 19:28:53 +00:00
Tambet Ingo
d95e330f96 2008-06-05 Tambet Ingo <tambet@gmail.com>
Fix memory leaks.

	* system-settings/src/nm-system-config-hal-manager.c (get_type_for_udi):
	Free data returned from dbus method call.

	* system-settings/src/nm-polkit-helpers.c (check_polkit_privileges):
	dbus_g_method_get_sender() returns a duplicated string, free it
	when done.
	(check_polkit_privileges): Looks like policykit sometimes returns
	error and non-null return value, don't leak errors in that case.

	* system-settings/src/main.c (find_plugin): Don't leak existing
	plugin names.
	(load_stuff): Don't leak device list and list items.
	(have_connection_for_device): Don't leak connection list.

	* system-settings/plugins/keyfile/reader.c (read_one_setting_value):
	Free the data received from g_keyfile_get_*.

	* system-settings/plugins/ifcfg-suse/parser.c (READ_WEP_KEY): Free
	the key when the security object is updated.

	* src/supplicant-manager/nm-supplicant-interface.c (scan_results_cb):
	Free data returned from dbus method call.
	(iface_state_cb): Ditto.
	(add_network_cb): Ditto.
	(nm_supplicant_interface_add_cb): Don't make another copy of already
	duplicated object path.
	(nm_supplicant_interface_add_to_supplicant): Free the driver GValue
	when done.

	* src/supplicant-manager/nm-supplicant-config.c
	(ADD_STRING_LIST_VAL): Fix a memory leak.

	* src/nm-manager.c (free_get_settings_info): Free the allocated
	memory slice.
	(list_connections_cb): Free data returned from dbus method call.
	(system_settings_get_unmanaged_devices_cb): Ditto.

	* src/nm-device-802-11-wireless.c (device_cleanup): Free ssid.

	* system-settings/plugins/ifcfg-suse/shvar.c (svCloseFile):
	* system-settings/plugins/ifcfg-fedora/shvar.c (svCloseFile):
	* src/backends/shvar.c (svCloseFile): Free the duplicated content
	of the GList.

	* libnm-util/nm-setting.c (nm_setting_from_hash): Free the constructor
	arguments after the object is created.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3721 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-06-05 13:16:02 +00:00
Dan Williams
6c79f46f13 2008-05-19 Dan Williams <dcbw@redhat.com>
Make the system settings service exit when the bus goes away.  Since it's
	a bus-activated service, it's lifetime is limited to the bus that activated
	it (rh #444976).

	* system-settings/src/Makefile.am
	  system-settings/src/nm-system-config-hal-manager-private.h
		- Remove nm-system-config-hal-manager-private.h

	* system-settings/src/nm-system-config-hal-manager.c
		- (nm_system_config_hal_manager_reinit_dbus,
		   nm_system_config_hal_manager_deinit_dbus): remove

	* system-settings/src/main.c
		- (dbus_reconnect): remove
		- (dbus_cleanup): don't tell the HAL manager to deinit dbus
		- (destroy_cb): just quit when the bus goes away
		- (start_dbus_service, dbus_init): simplify
		- (main): destroy the wired devices hash table after destroying
			the HAL manager so we don't have to disconnect signals from the
			HAL manager



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3674 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-05-19 16:13:31 +00:00
Tambet Ingo
b8df4e8217 2008-05-13 Tambet Ingo <tambet@gmail.com>
* system-settings/src/nm-polkit-helpers.c (create_polkit_context): Use a
	single PolKitContext which is shared by all. PolKitContext::unref leaks
	just about everything, including all open file descriptiors and results
	in 99% cpu usage when data arrives to any of the fds that don't belong
	to any context anymore.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3662 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-05-13 10:16:41 +00:00
Dan Williams
775a80ad5a 2008-05-11 Dan Williams <dcbw@redhat.com>
* configure.in
		- record PolicyKit version

	* system-settings/src/nm-polkit-helpers.c
		- (check_polkit_privileges): use polkit_context_can_caller_do_action()
			with PolicyKit <= 0.6



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3658 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-05-12 02:49:54 +00:00
Dan Williams
ff0468d23b 2008-05-11 Dan Williams <dcbw@redhat.com>
Update Fedora system-settings plugin to support latest API and use
	GFileMonitor rather than home-rolled inotify code.

	* system-settings/plugins/ifcfg-fedora/Makefile.am
	  system-settings/plugins/ifcfg-fedora/common.h
	  system-settings/plugins/ifcfg-fedora/plugin.c
		- Update to latest system settings plugin API; use GIO instead of
			custom inotify code; use NMIfcfgConnection objects instead of
			ConnectionData structures tacked onto NMConnection objects

	* system-settings/plugins/ifcfg-fedora/nm-ifcfg-connection.c
	  system-settings/plugins/ifcfg-fedora/nm-ifcfg-connection.h
		- Implement an NMExportedConnection subclass mapping ifcfg files to
			connections

	* system-settings/plugins/ifcfg-fedora/reader.c
	  system-settings/plugins/ifcfg-fedora/reader.h
		- Move ifcfg parsing bits here from parser.c

	* system-settings/plugins/ifcfg-fedora/parser.c
	  system-settings/plugins/ifcfg-fedora/parser.h
		- Remove; most code moved to reader.c



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3656 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-05-11 20:20:52 +00:00
Tambet Ingo
d2cf6fa75c 2008-05-08 Tambet Ingo <tambet@gmail.com>
Use PolicyKit to authorize the system settings' AddConnection method
    	and the system settings connections' Update and Delete methods.

    	* libnm-glib/nm-settings.c (impl_exported_connection_update)
    	(impl_exported_connection_delete, nm_exported_connection_update)
    	(nm_exported_connection_delete): Return boolean and fill GError
    	to notify the callers of the reasons why it might have failed.

    	* libnm-glib/nm-dbus-settings-system.c
    	(nm_dbus_settings_system_add_connection): Return the error from dbus
    	call so that the callers can see why it failed.

    	* libnm-glib/nm-dbus-connection.c (update, delete): Update the
    	signatures.

    	* system-settings/src/nm-polkit-helpers.[ch]: Implement.

    	* system-settings/src/nm-sysconfig-connection.[ch]: Implement. New
    	abstract base class that checks PolicyKit permissions.

    	* system-settings/src/dbus-settings.c:
    	(impl_settings_add_connection): Check the policy before carring out
    	the request.

    	* system-settings/plugins/keyfile/nm-keyfile-connection.c:
    	Inherit from NMSysconfigConnection, check the policies before
    	allowing updating or removing.

    	* system-settings/plugins/ifcfg-suse/nm-suse-connection.c:
    	Inherit from NMSysconfigConnection.

    	* introspection/nm-exported-connection.xml: Annotate "Update" and
    	"Delete" methods with async flag so that the implementations can get
    	access to DBusGMethodInvocation.

    	* system-settings/src/dbus-settings.c
    	(settings_add_connection_check_privileges): Implement.
    	(impl_settings_add_connection): Check the privileges before adding a new
    	connection. Improve error reporting.

    	* introspection/nm-settings-system.xml: Make the 'AddConnection' method
    	async so that the implementation can access DBusGMethodInvocation.

    	* configure.in: Check for PolicyKit.

    	* policy/org.freedesktop.network-manager-settings.system.policy:
    	New file.

    	* policy/Makefile.am: Install the policy file.

    	* configure.in: Add 'policy' subdir.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3646 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-05-09 06:33:30 +00:00
Tambet Ingo
8928b8dbe7 2008-05-08 Tambet Ingo <tambet@gmail.com>
Rewrite the suse system settings plugin.

	* system-settings/plugins/ifcfg-suse/plugin.c: Rewrite.

	* system-settings/plugins/ifcfg-suse/parser.c: Rewrite.

	* system-settings/plugins/ifcfg-suse/nm-suse-connection.[ch]: Implement.

	* system-settings/plugins/ifcfg-suse/Makefile.am: Add new files to build.

	* system-settings/src/dbus-settings.c: Fix connection reference counting.

	* system-settings/src/main.c (load_plugins): Improve error reporting.

	* system-settings/src/sha1.[ch] Add.

	* system-settings/src/Makefile.am: Add sha1[ch] to build.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3644 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-05-08 07:20:02 +00:00
Tambet Ingo
898c29cce2 2008-05-05 Tambet Ingo <tambet@gmail.com>
* system-settings/plugins/keyfile/nm-keyfile-connection.[ch]: Implement.

	* system-settings/plugins/keyfile/plugin.c: Work with
	NMKeyfileConnections.

	* system-settings/src/dbus-settings.c: Remove NMSysconfigExportedConnection.
	Plugins are supposed to return NMExportedConnections now and handle the
	updated(), removed(), and GetSecrets().
	Store the internal list of connections in hash table to make it easier
	to find duplicates.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3640 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-05-07 09:48:12 +00:00
Tambet Ingo
17f26b8d31 2008-05-05 Tambet Ingo <tambet@gmail.com>
* libnm-glib/nm-dbus-settings.c (constructor): Fix the
	"PropertiesChanged" signal signature.

	* libnm-glib/nm-dbus-connection.c (constructor): Use the common GType
	defined in nm-dbus-glib-types.h.
	Don't register the connection on dbus, we're a proxy class to
	communicate with an already registered connection over dbus.

2008-04-30  Tambet Ingo  <tambet@gmail.com>

	Implement new subclasses of NMSettings and NMExportedConnection to make
	it easier for the applet to access and modify system settings.

	* libnm-glib/nm-dbus-connection.[ch]:
	* libnm-glib/nm-dbus-settings.[ch]:
	* libnm-glib/nm-dbus-settings-system.[ch]: Implement.

	* libnm-glib/Makefile.am: Add the new files to build, generate some more
	bindings and glue.

	* include/NetworkManager.h: Define the system settings DBus interface.

2008-04-30  Tambet Ingo  <tambet@gmail.com>

	Implement additional C API for exported connections to make them identical
	with the DBus API. Change the (list_connections) virtual function to be
	more usable from C - instead of requiring implementers to return a GPtrArray
	of dbus paths, return a list of connections.

	* libnm-glib/nm-settings.c (nm_exported_connection_class_init): Fix a typo.
	(nm_settings_list_connections):
	(nm_exported_connection_new):
	(nm_exported_connection_update):
	(nm_exported_connection_delete): Implement.

	(impl_settings_list_connections):
	(impl_exported_connection_update):
	(impl_exported_connection_delete): Use the new public functions to make
	sure the C and dbus interfaces stay in sync.

	* system-settings/src/dbus-settings.c (list_connections): Return a list of
	connections.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3630 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-05-05 07:07:44 +00:00
Dan Williams
c39d6e32d8 2008-05-01 Dan Williams <dcbw@redhat.com>
Patch from Michael Biebl <biebl@debian.org>

	* callouts/Makefile.am
	  callouts/org.freedesktop.nm_dispatcher.service.in
	  system-settings/src/Makefile.am
	  system-settings/src/org.freedesktop.NetworkManagerSystemSettings.service.in
		- use the right install location for dbus-activated stuff



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3624 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-05-01 10:11:14 +00:00
Tambet Ingo
e6a5d0be51 2008-04-22 Tambet Ingo <tambet@gmail.com>
Implement GKeyFile system settings plugin.
	Implement writing system settings (currently supported only by GKeyFile plugin).

	* system-settings/src/main.c:
	* system-settings/src/dbus-settings.c: Move the communication with plugins
	from main.c to dbus-settings.c. Makes it possible to talk to all registered
	plugins for adding/updating/removing connections.

	* system-settings/src/nm-system-config-interface.c
	(nm_system_config_interface_add_connection): Implement
	(nm_system_config_interface_update_connection): Implement.
	(nm_system_config_interface_remove_connection): Implement.

	* system-settings/plugins/keyfile/Makefile.am:
	* system-settings/plugins/keyfile/plugin.[ch]:
	* system-settings/plugins/keyfile/writer.[ch]:
	* system-settings/plugins/keyfile/reader.[ch]: Implement.

	* system-settings/plugins/Makefile.am: Add GKeyFile plugin.

	* configure.in: Generate GKeyFile Makefile.

	* libnm-glib/nm-settings.c (impl_exported_connection_get_id): Fix a memory
	corruption, need to duplicate the returned string.
	(impl_exported_connection_update): Implement.
	(impl_exported_connection_delete): Implement.

	* introspection/nm-settings-system.xml: Add "AddConnection" method.

	* introspection/nm-exported-connection.xml: Add "Update" and "Delete" methods.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3587 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-04-22 14:48:02 +00:00
Dan Williams
9a49506152 2008-04-08 Dan Williams <dcbw@redhat.com>
* libnm-glib/nm-object-cache.c
	  libnm-glib/nm-settings.c
	  src/dhcp-manager/nm-dhcp-manager.c
	  system-settings/plugins/ifcfg-fedora/plugin.c
	  system-settings/plugins/ifcfg-suse/plugin.c
	  system-settings/src/nm-system-config-hal-manager.c
	  libnm-util/nm-utils.c
		- Remove usage of GStaticMutex since gcc-4.3 hates it and because we're
			not threadsafe anyway



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3548 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-04-08 21:15:45 +00:00
Dan Williams
c066672f6a 2008-04-08 Dan Williams <dcbw@redhat.com>
* system-settings/src/main.c
		- (load_stuff, device_added_cb, device_removed_cb): device added/removed
			callbacks take a device type too



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3546 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-04-08 17:55:52 +00:00
Dan Williams
0825542f26 2008-04-08 Dan Williams <dcbw@redhat.com>
The system settings service will now create a new default DHCP connection
	for wired devices that have no existing applicable connection.

	* system-settings/src/nm-system-config-hal-manager.c
	  system-settings/src/nm-system-config-hal-manager.h
		- (nm_system_config_hal_manager_get_type_for_udi): new function

	* system-settings/src/dbus-settings.c
	  system-settings/src/dbus-settings.h
		- (nm_sysconfig_settings_get_connections): new function
		- (nm_sysconfig_settings_is_device_managed): new function

	* system-settings/src/main.c
		- (load_stuff): check for wired devices that need a default connection
		- (get_details_for_udi): get interface and MAC address from HAL
		- (add_default_dhcp_connection): add a default connection for a wired
			device if needed
		- (device_added_cb, device_removed_cb): do the right thing with
			wired devices and their default connections on HAL device events



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3544 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-04-08 14:57:17 +00:00
Dan Williams
5ba11eecab 2008-04-07 Dan Williams <dcbw@redhat.com>
* system-settings/src/main.c
		- (unmanaged_devices_changed_cb, register_plugin): proxy changes from
			plugins to the dbus settings object
		- (load_stuff): start the dbus service after grabbing unmanaged devices
		- (dbus_reconnect, dbus_cleanup): make HAL manager aware of dbus events
		- (log_handler, logging_setup, logging_shutdown): log output to syslog
		- (main): switch default logging to syslog with a 'debug' option to
			output to console; start up the HAL manager



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3538 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-04-08 01:41:49 +00:00
Dan Williams
67149b36f4 2008-04-07 Dan Williams <dcbw@redhat.com>
* introspection/nm-settings-system.xml
	  introspection/Makefile.am
		- Define the unmanaged devices interface for the system settings service

	* system-settings/src/nm-system-config-hal-manager.c
	  system-settings/src/nm-system-config-hal-manager.h
	  system-settings/src/nm-system-config-hal-manager-private.h
	  system-settings/src/Makefile.am
		- Add a lightweight HAL manager object for tracking network devices for
			the purpose of determining unmanaged devices and which devices need
			the default DHCP connections

	* system-settings/src/nm-system-config-interface.c
	  system-settings/src/nm-system-config-interface.h
		- (nm_system_config_interface_init): add the HAL manager as an argument
		- (nm_system_config_interface_get_unmanaged_devices): implement
		- Define 'unmanaged-devices-changed' signal

	* system-settings/src/dbus-settings.c
	  system-settings/src/dbus-settings.h
		- Implement the unmanaged devices interface; some cleanups

	* system-settings/plugins/ifcfg-suse/plugin.c
		- Fixup for plugin interface changes

	* system-settings/plugins/ifcfg-fedora/plugin.c
		- (get_ether_device_udi): new function; find the device that has
			a specified MAC address and return its UDI
		- (get_udi_for_connection): new function; try to find the specific
			device a connection is locked to, if any
		- (device_added_cb, device_removed_cb): update unmanaged device list in
			response to HAL events
		- (get_unmanaged_devices): new function; return unmanaged device list
		- (build_one_connection): set the connection's locked device, if any
		- (write_auto_wired_connection): remove
		- (kill_old_auto_wired_file): remove the ifcfg-Auto Wired file if found
		- (handle_connection_changed): alert listeners that the unmanaged device
			list has changed
		- (init): fixup for plugin interface changes, implement unmanaged devices

	* system-settings/plugins/ifcfg-fedora/parser.c
	  system-settings/plugins/ifcfg-fedora/parser.h
		- (connection_data_free): clean up connection UDI



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3537 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-04-08 01:36:39 +00:00
Dan Williams
e117bad293 2008-03-18 Dan Williams <dcbw@redhat.com>
Adapt system settings service for split 802.1x.

	* system-settings/src/nm-system-config-interface.h
		- clarify return value of get_secrets()

	* system-settings/src/dbus-settings.c
		- (string_to_gvalue, destroy_gvalue, add_one_secret_to_hash): remove
		- (check_for_secrets): check if there actually secrets returned by a
			plugin
		- (exported_connection_get_secrets): just return the plugin-returned
			hash of settings' secrets if it looks valid

	* system-settings/plugins/ifcfg-fedora/plugin.c
		- (get_secrets): add split secrets with correct format to reply hash

	* system-settings/plugins/ifcfg-fedora/parser.c
	  system-settings/plugins/ifcfg-fedora/parser.h
		- (copy_one_cdata_secret, connection_data_copy_secrets,
		   connection_data_free, connection_data_add): keep secrets for
			different settings in different hashes



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3472 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-03-18 15:30:50 +00:00
Dan Williams
fd0ab916c8 2008-02-20 Dan Williams <dcbw@redhat.com>
* Global rename of NMConnectionSettings -> NMExportedConnection to cut down
		on confusing names

	* Add 'path' and 'scope' properties to NMConnection since both NM and the
		applet were having to hack this in anyway.  Remove the 'path' stuff from
		NMExportedConnection

	* Internally rename NMConnectionType -> NMConnectionScope

	* Provide default implementations of the 'get_id' and 'get_settings' methods
		of NMExportedConnection



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3334 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-02-20 22:37:39 +00:00
Dan Williams
5b87ceab92 2008-02-12 Dan Williams <dcbw@redhat.com>
* system-settings/src/nm-system-config-interface.c
	  system-settings/src/nm-system-config-interface.h
		- (load_connections): get_connections() should now return an allocated
			GSList that the system settings service will free

	* system-settings/plugins/ifcfg-fedora/plugin.c
	  system-settings/plugins/ifcfg-fedora/parser.h
	  system-settings/plugins/ifcfg-fedora/parser.c
		- Fix up inotify issues; handle keys-* files, handle new files appearing
			in the profile directory, handle resolv.conf file changes




git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3309 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-02-12 19:20:18 +00:00
Dan Williams
bee138144b 2008-02-07 Dan Williams <dcbw@redhat.com>
* system-settings/src/dbus-settings.c
	  system-settings/src/dbus-settings.h
		- (add_one_secret_to_hash): copy secrets out of the plugin-returned hash
			table of secrets
		- (connection_settings_get_secrets): consolidate error returns into
			one place; use the new get_secrets() plugin interface function to
			get secrets from the plugin itself rather than using GObject data
			magic

	* system-settings/src/main.c
		- (connection_added_cb, connection_removed_cb, free_plugin_connections,
		   load_connections): keep a private list of the plugin-returned
			connections, don't use the plugin's GSList

	* system-settings/plugins/ifcfg-fedora/plugin.c
		- (watch_path): watch the path, not the filename (duh)
		- (reload_all_connections): use the direct hash/equal functions; the
			ones for int aren't appropriate here
		- (get_secrets, system_config_interface_init): implement the
			get_secrets() function
		- (build_one_connection, find_connection_by_path): ifcfg file path is
			now in the connection's ConnectionData instead of being a GObject
			data property
		- (handle_profile_item_changed): ifcfg file path is now in the
			connection's ConnectionData instead of being a GObject data property;
			be sure to copy secrets over from the new connection to the existing
			connection when updating the connection's settings
		- (init): sc_plugin_inotify_init() returns success/fail, not the inotify
			file descriptor

	* system-settings/plugins/ifcfg-fedora/parser.c
	  system-settings/plugins/ifcfg-fedora/parser.h
		- (connection_data_get, copy_one_cdata_secret, clear_one_cdata_secret,
		   connection_data_copy_secrets, connection_data_free,
		   connection_data_add): new functions; connection data manipulation
		- (make_wireless_security_setting): stuff secrets into the
			connection data, not as GObject data items; make sure to close
			the keys ifcfg file
		- (wireless_connection_from_ifcfg, wired_connection_from_ifcfg): add
			connection data to the connection



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3299 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-02-07 20:11:31 +00:00