Fix the device up/down ambiguities. Up/down state used to be a
conglomeration of hardware state (IFF_UP) and any device-specific things
(supplicant, periodic timers, etc) that the device used to indicate
readiness. Unfortunately, if the hardware was already IFF_UP for some
reason, then the device specific stuff wouldn't get run, and the device
would be stuck.
* src/nm-device.c
src/nm-device.h
- Create hw_is_up, hw_bring_up, and hw_take_down
- Rename bring_down -> take_down
- (real_hw_is_up): check interface flags for IFF_UP
- (nm_device_hw_is_up): let subclasses figure out their own HW state
- (nm_device_is_up): make static; only used locally
- (nm_device_hw_bring_up): update the hardware and IPv4 addresses even
if the device is already up; if the device isn't up, bring it up
- (nm_device_hw_take_down): just take down hardware
- (nm_device_bring_up): bring up HW first, then device specific stuff
- (nm_device_take_down): always deactivate device when called; always
try to take hardware down too
- (nm_device_state_changed): take device down when entering unmanaged
state from a higher state
* src/nm-device-802-11-wireless.c
- (real_hw_is_up, real_hw_bring_up, real_hw_take_down): implement; just
check IFF_UP really
- (real_take_down, supplicant_iface_state_cb_handler,
supplicant_iface_connection_state_cb_handler,
supplicant_mgr_state_cb_handler): fix some messages
* src/nm-device-802-3-ethernet.c
- (real_hw_is_up, real_hw_bring_up, real_hw_take_down): implement; just
check IFF_UP really
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3618 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch from 陈鑫 <znscnchen@gmail.com>
* src/nm-device-802-3-ethernet.c
- (real_deactivate_quickly): clear the IP interface name on
deactivation, otherwise the wrong interface might get used later
for routing and IP management
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3567 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* include/NetworkManager.h
- Remove the DOWN and CANCELLED device states
- Add UNMANAGED and UNAVAILABLE device states
- Document the device states
* introspection/nm-device.xml
src/nm-device-interface.c
src/nm-device-interface.h
- Add the 'managed' property
* test/nm-tool.c
- (detail_device): print out device state
* src/NetworkManagerSystem.h
src/backends/NetworkManagerArch.c
src/backends/NetworkManagerDebian.c
src/backends/NetworkManagerFrugalware.c
src/backends/NetworkManagerGentoo.c
src/backends/NetworkManagerMandriva.c
src/backends/NetworkManagerPaldo.c
src/backends/NetworkManagerRedHat.c
src/backends/NetworkManagerSlackware.c
src/backends/NetworkManagerSuSE.c
- (nm_system_device_get_system_config, nm_system_device_get_disabled
nm_system_device_free_system_config): remove; they were unused and
their functionality should be re-implemented in each distro's
system settings service plugin
* src/nm-gsm-device.c
src/nm-gsm-device.h
src/nm-cdma-device.c
src/nm-cdma-device.h
- (*_new): take the 'managed' argument
* src/nm-device.c
- (nm_device_set_address): remove, fold into nm_device_bring_up()
- (nm_device_init): start in unmanaged state, not disconnected
- (constructor): don't start device until the system settings service
has had a chance to figure out if the device is managed or not
- (nm_device_deactivate, nm_device_bring_up, nm_device_bring_down):
don't set device state here, let callers handle that as appropriate
- (nm_device_dispose): don't touch the device if it's not managed
- (set_property, get_property, nm_device_class_init): implement the
'managed' property
- (nm_device_state_changed): bring the device up if its now managed,
and deactivate it if it used to be active
- (nm_device_get_managed, nm_device_set_managed): do the right thing
with the managed state
* src/nm-hal-manager.c
- (wired_device_creator, wireless_device_creator, modem_device_creator):
take initial managed state and pass it along to device constructors
- (create_device_and_add_to_list): get managed state and pass to
type creators
* src/nm-device-802-11-wireless.c
- (real_can_activate): fold in most of
nm_device_802_11_wireless_can_activate()
- (can_scan): can't scan in UNAVAILABLE or UNMANAGED
- (link_timeout_cb): instead of deactivating, change device state and
let the device state handler to it
- (real_update_hw_address): clean up
- (state_changed_cb): when entering UNAVAILABLE state, schedule an idle
handler to transition to DISCONNECTED if the device isn't rfkilled
* src/nm-device-802-3-ethernet.c
- (set_carrier): move above callers and get rid of prototype
- (device_state_changed): when entering UNAVAILABLE state, schedule an
idle handler to transition to DISCONNECTED if the device has a
carrier
- (real_update_hw_address): clean up
- (link_timeout_cb, ppp_state_changed): change state instead of calling
deactivation directly as deactivation doesn't change state anymore
* src/NetworkManagerPolicy.c
- (schedule_activate_check): yay, remove wireless_enabled hack since
the NMManager and wireless devices work that out themselves now
- (device_state_changed): change to a switch and update for new device
states
- (device_carrier_changed): remove; device handles this now through
state changes
- (device_added): don't care about carrier any more; the initial
activation check will happen when the device transitions to
DISCONNECTED
* src/nm-manager.c
- (dispose): clear unmanaged devices
- (handle_unmanaged_devices): update unmanaged device list and toggle
the managed property on each device when needed
- (system_settings_properties_changed_cb): handle signals from the
system settings service
- (system_settings_get_unmanaged_devices_cb): handle callback from
getting the unmanaged device list method call
- (query_unmanaged_devices): ask the system settings service for its
list of unmanaged devices
- (nm_manager_name_owner_changed, initial_get_connections): get unmanaged
devices
- (manager_set_wireless_enabled): push rfkill state down to wireless
devices directly and let them handle the necessary state transitions
- (manager_device_state_changed): update for new device states
- (nm_manager_add_device): set initial rfkill state on wireless devices
- (nm_manager_remove_device): don't touch the device if it's unmanaged
- (nm_manager_activate_connection): return error if the device is
unmanaged
- (nm_manager_sleep): handle new device states correctly; don't change
the state of unavailable/unmanaged devices
* libnm-glib/nm-device-802-11-wireless.c
- (state_changed_cb): update for new device states
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3540 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Date: Tue Mar 18 21:46:10 2008 -0600
2008-03-18 Tambet Ingo <tambet@gmail.com>
* src/ppp-manager/nm-ppp-manager.c (nm_ppp_manager_update_secrets): Don't
print out username and password, it's supposed to be a secret.
* src/nm-device-802-3-ethernet.c (ppp_state_changed): Handle authentication
request and set the device state accordingly.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3481 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Split the 802.1x bits out of the wireless-security setting so they are
generalized enough for wired 802.1x to use too.
* introspection/nm-exported-connection.xml
- GetSecrets now returns 'a{sa{sv}}' (a hash of settings hashes) instead
of just a hash of the secrets for one setting
* libnm-util/nm-setting-wireless-security.c
libnm-util/nm-setting-wireless-security.h
- Remove 802.1x-specific stuff
- Added leap-username and leap-password properties for old-school LEAP
* src/nm-device.c
src/nm-device.h
- (connection_secrets_updated_cb): take a list of updated settings names,
not just one
* src/supplicant-manager/nm-supplicant-config.c
src/supplicant-manager/nm-supplicant-config.h
- (nm_supplicant_config_add_setting_wireless_security): remove 802.1x
specific stuff; fix for updated LEAP bits; punt 802.1x stuff
to nm_supplicant_config_add_setting_8021x()
- (nm_supplicant_config_add_setting_8021x): add an 802-1x setting to
the supplicant config
* src/nm-device-802-11-wireless.c
- (build_supplicant_config): pass in the 802.1x setting too, if any
- (real_connection_secrets_updated): take a list of updated settings
names, not just one
* src/nm-device-802-3-ethernet.c
src/nm-cdma-device.c
src/nm-gsm-device.c
- (real_connection_secrets_updated_cb): take a list of updated settings
names, not just one
* src/nm-activation-request.c
src/nm-activation-request.h
- (nm_act_request_class_init): the 'connection-secrets-updated' signal
now passes a list of updated settings names, not just one
- (update_one_setting): new function; handle one updated setting
- (get_secrets_cb): handle multiple settings returned from the
settings service; have to be careful of ordering here as there are
some dependencies between settings (ex. wireless-security and 802.1x
in some cases)
* src/marshallers/nm-marshal.list
- new marshaller for connection-secrets-updated signal
* libnm-util/nm-setting-8021x.c
- Add back the 'pin' and 'psk' settings, for EAP-SIM and EAP-PSK auth
methods
- (verify): a valid 'eap' property is now required
* libnm-util/nm-connection.c
- (register_default_settings): add priorities to settings; there are
some dependencies between settings, and during the need_secrets
calls this priority needs to be respected. For example, only the
wireless-security setting knows whether or not the connection is
going to use 802.1x or now, so it must be asked for secrets before
any existing 802.1x setting is
- (nm_connection_lookup_setting_type): expose
* libnm-util/nm-setting-wireless.c
- (verify): should verify even if all_settings is NULL; otherwise won't
catch the case where there is missing security
* libnm-util/nm-setting-wireless-security.c
- Remove everything to do with 802.1x
- Add old-school LEAP specific properties for username and password
- (need_secrets): rework LEAP secrets checking
- (verify): rework for LEAP and 802.1x verification
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3470 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Move the 'carrier' property from NMDevice to NMDevice8023Ethernet;
convert the libnm-glib NMDevice8023Ethernet to cached properties
* introspection/nm-device-802-3-ethernet.xml
- New 'Carrier' property
- New 'PropertiesChanged' signal
* introspection/nm-device.xml
- Remove 'Carrier' property
- Remove 'CarrierChanged' signal
* src/nm-device-interface.c
src/nm-device-interface.h
- (nm_device_interface_init): remove 'carrier' property and
'carrier-changed' signal
* src/nm-device.c
src/nm-device.h
- (nm_device_get_carrier, nm_device_set_carrier): remove
- (nm_device_activate_stage5_ip_config_commit): don't bother updating
the link here; wired device will handle that
- (handle_dhcp_lease_change): don't bother updating link here
- (get_property, nm_device_class_init): remove carrier property
* src/nm-device-802-11-wireless.c
- (real_update_link, nm_device_802_11_wireless_class_init): remove
real_update_link(); wireless devices don't use carrier at all
- (link_timeout_cb, supplicant_iface_state_cb_handler,
supplicant_iface_connection_state_cb_handler,
supplicant_mgr_state_cb_handler): remove anything to do with carrier
* src/nm-device-802-3-ethernet.c
src/nm-device-802-3-ethernet.h
- (nm_device_802_3_ethernet_carrier_on,
nm_device_802_3_ethernet_carrier_off, constructor): use set_carrier()
instead of nm_device_set_carrier()
- (device_state_changed): update link from sysfs on activation;
replaces real_update_link()
- (real_update_link): remove, replaced by device_state_changed()
- (nm_device_802_3_ethernet_get_carrier, set_carrier): new functions
- (nm_device_802_3_ethernet_get_speed): move up with other getters/setters
- (real_get_generic_capabilities, real_can_interrupt_activation): use
new get_carrier function
- (get_property): add 'carrier' property
- (nm_device_802_3_ethernet_class_init): add 'carrier' property and
hook into property-changed signal helper
* src/NetworkManagerPolicy.c
- (device_carrier_changed): will only ever be called with a wired device
- (device_added): only hook up to carrier-changed for wired devices
* libnm-glib/nm-device.c
libnm-glib/nm-device.h
- (constructor, nm_device_class_init): remove carrier-changed signal
- (device_carrier_changed_proxy): remove; unused
- (nm_device_get_carrier): remove; carrier a property of wired devices
* libnm-glib/nm-device-802-3-ethernet.c
libnm-glib/nm-device-802-3-ethernet.h
- Convert to cached properties like AP and Wireless objects
- (nm_device_802_3_ethernet_get_hw_address): now returns a 'const char *'
instead of a 'char *', return value should not be freed
- (nm_device_802_3_ethernet_get_carrier): return current carrier status
- (constructor): hook into properties-changed helper
- (set_property, get_property): new functions
- (nm_device_802_3_ethernet_class_init): export GObject properties
* test/nm-tool.c
- (detail_device): strdup the wired hardware address too since it's
cached now
* libnm-glib/libnm-glib-test.c
- (dump_wired): strdup the wired hardware address too since it's
cached now
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3428 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-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
* src/nm-device-802-3-ethernet.c
- (find_best_connection): check MAC address too
- (real_get_best_connection): let autoconnect=True connections activate
for devices that don't have carrier detection
* src/nm-device-802-11-wireless.c
- (find_best_connection): check MAC address too
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3248 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-3-ethernet.c
- (nm_device_802_3_ethernet_carrier_on,
nm_device_802_3_ethernet_carrier_off): ignore any spurious netlink
carrier events that might come in for devices that don't support
carrier detect
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3245 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-interface.c
src/nm-device-interface.h
- (nm_device_interface_error_quark, nm_device_interface_error_get_type):
normalize and expand errors
- (nm_device_interface_init): register errors so they can be marshalled
through dbus-glib
- (nm_device_interface_activate): ensure that failure of activation
returns an error
* src/nm-device.c
src/nm-device.h
- (device_activation_precheck): implementations of check_connection()
now take a GError and must fill it in if the check fails. Return
more descriptive error if the requested connection is already
activating
- (nm_device_activate): actually try to return descriptive errors on
failures
* src/nm-device-802-11-wireless.c
src/nm-device-802-3-ethernet.c
src/nm-serial-device.c
src/nm-gsm-device.c
- (real_check_connection): return more descriptive errors on failure
* src/NetworkManagerPolicy.c
- (nm_policy_device_change_check): print activation errors in the logs
* src/nm-manager.c
- (nm_manager_error_quark, nm_manager_error_get_type,
nm_manager_class_init): new errors
- (nm_manager_activate_device): handle errors
- (nm_manager_error_new): removed
- (wait_for_connection_expired, connection_added_default_handler,
impl_manager_activate_device): better error handling
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3197 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Base the NMNetlinkMonitor class on libnl instead of hand-rolled netlink.
* src/nm-netlink-monitor.c
src/nm-netlink-monitor.h
- Remove handrolled netlink, use libnl instead
* src/nm-device-802-3-ethernet.c
- (constructor, nm_device_802_3_ethernet_carrier_off,
nm_device_802_3_ethernet_carrier_on): use new names
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3181 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Merge the beginnings of the new GSM card support.
* src/ppp-manager/nm-ppp-manager.c (nm_ppp_manager_stop): Remove
* the
ppp watch source before killing pppd - If this happens from
g_object_unref()
then the ppp manager is already destroyed by the time the watch
callback runs.
* src/nm-hal-manager.c: Add a device_type_name string to the
* device
creators, so that we can print a nice human readable string when
a
device is added.
* src/nm-umts-device.c (automatic_registration_get_network):
* Query
for the activated network, not much is done with the result
thought.
* src/nm-serial-device.c (nm_serial_device_get_reply):
* Implement.
(ppp_ip4_config): Change the device state to activated here for
now.
(real_check_connection): Make sure the connection includes ppp
setting.
* libnm-glib/nm-client.c (get_device): Handle umts devices.
* libnm-glib/Makefile.am: Add the new files to build.
* libnm-glib/nm-umts-device.c:
* libnm-glib/nm-umts-device.h: Implement.
2007-11-26 Tambet Ingo <tambet@gmail.com>
* src/nm-umts-device.c (automatic_registration_get_network): For
* now, dial
immediately, nm_serial_device_get_reply() isn't implemented
correctly yet.
* src/nm-serial-device.c (wait_for_reply_info_destroy): Don't
* try to remove
the timeout source - this function is only called when the
timeout source has
been removed.
(nm_serial_device_wait_for_reply): Allocate the duplicate
responses array
to be big enough to contain the terminating zero element as
well.
The timeout argument is meant to be in seconds now.
(real_deactivate_quickly): Implement.
* src/NetworkManager.conf: Allow root to own
"org.freedesktop.NetworkManager.PPP", deny it for everybody
else.
* libnm-util/nm-setting-umts.c: Network type and band properties
* are ints,
(not unsigned ints).
* libnm-util/nm-setting-serial.c (nm_setting_serial_class_init):
* Fix a
small issue with parity bounds - capital letters have lower
ascii codes
than lower case letters.
* libnm-util/nm-connection.c (register_default_settings):
* Register serial
and umts settings.
2007-11-22 Tambet Ingo <tambet@gmail.com>
Remove the "index" property from devices as not all device types
have this.
* include/NetworkManager.h (NM_DBUS_PATH_DEVICE): Remove.
* src/nm-hal-manager.c (nm_get_device_index_from_hal): Remove.
(wired_device_creator): Get the device interface from hal to
create the device.
(wireless_device_creator): Ditto.
* src/nm-device.c (nm_device_init): Remove the index member.
(constructor): Remove the checks for index property, make
interface property
a require constructor property.
Use the HAL udi for DBus path for devices.
(nm_device_get_index): Remove.
(set_property): Remove index handling.
(get_property): Ditto.
(nm_device_get_dbus_path): Remove.
* src/nm-device-interface.c (nm_device_interface_init): Remove
* the index
property.
* src/nm-device-802-3-ethernet.c
* (nm_device_802_3_ethernet_link_activated):
Access the device index through it's interface.
(nm_device_802_3_ethernet_link_deactivated): Ditto.
(nm_device_802_3_ethernet_new): Remove the useless argument
test_dev. Remove
index argument. Add interface argument.
* src/nm-device-802-11-wireless.c
* (nm_device_802_11_wireless_new): Remove
the useless test_dev argument. Remove index argument. Add
interface arugment.
* src/NetworkManagerSystem.c
* (nm_system_device_set_from_ip4_config): Get the
device index through interface.
(nm_system_set_mtu): Ditto.
* introspection/nm-device.xml: Remove the "Index" property.
2007-11-21 Tambet Ingo <tambet@gmail.com>
* src/nm-serial-device.c:
* src/nm-serial-device.c:
* src/nm-umts-device.c:
* src/nm-umts-device.h: Implement.
* src/nm-hal-manager.c (nm_get_device_driver_name):
* libhal_free_string the string
allocated by libhal.
(modem_device_creator): Implement.
(register_built_in_creators): Register the modem creator.
* src/nm-device-802-11-wireless.c
* (nm_device_802_11_wireless_new):
Remove the unused test_dev argument.
* src/nm-device-802-3-ethernet.c (nm_device_802_3_ethernet_new):
* Ditto.
* src/Makefile.am: Add new files to build.
Link in ppp-manager.
* libnm-util/nm-setting-umts.c:
* libnm-util/nm-setting-umts.h:
* libnm-util/nm-setting-serial.c:
* libnm-util/nm-setting-serial.h: Implement.
* libnm-util/Makefile.am: Add new files to build.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3116 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Rework NMSetting structures: Move each setting to it's own file.
Convert to GObject. Remove home grown setting types and use
GTypes.
Use GObject property introspection for hash conversion,
enumerating
properties, etc.
* libnm-util/nm-setting-connection.[ch]
* libnm-util/nm-setting-ip4-config.[ch]
* libnm-util/nm-setting-ppp.[ch]
* libnm-util/nm-setting-vpn.[ch]
* libnm-util/nm-setting-vpn-properties.[ch]
* libnm-util/nm-setting-wired.[ch]
* libnm-util/nm-setting-wireless.[ch]
* libnm-util/nm-setting-wireless-security.[ch]
New files, each containing a setting.
* libnm-util/nm-setting-template.[ch]: A template for creating
* new
settings. To use it, just replace 'template' with the new
setting
name, and you're half-way done.
* libnm-util/nm-setting.c: Convert to GObject and use GObject
introspection instead of internal types and tables.
* libnm-util/nm-connection.c: Adapt the new NMSetting work.
* libnm-util/nm-param-spec-specialized.[ch]: Implement. Handles
GValue types defined by dbus-glib for composed types like
collections,
structures and maps.
* src/*: The API of NMSetting and NMConnection changed a bit:
* Getting
a setting from connection takes the setting type now. Also,
since
the settings are in multiple files, include relevant settings.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3068 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch from Helmut Schaa <hschaa@suse.de> (and more bits from me)
* src/NetworkManagerAP.c
src/NetworkManagerAP.h
libnm-glib/nm-access-point.c
libnm-glib/nm-access-point.h
- Make 'rate' property a guint32 to better match with WEXT and
wpa_supplicant and to allow representation of higher bitrates
* src/nm-device-802-11-wireless.c
introspection/nm-device-802-11-wireless.xml
libnm-glib/nm-device-802-11-wireless.c
libnm-glib/nm-device-802-11-wireless.h
- Make 'bitrate' property a guint32 to match AP 'rate' property type
* src/nm-device-802-3-ethernet.c
src/nm-device-802-3-ethernet.h
introspection/nm-device-802-3-ethernet.xml
libnm-glib/nm-device-802-3-ethernet.c
libnm-glib/nm-device-802-3-ethernet.h
- Make 'speed' property a guint32 to match other speed/rate types
- Make nm_device_802_3_ethernet_get_speed() static
* test/nm-tool.c
- Update for the changes above
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3030 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-3-ethernet.c
- (real_get_best_connection): don't create automatic connections
internally; clients should provide a setting that applies to
the device with 'autoconnect: True'. Problem was that these
internally auto-created connections don't have a proxy or service
name becuase they weren't created by a settings daemon, and therefore
clients have no idea what to do with them.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2929 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c (manager_device_state_changed): Listen to
* device' NEED_AUTH
state and try to get the secrets.
* src/NetworkManagerPolicy.c (nm_policy_auto_get_best_device):
* Get the list of
connections from NMManager and let the device to choose the best
from the list.
Since the connection list is sorted by system ones first and
user ones later,
the devices still prefer system connections like they did
before.
(deactivate_old_device): Implement. When a device starts
activation, we have a
policy (for now at least) to deactivate any other device that
might be either
active or still activating.
* src/vpn-manager/nm-vpn-manager.c: Add NMManager back to the
* private structure.
It's set on construction, there will be no other way to access
it.
* src/nm-device-802-11-wireless.c: Don't touch NMManager,
* NMManager can listen to
device events and drive the device, not the other way around.
* src/nm-device-802-3-ethernet.c: Ditto.
* src/nm-device.c (nm_device_get_best_connection): The
* connections list is now
sent along, pass it on to virtual functions.
* src/nm-device-interface.c (nm_device_interface_get_iface):
* Implement. It's static
for now, but should really be public instead of
nm_device_get_iface() since iface
is a property of the DeviceInterface, not Device.
(impl_device_activate): Don't touch NMManager!
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2889 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-3-ethernet.c (real_get_best_connection):
* Don't leak NMManager.
The problem with leaking NMManager is that on shutdown, it
doesn't get destroyed,
which means none of the devices get brought down properly, which
in turn leaves
DHCP client running.
* src/nm-device-802-11-wireless.c (real_get_best_connection):
* Ditto.
(supplicant_connection_timeout_cb): Ditto.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2887 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-3-ethernet.c
- (real_bring_down, nm_device_802_3_ethernet_dispose): disconnect from
netlink monitor carrier signals on dispose, not bring down. The
carrier signals should be handled over the entire lifetime of the
device anyway, not created/destroyed on up or down.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2802 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* include/NetworkManager.h
- Kill NMNetworkType; AP types don't matter any more
* src/NetworkManagerAPList.c
src/NetworkManagerAPList.h
src/Makefile.am
- Kill; NMAccessPointList has outlived it's usefulness
* src/NetworkManagerAP.c
src/NetworkManagerAP.h
- (match_cipher, security_compatible, nm_ap_check_compatible): new
functions; check if an NMConnection object is compatible with the
settings of this AP
- (freq_to_channel, channel_to_freq): utility functions for
channel <-> frequency conversion
* src/nm-device.c
src/nm-device.h
- (nm_device_get_best_connection): pass the specific object around
(which might be the object path of a specific AP to connect to).
The get_best_connection() call should populate this on return
if needed (wireless does).
* src/nm-device-802-3-ethernet.c
- (real_get_best_connection): handle specific_object argument
* src/NetworkManager.c
src/NetworkManagerMain.h
- Remove unused includes
* src/nm-device-802-11-wireless.c
src/nm-device-802-11-wireless.h
- Convert the ap_list into a GSList from an NMAccessPointList
- No need for caching the 'activation_ap' since this is now determined
from the specific_object of the activation request, which is
populated from the get_best_connection() call or from a user request
- (nm_device_802_11_wireless_update_bssid): fix warning
- (get_wireless_capabilities): fix error message format arguments
- (nm_device_802_11_wireless_copy_allowed_to_dev_list): remove, unused
- (find_best_connection, real_get_best_connection): implement
- (ap_list_get_ap_by_ssid, nm_device_802_11_wireless_ap_list_print):
move here from NetworkManagerAPList
- (ap_need_secrets): remove; moved to nm-connection.c where it belongs
- (real_act_stage1_prepare): just ensure an AP exists, connection is
already verified earlier
- (real_act_stage2_config): use nm_connection_need_secrets()
* src/NetworkManagerPolicy.c
- (nm_policy_auto_get_best_device): handle specific objects
- (create_connection): remove; automatic connection creation functionality
is handled by the Connection objects
- (nm_policy_device_change_check): handle specific_object
* libnm-util/nm-connection.c
- (wireless_sec_need_secrets, nm_connection_need_secrets): implement
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2778 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* introspection/nm-device.xml
- The 'Activate' method now takes 3 arguments, a service name for the
settings service (user or system), the object path of the connection
to activate, and the specific object to activate, if any
* src/nm-device-interface.c
- (nm_device_interface_error_quark, nm_device_interface_error_get_type):
Add error bits
- (impl_device_activate): adapt to new Activate arguments; validate
the service name and get the Connection object from the NMManager
before starting to activate the device with the specified connection
* src/nm-device-802-3-ethernet.c
- (real_get_best_connection): find the best connection, or create a
default one if no existing connections can be used
* src/NetworkManagerPolicy.c
- (nm_policy_auto_get_best_device): Get the device's best connection
and only pick the device if it has one
- (nm_policy_device_change_check): disable wireless bits for now until
wireless get_best_connection() can be implemented (replacing "best_ap");
don't create a default connection here as the device subclass will do
that if needed
* src/nm-manager.h
src/nm-manager.c
- (nm_manager_get): make NMManager a singleton and expose the getter
internally
- Rework internal NMManager connection handling to use the same
routines for both the system and user settings services. Most calls
take a new NMConnectionType argument specifying either system or user
connections
- (nm_manager_get_connection_by_object_path): new function; get a
connection keyed on its object path
* src/NetworkManager.c
- (main): use nm_manager_get()
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2776 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-3-ethernet.c
- (constructor): move connection of interface-connected/disconnected
signals here from real_bring_up(). Should be listening to netlink
for carrier events no matter what the initial state of the device
is.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2733 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Convert to using interface indexes as the primary method of identifying
devices inside NetworkManager. Indexes are (?) stable, but devices can
be renamed at any time. Device object paths now refer to the device
index rather than the name, and you can map those two manually if you like
by looking in the /sys/class/net/<name>/ifindex file. Also moves most
netlink-related code to nm-netlink.c, and cleans up nm-netlink-monitor.c
to use interface indexes rather than names.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2731 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
src/nm-device-802-3-ethernet.c
- (real_is_up): move device-specific tests before generic IFF_UP test,
because when the card is pulled or the module removed, the device
is already !IFF_UP and then device-specific cleanup (removing
the supplicant interface, periodic checks, etc) never gets done
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2721 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-glib/Makefile.am: Link with libnm-util to gain access to
NMConnection.
* libnm-glib/nm-device-802-11-wireless.c:
(nm_device_802_3_ethernet_activate): Remove.
* libnm-glib/nm-device-802-3-ethernet.c
(nm_device_802_3_ethernet_activate): Remove.
* libnm-glib/nm-device.c (nm_device_activate): Implement.
* src/nm-device-802-3-ethernet.c: Implement the new activation using
NMConnection.
* src/nm-device-802-11-wireless.c: Store an activation AP once the
activation has started.
Implement the new activation using NMConnection.
* src/nm-activation-request.c: Store a generic connection object instead
of a wireless-specific AP.
* src/NetworkManagerPolicy.c (create_connection): Implement. Depending
on device type, create a device specific connection object suitable for
device activation.
* src/nm-device.c (nm_device_activate): Re-implement. Call the device
specific check to validate the connection and on success start the
activation.
* src/nm-device-interface.h: Add a activate virtual function to the
interface definition.
* src/nm-device-interface.c (nm_device_interface_activate): Implement.
(impl_device_activate): Implement.
* introspection/nm-device.xml: Add a generic device activation interface
that accepts an abstract NMConnection structure that has device-specific
information in it.
* introspection/nm-device-802-3-ethernet.xml: Remove the wired-specific
activation interface.
* introspection/nm-device-802-11-wireless.xml: Remove the wireless-specific
activation interface.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2569 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c (constructor): Initialize the iw_ext structures
with zeroes before passing them to functions - the functions never do that and
reading the values back may produce wrong values.
(real_bring_up): Store the signal handler id ...
(real_bring_down): ... So that it can be removed here.
Disconnect the supplicant interface here as well.
(nm_device_802_11_wireless_ap_list_get_ap_by_obj_path): Use the dbus object path
from the access point instead of old $device/Networks/$essid.
* src/nm-manager.c (nm_manager_get_state): Return NM_STATE_CONNECTED when the
device state is connected (instead of just having link/carrier).
* src/nm-activation-request.c: Don't store NMData in activation request, it's
already easily accessible through the device.
* src/NetworkManagerAP.c (nm_ap_init): Construct the dbus object path here and
store it within the object.
(nm_ap_get_dbus_path): Export it to public as well.
* src/dhcp-manager/nm-dhcp-manager.c (nm_dhcp_manager_get): Keep the ownership
of the singleton.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2478 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Get rid of 2 second poll of sysfs 'carrier' file for wired devices. Useless
for non-carrier-detect capable devices, and useless for carrier-detect
devices since we get notifications from netlink about carrier status anyway.
* src/nm-device-802-3-ethernet.c
- remove 'link_source_id' member from private data
- (probe_link): remove and collapse into real_update_link()
- (nm_device_802_3_periodic_update): remove
- (real_is_up): check for sup_iface rather than link_source_id
- (real_bring_up): return gboolean for success/fail; require that
sup_iface be valid for device bringup to succeed
- (real_bring_down): zero out link signal ids
* src/nm-device.c
- (nm_device_activate_stage2_device_config): fail activation if device
bringup fails
- (real_act_stage4_get_ip4_config): fail activation if device bringup
fails
- (nm_device_bring_up): return success/fail
* src/nm-device.h
- bring_up now returns success/fail
* src/nm-device-802-11-wireless.c
- (real_bring_up): return success from bringup
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2464 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-glib/nm-device-802-11-wireless.c: Cache networks (bssids) list.
We get signalled when it changes.
* libnm-glib/nm-client.c: Cache NMState and device list, we get signalled
when it changes.
* libnm-glib/nm-device.c: Cache the device state property.
* libnm-glib/nm-access-point.c: Cache the strength property.
* src/nm-device-802-11-wireless.c: Fix wireless device scanning scheduler.
The new algorithm is to start from SCAN_INTERVAL_MIN (currently defined as 0)
and add a SCAN_INTERVAL_STEP (currently 20 seconds) with each successful scan
until SCAN_INTERVAL_MAX (currently 120 seconds) is reached. Do not scan while
the device is down, activating, or activated (in case of A/B/G cards).
Remove some old dead ifdef'ed out code that used to configure wireless devices,
it's all done through supplicant now.
* src/supplicant-manager/nm-supplicant-interface.c: Fix the reference
counting issues with pending calls which caused leaks and crashes when
interface was removed (now that the interface actually gets removed).
* src/nm-call-store.c: Make a copy of data before running a foreach
with user callback on it - The most common usage pattern is to cancel
(and thus remove) all pending calls with foreach which would modify
the hash table we're iterating over.
* src/nm-manager.c: When a device is added, make sure it is "up". When
it's removed or disabled due to disabling wireless or networking, bring
it down.
* include/NetworkManager.h: Add new device state NM_DEVICE_STATE_DOWN.
* src/nm-device-802-11-wireless.c:
* src/nm-device-802-3-ethernet.c:
* src/nm-device.c:
- Remove "init" virtual function, all gobjects have a place for that
already (constructor).
- Replace "start" virtual function with "bring_up", devices can be
brought up and down more than just on startup now.
- Add "is_up" virtual function.
- Implement one way to bring a device down instead of previous 4 different
ways, each of witch did something different.
* src/NetworkManagerUtils.c (nm_dev_sock_open): This doesn't need an NMDevice,
all it needs is the device interface.
Get rid of NMData.dev_list (3 members to go).
Get rif of NMData in a lot of places.
* gnome/libnm_glib/libnm_glib.c: Make it compile again.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2395 4912f4e0-d625-0410-9fb7-b9a5a253dbdc