Patch from Bas Zoetekouw <bas@debian.org>
* src/nm-ip4-config.c
src/nm-ip4-config.h
- (nm_ip4_config_add_search, nm_ip4_config_get_search,
nm_ip4_config_get_num_searches): add 'searches' as distinct from
domains. 'searches' is the correct way to store multiple search
domains, whereas 'domains' is really just supposed to store one
domain. Some sites abuse the DHCP 'domain-name' option to push
search domains to the client.
- (nm_ip4_config_add_domain): group with related functions (my patch)
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3402 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* system-settings/plugins/ifcfg-fedora/parser.c
- (is_wireless_device): new function; test a device for wireless
extensions
- (parser_parse_file): if the ifcfg file doesn't have a TYPE tag,
test the device for wireless extensions to determine the type
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3394 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Change manager's StateChange signal to StateChanged for consistency.
* introspection/nm-manager.xml
- Add 'StateChanged' signal
- Move 'StateChange' down to the deprecated section
* src/nm-hal-manager.c
- (nm_hal_manager_new): connect to 'state-changed' instead
* src/NetworkManagerPolicy.c
- (nm_policy_new): connect to 'state-changed' instead
* src/nm-manager.c
src/nm-manager.h
- (nm_manager_update_state): emit both 'state-changed' and 'state-change'
- (nm_manager_class_init): add 'state-changed' and not the deprecation
of 'state-change'
* libnm-glib/nm-client.c
libnm-glib/nm-client.h
- (constructor, nm_client_class_init, client_state_changed_proxy):
track and proxy 'state-changed' instead of 'state-change'
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3393 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
First pass of multiple active device support. Expect bugs.
* src/nm-ip4-config.c
src/nm-ip4-config.h
- (nm_ip4_config_get_secondary, nm_ip4_config_set_secondary): remove;
there are better ways to do this in the named manager
* src/nm-device.c
src/nm-device.h
- (nm_device_can_activate): return whether the device can activate a
connection right now; taking into account things like carrier state
and rfkill state
- (nm_device_get_best_auto_connection): renamed from
nm_device_get_best_connection
- (real_act_stage4_get_ip4_config): MTU stuff is now handled in the
device subclasses themselves, so that each device can override the
MTU from it's NMSetting subclass if needed
- (nm_device_set_ip4_config): set MTU when setting up routes and stuff
in NetworkManagerSystem.c, not here
* src/named-manager/nm-named-manager.c
src/named-manager/nm-named-manager.h
- (nm_named_manager_name_owner_changed,
nm_named_manager_dbus_connection_changed): fix for changes to
rewrite_resolv_conf()
- (compute_nameservers): don't need the NMNamedManager at all, remove
from parameter list
- (merge_one_ip4_config): new function; merge ip4 configs together
- (rewrite_resolv_conf): write out resolv.conf from all the stored
ip4 configs; the VPN config takes precedence, then the best
device config, then the rest of the configs
- (get_domain_for_config): take the NMNamedManager as an argument
to check whether the config is the VPN config
- (add_ip4_config_to_named): fixups for removal of the 'secondary'
attribute from ip4 configs
- (add_all_ip4_configs_to_named): add all the configs in priority order
- (remove_ip4_config_from_named): fix for changes to
get_domain_for_config()
- (nm_named_manager_add_ip4_config): assign the config to the right slot
based on its type; callers must pass in the type now
- (get_last_default_domain): remove, unused
- (nm_named_manager_remove_ip4_config): handle config slots correctly
* src/nm-device-802-11-wireless.c
- (real_can_activate): new function
- (real_get_best_auto_connection): renamed from real_get_best_connection
- (real_act_stage4_get_ip4_config): handle MTU override
* src/nm-device-802-3-ethernet.c
- (real_can_activate): new function
- (real_get_best_auto_connection): renamed from real_get_best_connection
- (real_act_stage4_get_ip4_config): new function; handle MTU override
* src/vpn-manager/nm-vpn-connection.c
- (nm_vpn_connection_ip4_config_get): don't need to set the 'secondary'
attribute on the ip4 config
* src/NetworkManagerPolicy.c
- (nm_policy_auto_get_best_device): remove
- (nm_policy_device_change_check): remove
- (update_default_route): new function; set the default route via
the specified device
- (get_device_priority): new function; return the priority number of
a device type WRT which one should have the default route. Order is
(highest to lowest) wired, wireless, GSM, CDMA.
- (update_routing_and_dns): new function; determine which device should
have the default route, then update the routing table and DNS
- (maybe_auto_activate_device): new function; if a device is now
available for activation, find out what connection it would like to
activate and do it
- (schedule_activate_check): new function; if a device can be activated
now, schedule the activation. Each device may have only one
pending activation at a given time.
- (device_state_changed): if activation was canceled, try again,
possibly with another connection; if the device was activated,
update routing and DNS; if the device was deactivated, try again
with another connection
- (device_carrier_changed): if there is no carrier, deactivate the
device; otherwise schedule an activation check for the device
- (wireless_networks_changed): schedule an activation check for the
device
- (device_added): keep track of the signal handler IDs so they can
be removed when the device goes away
- (device_removed): remove any signal handlers that might be attached
to the device; update routing and DNS
- (schedule_activate_all): new function
- (connections_added, connection_added, connection_updated): when
connections change, schedule all devices for an activation check
- (connection_removed): when a device is deactivated because its
connection was removed, schedule another activation check for it
- (nm_policy_destroy): destroy pending activations and disconnect
all device signal handlers
* src/nm-manager.c
- (nm_manager_activate_device): if the device was already actived,
deactivate it
- (deactivate_old_device): remove
- (connection_added_default_handler, impl_manager_activate_device):
don't deactivate other devices when activating this one
* src/backends/NetworkManagerGentoo.c
src/backends/NetworkManagerFrugalware.c
src/backends/NetworkManagerPaldo.c
src/backends/NetworkManagerRedHat.c
src/backends/NetworkManagerSlackware.c
src/backends/NetworkManagerArch.c
src/backends/NetworkManagerSuSE.c
src/backends/NetworkManagerDebian.c
- (nm_system_get_mtu): remove; MTU should be provided through the
distro's system settings service plugin instead
- (nm_system_device_add_default_route_via_device): remove
- (nm_system_device_add_default_route_via_device_with_iface): remove
- (nm_system_device_replace_default_route): new function; call
generic implementation
* src/backends/NetworkManagerGeneric.c
src/backends/NetworkManagerGeneric.h
- (nm_generic_device_add_default_route_via_device,
nm_generic_device_add_default_route_via_device_with_iface): remove
- (nm_generic_device_replace_default_route): replace the default route
with the given route via some gateway
* src/NetworkManagerSystem.c
src/NetworkManagerSystem.h
- (nm_system_device_set_from_ip4_config): let the policy handle updates
to routing and DNS; but set the MTU here
- (nm_system_vpn_device_set_from_ip4_config): set the route with the
ip_iface of the active device; use the standard MTU setting function
- (nm_system_set_mtu): remove
- (nm_system_device_set_mtu): consolidate MTU setting code in one place
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3391 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-hal-manager.c
- (nm_get_device_driver_name): use net.originating_device first, fall
back to physical device. HAL has deprecated physical_device.
* libnm-glib/nm-device.c
- (get_product_and_vendor): use net.originating_device first, fall
back to physical device. HAL has deprecated physical_device.
- (nm_device_update_description): s/physical_device_udi/orig_dev_udi
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3386 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-netlink.c
- (nm_netlink_get_default_handle): mistakenly removed too much code in
last commit; fix that
- (get_link_cache): print error string
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3385 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-netlink.c
- (nm_netlink_get_default_handle): NMNetlinkMonitor now uses libnl,
don't need this hack any more (Benoit Boissinot)
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3384 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerPolicy.c
- (nm_policy_device_change_check): ensure that a previously active
device with a system connection has a link before denying a switch
to a user connection
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3369 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
- (link_timeout_cb): try again if scanning; deactivate the device when
activated if the link dies
- (supplicant_iface_connection_state_cb_handler): bump link timeout to
15 seconds
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3367 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
src/nm-device-802-11-wireless.h
- (nm_device_802_11_wireless_reset_scan_interval): remove, unused
elsewhere; fold into the sole user in nm-device-802-11-wireless.c
- (device_cleanup): reset the scan interval lower when the device
deactivates
- (can_scan): base decision mostly off device state, not supplicant
interface state since the supplicant interface state isn't a
great indicator of whether the device is active or not
- (request_wireless_scan): clean up; schedule the next scan here
- (schedule_scan): only back the scan interval off if a new scan
actually gets scheduled; and make scan intervals tighter when the
device is disconnected
- (supplicant_iface_state_cb_handler): fold in the bits of
nm_device_802_11_wireless_reset_scan_interval() by resetting scan
interval to minimum
- (activation_success_handler): reset scan interval to something
reasonable
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3365 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch from Will Stephenson <wstephenson@kde.org>
* Makefile.am
configure.in
- Set up spec autogeneration infrastructure
* docs/NetworkManager DBUS API.txt
- Note how old this doc is and where to look for the canonical
D-Bus specification
* introspection/*
- Add annotations and comments
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3345 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
- (device_cleanup): cleanup any association attempt that might be in
progress
- (nm_device_802_11_wireless_dispose): device_cleanup() already
destroys the AP list
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3344 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-util/nm-setting.c
- (nm_setting_compare): Fix C&P error from r3068 that caused settings
comparisons to always succeed; clarify assignment of values to
'different'
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3341 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-util/nm-connection.c
libnm-util/nm-connection.h
- (nm_connection_compare): accept compare flags and pass them to the
setting compare function
* libnm-util/nm-setting.c
libnm-util/nm-setting.h
- (nm_setting_compare): accept compare flags; ignore properties that are
marked fuzzy
* libnm-util/nm-setting-connection.c
libnm-util/nm-setting-wireless.c
libnm-util/nm-setting-ppp.c
libnm-util/nm-setting-wired.c
- Mark some setting properties as ignorable when doing a fuzzy compare
* src/nm-device.c
- (device_activation_precheck): use exact compare
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3336 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerPolicy.c
- (nm_policy_device_change_check): get scope off the connection, not
using the manager helper
* src/nm-manager.c
src/nm-manager.h
- (get_scope_for_proxy): rename from get_type_for_proxy()
- (connection_get_settings_cb): set scope and path on connection, not
using GObject data items
- (get_connection_for_proxy): don't need to return path, since that
can be gotten from the connection
- (get_connection_for_proxy): get path off the connection, not from
parameters
- (connection_removed_cb, connection_updated_cb): don't need to get
path from get_connection_for_proxy(); get scope off the connection
instead of using GObject data items
- (connection_added_default_handler, add_one_connection_element): use
nm_connection_get_path() not nm_manager_get_connection_dbus_path()
- (nm_manager_get_connection_dbus_path): remove
- (nm_manager_get_connection_scope): remove
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3335 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* 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
* src/nm-device-802-11-wireless.c
- (device_cleanup): release the AP list here too so that the AP list
doesn't survive across suspend/resume and up/down. There is some
room for optimization, for example blow the list away when the card
brought back up, but only if the device has only been down for a
minute or more.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3322 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* system-settings/plugins/ifcfg-fedora/plugin.c
- (watch_path): handle IN_DELETE_SELF too
- (handle_connection_changed): notify when removing a connection
- (stuff_changed): don't warn on unknown inotify watches; handle the
case of a file moving out of the profile directory
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3312 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* 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
* src/nm-device-802-3-ethernet.c
- (real_bring_up): save the supplicant interface state signal id
- (real_bring_down): disconnect from the supplicant interface state
signal
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3304 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* 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
* src/nm-device-802-11-wireless.c
- (handle_auth_or_fail): new function; consolidate device activation
failure check after a certain number of failures getting secrets
- (supplicant_connection_timeout_cb, real_act_stage2_config,
real_act_stage4_ip_config_timeout): use handle_auth_or_fail() to fail
the connection if secrets were requested more than a few times
- (real_act_stage3_ip_config_start): don't clear the wireless secrets
tries here; otherwise they are cleared before the IP configure
timeout, which happens with open system WEP when key is wrong
- (activation_success_handler): clear wireless secrets tries here too
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3296 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerPolicy.c
- (connection_updated): clear invalid tag when connection gets updated
to allow that connection to be tried again
- (nm_policy_new): save signal ids so they can be disconnected when
the policy is destroyed
- (nm_policy_destroy): stop any in-progress state change idle handler,
and disconnect all signals from the manager object so that none
of the policy functions gets called after the policy is destroyed
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3295 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c
- (finalize): remove devices a bit earlier; clean up system settings
poke
- (nm_manager_name_owner_changed): clean up system settings poke when
the service appears, and try to restart it if it fails
- (poke_system_settings_daemon_cb): try to get the system settings
service started through D-Bus service activation
- (initial_get_connections): start the system settings daemon if it's
not already running
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3293 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* system-settings/plugins/ifcfg-fedora/parser.c
- (make_wireless_security_setting): fix spelling; unencrypted networks
need key_mgmt set too
- (parser_parse_file): validate ifcfg file name and don't try to parse
.bak files; ensure that an error is set whenever NULL gets returned
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3290 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* 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