* src/nm-manager.c
- (manager_set_wireless_enabled): don't allow wireless to be enabled
if it's disabled in hardware; don't touch network devices while
NM is asleep
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2980 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-util/nm-client.c
- (nm_client_activate_device): convert NULL specific_object to "/",
which is used in place of NULL
* src/nm-manager.c
- (impl_manager_activate_device): convert "/" specific_object back into
NULL
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2979 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Implement a generic NMSetting creator from setting name.
While at it, get rid of all nm_setting_foo_new_from_hash()
functions and
add a virtual function 'populate_fn'.
* libnm-util/nm-connection.c (nm_connection_create_setting):
* Implement.
(register_default_creators): Register setting creators instead
of functions
that create and then populate.
(parse_one_setting): Use the common setting creator and then
setting specific
poplulation function.
* libnm-util/nm-setting.c: Get rid of
* nm_setting_foo_new_from_hash() functions,
they all looked exactly the same.
Add a 'populate_fn' virtual function to NMSetting.
Use default virtual functions in case they are not overriden.
(nm_setting_populate_from_hash): Implement.
* src/nm-device.c (real_act_stage3_ip_config_start): Don't hard
* code the setting
name, use a defined string.
(real_act_stage4_get_ip4_config): Ditto.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2978 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Implement killswitch polling through HAL.
* src/nm-manager.c: Add wireless hardware status property. Add
'properties-changed' signal for changes in wireless and wireless
hardware
state changes.
* src/nm-hal-manager.c: Poll hal for killswitch statuses in
* every 6 seconds
and update NMManager's wireless hardware state when it has
changed.
(nm_hal_manager_new): Don't try to add initial devices here -
(hal_init)
already does that.
* libnm-glib/nm-client.c: Add wireless hardware status property.
* Cache the
values of wireless state and wireless hardware state. Listen for
the
'properties-changed' signals, update the cached values and emit
notify.
* include/NetworkManager.h: Fix a typo in a comment.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2975 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-util/nm-setting.h
libnm-util/nm-setting.c
src/supplicant-manager/nm-supplicant-config.c
- Make the 'proto' field of the 802-11-wireless-security field a
string list
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2973 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Rework the "properties-changed" signal implementation.
In classes that need to use it, just emit "GObject::notify" and
the new
framework takes care of the rest to make the signal available on
dbus.
The framework queues the notifications and tries to send as many
together
in one signal as possible.
* src/nm-properties-changed-signal.c:
* src/nm-properties-changed-signal.h: Implement.
* src/Makefile.am: Add new files to build.
* src/NetworkManagerAP.c: Use the general framework for
* properties-changed
signal.
* src/nm-device-802-11-wireless.c: Ditto.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2971 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c
- (wait_for_connection_expired): ensure info is valid
- (connection_added_default_handler): Should only remove pending
connection info when the manager has the connection that it's
waiting for. Fixes segfault in wait_for_connection_info().
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2969 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
- (merge_scanned_ap): make sure non-SSID-broadcasting APs are marked
as such, because even if the manager fills in the SSID, NM still
has to indicate to wpa_supplicant that the AP isn't broadcasting
its SSID
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2966 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Move ppp-manager over to dbus-glib. The big deal is that it was
the last piece of
code that used NM's own version of dbus signal handling and
custom dictionary
marshalling/unmarshalling. With this change, all that obsolete
code can disappear
and we get to maintain over 2000 lines less code.
* libnm-util/dbus-dict-helpers.c:
* libnm-util/dbus-dict-helpers.h: Remove.
* src/ppp-manager/nm-pppd-plugin.c: Convert it to use dbus-glib.
* src/ppp-manager/nm-pppd-plugin.xml: Implement.
* src/ppp-manager/nm-ppp-manager.c: Use dbus-glib instead of
* home-brewed dbus signal
handlers.
* src/nm-dbus-manager.c: Remove all the manual dbus signal
* handling.
* configure.in: Remove test/libnm-util/Makefile creation.
* test/Makefile.am: Remove libnm-util from SUBDIRS.
* test/libnm-util/: Remove the whole directory.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2965 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerPolicy.c (nm_policy_new): Initialize the
device_state_changed_idle_id variable or it would contain some
random value and the
schedule_change_check calls would not do anything.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2964 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
- (supplicant_iface_scanned_ap_cb): set the non-broadcast flag elsewhere
- (merge_scanned_ap): only have the manager fill the SSID if the AP
isn't broadcasting its SSID; set the non-broadcast flag here; fix
merging of non-SSID-broadcasting APs
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2962 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* libnm-util/nm-utils.c (nm_utils_is_empty_ssid): Convert the
* ssid type to
"guint8 *" since it's usually used with GByteArray->data.
(nm_utils_ssid_to_utf8): Add it back, the applet needs it.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2961 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManager.c (main): When dbus manager doesn't want to
* start, complain
about dbus manager, not named manager.
Make sure hal_manager and dbus_mgr are created before trying to
unreference.
* src/nm-dbus-manager.c: There was an issue with priv->proxy: We
* have a signal
handler for it's 'destroy' signal - we use it to catch
disconnects from dbus.
However, the same signal is emitted when we destroy it and
there's
nm_dbus_manager_cleanup -> destroy_cb -> nm_dbus_manager_cleanup
cycle.
(nm_dbus_manager_cleanup): Let go of the DBusGProxy before
releasing the DBusGConnection, since proxy needs a conneciton.
(destroy_cb): Set the private proxy to NULL before cleaning up
the manager.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2959 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Reimplement the invalid connection list. Don't try to re-activate a
connection that just failed or was canceled.
* src/nm-device.c
- (connection_secrets_failed_cb): fail device activation, don't just
deactivate the device. Listeners have to know about the failure.
* src/NetworkManagerPolicy.c
- (nm_policy_auto_get_best_device): exclude invalid connections from
the connection list given to a device's get_best_connection()
method
- (device_state_changed): tag failed connections as invalid; clear the
tag from successful connections
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2957 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Fix problems with interrupted activation. Previously, choosing an AP
from the menu, then choosing another one before the first connection was
successful wouldn't deactivate the device before starting the new connection
on that same device.
* src/NetworkManagerPolicy.c
- (deactivate_old_device, device_state_changed, state_changed,
nm_policy_new): wrong place to deactivate old devices
* src/nm-manager.c
- (pending_connection_info_destroy, finalize,
wait_for_connection_expired): decouple destruction of the pending
connection info from the manager device
- (connection_added_default_handler): deactivate any active or
activating device before starting a new activation
- (impl_manager_activate_device): deactivate any active or activating
device before starting a new activation; be sure not to leak
pending connection info if a new activation request arrives but
there's already a pending one in-process
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2956 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerAP.h
src/NetworkManagerAP.c
- (nm_ap_has_manufacturer_default_ssid): remove, unused. User clients
should handle default SSIDs and whether or not to autoconnect
to them
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2955 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
src/nm-device-802-11-wireless.h
- (nm_device_802_11_wireless_class_init, merge_scanned_ap): new
'hidden-ap-found' signal (for internal use only) that allows the
NMManager to fill in the AP's SSID if a connection has that AP's
BSSID in its seen-bssids list
* src/nm-manager.c
- (manager_hidden_ap_found, nm_manager_add_device): attach to a
wireless device's hidden-ap-found signal and fill in the APs SSID
if possible
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2953 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c
src/nm-manager.h
- Add a 'connections-added' signal to batch together updates of large
numbers of connections, like when reading from a settings service
the first time. Otherwise, the policy would just activate the first
suitable connection it saw rather than waiting for the full list
to arrive.
- (nm_manager_class_init): register new signal
- (get_type_for_proxy, connection_get_settings_cb,
get_connection_for_proxy): centralize places where a proxy's setting
service is determined
- (free_get_settings_info): if the call being freed is the last call
in a pending call group, fire off the connections-added signal
- (internal_new_connection_cb): add call to a pending call group if
requested
- (list_connections_cb): always create a call group here, because this
call results in a batch of new connections
- (initial_get_connections): start getting system connections first
- (nm_manager_connections_destroy, emit_removed): actually emit the
removed signal when destroying connections
* src/NetworkManagerPolicy.c
- (nm_policy_new, connections_added): handle connections-added signal
from the manager
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2951 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerPolicy.c
- (nm_policy_auto_get_best_device): fix connection list reffing. Each
connection in the list returned by nm_manager_get_connections() is
reffed, but they weren't getting unreffed before returning
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2949 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
- (set_current_ap): consolidate current_ap handling code into one place
to ensure that PropertiesChanged signals are emitted in all cases
- (periodic_update, real_deactivate_quickly, real_act_stage1_prepare,
nm_device_802_11_wireless_dispose): use set_current_ap()
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2936 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* introspection/nm-device-802-11-wireless.xml
src/nm-device-802-11-wireless.h
src/nm-device-802-11-wireless.c
- Add a PropertiesChanged signal for wireless device
- Store currently associated access point
- (periodic_update): generalize; update rate here too and emit the
correct PropertiesChanged signal when stuff changes
- (real_deactivate_quickly, nm_device_802_11_wireless_dispose,
real_activation_cancel_handler): clear current_ap when device is
deactivated
- (link_to_specific_ap, get_ap_blacklisted,
nm_device_802_11_wireless_get_best_ap): remove obsolete and unused
code
- (nm_device_802_11_wireless_get_bitrate): make static; unused anywhere
outside this file
- (real_set_hw_address): emit property changed signal if the card's
MAC address changes
- (real_act_stage1_prepare): set the initial current_ap to the AP
the card is supposed to be connecting to
- (activation_success_handler): send out property updates on successful
activation
- (get_property): pull bitrate from cached value; use OBJECT_PATH type
for ACTIVE_ACCESS_POINT property because sometimes there won't be
one and dbus-glib doesn't like marshalling NULL G_TYPE_OBJECTs
- (nm_device_802_11_wireless_class_init): ACTIVE_ACCESS_POINT property
is now boxed; add PropertiesChanged signal
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2934 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
Add a GetActiveConnections() method on the Manager object.
* src/nm-manager.c
src/nm-manager.h
introspection/nm-manager.xml
- (connection_get_settings_cb): keep connection type around too
- (impl_manager_get_active_connections, add_one_connection_element):
implement; returns all active connections and what devices they
apply to
* libnm-glib/nm-client.c
libnm-glib/nm-client.h
introspection/nm-manager-client.xml
- (nm_client_get_devices): GPtrArray elements are allocated and owned
by the caller; free here to avoid memory leak
- (nm_client_get_active_connections): implement; return the list of
active connections
- (nm_client_free_active_connection_element): implement; free an element
of the GSList returned by nm_client_get_active_connections()
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2927 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-device-802-11-wireless.c
- (nm_device_802_11_wireless_update_bssid): remove
- (get_active_ap): new function; find the AP in the scan list which
matches the current BSSID and SSID of the wireless device
- (nm_device_802_11_periodic_update): get current AP using
get_active_ap() and print AP roam messages
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2926 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c
- (impl_manager_activate_device): ensure the D-Bus method sends a return
value when the connection can be activated immediately
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2922 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* include/NetworkManagerVPN.h
- define VPN connection state change reason codes
* src/vpn-manager/Makefile.am
src/vpn-manager/nm-vpn-marshal.list
src/vpn-manager/nm-vpn-marshal-main.c
- Add marshallers for StateChanged signal
* introspection/nm-vpn-connection.xml
- New Banner property
- StateChanged signal now includes a 'reason' argument
* src/vpn-manager/nm-vpn-connection.c
src/vpn-manager/nm-vpn-connection.h
- Add a "Banner" property that contains the returned VPN server login
banner (if any); valid only in the ACTIVATED state
- (nm_vpn_connection_set_state, nm_vpn_connection_disconnect): now takes
a 'reason' argument and emits that reason along with the
state-changed signal
- Fix up calls to nm_vpn_connection_set_state() to include a reason
- (nm_vpn_connection_ip4_config_get): save banner for later
- (nm_vpn_connection_get_banner, get_property,
nm_vpn_connection_class_init): implement Banner property
* src/vpn-manager/nm-vpn-service.c
- (nm_vpn_service_connections_stop): take a reason argument; copy the
connection list because elements may get added/removed from it
while iterating over the list
- (connection_state_changed): signal now includes the 'reason' argument
* libnm-glib/nm-vpn-connection.c
libnm-glib/nm-vpn-connection.h
- (nm_vpn_connection_get_banner): new function
- (state_changed_proxy): handle reason argument
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2916 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/nm-manager.c:
* src/nm-manager.h:
Implement device activation through NMManager.
Implement "pending device activation" here - If the connection
isn't found,
we try to wait for up to 5 seconds for the connection to be
provided.
Add NMConnectionType argument to "connection-added" and
"connection-removed"
signals.
(nm_manager_get): Remove. Finally.
* src/nm-activation-request.c:
* src/nm-activation-request.h:
Remove all the deferred activation code.
* src/nm-device.c: Remove all the deferred activation code. Once
* the device
activation is started, it's started. Update the activation
virtual function
signature.
* src/nm-device-interface.c:
* src/nm-device-interface.h:
Device activation now takes only NMActRequest argument.
Don't expose device activation directly on dbus, it's supposed
to go through
NMManager now.
* src/NetworkManagerPolicy.c (nm_policy_device_change_check):
* Make the code
a bit more compact.
Use the new device activation methods through NMManager.
* introspection/nm-manager-client.xml:
* introspection/nm-manager.xml:
* libnm-glib/nm-client.c:
* libnm-glib/nm-client.h:
Add device activation method.
* libnm-glib/nm-device.c:
* libnm-glib/nm-device.h:
* introspection/nm-device.xml:
Remove device activation method. It's done through NMManager
now.
* src/vpn-manager/nm-vpn-manager.c (impl_vpn_manager_connect):
* Use the shiny
new (nm_manager_get_device_by_path) function, get rid of our own
)find_device).
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2915 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Patch from Bill Nottingham
* src/supplicant-manager/nm-supplicant-config.c
- (ADD_STRING_VAL): use correct length for binary blobs when sending
data to the supplicant
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2913 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerSystem.c
- (nm_system_vpn_device_set_from_ip4_config): clean up indentation;
and all address manipulation here should be happening on the
_VPN_ device, not the active device
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2905 4912f4e0-d625-0410-9fb7-b9a5a253dbdc