Commit graph

77 commits

Author SHA1 Message Date
Jouni Malinen
f9cd8587fb dbus: Deauthenticate instead of disassociate on disconnect command
This clears up authentication state in the driver and in case of
cfg80211, unlocks the BSS entry for the previously used AP. The
previous commit cf4783e35f changed
only the ctrl_iface DISCONNECT command behavior; this new commit
does the same for D-Bus commands.
2010-08-18 21:27:30 +03:00
Jouni Malinen
7cc5995845 Skip D-Bus signals if the dbus_path is not yet set
This avoids an invalid D-Bus call during interface initialization.
The wpa_state change can happen before the D-Bus interface is set up,
so we must be preparted to handle this early event signal. In theory,
it should be possible to reorder initialization code to make sure
D-Bus signals are ready, but that would likely require quite a bit of
code restructuring, so it looks like a safer option for now is to just
skip the early event.
2010-05-23 20:23:11 +03:00
Witold Sowa
c56ce48a6f dbus: Add new KeyMgmt interface capabilities
Add "wpa-ft-psk", "wpa-psk-sha256", "wpa-ft-eap" and "wpa-eap-sha256"
possible KeyMgmt values of interface capabilities to fit values in
BSS RSN options dictionary.
2010-04-11 21:37:28 +03:00
Dmitry Shmidt
aa53509ffe Update priority list after priority change
Despite comments in the wpa_config_update_prio_list(struct wpa_config
*config) telling that it is called "if priority for a network is
changed", it is apparently not.

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2010-03-06 11:13:50 +02:00
Witold Sowa
7899e2f42d dbus: Change WPA/RSNIE byte array props to dicts
Expose RSN and WPA properties for BSS objects containing information
about key management and cipher suites. Get rid of WPA/RSN/WPSIE
byte array properties and add IEs byte array property with all IE data
instead.
2010-01-16 16:37:37 +02:00
Marcel Holtmann
097c5802da dbus: Fix value of BSS Privacy property
Checking for IEEE80211_CAP_PRIVACY needs to use & and not &&.
2010-01-10 18:18:08 +02:00
Witold Sowa
8e5568f874 dbus: Change BSS, Network and some errors interface names
Remove ".Interface" part from BSS and Network objects and some
error names.
2010-01-09 11:41:09 +02:00
Jouni Malinen
c91278a5b4 dbus: Do not try to unregister not-yet-registered network object 2010-01-06 21:31:13 +02:00
Witold Sowa
158c6c7467 dbus: Add BSS property change notifications 2010-01-06 20:03:01 +02:00
Jouni Malinen
c3299a8b74 dbus: Fix crash on property change if D-Bus API is disabled 2010-01-06 12:14:35 +02:00
Jouni Malinen
6c195cd507 dbus: Fix prop_changed_flags allocation to count properties correctly
There was an extra semicolon that broke the calculation of registered
properties and resulted in obj_desc->prop_changed_flags not being
allocated long enough for all the flags.
2010-01-06 11:55:21 +02:00
Jouni Malinen
e30020c7ab dbus: Fix flush_object_timeout_handler context to be consistent
The path pointer used as the timeout_ctx was not constant; the path
string itself may have been the same, but the pointer certainly was not
since it was sometimes from stack and sometimes from the dynamically
allocated buffer in obj_desc. This caused some of the eloop timeout
cancellations not to find the timeout. Fix this by using the obj_desc
as the timeout context data.
2010-01-06 11:50:43 +02:00
Witold Sowa
abd7a4e353 dbus: Aggregate PropertiesChanged signals
Instead of sending PropertiesChanged signals for each changed
property separately, mark properties as changed and send aggregated
PropertiesChanged signals for each interface in each object.
Aggregated PropertiesChanged signal is sent
- for all object after responding on DBus call
- for specified object after manual call to
  wpa_dbus_flush_object_changed_properties() function
- for each object separately after short timeout (currently 5 ms)
  which starts when first property in object is marked changed
