Commit Graph

18622 Commits

Author SHA1 Message Date
Axel Dörfler
4dbe78a0cd Discarded the use of data_header::size in the last commit, but forgot to actually
remove it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19385 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-28 23:22:19 +00:00
Axel Dörfler
75dc7cb58a * Renamed _SendQueuedData() to _SendQueued(), and made it independent from the
"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
2006-11-28 23:07:56 +00:00
Axel Dörfler
0ce94a8f47 * Rewrote tcp.h header - however, I think it should only include the TCP options
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
2006-11-28 23:02:30 +00:00
Axel Dörfler
49961c1489 * Fixed a stupid bug in append_size() - it rounded the size-per-data_header value,
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
2006-11-28 23:00:33 +00:00
Axel Dörfler
03ac1086c1 Made sure that the colors are reset more often; it should now happen much less often
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
2006-11-28 22:00:12 +00:00
Stefano Ceccherini
f9e5811b92 forgot this file
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-28 14:57:37 +00:00
Stefano Ceccherini
0c48fc7c74 Enable state synching for ServerPictures. Fixes bug 520
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19379 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-28 14:52:51 +00:00
Axel Dörfler
8535905415 Some more work-in-progress:
* 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
2006-11-28 02:20:35 +00:00
Axel Dörfler
a9a07b7215 * Now disables debug output after startup (can be reenabled using the dprintf command)
* added a socket_notify() dummy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19377 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-28 02:12:03 +00:00
Axel Dörfler
1166a4f9b5 Work-in-progress on TCP:
* 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
2006-11-26 23:29:08 +00:00
Axel Dörfler
fc8c0ec946 * Small optimization for set_timer(): now only removes the timer from the list
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
2006-11-26 23:18:36 +00:00
Michael Lotz
8449c78396 Fixing build of the printing package for BONE and hopefully R5 too.
Now printing to that old HP LaserJet 2100 over an even older LPR print server from R5 with the PCL5 driver and LPR transport...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19374 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-25 20:06:18 +00:00
Axel Dörfler
817a7408d4 * Added new BufferQueue.cpp sources.
* 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
2006-11-25 16:14:40 +00:00
Axel Dörfler
5fcf044823 * Added a helper class tcp_sequence which hides the semantics of comparing sequences
(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
2006-11-25 16:13:30 +00:00
Axel Dörfler
3567d0cb1b Added more than one option was broken.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19371 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-25 16:02:07 +00:00
Axel Dörfler
224e38e302 Added function to append cloned data from another buffer (to be used by TCP).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19370 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-25 14:30:54 +00:00
Axel Dörfler
604d21a600 * Added an offset/sequence field to the net_buffer - this can and will be used
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
2006-11-25 11:29:36 +00:00
Axel Dörfler
7c0541c12f Build fix; I obviously forgot to compile the stack itself after the changes :-/
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-25 10:29:20 +00:00
Axel Dörfler
a627118936 Added support for setting/getting: SO_NONBLOCK, SO_RCVTIMEO, SO_SNDTIMEO,
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
2006-11-24 22:58:39 +00:00
Stefano Ceccherini
64a74d5eff close the menu immediately when user clicks outside the menu
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19366 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-23 21:39:49 +00:00
Axel Dörfler
b38e841106 Added support for simulating simultaneous connect (via the -s option).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19365 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-23 18:40:04 +00:00
Axel Dörfler
bed835af1e The TCP tester now also allows you to reorder random or specific packets.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19364 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-22 19:13:07 +00:00
Axel Dörfler
719aa9ff8c Decoupled receiving threads, so that the server as well as the sender get their own
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
2006-11-22 17:39:54 +00:00
Axel Dörfler
cc5496e34a Extended the TCP tester app a bit:
* 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
2006-11-22 16:57:22 +00:00
Waldemar Kornewald
7fc2eecefd Found out what trackTime was used for.
We should probably always start BMenuField menus in sticky mode and only switch
to non-sticky mode if the mouse was moved a minimum distance.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-22 12:30:56 +00:00
Axel Dörfler
2628e60cbc Moved BMenuWindow, BMenuFrame, and BMenuScroller into the BPrivate namespace.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19360 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-22 11:52:18 +00:00
Axel Dörfler
aa389c6b38 Now sends the B_SILENT_RELAUNCH message if the app is already running and has
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
2006-11-22 11:36:11 +00:00
Waldemar Kornewald
a7067566a1 Fixed menu disappearing bug when (in sticky mode) mouse button is pressed (and held down) and the mouse pointer is moved outside of the menu. Now, menus should work as expected and switch from sticky to non-sticky mode on mouse button press correctly.
BTW, I disabled trackTime. It seems to work without it, correctly, so I guess it can be removed completely.
If not, just revert the change ("if (system_time....") after TODO.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19358 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-22 11:32:35 +00:00
Philippe Houdoin
18741bc6ea * Fixed a crashing bug when no renderer add-on can be found.
std::map [] creates a new entry when none can be found!
* Disabled libmesa.a being build with DEBUG turn on, as it's broken ATM.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19357 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-22 00:09:06 +00:00
Jérôme Duval
92aa85ae8d reverted PCI change, now uses a dependency on the PCI bus manager
moved acpi_ns_dump driver into acpi bus manager (also removed from the hd image)
the exported fs path is now acpi/namespace
added some methods to ACPI bus and device new interfaces
ACPI nodes like _TZ_ or _SB_ aren't exposed as devices anymore
added a type to the acpi_device_info structure


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-21 23:36:02 +00:00
Philippe Houdoin
211e79ca4d Small verbose change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19355 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-21 23:29:51 +00:00
Axel Dörfler
390422241e Small optimization of the timer mechanism: the timeout is no longer updated
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
2006-11-21 23:20:41 +00:00
Philippe Houdoin
1da73a7b9b Enhanced the GL_RENDERER string returned.
Re-enabled SSE assembly code except for haiku target, until SSE stop crashing Haiku...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19353 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-21 21:52:02 +00:00
Philippe Houdoin
b901ec2715 Stop generating "xxxx, 0 second" uptime string.
How smallish and useless contribution I could do...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19352 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-21 21:05:35 +00:00
Stephan Aßmus
464cd15f0a * you can now assign styles to shapes that had none assigned before
* Transformer menu is correctly enabled/disabled when a shape is selected


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19351 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-21 20:41:12 +00:00
Waldemar Kornewald
0512e98939 Now, menu reacts on first mouse release after having disabled sticky mode on MouseDown.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19350 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-21 17:14:44 +00:00
Waldemar Kornewald
b26e9fb499 In sticky mode, menus should only invoke the selected item after the mouse is released (instead of immediately on MouseDown).
I hope this is the correct fix.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19349 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-21 16:01:11 +00:00
Stefano Ceccherini
e0fcf72ae0 Fixed some semi-random crashes in deskbar and tracker caused by the new scrolling code. patch by Lucasz Zemczak. Also now the menu tracking function checks the result of the userdefined tracking hook, thus fixing bug #938
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19348 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-21 14:54:44 +00:00
Stephan Aßmus
84153c7a0c * various UI improvements and fixes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19347 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-21 09:37:50 +00:00
DarkWyrm
31a0d05b20 Initial checkin. Definitely a work in progress. Content comes first and then formatting later. :^)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19346 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-21 00:24:51 +00:00
Stefano Ceccherini
e733c6856a Fixed bug 931 by using a different construct to redirect both stderr and
stdout to /dev/null


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19345 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-20 20:45:06 +00:00
Stefano Ceccherini
f7ee8c0d1c Removed bashisms from build_haiku_image, thus fixing part of bug 931.
There's still some weird output being printed, but building the mime 
database now works under dash too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19344 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-20 20:23:35 +00:00
Stefano Ceccherini
27cc25083e First try at menu scrolling, courthesy of Łukasz Zemczak. Works more or less, although a bit buggy
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19343 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-20 20:19:55 +00:00
Axel Dörfler
1941200400 Added unrar to the image as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19342 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-20 18:55:57 +00:00
Axel Dörfler
2c3cd1b95d Added unrar 3.6.7 to the repository. Most changes to the original versions done
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
2006-11-20 18:53:55 +00:00
Axel Dörfler
03ece74f5b Renamed x-rar-compressed to x-rar, fixed its contents, and added Expander as
default application.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19336 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-20 18:04:30 +00:00
Axel Dörfler
3e30cbdb1e Added option to the NetBufferPrepend constructor to prepend an arbitrarily sized
piece of data, instead of the type size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19335 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-20 17:56:17 +00:00
Axel Dörfler
a7470d6bd5 * The kernelland_emu now supports turning off debug output; tcp_tester can toggle
this option now using the "dprintf" command
* Added dump_block() function to kernelland_emu
* Added tcpdump-like output to tcp_tester for each TCP segment, lines from the
  server are red, lines from the client are black.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19334 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-20 17:38:21 +00:00
Axel Dörfler
75743fcd65 * Implemented adding/processing TCP options; so far only "max segment size" (MSS)
is really supported.
* Added TCP option fields to the tcp_segment_header structure - they are filled
  in on receive, and add_tcp_header() now gets a tcp_segment_header as well, and
  will add any options automatically.
* Fixed some minor bugs (connection with passive open had wrong state after connect).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19333 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-20 17:35:51 +00:00
Stefano Ceccherini
fc82227a6e I thought I had found the cause of a bug. Not the case. But still, this looks better.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19332 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-20 10:09:55 +00:00