Commit Graph
100 Commits
Author SHA1 Message Date
Michael Lotz 176854ba4b Update transmission package to fix provides on x86_gcc2. 2014-11-23 18:05:26 +01:00
Michael Lotz 9f46451dd0 Add packages for transmission and its (build) dependencies.
* Packages for transmission and libevent for x86[_gcc2|_64].
* Build dependency packages intltool, xml_parser and file for x86[_64].
2014-11-23 16:49:21 +01:00
Michael Lotz 9a6331459f kernel: Fix build with KDEBUG_LEVEL < 2.
The lock caller info isn't available in such a configuration.
2014-11-04 23:00:59 +01:00
Michael Lotz 3fe7b3f72c BString: Add ScanWithFormat convenience method. 2014-11-02 11:38:45 +01:00
Michael Lotz 969af8044a BString: Add format attribute to SetToFormatVarArgs. 2014-11-02 11:38:44 +01:00
Michael Lotz eac94f5db9 kernel: Also push lock caller in acquire_spinlock_nocheck. 2014-11-02 00:04:28 +01:00
Michael Lotz 41418981f4 kernel: Sync panic messages across acquire_spinlock versions.
* Always include last caller and lock value on both UP and MP path.
* Change lock value printing to hex format, as 0xdeadbeef is more
  obvious than its decimal counterpart.
2014-11-02 00:04:27 +01:00
Michael Lotz bf685cdf2e kernel: Fix missing reference release in CreateThreadEvent.
CreateThreadEvent::DoDPC() missed a reference release to balance the
acquired reference before queuing the DPC, resulting in the
CreateThreadEvent objects being leaked.

This also removes the destructor that tried to cancel the DPC. Since
the class is reference counted and only destroyed when the DPC has
run and released the last reference, this didn't make much sense.
2014-11-01 16:32:04 +01:00
Michael Lotz f00353a519 posixtestsuite: Normalize line endings. 2014-11-01 15:43:43 +01:00
Michael Lotz 91e3b80197 {app|input}_server: Provide app_server team id to input_server.
For cases where a BMessage is passed by area, the remote team id needs
to be passed into BMessage::_SendMessage() so it can transfer the area
to the target team. It falls back to detecting the port owner if said
information is missing. However, since the input_server owns the port
in this situation, the remote team needs to be specified explicitly.
Add the app_server team id to the input acquire message, so input_server
gets the needed info.

As messages that exceed the pass by area threshold are rather rare in
general and shouldn't happen at all in this situation, this does not
fix any immediate problem.
2014-11-01 10:26:38 +01:00
Michael Lotz a0b6efc8c0 BMessage: Check message area is owned by the current team.
When a message is passed by area, the sender is supposed to transfer
area ownership to the target team. If the area is not mapped within
the current team, accessing the area address would be invalid.

Also mark the area as read-only so accidental writes to the area would
become obvious.
2014-11-01 10:26:37 +01:00
Michael Lotz d3344ffccf BMessage: Check the return of _CopyForWrite().
When a message is passed by area, any modification to the message must
first trigger a copy of the message content. The success of this
operation was not checked however, possibly leading to later reallocs
on non-heap memory.
2014-11-01 10:26:37 +01:00
Michael Lotz 6a80e6889a kernel: Fix missing reference to team/thread in signal events.
The signal to the team/thread is only actually sent in a deferred
procedure. To ensure that the team/thread stays valid between the DPC
being queued and it actually running, we need to acquire a reference.

Fixes #11390, where the DPC was run after the team was already
destroyed.
2014-10-31 16:16:37 +01:00
Michael Lotz 00460996cf btreeTest: Change include for debug helpers.
Including BPlusTree.h pulls in the common versions of the debug macros
(via the Debug.h from BFS) and therefore avoids redefinition warnings.
2014-10-30 00:42:50 +01:00
Michael Lotz 64bb360b8c btreeTest: Remove equal sign from preinclude argument.
No separator at all (no space and no equal sign) seems to be the only
version that is accepted by both GCC versions.
2014-10-30 00:42:50 +01:00
Michael Lotz 488289a4a9 btreeTest: Fix build with gcc2. 2014-10-29 23:47:37 +01:00
Michael Lotz f65b805f6f Fix build of intel partitioning add-on by building its own MBR.
It previously shared the same generated MBR header with bin/writembr,
but they have incompatible needs. The intel partitioning add-on only
wants the MBR code, while writembr wants the whole sector.