2010-01-04 17:15:57 +02:00
Witold Sowa
75d328af50 dbus: Change BSS property MaxRate to Rates
Instead of exposing maximum BSS bit rate, expose sorted array
of all supported rates.
2010-01-04 16:52:30 +02:00
Marcel Holtmann
27f43d8de5 dbus: Replace StateChanged with PropertiesChanged signal
The actual supplicant state is exposed via a property on the interface
object. So having a separate signal StateChanged for notifying about
changes is a bad idea. The standard PropertiesChanged signal should be
used for this.

The advantage of StateChanged signal was that it includes the previous
state, but not even NetworkManager is making use of this. And tracking
the old state via the property and this signal is easily possible anyway.
2010-01-04 16:33:44 +02:00
Marcel Holtmann
a2753c285f dbus: Use simple strings for debug level
Instead of using some magic integer values that really only mean
something to WPA internal code, just use simple strings. Possible
values are "msgdump", "debug", "info", "warning" and "error" which
map directly to WPA debugging support.
2010-01-04 16:22:26 +02:00
Jouni Malinen
9ba9fa07cc Move wpa_supplicant specific scan code away from src/drivers
This fits better in wpa_supplicant/scan.c. Couple of remaining
scan_helpers.c functions are currently used in driver wrappers,
but they can likely be removed in the future.
2010-01-03 18:48:11 +02:00
Jouni Malinen
2f1a90188c dbus: Use free_dbus_object_desc() consistently to free object descriptor 2010-01-03 01:01:56 +02:00
Jouni Malinen
e90bd80cf5 dbus: Remove duplication of object methods/signals/properties
There is no need to duplicate the method/signal/property arrays that
were registered for objects. The registration was using static arrays
on methods/signals/properties in all places and we can as well use
those throughout without having to allocate memory and copy all the
entries for every object. This reduces number of allocations and
amount of unnecessary code quite a bit.
2010-01-03 00:52:30 +02:00
Jouni Malinen
3e87bd5478 dbus: Use stack for temporary object path
This is small enough buffer to not require more complex dynamic
allocation for temporary use.
2010-01-02 17:17:00 +02:00
Jouni Malinen
8f770587d9 Maintain a pointer to the current BSS table entry 2010-01-02 16:59:19 +02:00
Jouni Malinen
9734dc17b6 dbus: Use BSS table instead of raw scan results in older API
Change the old D-Bus API to use the new BSS table instead of raw
scan results.
2010-01-02 15:13:25 +02:00
Jouni Malinen
8d923a4acf Only expire scanned BSSes based on new scan results
Get more information about scans when updating BSS table information.
This allows the missing-from-scans expiration rule to work properly
when only partial set of channels or SSIDs are being scanned.
2010-01-02 13:57:44 +02:00
Jouni Malinen
88ba1f7213 dbus: Cleaned up signal message construction functions 2010-01-02 12:06:44 +02:00
Jouni Malinen
fff9ab1b2d dbus: Simplify _wpa_dbus_dict_fill_value_from_variant() a bit 2010-01-02 10:59:51 +02:00
Jouni Malinen
97d3f8c3a9 dbus: Share the same function for type to type-as-string conversion 2010-01-02 10:45:03 +02:00
Jouni Malinen
c221499782 dbus: Use common code for checking key parameter
No need to duplicate the check into many functions.
2010-01-02 10:39:19 +02:00
Jouni Malinen
6c68b0db5d dbus: Fix WPS ProcessCredentials property setter to use Boolean
The incorrect type used with property setter call did not allow
the property to be modified.
2010-01-01 23:06:10 +02:00
Jouni Malinen
ec99cb7b00 dbus: Add debug printing on property setter type mismatches 2010-01-01 23:05:44 +02:00
Jouni Malinen
d8d8c6d02a dbus: Split wpas_dbus_handler_wps_start() into helper functions 2010-01-01 22:33:47 +02:00
Jouni Malinen
db9a76c032 dbus: Fix a typo in function name (invald -> invalid) 2010-01-01 21:52:29 +02:00
Jouni Malinen
f65a5b7598 dbus: Fix init-failure-detection
This was broken in previous cleanup.
2010-01-01 21:30:58 +02:00
Jouni Malinen
ccafcbed32 dbus: Cleaned up initialization and integration with eloop 2010-01-01 21:21:20 +02:00
Jouni Malinen
c2b8c674cb dbus: Remove perror() calls
The perror() calls do not make much sense with libdbus functions and
wpa_printf() would really be used for all error printing anyway. In
addition, many of the error messages on out-of-memory cases are not
really of much use, so they were removed. This is also cleaning up
some of the error path handling to avoid duplicated code.
2010-01-01 20:50:12 +02:00
Jouni Malinen
c49cf2d68f dbus: Clean up dbus_path/dbus_new_path use
These cannot be NULL, so there is no point in checking for that. In
addition, the accessor function for this is just making the code harder
to understand.
2010-01-01 19:12:31 +02:00
Jouni Malinen
1912049828 dbus: Get rid of unnecessary string duplication in dbus_path
There is no point in making it so complex to initialize a string
with two allocations and a function call.
2010-01-01 18:56:07 +02:00
Jouni Malinen
52bdd880a3 dbus: Remove wpas_dbus_callbacks abstraction
This callback structure was specific to the new D-Bus API which makes
it more or less pointless. It is just simpler to call the notification
functions directly. More proper design could be to use a generic
mechanism for registering notification callbacks into notify.c, but
that is not yet available and should not be designed just based on a
single user.
2010-01-01 18:45:29 +02:00
Jouni Malinen
bad0dc3c0c dbus: Do not include libdbus dbus/dbus.h into dbus_{old,new}.h
These header files are included outside the dbus subdirectory and there
is not really any need to force the libdbus dbus/dbus.h header file to
be included into these files.
2010-01-01 18:20:05 +02:00
Jouni Malinen
36b5c6871c dbus: Move the SIGPOLL FreeBSD compat code into dbus_common.c
No point in storing this in header files anymore since SIGPOLL is only
used in dbus_common.c.
2010-01-01 18:16:24 +02:00
Jouni Malinen
00a4784d24 dbus: Get rid of unused static inline functions 2010-01-01 18:14:44 +02:00
Jouni Malinen
d316584c6a dbus: Optimize introspection to use single pass for interfaces
There is no need to go through methods, signals, and properties in
two loops and only collect interfaces in the first run. Get rid of
unnecessary CPU use by generating the XML data for interfaces with
a single pass.
2010-01-01 18:08:23 +02:00
Jouni Malinen
ce4f7fdbdd dbus: Get rid of libxml2 dependency with introspection
The XML used in D-Bus introspection is simple and there is no need to use
libxml2 to generate it. This gets rid of the dependency on the large
library by using internal XML generation.
2010-01-01 17:51:15 +02:00
Jouni Malinen
21e338a860 dbus: Split extract_interfaces() into helper functions 2010-01-01 15:50:00 +02:00
Jouni Malinen
de7a79ceb6 dbus: Cleanup and fix loops
Simpler to use for loops instead of handling next pointer selection
in all places. In addition, couple of functions could have ended up
in an infinite loop on error path since the pointer update was missed.
2010-01-01 14:25:25 +02:00
Jouni Malinen
4292b01322 dbus: Use strdup instead of malloc+strncpy 2010-01-01 14:15:12 +02:00
Jouni Malinen
04551ee6d6 dbus: Move introspection support into a separate file 2010-01-01 14:03:00 +02:00
Jouni Malinen
094e9ea1d7 dbus: Remove unnecessary ifdef CONFIG_CTRL_IFACE_DBUS_NEW
This header file is only included if the new D-Bus API is enabled.
2010-01-01 13:18:37 +02:00
Witold Sowa
db9133acb2 dbus: Divide DebugParams property to three separate properties 2010-01-01 13:00:22 +02:00
Witold Sowa
b7e8feec68 dbus: Rename InterfaceCreated to InterfaceAdded
Change signal name to the one defined in documentation and
introspection data.
2010-01-01 12:49:27 +02:00
Witold Sowa
e376f1193b dbus: Add second properties arg to *Added signals
Add a dictionary argument containing all properties of the newly added
object to BSSAdded, NetworkAdded, and InterfaceAdded signals.
2010-01-01 12:47:59 +02:00