is useful for bringing up (and using) an unconfigured interface. Specifically, DHCP
will be using this method to get the broadcast out.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19435 a95241bf-73f2-0310-859d-f6bbb57e9c96
within the library - theoretically, this mechanism could be extended to
turn the compatibility layer on and off based on the images that call the
functions (allowing to mix R5 and BONE network add-ons in a single executable).
This change fixes R5 networking apps such as Vision, and NetworkTime (both
now seem to work fine under Haiku).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19431 a95241bf-73f2-0310-859d-f6bbb57e9c96
* SendData() could return an error and still wanted to own the buffer passed in
* Removed the timeout computations from SendData() - looks like it's usually
done the simple way when the data has to be submitted in smaller packets.
* ReadData() no longer blocks in case the peer has closed the connection.
* More debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19430 a95241bf-73f2-0310-859d-f6bbb57e9c96
LockExclusiveAccess() (meaning more or less access to the
frame buffer)
* extracted the AGGTextRenderer to be a global instance used
by each Painter instance (currently, it is thread safe because
of the global font lock, so there is some work left in this
regard)
* gave every ServerWindow it's own DrawingEngine instance, this
is work in progress. So far, there doesn't seem to be a regression,
but less fighting over the exclusive access to the frame buffer, now
each ServerWindow thread can draw in parallel. There is room for
improvement, plus I think I'm leaking the DrawingEngine...
* changed the locking for the software cursor. ShowSoftwareCursor()
can only be called if HideSoftwareCursor(BRect) returned true, or
if you called the generic HideSoftwareCursor(), since it needs
to keep the cursor lock and unlocks in Show...!
* some clean up and renaming in Decorator and friends
* moved PatternHandler.h to live along with the .cpp
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19427 a95241bf-73f2-0310-859d-f6bbb57e9c96
* endpoints are no longer deleted without unbinding them.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19417 a95241bf-73f2-0310-859d-f6bbb57e9c96
* there are now two hash tables: one for connections, and one for ports
* the first one is used to find the endpoint for incoming connections
* the latter is used to check if the address to bind() to is still available
(incl. support for SO_REUSEADDR, and SO_REUSEPORT). Specialising an existing
socket is not allowed, though; wildcard sockets need to be started last.
* the TCPConnection class now has a pointer to the next endpoint with the
same port number - this list is scanned for the existing bound sockets
on that port.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19416 a95241bf-73f2-0310-859d-f6bbb57e9c96
(and also improved performance of rendering icons, the background
was cleared for no reason on each Draw() call) However there
must be a bug still in the app_server which causes GetClippingRegion()
to return an out-of-date clipping region (R5 has the very same bug
though)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19413 a95241bf-73f2-0310-859d-f6bbb57e9c96
so frequently when unflattening R5 messages (each mouse event arrives
as an R5 message in the test environment): unflatten_r5_message()
retrieved the pointer to the message header, but afterwards cleared
the message... resulting in the header pointer to be invalid.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19412 a95241bf-73f2-0310-859d-f6bbb57e9c96
and friends; the correct behaviour is to not let those opcodes go deeper in the stack
(ie. when calling control() on the socket).
* Fixed compilation with debugging output turned on.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19410 a95241bf-73f2-0310-859d-f6bbb57e9c96
* No need to set data_node::header in the loop - this is already done in add_data_node().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19408 a95241bf-73f2-0310-859d-f6bbb57e9c96
until it could send all the data.
* The window shift option can now also be send if the actual option is zero to
indicate we support this option.
* If the window shift is not specified, we'll fall back to 0 for our receive
window as well now.
* _SendQueued() now resets the segment options after SYN.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19407 a95241bf-73f2-0310-859d-f6bbb57e9c96
the initial buffer wasn't empty.
* Enlarged the minimum header size a bit (one more data_node).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19406 a95241bf-73f2-0310-859d-f6bbb57e9c96
the send queue (however, if the buffer sent is larger than the maximum
buffer, it will just hang for now...). The check is also not thread-safe.
* BufferQueue::Get() did not correctly maintain the fFirstSequence member
in remove mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19403 a95241bf-73f2-0310-859d-f6bbb57e9c96
of a LISTEN socket.
* Reading data should now more or less work, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19401 a95241bf-73f2-0310-859d-f6bbb57e9c96
* socket_recv[from]() now accept a NULL buffer in case there was nothing to read.
* the tcp_tester's server thread now actually reads the data it receives.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19400 a95241bf-73f2-0310-859d-f6bbb57e9c96
to allow other protocols (like TCP) using the socket module.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19399 a95241bf-73f2-0310-859d-f6bbb57e9c96
was a stupid oversight, and should improve the responsiveness of the UI under load
a lot. Thanks Stefano!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19398 a95241bf-73f2-0310-859d-f6bbb57e9c96
improved a bit the read output
published the acpi device module
minor cleanup in pci module
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19397 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added some timer methods
* Fixed removing the connection too early (and thus replying with a RST instead of nothing
when the peer acknowledged our FIN).
* BufferQueue::RemoveUntil() did not bump the buffer's sequence
* Delayed acknowledge, and retransmitting should work now (the latter is *very* basic
right now)
* Completed TCPConnection::_ShouldSendSegment()
* fReceiveNext was always updated on a received buffer, even if there was a buffer
missing.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19396 a95241bf-73f2-0310-859d-f6bbb57e9c96
commented the insertion of the attribute name in patterns in the case of a string attribute
notify_probe_by_file chooses a module based on a bus specific suffix
dm_register_child_device has a parameter to optionally check the support for the node
added scanning of bus devices after the boot filesystem is mounted
fixed dm_rescan, locking was misbehaving
fixed SYSTEM_DRIVER_REGISTRATION definition
added B_DRIVER_MAPPING attributes for PCI and ACPI devices:
%vendor%_%device% for PCI, hid_%hid% and type_%type% for ACPI
moved acpi_device_module_info definition to public ACPI.h
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19394 a95241bf-73f2-0310-859d-f6bbb57e9c96
* cancel_timer() cancels a timer, and returns true if the timer was running
* is_timer_active() determines if the timer is currently running or not.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19393 a95241bf-73f2-0310-859d-f6bbb57e9c96
changes in the HWInterface (ie on mode switch)
* initialization and shutdown of the HWInterface instance no longer
go through DrawingEngine, which had nothing to do with it in the
first place
(this is in preparation of giving each ServerWindow it's own
DrawingEngine instance)
* small performance improvement in ViewLayer::ScrollBy()
* some cleanup in ServerConfig.h
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19391 a95241bf-73f2-0310-859d-f6bbb57e9c96
but use integer coordinates. These are now used in ViewLayer for the
coordinate system (layout, scrolling offset, view bitmap layout)
* modest performance improvements by inlining some very often used
methods, and by preventing to go down the entire layer tree too often,
for example InvalidateScreenClipping was always called in the deep
mode, therefor it is save to assume that the tree does not have to
be traversed as soon as the clipping is already invalid
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19390 a95241bf-73f2-0310-859d-f6bbb57e9c96
or something else, but I don't think the change is bad (changed
ServerProtocol.h from a local header to a system header)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19388 a95241bf-73f2-0310-859d-f6bbb57e9c96