Build the desired version of the MBR separately for each target instead
of sharing a single header.
2014-10-29 23:29:18 +01:00
Michael Lotz a264790727 writembr: Fix too short MBR due to wrong compile flags.
The compile flags were set so that only the boot code itself would be
produced, excluding the (dummy) partition table and signature. The code
in writembr still assumed that the MBR would be 512 bytes however and
therefore access the data array out of bounds.

Fix flags to produce the full 512 byte MBR sector and add a
STATIC_ASSERT so that the size assumption is checked on compilation.

Also fix a typo in mbr.nasm, mostly to trigger re-generation of the
MBR data that one would otherwise need to remove manually...

The two out of bounds array accesses were pointed out by CID 1249923 and
CID 1249924, the insufficiently large target buffer of the memcpy by
CID 1249901.
2014-10-29 22:49:55 +01:00
Michael Lotz 52d500e5b4 kernel: Workaround for double lock of spinlock in user timers.
The thread that is being [un]scheduled already has its time_lock locked
in {stop|continue}_cpu_timers(). When updating the TeamTimeUserTimer,
the team is asked for its cpu time. Team::CPUTime() then iterates the
threads of the team and locks the time_lock of the thread again.

This workaround passes a possibly locked thread through the relevant
functions so Team::CPUTime() can decide whether or not a thread it
iterates needs to be locked or not.

This works around #11032 and its duplicates #11314 and #11344.
2014-10-29 00:25:37 +01:00
Michael Lotz 831abecd6a kernel: Fix unbalanced release of sync object in FD select race.
When a file descriptor is closed between being selected and adding the
select info to its IO context, the select info needs to be cleaned up.
This is done by deselect_select_infos() which unconditionally also put
the select_sync associated with the infos. In this special case we do
not yet hold a reference to the select_sync however, so avoid putting
the corresponding sync object.

Fixes #11098, #10763 and #10230.
2014-10-26 00:30:08 +02:00
Michael Lotz 1180b66081 PowerStatus: Implement battery low/critical notifications.
It shows a notification once the "low percentage" is reached (currently
at 15 percent) and once when the battery is about to die. This logic
should probably be revised to be based on remaining time instead. The
notification icons are simple variations of the PowerStatus icon.
2014-10-23 20:07:21 +02:00
Michael Lotz e9922e775f haiku_loader: Fix wrong size of gBootGDT on x86_64.
The BOOT_GDT_SEGMENT_COUNT was based on USER_DATA_SEGMENT on both
x86 and x86_64. However, on x86_64 the order of the segments is
different, leading to a too small gBootGDT array. Move the define to
the arch specific headers so they can be setup correctly in either case.
Also add a STATIC_ASSERT() to check that the descriptors fit into the
array.

Pointed out by CID 1210898.
2014-10-22 21:06:07 +02:00
Michael Lotz 24e159e1ac btreeTest: Revive test for BPlusTree implementation.
* Update pseudo cache with minimal set of block cache API.
* Update Inode, Journal and Volume stubs to current API.
* Add stubs for remaining VFS functions.
* Extend tests to also call BPlusTree::Validate() and bail on errors.
* Change duplicate tests to fill in the same value. While this isn't
  strictly allowed, the tree validation can't work unless the values
  match up.
* Lots of coding style cleanup, but much more should still be done...

