Jouni Malinen [Thu, 31 Dec 2009 19:55:32 +0000 (21:55 +0200)]
dbus: Rename old D-Bus API files to include "_old"
This makes it easier to figure out which file is used by which
D-Bus interface.
Jouni Malinen [Thu, 31 Dec 2009 19:50:12 +0000 (21:50 +0200)]
dbus: Do not deinitialize new D-Bus API if it is not initialized
This fixes a crash on error path when D-Bus initialization fails.
Jouni Malinen [Wed, 30 Dec 2009 22:15:56 +0000 (00:15 +0200)]
dbus: Share common initialization code for both old and new interface
This was mostly identical code that had been copied for the new D-Bus
API implementation and as such, should really have been shared from
the beginning. In addition, the copied code ended up generating
interesting stack traces since the actual D-Bus connection was being
shared even though the pointer to it was stored in two distinct
data structures. The old D-Bus code ended up dispatching some
D-Bus callbacks which ended up running the new D-Bus code.
Since the private context pointers were mostly identical, everything
seemed to more or less work, but this design was just making things
more complex and potentially very easy to break.
Jouni Malinen [Wed, 30 Dec 2009 20:37:23 +0000 (22:37 +0200)]
Fix couple of memory leaks in wpa_config_get_all()
Jouni Malinen [Wed, 30 Dec 2009 20:18:18 +0000 (22:18 +0200)]
wpa_gui-qt4: Update BSS entries in Peers dialog dynamically
Use the new BSS added/removed events to add/remove BSS (AP) entries
in the Peers dialog.
Jouni Malinen [Tue, 29 Dec 2009 21:46:50 +0000 (23:46 +0200)]
dbus: Verify dbus_message_new_method_return() return value before use
Jouni Malinen [Tue, 29 Dec 2009 20:17:18 +0000 (22:17 +0200)]
dbus: Fix D-Bus network and BSS object registration/unregistration
Do not try to unregister BSS objects twice (the latter one with invalid
path) and make sure all network objects get added and removed properly
(the ones read from configuration file were not being registered, but
were tried to be unregistered).
Jouni Malinen [Mon, 28 Dec 2009 14:24:04 +0000 (16:24 +0200)]
WPS: Add Enrollee-seen event message and wpa_gui-qt4 Peers entry
This can be used to show active Enrollees in AP mode to make it
easier to provision a new device.
Jouni Malinen [Mon, 28 Dec 2009 14:07:15 +0000 (16:07 +0200)]
WPS: Clear SSID selection if more than one BSSID match is found
Need to use wildcard SSID matching for WPS connection if the same
BSSID occurs multiple time in scan results since any of the SSIDs
may be used.
Jouni Malinen [Mon, 28 Dec 2009 14:02:11 +0000 (16:02 +0200)]
Mark wpabuf_get_trace() static
Jouni Malinen [Mon, 28 Dec 2009 14:01:21 +0000 (16:01 +0200)]
Include header file to verify prototypes
Jouni Malinen [Mon, 28 Dec 2009 14:00:36 +0000 (16:00 +0200)]
Define struct wpa_ssid::mode as an enum with more readable values
Jouni Malinen [Mon, 28 Dec 2009 11:39:57 +0000 (13:39 +0200)]
test: Register more complete set of channels and rates
Jouni Malinen [Mon, 28 Dec 2009 11:38:18 +0000 (13:38 +0200)]
test: Use previously requested BSSID when adding a new interface
Jouni Malinen [Mon, 28 Dec 2009 11:35:51 +0000 (13:35 +0200)]
Add [ESS] flag for scan/BSS info from ctrl_iface
Jouni Malinen [Mon, 28 Dec 2009 11:34:03 +0000 (13:34 +0200)]
Add scan parameter support for client MLME
Jouni Malinen [Mon, 28 Dec 2009 11:25:17 +0000 (13:25 +0200)]
nl80211: Add more debug prints for mode changes and interface add/remove
Jouni Malinen [Mon, 28 Dec 2009 11:23:13 +0000 (13:23 +0200)]
Add an option for driver wrappers to report operational frequency
Jouni Malinen [Mon, 28 Dec 2009 11:14:58 +0000 (13:14 +0200)]
Allow Probe Request callbacks to terminate iteration
Jouni Malinen [Mon, 28 Dec 2009 10:58:27 +0000 (12:58 +0200)]
Allocate Probe Response and Beacon buffers based on WPS IE length
This IE is of variable length and it is better to allocate the frame
buffer taking this length into account to prepare for future
additions.
Jouni Malinen [Mon, 28 Dec 2009 10:13:52 +0000 (12:13 +0200)]
Fix wpa_cli with libreadline and WPA_TRACE to use consistent alloc
Need to use strdup(), not os_strdup() here since the readline/fgets
result needs to use same style for memory allocation to avoid WPA_TRACE
errors.
Jouni Malinen [Mon, 28 Dec 2009 10:11:23 +0000 (12:11 +0200)]
Fix crash on BSS deinit getting called before BSS init
Jouni Malinen [Sun, 27 Dec 2009 23:14:56 +0000 (01:14 +0200)]
Include BSS table unconditionally in the wpa_supplicant build
This will allow more cleanup to be done for scan results processing
since all code can now be made to depend on the BSS table instead of
the temporary scan results.
Once remaining code has been converted to use the BSS table, the new
scan results can be freed immediately after the BSS table has been
updated. In addition, filtering of BSS information should be added
to better support systems with limited resources. For now, memory
use can be limited by defining WPA_BSS_MAX_COUNT to be smaller.
Anyway, better filtering of results to only the configured networks
should be added to improve this.
Jouni Malinen [Sun, 27 Dec 2009 23:10:07 +0000 (01:10 +0200)]
dbus: Use the new BSS table with the new D-Bus API
Replace the scan results -based implementation with the use of information
from the new BSS table maintained by wpa_supplicant to get a more stable
source of BSS data. Change the use of BSSID as the key for the BSS object
to use the BSS table unique identifier so that multi-SSID APs can be
handled properly.
Jouni Malinen [Sun, 27 Dec 2009 23:09:32 +0000 (01:09 +0200)]
Add wpa_bss_get_max_rate() to match with old scan_res helpers
Jouni Malinen [Sun, 27 Dec 2009 22:44:10 +0000 (00:44 +0200)]
Use wpa_msg_ctrl() for WPS AP available events
No need to include these MSG_INFO level events in stdout/syslog,
so deliver them only to ctrl_iface monitors.
Jouni Malinen [Sun, 27 Dec 2009 22:42:51 +0000 (00:42 +0200)]
Add ctrl_iface events for BSS added/removed
Jouni Malinen [Sun, 27 Dec 2009 22:33:20 +0000 (00:33 +0200)]
Change BSS ctrl_iface command to use BSS table instead of scan results
In addition, provide another option for iterating through the BSS
entries. The old iteration: "BSS 0", "BSS 1", .. with index number.
The new iteration: "BSS FIRST", "BSS NEXT-<prev id>", .. with id
fetched from the previous output (id=<id> line).
Jouni Malinen [Sun, 27 Dec 2009 22:30:38 +0000 (00:30 +0200)]
Add BSS list sorted by id and add some helper functions
This allows the BSS list to be iterated in order of increasing id
to avoid problems with new scans reordering entries. The order on the
wpa_s->bss list changes with most recently updated entries being moved
to the tail of the list while wpa_s->bss_id list maintains its order
with new entries being added to the tail and old entries being removed
when they expire.
Jouni Malinen [Sun, 27 Dec 2009 19:42:02 +0000 (21:42 +0200)]
Add handling of BSSAdded and BSSRemoved events
Jouni Malinen [Sun, 27 Dec 2009 19:33:18 +0000 (21:33 +0200)]
Fix wpa_supplicant build with CONFIG_AP=y
Jouni Malinen [Sun, 27 Dec 2009 19:31:13 +0000 (21:31 +0200)]
Split hostapd_interface_deinit() into deinit and free parts
This allows the driver interface to be deinitialized before
struct hostapd_data instance gets freed. This needs to be done so
that the driver wrapper does not maintain a context pointer to
freed memory.
Jouni Malinen [Sun, 27 Dec 2009 19:20:25 +0000 (21:20 +0200)]
test: Add WPA_TRACE reference check for driver ctx
This will catch too early freeing of the context pointer before the
driver wrapper has been deinitialized.
Jouni Malinen [Sun, 27 Dec 2009 19:07:47 +0000 (21:07 +0200)]
Add BSS table to track scan results without dropping information
Collect information from scan results into a BSS table that will not
expire information as quickly as scan results where every new scan,
no matter for how limited set of channels/SSIDs, clears all old
information.
For now, this is only used for D-Bus BSS added/removed notifications,
but this will likely be extended to be used internally instead of the
scan results to better support partial scans.
Jouni Malinen [Sun, 27 Dec 2009 15:13:15 +0000 (17:13 +0200)]
Fix a typo in a doxygen comment
Jouni Malinen [Sat, 26 Dec 2009 19:26:56 +0000 (21:26 +0200)]
dbus: Split message_handler() into readable helper functions
Jouni Malinen [Sat, 26 Dec 2009 17:54:24 +0000 (19:54 +0200)]
Import student.agh.edu.pl/~wsowa/new-dbus-api.html
Import D-Bus API reference into Doxygen documentation for
wpa_supplicant.
Jouni Malinen [Sat, 26 Dec 2009 16:41:01 +0000 (18:41 +0200)]
dbus: Add an example python script for using the new dbus interface
This has example code for fetching and interface object and optionally
creating a new interface is one is not found. After that, a scan is
requested and the script continues to listed for signals from
wpa_supplicant and print information about scan results and state
changes.
Jouni Malinen [Sat, 26 Dec 2009 15:28:19 +0000 (17:28 +0200)]
dbus: Remove unnecessary indentation by cleaning up if/else structure
Jouni Malinen [Sat, 26 Dec 2009 15:06:28 +0000 (17:06 +0200)]
dbus: split wpas_dbus_handler_scan() into number of helper functions
Make this code readable by splitting it into pieces and fix couple of
emmory leaks on error paths.
Jouni Malinen [Sat, 26 Dec 2009 14:20:37 +0000 (16:20 +0200)]
dbus: Fix build without os_free available as a pointer
Need to add a wrapper function to be able to handle the need for
having a function pointer for freeing function for dbus use.
Jouni Malinen [Sat, 26 Dec 2009 12:37:04 +0000 (14:37 +0200)]
dbus: Fix Scan invalid args reporting (uninitialize variable)
Must initialize key to be NULL since it can be used in an error
message. If the Scan method did not actually include any dict entries,
the uninitialized pointer was used and this could result in
wpa_supplicant crashing.
Jouni Malinen [Sat, 26 Dec 2009 12:30:50 +0000 (14:30 +0200)]
eloop: Fix timeout handler to use local copy of func pointer
We need to copy not only the context pointers, but also the function
pointer before the timeout gets freed.
Jouni Malinen [Sat, 26 Dec 2009 12:14:31 +0000 (14:14 +0200)]
dbus: show messages in debug log
Jouni Malinen [Sat, 26 Dec 2009 11:55:22 +0000 (13:55 +0200)]
dbus: Check that wpa_s->scan_res != NULL before dereferencing it
Jouni Malinen [Sat, 26 Dec 2009 11:45:07 +0000 (13:45 +0200)]
Indicate interface removal only if the interface was added successfully
Jouni Malinen [Sat, 26 Dec 2009 11:36:05 +0000 (13:36 +0200)]
dbus: Fix wpa_supplicant_add_iface() calls
Removed the hack that used typecast to get rid of const by using local
variables that are allocated and freed. Fix couple of memory leaks
and check that the required Ifname parameter is included.
Jouni Malinen [Sat, 26 Dec 2009 10:29:24 +0000 (12:29 +0200)]
dbus: Use os_*() wrappers for memory allocations consistently
This is needed to avoid bogus WPA_TRACE error reports.
Jouni Malinen [Sat, 26 Dec 2009 08:35:08 +0000 (10:35 +0200)]
Get rid of unnecessary typedefs for enums.
Jouni Malinen [Fri, 25 Dec 2009 22:31:51 +0000 (00:31 +0200)]
Include header files explicitly in *.c, not via header files
Jouni Malinen [Fri, 25 Dec 2009 22:21:22 +0000 (00:21 +0200)]
Replace src/ap/driver_i.h with non-inlined functions in ap_drv_ops.c
Jouni Malinen [Fri, 25 Dec 2009 22:12:25 +0000 (00:12 +0200)]
Remove ap_config.h dependency from driver_i.h
This adds explicit #include line for ap_config.h into the src/ap/*.c
files that actually use the definitions from there.
Jouni Malinen [Fri, 25 Dec 2009 22:05:40 +0000 (00:05 +0200)]
Rename some src/ap files to avoid duplicate file names
Doxygen and some build tools may get a bit confused about same file
name being used in different directories. Clean this up a bit by
renaming some of the duplicated file names in src/ap.
Jouni Malinen [Fri, 25 Dec 2009 21:32:49 +0000 (23:32 +0200)]
Add new src/ap directory into Doxygen documents
Jouni Malinen [Fri, 25 Dec 2009 18:12:26 +0000 (20:12 +0200)]
Get rid of direct hostapd_for_each_interface() calls
src/ap/*.c must not call functions in hostapd or wpa_supplicant
directories directly, so avoid this by using a callback function
pointer.
Jouni Malinen [Fri, 25 Dec 2009 18:06:07 +0000 (20:06 +0200)]
Move rest of the generic AP mode functionality into src/ap
Jouni Malinen [Fri, 25 Dec 2009 17:48:41 +0000 (19:48 +0200)]
test: Use more shared code for driver wrapper AP and station modes
This fixes AP mode use in wpa_supplicant with the
no-AP-driver-wrapper design.
Jouni Malinen [Fri, 25 Dec 2009 17:47:08 +0000 (19:47 +0200)]
Do not use virtual driver_ops for wpa_supplicant AP mode
Initialize struct hostapd_data driver context with the same driver
information that was initialized earlier during wpa_supplicant start.
This allows the AP mode operations to be completed directly with the
same calls in AP code without having to maintain a separate translation
layer between the AP and station mode driver context.
Jouni Malinen [Fri, 25 Dec 2009 16:32:44 +0000 (18:32 +0200)]
Move driver deinitialization away from hostapd.c
This matches with the earlier change of moving driver initialization
and allows more control on how the driver context is managed.
Jouni Malinen [Fri, 25 Dec 2009 12:20:35 +0000 (14:20 +0200)]
Clean up some of the hostapd.h function prototype definitions
Not all prototypes in hostapd.h really belong there. This is an initial
step in cleaning that up.
Jouni Malinen [Fri, 25 Dec 2009 12:06:26 +0000 (14:06 +0200)]
Move hostapd_prune_associations() into ap/utils.c
Jouni Malinen [Fri, 25 Dec 2009 12:02:17 +0000 (14:02 +0200)]
Move WPA authenticator glue code into a separate file
Jouni Malinen [Fri, 25 Dec 2009 11:43:43 +0000 (13:43 +0200)]
Move authentication server setup into separate file
Jouni Malinen [Fri, 25 Dec 2009 11:04:45 +0000 (13:04 +0200)]
Move iapp.c into src/ap
Jouni Malinen [Fri, 25 Dec 2009 10:25:55 +0000 (12:25 +0200)]
Move ctrl_iface_ap.c into src/ap
Jouni Malinen [Fri, 25 Dec 2009 10:21:11 +0000 (12:21 +0200)]
Move hostapd driver initialization away from hostapd.c
This makes it easier to customize AP mode initialization for
wpa_supplicant.
Jouni Malinen [Fri, 25 Dec 2009 10:06:53 +0000 (12:06 +0200)]
Fix wpa_supplicant CONFIG_AP build
Jouni Malinen [Fri, 25 Dec 2009 09:54:02 +0000 (11:54 +0200)]
wired: Use os_*() wrappers more consistently
Need to allocate and free memory with same style to avoid WPA_TRACE
errors.
Jouni Malinen [Fri, 25 Dec 2009 09:51:20 +0000 (11:51 +0200)]
hostapd: Do not call eloop_terminate() on interface setup failure
The caller is able to handle the error code properly and there is no
need to forcefully stop the eloop run here.
Jouni Malinen [Thu, 24 Dec 2009 23:31:28 +0000 (01:31 +0200)]
Add forgotten src/ap/utils.c file
Commit
32da61d9c9594a35db46dacd8ca3e0ae7167bac2 was supposed to add
this file.
Jouni Malinen [Thu, 24 Dec 2009 23:29:59 +0000 (01:29 +0200)]
WPS: Fix a memory leak if set_ie_cb() is not set
Skip WPS IE building for Beacon and Probe Response frames is set_ie_cb()
is not set. This fixes a memory leak and optimizes operations by not
allocating memory and building the WPS IEs unnecessarily.
Jouni Malinen [Thu, 24 Dec 2009 23:26:37 +0000 (01:26 +0200)]
Move wps_hostapd.c into src/ap
Jouni Malinen [Thu, 24 Dec 2009 23:12:50 +0000 (01:12 +0200)]
Move generic AP functionality implementation into src/ap
This code can be shared by both hostapd and wpa_supplicant and this
is an initial step in getting the generic code moved to be under the
src directories. Couple of generic files still remain under the
hostapd directory due to direct dependencies to files there. Once the
dependencies have been removed, they will also be moved to the src/ap
directory to allow wpa_supplicant to be built without requiring anything
from the hostapd directory.
Jouni Malinen [Thu, 24 Dec 2009 22:39:22 +0000 (00:39 +0200)]
Remove direct driver calls from tkip_countermeasures.c
Jouni Malinen [Thu, 24 Dec 2009 22:35:10 +0000 (00:35 +0200)]
Remove direct driver calls from ieee802_11.c
Jouni Malinen [Thu, 24 Dec 2009 22:30:16 +0000 (00:30 +0200)]
Remove direct driver calls from sta_info.c
Jouni Malinen [Thu, 24 Dec 2009 22:17:07 +0000 (00:17 +0200)]
Remove direct driver calls from vlan_init.c
Jouni Malinen [Thu, 24 Dec 2009 22:10:31 +0000 (00:10 +0200)]
Remove direct driver calls from beacon.c
Jouni Malinen [Thu, 24 Dec 2009 21:49:19 +0000 (23:49 +0200)]
Remove need for direct driver calls from ieee802_11_auth.c
Jouni Malinen [Thu, 24 Dec 2009 21:42:13 +0000 (23:42 +0200)]
Avoid direct call to hostapd_new_assoc_sta from ieee802_11.c
Jouni Malinen [Thu, 24 Dec 2009 21:30:32 +0000 (23:30 +0200)]
Removed hostapd_new_assoc_sta() from driver wrapper API
This is not called directly by any of the driver wrappers anymore, so
the function can be removed from driver.h and drv_callbacks.c.
Jouni Malinen [Thu, 24 Dec 2009 21:20:53 +0000 (23:20 +0200)]
Avoid a direct call to drv_callbacks.c from beacon.c
Jouni Malinen [Thu, 24 Dec 2009 21:17:11 +0000 (23:17 +0200)]
Move hostapd_set_drv_ieee8021x() into ap_drv_ops
Jouni Malinen [Thu, 24 Dec 2009 21:11:16 +0000 (23:11 +0200)]
Move hostapd-to-driver flag mapping to be within ap_drv_ops.c
Jouni Malinen [Thu, 24 Dec 2009 20:50:17 +0000 (22:50 +0200)]
Move wpa_drivers dependency into config_file.c
This cleans up config.o from driver wrapper dependencies.
Jouni Malinen [Thu, 24 Dec 2009 20:24:57 +0000 (22:24 +0200)]
Remove direct driver calls from accounting.c
Jouni Malinen [Thu, 24 Dec 2009 19:05:40 +0000 (21:05 +0200)]
Move hostapd configuration parser into separate file
config.c includes now only the generic helper functions that are needed
both for hostapd and the AP mode operations in wpa_supplicant.
hostapd/config_file.c is only needed for hostapd.
Jouni Malinen [Thu, 24 Dec 2009 18:41:30 +0000 (20:41 +0200)]
Move more driver ops into struct hostapd_driver_ops
This removes need to include driver_i.h into ieee802_1x.c.
Jouni Malinen [Thu, 24 Dec 2009 18:18:55 +0000 (20:18 +0200)]
Move hostapd_set_privacy() call to hostapd.c
IEEE 802.1X code does not need to know about this driver configuration
mechanism and all the other calls were already in hostapd.c.
Jouni Malinen [Thu, 24 Dec 2009 18:13:44 +0000 (20:13 +0200)]
Use hostapd driver op wrapper for send_mgmt_frame
Jouni Malinen [Thu, 24 Dec 2009 17:46:06 +0000 (19:46 +0200)]
Merge driver ops set_wps_beacon_ie and set_wps_probe_resp_ie
set_ap_wps_ie() is not used to set WPS IE for both Beacon and Probe
Response frames with a single call. In addition, struct wpabuf is used
instead of separate u8* and length fields. This avoids duplicated
allocation of the IEs and simplifies code in general.
Jouni Malinen [Thu, 24 Dec 2009 14:15:22 +0000 (16:15 +0200)]
hostapd: Use separate driver operations abstraction
It would be bettet to avoid including driver_i.h, i.e., direct driver
operation calls from hostapd components. This is an initial step in
that direction for WPS IE updates.
Jouni Malinen [Thu, 24 Dec 2009 10:41:20 +0000 (12:41 +0200)]
Drop WPA_TRACE reference before eloop timeout handler call
This avoids bogus error reports for cases where the timeout handler
frees the memory that was pointed to by the eloop timeout context.
Jouni Malinen [Thu, 24 Dec 2009 10:27:42 +0000 (12:27 +0200)]
Enable IPv6 support for libutils.a and libradius.a
Jouni Malinen [Thu, 24 Dec 2009 10:26:47 +0000 (12:26 +0200)]
Redesign struct hostapd_ip_addr to be of fixed size
This structure is embedded in some other structures and as such, it
would be nicer if this would not change its length based on build
options.
Jouni Malinen [Thu, 24 Dec 2009 10:18:57 +0000 (12:18 +0200)]
radius_example: Fix memory leak on deinit
Jouni Malinen [Thu, 24 Dec 2009 10:18:22 +0000 (12:18 +0200)]
Comment out CONFIG_IPV6 for now in RADIUS library build
This needs to be used consistently in order to get correct size for
struct hostapd_ip_addr.
Jouni Malinen [Thu, 24 Dec 2009 10:05:51 +0000 (12:05 +0200)]
Build radius_example using src/*/lib*.a
Jouni Malinen [Thu, 24 Dec 2009 10:03:40 +0000 (12:03 +0200)]
Fix RADIUS client callback function parameters
Jouni Malinen [Thu, 24 Dec 2009 09:59:08 +0000 (11:59 +0200)]
Add build rules for src/radius/libradius.a