* 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
* 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
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
* libnm-util/nm-setting-wireless.c
- (nm_setting_wireless_ap_security_compatible): only verify pairwise and
group ciphers if the wireless-security setting explicitly specified
them, effectively making the default be "all ciphers" (idea from
Alexander Sack)
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4076 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* system-settings/plugins/keyfile/plugin.c
- (update_connection_settings): update connection manually, since
nm_exported_connection_update() does authentication
- (dir_changed): update_connection_settings() doesn't need to return
an error
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4057 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-glib/nm-vpn-plugin-ui-interface.c
libnm-glib/nm-vpn-plugin-ui-interface.h
libnm-glib/libnm_glib_vpn.ver
- (nm_vpn_plugin_ui_interface_delete_connection): called when the plugin
should clean up resources related to the connection (like keyring
secrets)
- (nm_vpn_plugin_ui_widget_interface_save_secrets): called when the plugin
should save user-scope secrets (like to the keyring)
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4052 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch from Alexander Sack <asac@ubuntu.com>
* libnm-util/crypto_gnutls.c
libnm-util/crypto_nss.c
- (crypto_init, crypto_deinit): just use a boolean instead of a refcount
* libnm-util/nm-utils.c
libnm-util/nm-utils.h
libnm-util/libnm-util.ver
- (nm_utils_init): initialize libnm-util
- (nm_utils_deinit): de-initialize libnm-util and clean up resources
* libnm-util/nm-setting-8021x.c
- (nm_setting_802_1x_class_init): init libnm-util when needed
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4047 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
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
* libnm-glib/nm-device-wifi.c
- (access_point_removed_proxy): clean up the active access point too
just in case the active ap changed signal didn't come through yet
- (clean_up_aps): be sure to set priv->active_ap to NULL when cleaning up
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4040 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* 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
* 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
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
* system-settings/plugins/keyfile/nm-keyfile-connection.c
- (update): Update filename of the connection if the connection id
was changed
* system-settings/plugins/keyfile/plugin.c
- (dir_changed): first pass at handling connection renames correctly
* system-settings/plugins/keyfile/writer.c
system-settings/plugins/keyfile/writer.h
- (write_connection): replace '/' with '*' when writing out the filename
from the connection id
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4018 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
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
The crypto functions are no longer part of the public API/ABI.
Make sure test-crypto compiles all necessary sources and links against the
crypto libraries.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3996 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* 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
* 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
Patch from Robert Buchholz <rbu@gentoo.org>
* autogen.sh
configure.in
- Change to automake 1.9 and 'ustar' tar format defined by POSIX
1003.1-1988, allowing for file names longer than 99 characters
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3982 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
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
* 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
* 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@3960 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device.c
- (nm_device_set_ip4_config): don't touch hostnames here; distros
that want to use DHCP hostnames should use dispatcher scripts
for that
* src/NetworkManagerSystem.h
src/backends/NetworkManagerArch.c
src/backends/NetworkManagerDebian.c
src/backends/NetworkManagerFrugalware.c
src/backends/NetworkManagerGeneric.c
src/backends/NetworkManagerGeneric.h
src/backends/NetworkManagerGentoo.c
src/backends/NetworkManagerMandriva.c
src/backends/NetworkManagerPaldo.c
src/backends/NetworkManagerRedHat.c
src/backends/NetworkManagerSlackware.c
src/backends/NetworkManagerSuSE.c
- Remove nm_system_set_hostname(), no longer used
* src/backends/Makefile.am
src/backends/shvar.c
src/backends/shvar.h
- Remove shvar.*; no longer used
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3946 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
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
* 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
* system-settings/plugins/ifcfg-fedora/shvar.c
system-settings/plugins/ifcfg-fedora/shvar.c
- Fix double-free caused by svSetValue() followed by svCloseFile()
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3940 4912f4e0-d625-0410-9fb7-b9a5a253dbdc