The tests run through without errors.
2014-10-21 00:24:45 +02:00
Michael Lotz 9656eef895 libkernelland_emu: Fix wrong return in ModuleList::AddModule(). 2014-10-21 00:08:48 +02:00
Michael Lotz 04ed6105f1 libkernelland_emu: Fix missing using namespace std for GCC4. 2014-10-21 00:07:16 +02:00
Michael Lotz 893367cf30 libkernelland_emu: Sync _rw_lock_{read|write}_unlock API.
The threadsLocked parameter was removed from the kernel API.
2014-10-21 00:04:24 +02:00
Michael Lotz 4101aaedc7 libkernelland_emu: Remove deleted scheduler.cpp from build.
The file was removed in hrev47484, but the Jamfile wasn't updated.
2014-10-21 00:00:54 +02:00
Michael Lotz 33d9fb8663 BFS: Fix check of key compare in BPlusTree::_ValidateChildren().
In ba32021824 the key comparison was fixed
to use a compatible version. Since then the check can actually return
results other than -1. The check done on the result was too strict
however. The child nodes may never contain keys that are larger than the
keys they are reached by. But the last key of a child node may be equal
to the one in the parent. This change fixes the check to take this
special case into account.

Fixes #11026 and #11289. The issue was unproblematic in so far that it
was only hit during a filesystem check and, since BPlusTree does not
yet attempt to correct corrupted trees, did not result in any actual
actions.
2014-10-20 22:47:56 +02:00
Michael Lotz 368dd37798 runtime_loader: Fix missing include of util/kernel_cpp.h.
Due to the missing include, the builtin new and delete operators were
used in those two files instead of the ones from the include used
everywhere else in the runtime_loader.
2014-10-18 21:58:08 +02:00
Michael Lotz 8ea3e9126d Typo: Fix doubled "not" in comment. 2014-10-18 19:32:33 +02:00
Michael Lotz cf302a3861 Appearance: Increase max font size to 24 and add 16 to the list.
The list went up to 24 already, but was capped by the previous max size
of 18. Adding 16 to the arbitrary list of font sizes closes the rather
large gap between font sizes 14 and 18 that were already in the list.
Providing a slider or text field for the font size would probably be
better in the long run.
2014-10-18 19:23:51 +02:00
Michael Lotz 8635eef042 freebsd_network: Check non-packaged data dir for firmware.
When loading firmware, check the system non-packaged data dir first,
then the system data directory (as before). This allows loading of
firmware that doesn't reside in the system package.
2014-10-18 18:48:19 +02:00
Michael Lotz cd506e763c Add FreeBSD WLAN drivers to x86_64 images.
Tested working with iprowifi4965, the rest at least compiles.
2014-10-18 18:48:18 +02:00
Michael Lotz 84c7fd129a Update glib2, qemu packages for x86_64. 2014-10-18 17:10:32 +02:00
Michael Lotz cc9efa0e97 Update {glib2|pkgconfig}[_x86_gcc2] and qemu for x86. 2014-10-16 21:16:36 +02:00
Michael Lotz 5ac86f880d Update qemu_x86 to version 2.1.2. 2014-10-15 22:10:51 +02:00
Michael Lotz d32ac3c120 Update glib2 and glib2_x86 packages to current revision.
This brings in fixed compatibility declarations of provided libs.
2014-10-15 22:10:50 +02:00
Michael Lotz bb9112df02 Cleanup: Remove doubled semicolon and a trailing whitespace. 2014-10-10 20:38:04 +02:00
Michael Lotz d98a3e026c package kit: Fix corruption of last package chunk on update.
PackageFileHeapWriter::_UnwriteLastPartialChunk() used ReadData() to
extract the last partial chunk into the pending buffer. This indirectly
calls PackageFileHeapWriter::ReadAndDecompressChunk(), which assumes
data past the last full chunk to come from the pending data buffer.

Since the pending data buffer is not filled in at that point, the call
to ReadAndDecompressChunk() simply did nothing, leaving the object with
a correctly sized but completely nulled pending data buffer. The last
partial chunk of a package would therefore always get corrupted when
updating a package.

