* libnm-util/nm-setting.h: Change the type of
* NMSettingVPN->routes to
GSList.
* libnm-util/nm-setting.c (setting_vpn_destroy): Free routes
* too.
* src/nm-manager.c (connection_get_settings_cb): No need to use
* weakref,
just use (g_object_set_data_full).
* src/vpn-manager/nm-vpn-connection.c
* (nm_vpn_connection_get_routes): Now
that NMSettingVPN->routes is a GSList, convert it to char **.
(nm_vpn_connection_ip4_config_get): Free routes when done.
(nm_vpn_connection_activate): Ditto.
* src/nm-device-802-11-wireless.c
* (real_connection_secrets_updated)
(real_act_stage2_config): Use defined setting names.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2832 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
src/nm-manager.c
src/nm-manager.h
- Pass an NMDeviceInterface into nm_manager_get_connection_secrets()
so that the device can be deactivated if secrets are wrong
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2830 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.h
src/nm-manager.c
- (nm_manager_get_connection_service_name,
nm_manager_get_connection_dbus_path): get details about a connection
known internally by the NMManager
- (nm_manager_class_init): fix connection add/remove signal marshalers
because NMConnection is now a GObject subclass
- Use constant for the gobject data tag used on NMConnection objects for
storing the associated DBusGProxy
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2810 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c
- (connection_get_settings_cb): emit connection-added signal
- (connection_removed_cb): uncomment bits for system settings service,
send connection-removed when appropriate
- (nm_manager_get_connection_secrets, get_secrets_cb): don't clobber
the stack by trying to g_object_set_data() on something that's
not a GObject; handle case where settings service returns
empty settings hash table
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2793 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-util/nm-setting.c
libnm-util/nm-setting.h
- (nm_setting_update_secrets): new function; add a virtual function that
subclasses can implement to update their secrets
- (setting_wireless_security_update_secrets): implement that function
for the 802-11-wireless-security subclass
* libnm-util/nm-connection.c
libnm-util/nm-connection.h
- (nm_connection_update_secrets): update secrets for a Setting and
emit a signal on success
* src/nm-manager.c
src/nm-manager.h
src/nm-marshal.list
- (connection_get_settings_cb): enable system settings bits
- (nm_manager_get_connection_secrets, get_secrets_cb): add function
to request secrets from the settings dbus service and to
push those secrets to the NMConnection itself
* src/nm-activation-request.c
src/nm-activation-request.h
- Attach to the 'secrets-updated' signal of the NMConnection that's
currently being activated, and proxy that signal to other listeners.
Goes through the activation request because the activation request
is the thing that manages the lifetime of the NMConnection that's
being activated.
* src/nm-device-802-11-wireless.c
- (real_connection_secrets_updated): implement the connection secrets
updated notification and restart activation when secrets are
received
- (real_act_stage2_config): request secrets from the settings dbus
service if secrets are needed
* src/nm-device.c
src/nm-device.h
- (clear_act_request, nm_device_activation_cancel,
nm_device_deactivate_quickly, nm_device_dispose): consolidate places
where the activation request is cleared
- (nm_device_activate, connection_secrets_updated_cb): attach to the
updated secrets signal of activation request and add a function
that subclasses can override to handle it easily
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2782 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c
- (query_connections): fix uninitialized variable problem that caused
segfault
- (nm_manager_add_device): take devices down on startup so that we can
be assured that nm_device_is_up() won't short-circuit the init
process. Hack until the is_up check gets split into two pieces
that aren't behaviorally confusing.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2777 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
Stupid mistake on my part; object path and interface for settings service
and connection objects can be the same, only the service name must be
different for the system and user settings services.
* include/NetworkManager.h
src/nm-manager.c
introspection/nm-settings-connection.xml
introspection/nm-settings.xml
libnm-glib/nm-settings.c
- (nm_connection_settings_init, query_user_connections,
new_connection_cb): Unify NetworkManagerSettings and Connection
interface name and object path
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2772 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c
- (nm_manager_user_connections_destroy): clear the user connections hash
table, don't destroy it
- (finalize): only destroy the hash table on NMManager finalization
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2765 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* include/NetworkManager.h
libnm-glib/nm-settings.c
- defines for the user settings daemon D-Bus bits
* src/NetworkManager.c
- Remove stuff that referred to the old NetworkManagerInfo service
* src/vpn-manager/nm-dbus-vpn.h
- Move old NMI defines to the only place they are used still
* libnm-util/nm-connection.c
libnm-util/nm-connection.h
src/nm-activation-request.c
- Make NMConnection a GObject subclass so we can do spiffy stuff with it
* src/nm-manager.c
src/nm-manager.h
- Get connections and their settings from the user settings daemon
at the appropriate times
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2763 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/Makefile.am
src/NetworkManagerDbus.c
src/NetworkManagerDbus.h
src/vpn-manager/nm-dbus-vpn.c
- Remove, no longer necessary. Move last bits to the only place its
used, in nm-dbus-vpn.c
* src/NetworkManagerAPList.c
src/nm-device.c
src/NetworkManager.c
src/nm-device-802-11-wireless.c
src/vpn-manager/nm-vpn-manager.c
src/vpn-manager/nm-vpn-service.c
src/NetworkManagerPolicy.c
src/nm-manager.c
- Remove usage of NetworkManagerDbus.h, and kill the obfuscation
that was message_is_error()
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2757 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-manager.c
- (nm_manager_remove_device): bring device down before disconnecting
signal handlers, so that the 'state' signal will get broadcast when
the device enters the DOWN state
- (manager_device_state_changed): add NM_DEVICE_STATE_DOWN to the list
of states that cause the NMManager to recheck its state
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2720 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-glib/Makefile.am: Use nm-manager-client.xml to produce
* nm-client-bindings.
* introspection/nm-manager-client.xml: Add a horrible horrbile
* hack to work around
an issue with dbus-glib bindings generator. The issue is, the
generated C caller
functions for dbus methods "Sleep(bool)" and "sleep()" both have
the same function
name and different arguments and it won't compile anymore. To
fix this, we now have
two copies of nm-manager.xml file. nm-manager.xml contains the
actual interface,
that is new API + compatibility API and used by the daemon. The
other,
nm-manager-client.xml is only the new API without compatibility
bits and is used
by libnm-glib to make it compile.
* introspection/nm-manager.xml: Define compatibility methods
* (sleep, wake, state).
* src/nm-manager.c (impl_manager_legacy_sleep)
(impl_manager_legacy_wake, impl_manager_legacy_state): Implement
the compatibility
interface functions for 0.6 branch.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2688 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-glib/Makefile.am: Add NMObject to build, remove nm-utils.[ch].
* nm-utils.[ch]: Remove.
* libnm-glib/nm-object.c: Implement a base class for all libnm-glib dbus-aware
objects for easy property access and dbus connection handling.
* libnm-glib/nm-client.c: Derive from NMObject.
* libnm-glib/nm-device.c: Ditto.
* libnm-glib/nm-device-802-3-ethernet.c: Changes for being based on NMObject.
* libnm-glib/nm-device-802-11-wireless.c: Ditto.
* libnm-glib/nm-ip4-config.c: Ditto.
* libnm-glib/nm-access-point.c: Ditto.
* libnm-util/nm-connection.c (nm_connection_compare): Add a stub for connection
comparision. Currently used by the device activation code to determine if the new
activation is the same as the old one.
* src/nm-dbus-nmi.c (nm_dbus_get_user_key_for_network): Don't use the obsolete and
wrong way of getting the dbus path for AP. Fixes the issue where the applet isn't
able to ask password for the AP.
* src/nm-device.c (nm_device_activate): Change the logic here - instead of giving
up if the device is already connected, tear down it's connection (if it isn't the
same as new one) and start the activation.
* src/nm-manager.c: Add the beginnings of NMConnection storage and signals.
* src/NetworkManagerAP.c (nm_ap_init): Set the default values to AP memebers, fixes
the issue where all APs are always listed as encrypted.
* src/NetworkManagerDbus.c (nm_dbus_get_object_path_for_network): Remove. APs have
their own registered paths.
* test/nm-tool.c (detail_device): Don't try to get active network from wireless
device if it's not connected - dbus-glib will happily crash trying to marshal NULL.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2615 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
* libnm-glib/nm-device-802-11-wireless.c
(nm_device_802_11_wireless_get_capabilities): Implement.
* libnm-glib/nm-device.c (nm_device_get_capabilities): Implement.
* src/nm-device-802-11-wireless.c: Add "WirelessCapabilities" property.
* src/named-manager/nm-named-manager.c (remove_one_zone_from_named): Unref the
reply only if it's not NULL. Not sure why this started happening right now.
* src/nm-manager.c (device_stop_and_free): Remove. No need to have different
code paths for when devices get removed on shutdown or when a device is just
removed.
(finalize): Don't use a g_slist_foreach() when removing devices, the list data
gets freed so any signal from a device (disconnected for instance) would invoke
NMState update which would crash.
(nm_manager_remove_device): Bring the device down when it gets removed.
* src/NetworkManagerPolicy.c (nm_policy_auto_get_best_device): Remove
the unused dev_type.
* src/nm-hal-manager.c (create_device_and_add_to_list): Don't keep the
reference to the added device, NMManager will own it (if it wants).
* test/nm-tool.c: Rewrite using libnm-glib.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2417 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
Totally break NetworkManager. Please use 0.6 branch until futher notice.
* src/:
- Remove old low-level dbus interface implementations and replace them
with dbus-glib one.
* configure.in:
- Require dbus-glib >= 0.72.
- Plug in new sources to build.
* libnm-glib/:
- Implement GObject wrappers on top of DBUS glib auto-generated bindings
to make it more convenient to use from GObject based programs.
* introspection/:
- Implement DBUS XML introspection files, used by both NM and libnm-glib.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2309 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c:
- Add "network-added" and "network-removed" signals.
- Use gobject boilerplate macros to define the GObject.
- Implement wireless device activation.
- Remove activation_failure_handler and activation_success_handler
and instead listen on state-changed signals and run the same code
from there.
* src/nm-device.c:
- Implment NMDeviceInterface::deactivate.
- Remove activation_failure_handler and activation_success_handler
virtual methods. Each device which is interested in these events
can just listen on it's state changed signals.
* src/NetworkManagerPolicy.c:
- Move a bit more NMData usage to NMManager.
- Remove activation scheduling bits.
- Add listeners for wireless device's "network-added" and
"network-removed" signals.
- Listen device changed signals and deactivate currently activated
device when another device start activating (for now).
- Remove (nm_policy_schedule_device_change_check): There's never a need
for calling this, the policy code knows exactly when this should happen,
by listening on events from NMManager and NMDevices.
* src/nm-device-802-3-ethernet.c (nm_device_802_3_ethernet_activate):
Implement.
* src/nm-dbus-nm.c (nm_dbus_nm_set_active_device): Call the activation
method on the specific device instead of going to through policy code
and determining the device type by passed in AP's existance.
* src/nm-device-interface.c (nm_device_interface_deactivate): Implement the
abstract NMDevice deactivation.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2298 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManager.c:
- Set up all the shiny new managers.
* src/NetworkManagerPolicy.c:
- Add the beginnings of new NMPolicy code. Instead of requireing all
classes to call into policy code, make the policy code kind of like
a supervisor that monitors what's going on and drives the whole NM.
* src/nm-hal-manager.c:
* src/nm-hal-manager.h:
- Collect all libhal code scattered around NM to this one class.
- Listen libhal and NMManager events and add/remove devices to
NMManager.
* src/nm-manager.c:
* src/nm-manager.h:
- Implment a replacement for NMData. NMData is now officially
deprecated.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2291 4912f4e0-d625-0410-9fb7-b9a5a253dbdc