* the member will now also be shown when dumping a team.
* minor cleanup: moved fill_team_info() into the private functions part of the file.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19551 a95241bf-73f2-0310-859d-f6bbb57e9c96
work for you, too? If not, just replace it with yours again.
* Added resolution 1680x1050 from nVidia driver.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19525 a95241bf-73f2-0310-859d-f6bbb57e9c96
bring it down in that case). This fixes the problem that you couldn't bring an
ethernet interface up again, after you deleted it once.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19524 a95241bf-73f2-0310-859d-f6bbb57e9c96
* essentially, it makes sure certain bits in the PCI config are set
* also added two more device IDs, which I have disabled for now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19515 a95241bf-73f2-0310-859d-f6bbb57e9c96
caused by the TCP implementation (it doesn't support urgent data yet!).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19513 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Now should adhere to the specs with regard to filling the DHCP_REQUEST messages
in BOUND/RENEWAL/REBINDING states.
* Now take over the times for renewal/rebinding state from the DHCP server, if any,
or falls back to 2/3 and 5/6 of the original lease time.
* The lease time was accidently shortened twice (to compute the renewal time, in
case that was missing).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19489 a95241bf-73f2-0310-859d-f6bbb57e9c96
* The subdirectory is called "libtelnet" instead of "telnet" (as usual), since telnetd
expects some headers to be found in libtelnet/ (which I could have changed as well,
just in case you very much prefer telnet/).
* I needed to disable some stuff to make it compile, and it's absolutely not tested,
so it might as well not work yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19488 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Now prints out the domain name as suggested by DHCP (option 15).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19486 a95241bf-73f2-0310-859d-f6bbb57e9c96
that prints out the renewal/rebinding times as well - maybe those should be
preferred when they are there.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19484 a95241bf-73f2-0310-859d-f6bbb57e9c96
* The DHCPClient is now added to its looper before doing the negotiation, so that
it's BMessenger is already valid.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19478 a95241bf-73f2-0310-859d-f6bbb57e9c96
Unfortunately, the driver does not compile yet with our GCC version.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19471 a95241bf-73f2-0310-859d-f6bbb57e9c96
previous commit).
* Removed the acceptance of a missing DHCP acknowledge message.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19470 a95241bf-73f2-0310-859d-f6bbb57e9c96
the actual cause that my router didn't send an acknowledgement (qemu didn't care) :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19469 a95241bf-73f2-0310-859d-f6bbb57e9c96
* The lease time wasn't printed correctly.
* if the DHCP acknowledge message never comes, we won't try
forever, but will just stop early and assume the IP address
we have is okay (looks like my router doesn't send DHCP_ACK).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19463 a95241bf-73f2-0310-859d-f6bbb57e9c96
(indicated by MSG_BCAST).
* ARP should now be able to resolve addresses with an unconfigured interface as well.
* datalink_is_local_address() now uses interfaces without an address as a fallback
in case no more specific interface could be found.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19460 a95241bf-73f2-0310-859d-f6bbb57e9c96
currently only triggered when there is no configuration file - it can't be configured
this way yet.
All DHCP currently does is to send a UDP broadcast DHCP discover message. More to come.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19437 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
* 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 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
* 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
* 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
"flags" parameter - this can't be used with retransmitting anyway, and since
the flags are actually fixed per state, the previous solution didn't really
make much sense.
* Made _SendQueued() work a lot more like BSD's tcp_output().
* We can now send even large buffers that need more than one segment at once.
* Added a simple recursive locking mechanism for now - this should be done
differently, though, as we want to have good performance in full duplex mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19384 a95241bf-73f2-0310-859d-f6bbb57e9c96
that can be set via setsockopt().
* For now, the struct tcphdr and its definitions are also part of the header.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19383 a95241bf-73f2-0310-859d-f6bbb57e9c96
so that the buffer could be smaller than the one requested.
* Rewrote data_node management in the header; now, every data_node knows where it's
placed, and can be actually discarded as needed.
* Rewrote free space management in the header: there is now a free chunk list, so
that all memory can be reused (it's currently only used for data_nodes anyway).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19382 a95241bf-73f2-0310-859d-f6bbb57e9c96
that the terminal's color is changed when the app is quit (or interrupted).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19381 a95241bf-73f2-0310-859d-f6bbb57e9c96
* the TCPConnection::Receive() method is now more or less working as it should;
of course, there are a number of missing things (like round-trip time estimation,
retransmit timers, receive window update, ...).
* reply_with_reset() was broken, and accidently always send the segment it should
answer with reset... (causing an endless loop during connect)
* BufferQueue::RemoveUntil() must always set the fFirstSequence member to the new
sequence, or you will never be able to send anything with that queue (as the
data in it would be no longer contiguous).
* connects, sendings (only single segments), and receiving data is working now
basically (but very incomplete); retransmits or even subsequent transmits (if
the data to be sent doesn't fit in one segment) doesn't work yet, so you better
don't lose any segments :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19378 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Changed the implementation to be more BSD like; state variables are now
the same set as usual.
* The BufferQueue didn't use the initial sequence correctly (problems with
SYN sequence).
* It now also removes data out of the current data set (ie. data that was
already read by the application).
* BufferQueue::Get() also didn't work correctly (the version used by sending
data).
* Fixed various issues around the code like incorrect handling of unexpected
data.
* TCP options don't need the end-of-options marker in case they fill up the
data already, also, the end-of-options marker doesn't need to be padded.
* Options are now only processed during SYN - other options may come
later (timestamps are candidate number one).
* Also broke what was working before: connections do no longer work!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19376 a95241bf-73f2-0310-859d-f6bbb57e9c96
if it won't be added anymore.
* Small fix for set_timer(): now set the timer->due field back to 0 when a
timer is removed - this prevented a timer from being correctly readded later
(possible crash)!
* net_buffer's append_cloned_data() now does some more checks to prevent unnecessary
work and detect wrong arguments.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19375 a95241bf-73f2-0310-859d-f6bbb57e9c96
* The MTU returned by the domain was too large; it should already take the
IP header into account.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19373 a95241bf-73f2-0310-859d-f6bbb57e9c96
(this was completely broken in the code before).
* Wrote a buffer queue class to replace the previous algorithm - instead of merging
all buffers together, they're kept in a list, so that the most work will be done
in the application's thread and only very little when the data is received; maybe
we should add an append_move() function to net_buffer, and use that instead,
though, to keep the number of fragments small.
* The advertised receive window is now bound to 65535, the receive window shift
is correctly computed, but not yet used.
* The new buffer queue is now also responsible for the send buffer.
* TCPConnection::ListenReceive() used the wrong address to retrieve the target route.
* Fixed TCPConnection::ReadData() to also return data when the connection is already
closed, and to wait if the connection is not yet established (in SO_NONBLOCK mode);
it still doesn't wait until data is available, though...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19372 a95241bf-73f2-0310-859d-f6bbb57e9c96
by the TCP implementation for its reorder and retransmit queues.
* The ipv4_fragment is no longer needed, as we can use the above field there
as well - this saves one extra allocation per received fragment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19369 a95241bf-73f2-0310-859d-f6bbb57e9c96
SO_RCVLOWAT, and SO_SNDLOWAT.
Lowered the default buffer size to be within the uint16 size.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19367 a95241bf-73f2-0310-859d-f6bbb57e9c96
receiving thread. While this steals away a test case for now (dead lock), it will
allow to reorder packets in a better way.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19363 a95241bf-73f2-0310-859d-f6bbb57e9c96
* you can now instruct it to drop specific packets
* you can now also define a round trip time for the packets
* added a "send" command to send arbitrarily sized buffers over TCP.
Not surprising, the current implementation of TCP doesn't do anything with
those (other than crashing as soon as you try to send data).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19362 a95241bf-73f2-0310-859d-f6bbb57e9c96
no arguments (or doesn't want them). We even already had the correct handler for
B_SILENT_RELAUNCH around :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19359 a95241bf-73f2-0310-859d-f6bbb57e9c96
if not really necessary; ie. you can now add timers without an extra performance
hit if it's not really required.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19354 a95241bf-73f2-0310-859d-f6bbb57e9c96
by Ioan Molnar - thanks!
Looks like our mbstowcs() function is broken, BTW - it needs to be disabled when
used under Haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19341 a95241bf-73f2-0310-859d-f6bbb57e9c96