Fixes #11306 that provided a reduced test case that happened to corrupt
the only chunk of a package, nulling the .PackageInfo and therefore
making the error more obvious as subsequent parsing of the info failed.
2014-10-09 23:41:39 +02:00
Michael Lotz 33046f3a8c keystore_server: Add missing B_NOT_MINIMIZABLE on requests.
The application access and key request windows were minimizable without
a way to get them back. Fixes #11313.
2014-10-05 23:04:38 +02:00
Michael Lotz 1d3ba85ae6 Update x86 qemu package to one with native Haiku backend. 2014-09-10 00:58:57 +02:00
Michael Lotz 42a91653ba kernel: Fix missing else in dump_page_queue debugger command.
The entered page queue address would always be overwritten. Pointed
out by CID 610504.
2014-09-07 13:18:03 +02:00
Michael Lotz aba4cb2085 NetworkStatus: Sort wireless networks by signal strength. 2014-09-05 00:28:30 +02:00
Michael Lotz 064018fbf1 UHCI: Reject request debug transfers on control pipes.
Requests aren't handled in the debug transfer code path and would
end up in wrongly constructed descriptor chains.
2014-09-01 00:12:37 +02:00
Michael Lotz dbd527de10 usb_keyboard: Try clearing endpoint stall on transfer failure.
As the keyboard is used from usb_hid in the userland as well, we quite
probably are not in sync with the data toggle. Clearing the stall
should restore the toggle and make things work.
2014-08-31 23:02:31 +02:00
Michael Lotz e31cac6e5a USB: Implement usb_clear_stall kernel debugger command.
It constructs a clear feature request for the endpoint halt selector
and sends the request using debug transfers. Clearing a stall condition
can be done safely and has one nice side effect: it reinitializes the
data toggle to a known state. This command can therefore be used when
a pipe is possibly used from userland as well and the data toggle may
therefore be out of sync.
2014-08-31 23:02:30 +02:00
Michael Lotz 326645d2da usb_keyboard: Simplify to generalized usb_process_transfer. 2014-08-31 23:02:29 +02:00
Michael Lotz 159aa93b31 USB: Generalize logic for debug transfers used within KDL.
Pull debug transfer methods into the base BusManager class and
implement them for UHCI and EHCI. This makes it possible to have a
single debugger command installed by the USB stack instead of HCI
specific ones.
2014-08-31 23:02:29 +02:00
Michael Lotz dd89f967a7 usb_keyboard: Add support for debug keyboards on all HCIs.
Check for support of debug transfers from all HCIs and use the ones
that provide it.
2014-08-31 12:08:21 +02:00
Michael Lotz b0e1d28d2b USB: Cleanup hardcoded bitmap size. 2014-08-31 12:08:21 +02:00
Michael Lotz 2747989d9e USB: Warn if debug allocation does not fit debug chunk size. 2014-08-31 12:08:20 +02:00
Michael Lotz 9c0623a8f2 USB: Increase debug chunk size from 64 to 128 bytes.
The queue head structure in EHCI is bigger than the previous debug
chunk size. Multiple allocations therefore overwrote eachother.
2014-08-31 12:08:19 +02:00
Michael Lotz 21c0d3131d USB: Remove check for UHCI in get_usb_pipe_for_id kdl command.
The bus managers check that the pipe belongs to them in their
respective debugger commands.
2014-08-31 12:08:19 +02:00
Michael Lotz 4182d2cadf EHCI: Cleanup member declaration order to match definition. 2014-08-31 12:08:18 +02:00
Michael Lotz 7cbae3c969 EHCI: Implement debug transfers. 2014-08-31 12:08:17 +02:00
Michael Lotz d7626f8db3 EHCI: Move locking to be only around actually critical section. 2014-08-31 12:08:17 +02:00
Michael Lotz 63cf3cfa11 EHCI: Simplify short packet logic to use alternate pointer.
The alternate pointer is the software equivalent of the alternate
physical address in the hardware queue head part. The controller
follows that path, so we can follow the alternate pointer as well.
Simplifies and generalizes the logic.
2014-08-31 12:08:16 +02:00
Michael Lotz a9b9faceeb fs_shell: Include strings.h to fix build under Haiku. 2014-08-13 23:13:13 +02:00
Michael Lotz 88b722965a exfat: Add missing locking around SplayTree lookup/insertion.
A lookup in a splay tree does move the looked up entry to the root of
the tree. This means the tree structure is modified on lookup alone.
Obviously the tree structure is also modified when inserting new nodes.

For both of these reasons access to the f{Node|Ino}Tree needs to be
locked on lookup and insert.

Fixes crashes when the tree is concurrently modified by multiple threads
accessing the same exfat volume.

