Commit graph

24 commits

Author SHA1 Message Date
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
Dan Williams
88deb6ea35 2008-02-07 Dan Williams <dcbw@redhat.com>
* system-settings/src/nm-system-config-interface.c
	  system-settings/src/nm-system-config-interface.h
		- Add a get_secrets() interface function to retrieve secrets for a
			specific setting of a specific connection.  Document the interface
			a bit more too.



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3297 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-02-07 18:47:47 +00:00
Dan Williams
d4d882ae1c 2008-02-04 Dan Williams <dcbw@redhat.com>
* system-settings/src/Makefile.am
		- Install D-Bus service activation file for the system settings
			service

	* system-settings/src/org.freedesktop.NetworkManagerSystemSettings.service
		- D-Bus service activation file for system settings service



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3289 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-02-04 20:05:46 +00:00
Dan Williams
9a92be6c79 2008-02-04 Dan Williams <dcbw@redhat.com>
* system-settings/src/main.c
		- (parse_config_file): parse a config file
		- (main): accept --config option and read plugins from config file



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3288 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-02-04 20:03:28 +00:00
Tambet Ingo
8774cc756a 2008-01-02 Tambet Ingo <tambet@gmail.com>
* libnm-util/nm-setting-serial.c (nm_setting_serial_class_init):
        * Mark the properties
        with G_PARAM_CONSTRUCT so that they get the default values.

        * src/nm-gsm-device.c: Add preliminary support for monitoring
        * device. It only monitors
        the monitoring device and prints out the output for now. Or more
precicely, doesn't
        do absolutely anything right now since the montoring device
argument is never set.

        * src/nm-serial-device.c (serial_debug): Implement. It's very
        * verbose and thus
        requires it's own knob to turn it on.
        (config_fd): Add NMSettingSerial to the arguments list.
        (nm_serial_device_open): Ditto.
        (get_reply_got_data): Ignore the terminators at the beginning of
the output.
        (nm_serial_device_get_io_channel): Implement.

        * src/nm-manager.c: Add NMDBusManager to the private data of the
        * NMManager. Asking
        a new reference every time (and forgetting to release it
sometimes) is a pain and
        it's not like NMManager could work without dbus.
        (nm_manager_add_device): Register the added device on dbus here.

        * src/nm-hal-manager.c (modem_device_creator): Pass NULL for now
        * for the monitoring
        device.

        * src/nm-device.c (constructor): Don't export the device here,
        * instead export
        it when it's added to the NMManager's device list.




git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3203 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2008-01-02 13:42:52 +00:00
Dan Williams
07a653b93c 2007-12-12 Dan Williams <dcbw@redhat.com>
* system-settings/src/nm-system-settings.conf
		- Allow non-root clients (like the applet) to read settings



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3167 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-12-12 22:41:43 +00:00
Dan Williams
f56f5ef9f4 2007-12-04 Dan Williams <dcbw@redhat.com>
Patch from Michael Biebl <biebl@debian.org>

	* system-settings/plugins/ifcfg/Makefile.am
	  system-settings/src/main.c
	  system-settings/src/Makefile.am
		- Put system settings plugins in NM plugins dir

	* src/ppp-manager/Makefile.am
	  src/ppp-manager/nm-ppp-manager.c
		- Move pppd plugin to NM plugins dir



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3131 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-12-04 16:17:57 +00:00
Dan Williams
bb8bde197e 2007-12-01 Dan Williams <dcbw@redhat.com>
* system-settings/src/main.c
		- (load_connections, add_connection_to_settings): actually export
			plugin-provided connections over D-Bus so NM can get them



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3120 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-12-01 17:24:13 +00:00
Dan Williams
89a39c7328 2007-11-29 Dan Williams <dcbw@redhat.com>
* system-settings/src/nm-system-config-interface.h
	  system-settings/src/nm-system-config-interface.c
		- (nm_system_config_interface_init,
		   nm_system_config_interface_get_connections): add

	* system-settings/src/main.c
		- (load_plugins, load_connections, main): use a GSList for plugins
			to ensure priority ordering

	* system-settings/plugins/ifcfg/parser.c
		- (ifcfg_error_quark): move to plugin.c, and rename

	* system-settings/plugins/ifcfg/plugin.h
	  system-settings/plugins/ifcfg/plugin.c
		- (ifcfg_plugin_error_quark): move here from parser.c
		- rework connection loading and initialization
		- Add preliminary inotify support for network profile config file



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3117 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-11-29 14:40:24 +00:00
Dan Williams
f68d9309e2 2007-11-27 Dan Williams <dcbw@redhat.com>
* system-settings/src/nm-system-config-interface.h
		- Note how to store secrets on NMSetting objects

	* system-settings/src/dbus-settings.c
		- (connection_settings_get_secrets): implement



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3113 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-11-27 22:20:19 +00:00
Dan Williams
9e53dc83b0 2007-11-27 Dan Williams <dcbw@redhat.com>
* system-settings/plugins/ifcfg/Makefile.am
	  system-settings/plugins/ifcfg/parser.c
	  system-settings/plugins/ifcfg/parser.h
	  system-settings/plugins/ifcfg/plugin.c
		- Parse wireless connections too

	* system-settings/src/dbus-settings.c
	  system-settings/src/dbus-settings.h
	  system-settings/src/main.c
		- Handle connection update/removal if the plugin supports it



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3112 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-11-27 19:25:46 +00:00
Dan Williams
e18d04cf0f 2007-11-25 Dan Williams <dcbw@redhat.com>
* system-settings/*
		- Rework structure and code to use GModule-loaded plugins and a plugin
			interface that plugins export to the system settings service



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3106 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
2007-11-26 03:47:30 +00:00