Fix address handling as a result of DHCP rebind/renew/reboot.
* src/NetworkManagerSystem.c
- (check_one_address): delete an address if it doesn't match a given
one for the same interface
- (nm_system_device_set_from_ip4_config): don't flush the default route,
be smarter about flushing addresses (only flush ones that don't
match the one we're about to apply)
* src/backends/NetworkManagerDebian.c
src/backends/NetworkManagerSuSE.c
src/backends/NetworkManagerArch.c
src/backends/NetworkManagerSlackware.c
src/backends/NetworkManagerRedHat.c
src/backends/NetworkManagerPaldo.c
src/backends/NetworkManagerFrugalware.c
src/backends/NetworkManagerGentoo.c
- (nm_system_delete_default_route): remove
* src/backends/NetworkManagerGeneric.c
src/backends/NetworkManagerGeneric.h
- (nm_generic_enable_loopback): fix the loopback device label
- (nm_generic_delete_default_route): remove; no longer used
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3424 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-interface.h
- Delimit property name words with '-', otherwise g_object_notify()
doesn't work the way we expect
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3423 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerPolicy.c
- (update_routing_and_dns): don't change anything if the default device
hasn't changed; print something out when switching the default route
and DNS
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3419 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device.c
- (handle_dhcp_lease_change): apply an IP4 config to a device in
response to a DHCP lease change
- (dhcp_state_changed): handle DHCP lease changes while activated
- (nm_device_set_ip4_config): remove a previously set named config
when setting an ip4 config
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3417 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-serial-device.c
- (nm_serial_device_send_command): report errno on error
- (get_reply_got_data): limit the size of the overall buffer
- (wait_for_reply_info_destroy): destroy result string
- (wait_for_reply_got_data): append received data to an overall buffer
until timeout, filled buffer, or error instead of keeping a per-call
buffer. Some devices send data slowly enough that this function
gets called multiple times for the same command stream.
- (nm_serial_device_wait_for_reply): initialize overall buffer for
wait_for_reply_got_data() here
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3415 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch based on ideas suggested by Bas Zoetekouw <bas@debian.org>
* src/named-manager/nm-named-manager.c
- (compute_searches): prefer searches before domains
- (compute_domain): new function
- (rewrite_resolv_conf): write out the 'domain' and 'searches' options
- (merge_one_ip4_config): if there are no searches in the source config,
merge domains of the source config into the target config
- (compute_nameservers): make formatting of resolv.conf a bit nicer
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3413 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-serial-device.c
- (get_reply_got_data): clean up indentation, shrink serial buffer
- (wait_for_reply_got_data): try to handle slower serial devices where
the reply is broken up into multiple reads by concatenating replies
together until either an error is received or the search string is
found
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3412 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device.c
- (nm_device_bring_down): deactivate the device if it's activating too,
not just if it's already activated. This makes sure that everything
from an association attempt is cleaned up (like DHCP for example)
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3411 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
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