In addition this protects the fNextId field that hands out new inode
ids.
2014-08-10 22:18:53 +02:00
Michael Lotz 57d8dd92ef pthread_join: Retry when interrupted as mandated by POSIX.
The spec explicitly states that pthread_join shall not return EINTR, so
we have to retry the wait when it gets interrupted instead of letting
the error code through.
2013-12-07 14:15:05 +00:00
Michael Lotz bab9e168ab MediaPlayer: Add Duration, Position and Seek properties.
These allow getting the duration of the currently playing item and the
current playing position as well as setting the absolute position and
seeking by relative time via scripting.
2013-11-24 22:37:34 +01:00
Michael Lotz 2937bbe3bc MediaPlayer: Move winding code into its own function. 2013-11-24 22:37:27 +01:00
Michael Lotz dcc56bf748 BNetEndpoint: Fix socket leak and reduce Accept() overhead.
When using the copy constructor of BNetEndpoint the socket of the
original endpoint gets dup'ed. The Accept() method later directly reset
the fSocket member of the newly created BNetEndpoint to the socket
returned by accept(). The socket dup'ed by the copy constructor was
therefore leaked.

Of course dup'ing the socket and copying the local and remote addresses
is superfluous in the accept case, as these members all get set to new
values. To reduce that overhead there is now a new private constructor
that directly gets the final socket and remote and local address.
2013-11-24 22:36:29 +01:00
Michael Lotz ec4d0e426d BMediaNode: Handle port read syscall interrupts by retrying.
The syscall might be interrupted, especially in signal heavy
applications. In that case we need to retry the read until the timeout
runs out. since the timeout is already absolute we don't need to adjust
anything.
2013-05-05 21:16:45 +02:00
Michael Lotz dff48661fd intel_extreme: Remove redundant cast of argument. 2013-05-05 18:27:01 +02:00
Michael Lotz f5d67f3f4d intel_gart: Fix build after argument type change. 2013-05-05 18:26:57 +02:00
Michael Lotz 8a43cad2ef BPlusTree: Fix fCurrentKey in backward TreeIterator traversal.
When reaching the next node the current key should be set to the next
valid index within that node (0 for forward and NumKeys() - 1 for
backward). This did not cause any harm as BFS uses forward traversal
only.
2013-05-02 23:26:05 +02:00
Michael Lotz 50ef2db4a8 BPlusTree: Fix GCC4 false positive of possible unintialized use. 2013-05-02 23:26:04 +02:00
Michael Lotz 1a5e87cc64 haiku_loader: Reuse BPlusTree implementation of the BFS add-on.
Instead of having an almost exact, albeit read only, duplicate of the
implementation.
2013-05-02 23:26:03 +02:00
Michael Lotz 6b65a838e0 BPlusTree: Style cleanup only, no functional change. 2013-05-02 23:26:02 +02:00
Michael Lotz a01dd96346 Return more than a single dirent at a time in bfs_read_dir().
Return as many dirents as fit into the provided buffer. The readdir()
implementation in libroot tries to get many dirents and caches them to
reduce the amount of syscalls and the associated overhead.

This reduces the syscall count dramatically for use cases where a lot
of directories are enumerated. A "git status" on a Haiku repository for
example goes from over 50k read dir syscalls down to just under 7k.
The performance gain is only around a moderate 5% in that use case
though.
2013-04-28 13:36:20 +02:00
Michael Lotz 91b4626a78 Check for and report an error on key buffer overrun.
This usually wasn't a problem as the key buffer is generally large
enough to hold a single value. Still on short buffers or very long
it could have silently overrun before.
2013-04-28 13:33:05 +02:00
Michael Lotz c4dbefe0b4 Fix build with tracing turned on. 2013-04-28 03:45:55 +02:00
Michael Lotz d057026dc4 Poll more frequently for the first explore.
This reduces needless waiting for the special case of the polled and
synchronous first explore.
2013-04-28 03:45:53 +02:00
Michael Lotz 22af7532d1 Reduce port reset recovery time from 250ms to 50ms.
The specs say the reset recovery time is 10ms only. The extra 40ms are
taken from the Linux hub driver.
2013-04-28 03:45:52 +02:00
Michael Lotz 827c7224a0 Implement debounce sequence according to USB 2.0 specs.
This replaces waiting a fixed time of 300ms for the device power to
stabilize. In the ideal case this reduces the boot time by 200ms per
connected device (including internal hubs).

This is very similar to what Linux implements and we use the same time
values. An interval of 25ms is used to check for connection state
changes, the stable time is at least 100ms as per the USB specs and the
whole process times out after 1.5 seconds.
2013-04-28 03:45:51 +02:00
Michael Lotz a064168869 Fix truncation of comparison value introduced in 848acd67.
Casting the difference of the two off_t values to size_t may truncate
the result. Doing so before the comparison will therefore break it.
Instead cast the size to off_t to get around the signed versus unsigned
integer expression comparison and then cast the result of the comparison
to size_t again. Should fix #9714.
2013-04-27 18:42:05 +02:00
Michael Lotz a9abcc37cd Rework initial auto joining and add big TODOs.
* If we have a configured network, then we always try to connect to it
  as soon as the interface has been brought up.
* If we don't have a configured network and are auto configuring, we
  use the AutoconfigLooper to also do initial auto joins.
* Before issuing auto joins we need to wait for scan results to come
  in, so we watch for corresponding messages.

For now auto joining is a one shot attempt as the infrastructure to
properly tell reasons for scans apart is not yet there.
2013-04-02 04:59:44 +02:00
Michael Lotz e484cc5098 Store the active flag if there is an initial link.
This ensures that we don't spuriously re-detect a link if we have a
race between starting to watch for link state changes and detecting the
initial link.
2013-04-02 03:16:06 +02:00
Michael Lotz 274b8be6c4 Don't try to auto-configure network interfaces with no link.
We already start watching for link state changes, so as soon as a link
is established the configuration will be triggered.
2013-04-02 02:57:14 +02:00
Michael Lotz 1b3dd41a35 Never join a network if not explicitly configured.
The scanning still occurs so that the network list is populated. But if
no SSID has been explicitly configured, we now always set the
IEEE80211_SCAN_NOJOIN flag that prevents automatically joining open
networks at the end of the scan.
2013-04-02 02:33:21 +02:00
Michael Lotz 6e77a76ef9 Use the SSID supplied in the MLME request not the desired SSID.
The wpa_supplicant (rightfully) supplies the SSID with this request.
However, with the code that is in place it gets ignored and the desired
SSID, as set by IEEE80211_IOC_SSID is used instead. This still works if
the wpa_supplicant is the only client in use and IEEE80211_IOC_SSID
is never used, as then the mlme.im_macaddr is used as the only
identifying element. If we used IEEE80211_IOC_SSID before though, for
example because we joined an open network from the net_server directly,
there will always be a mismatch between the desired SSID and the one
the wpa_supplicant tries to associate with using this MLME request.
No association is then possible. As there is no obvious reason why the
request supplied SSID shouldn't be used, we simply do so.
2013-04-02 01:18:09 +02:00
Michael Lotz 50944289c6 Use the wpa_supplicant to join open networks if it is running.
We need to make sure that the wpa_supplicant knows about our intention
even when joining an open network, as it otherwise might interfere.
Since leaving a network is not synchronous and the wpa_supplicant is
already running in that case anyway, this seems easier and more
reliable.

If the wpa_supplicant is not already running we still join ourselves.
2013-04-02 01:18:07 +02:00
Michael Lotz 0ef15eb6b9 Rename _ConfigureInterfaces() to *FromSettings().
This makes it more obvious what the function does.
2013-04-02 01:18:04 +02:00
Michael Lotz 2ac5770dc7 Don't automatically join a network if we already have a link.
The _ConfigureInterface() method is used as a backend for all
configuration tasks. That includes setting addresses manually or by
DHCP and changing flags, mtu or metric. Therefore we can't join
networks every time it is invoked. Instead we check for an existing
link first and only try to join if there is none yet.
2013-04-02 01:18:01 +02:00
Michael Lotz 8163a8e0ef Use a BMessenger to check for wpa_supplicant availabiltiy.
* Only launch it on join requests if it isn't yet valid anyway.
* Don't do any work on leave requests if it isn't running at all.
2013-04-02 01:17:58 +02:00
Michael Lotz 4e66f871e5 Launch the keystore_server on demand from BKeyStore.
This allows leaving the keystore_server closed as long as it isn't
used and still avoids having to launch it manually.
2013-04-02 01:15:29 +02:00
Michael Lotz 6de478363e Add BMessenger::SetTo() to reinitialize a BMessenger.
This allows to reuse BMessenger objects for different targets, or to
recheck validity after initial creation. With that one can use the same
BMessenger after launching an application that was previously not found
valid for example.
2013-03-31 20:16:04 +02:00
Michael Lotz 32057ce922 If a keyring is empty, store a no data flag instead of failing.
Any fully empty keyring (no keys and no applications) would fail to add
the empty flat buffer and thus prevent the whole keystore database from
being stored. This could easily happen when you used separate keyrings
but the master keyring was left unused for example.

Adding a flag that tells that there is no data allows us to distinguish
between a case where the stored data is missing due to a problem versus
an actually empty buffer.
2013-03-31 18:30:39 +02:00
Michael Lotz fa21184f24 Implement leaving networks on the net_server side.
We always try to reach the wpa_supplicant first. If it isn't running
we check if this might have been a network we've connected directly
and then just disassociate using an MLME disassociation request.
2013-03-31 03:22:21 +02:00
Michael Lotz 93c2c2aa6b Update wpa_supplicant to version 2.0 and bring in improvements.
* Updated to version 2.0 of vendor code.
* Reliability improvements in controlling the underlying devices.
* Implement leaving networks.
* Better timeout handling.
* Usability enhancements like cancel on escape, ok button being the
  default and the password field having focus on start.
* Storing of the password using BKeyStore.
2013-03-31 03:01:08 +02:00
Michael Lotz f848907875 Implement storing persistent network configurations.
The API to add persistent networks was added back in r42807 and
r42816 but storing them was still missing.
2013-03-31 00:43:32 +01:00
Michael Lotz a3a541eebd Make a copy of the network config message and store that one.
Using the original message and storing that into the settings resulted
in a not yet fully understood deadlock. Presumably related to missing
and/or stray replies.
2013-03-30 20:17:39 +01:00
Michael Lotz 4e186e6a31 Add IEEE80211_IOC_HAIKU_COMPAT_WLAN_{UP|DOWN} compat requests.
They can be supplied as request type codes to SIOCS80211 are added to
allow overcoming a difference between how Haiku and FreeBSD handle
network drivers.

In FreeBSD a device can be set into the down state but is still fully
configurable using the ioctl interface. The Haiku network stack on the
other hand opens and closes the driver on the transition form up to
down and vice versa. This difference can become problematic with ported
software that depends on the original behaviour.

Therefore IEEE80211_IOC_HAIKU_COMPAT_WLAN_{UP|DOWN} provide a way to
achieve the behaviour of setting and clearing IFF_UP without opening
or closing the driver itself.

The wpa_supplicant will use this in its BSD driver instead of actually
setting the interface down and then failing all other ioctls.
2013-03-29 23:58:48 +01:00
Michael Lotz 18004d3ac0 Avoid trying to set the media to Ethernet for WLAN devices.
It didn't really harm, but would always try to find a corresponding
media, fail and print an error.
2013-03-29 23:58:47 +01:00
Michael Lotz 066ca38aea Include the actual error message in usb_disk debug output. 2013-03-23 21:42:24 +01:00
Michael Lotz c5469c3939 Add missing check for unlocked state. 2013-03-05 11:05:02 -05:00
Michael Lotz d3b8b801a8 Fix missing write of the keystore database on app removal. 2013-03-05 11:05:00 -05:00
Michael Lotz ae542b141d Add setting/removal of keyring unlock keys to the cli app. 2013-03-05 11:04:59 -05:00
Michael Lotz 4a0460a9bc Add generic unlock key setting and removal.
* Replace {Set|Remove}MasterKey() by generic {Set|Remove}UnlockKey()
  that works on a keyring.
* Implement {Set|Remove}MasterUnlockKey() on top of that.
* Rename the commands and constants accrodingly.
* Implement setting and removing keyring unlock keys.
2013-03-05 11:04:57 -05:00