* minor space cleanup
* support for revert enable amp for known models
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25420 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Patch by Shinta: switch between input methods are now not only done with Alt+Space but Alt+Zenkaku/Hankaku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25416 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Extended the scope of the Revert feature to include changes to the time zone.
* Moved the Revert button out of the tab view, so that it indicates the above
visually. The window now handles the Revert feature.
* Added Others/Greenwhich time zone which is equivalent to an "unset" time zone.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25415 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added BDiskDeviceRoster::GetDiskSystem() method, that can get a disk system
by short/pretty/module name - since they should all be unique, I put them
in a single namespace, please complain if you don't like that :-)
* Cleaned up DiskSystem.h and DiskDeviceRoster.h according to the updated
header guidelines.
* Renamed ntfs pretty name from "ntfs File System" to "Windows NT File System".
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25414 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed Track and Disc time labels to be large enough. (Fixes #2201.)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25412 a95241bf-73f2-0310-859d-f6bbb57e9c96
- changed comments to pragma comments for parse tables as it's huge, but sadly Pe doesn't make them clickable in the function list...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25409 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Made the access strategy to vnode::advisory_locking consistent.
get_advisory_locking() was guarding it with sVnodeMutex,
create_advisory_locking() was using atomic_pointer_test_and_set(), and
release_advisory_lock() just set it unguardedly. We do use sVnodeMutex
consequently, now.
* Beautified create_advisory_locking() (got rid of the gotos,
reorganized the control flow).
* Fixed race conditions in acquire_advisory_lock(). It was always
unlocking and relocking the advisory_locking object when it didn't
have to wait, but in the meantime someone else could have changed the
locking situation. Reorganized the control flow, so that it only drops
the lock when it has to fail or wait. Using create_advisory_locking()
upfront simplifies the code quite a bit (and fixes another race
condition).
APR's testprocmutex test seems happy now, at least.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25407 a95241bf-73f2-0310-859d-f6bbb57e9c96
* get_driver() now returns a result, as you may theoretically call it on
any node (and not just your parent, which is guaranteed to be there).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25406 a95241bf-73f2-0310-859d-f6bbb57e9c96
- prepare for VTIME and VMIN handling: allow waiting with timeout.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25405 a95241bf-73f2-0310-859d-f6bbb57e9c96
by the tty. Now I also understand the BeOS work-around to ignore SIGINT
in bash I removed recently.
I suppose the signal code is still needed for BeOS. If not please remove
it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25403 a95241bf-73f2-0310-859d-f6bbb57e9c96
- add 'wsiz' which is a private alias for TIOCSWINSZ,
- add some we might want to implement (or not) as reminder,
- add hw signal ioctls with a note for later (call driver service func),
- implement 'ichr' undocumented ioctl that waits on N chars on input, this fixes behaviour of rhapsody IRC client and many other curses apps. Oddly it seems even our own curses still uses it, that should likely be fixed as we support select(). But we must keep this one in to support apps that have their own curses lib.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25400 a95241bf-73f2-0310-859d-f6bbb57e9c96
interface information (in the PCI notion) to a node, and the possible paths
of a device driver are generated from that information by the device manager.
* Removed the "is bus" attribute - the device manager now decides wether or not
a device always loads its children (as opposed to on demand loading only),
even if the B_FIND_CHILD_ON_DEMAND flag is specified.
* device_node::Register() now correctly maintains the fRegistered member field.
* Replaced the driver_module() and driver_data() methods with a get_driver()
method that retrieves all information at once.
* Cleaned attribute names.
* Some other cleanup, adding const where it makes sense.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25394 a95241bf-73f2-0310-859d-f6bbb57e9c96
- implemented HPA/VPA (CV/CH) sequences (set absolute v and h position). It's optional but because the beterm termcap advertises it we must implement it. Also note beterm increments args unlike others. This fixes all obvious display issues with the rhapsody IRC client (a small ncurses client I ported).
- maybe we should switch the CASE_* to an enum ?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25392 a95241bf-73f2-0310-859d-f6bbb57e9c96
- fix Home and End keys
- simplify code
- add different strings for Ctrl-arrows, allows to map them to previous/next-word (PuTTY and others have actually several codes depending on mods & ALT, mode & CTRL and even mods & CTRL|ALT, might be even better...).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25391 a95241bf-73f2-0310-859d-f6bbb57e9c96
arguments they get a single thread_creation_attributes structure now.
* Added stack_address and stack_size to thread_creation_attributes,
which allow to specify the stack size or the stack to be used for the
new user thread.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25389 a95241bf-73f2-0310-859d-f6bbb57e9c96
Color drop is currently disabled, for now it just pastes it as text if provided (#rrggbb form from BColorControl).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25388 a95241bf-73f2-0310-859d-f6bbb57e9c96
flexible; now, a driver type can result in any number of paths to probe.
* Also, the "bus" modules (busses/bus_managers) are now always probed - that's
only a temporary solution and should be restricted to certain driver types
later.
* Added a userland buildable version of KPath.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25383 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed operator=(): the second argument of SetTo() is a boolean (normalize),
not the length of the buffer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25382 a95241bf-73f2-0310-859d-f6bbb57e9c96
simply created as files in /boot/var/shared_memory/. The Bootscript
clears the directory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25374 a95241bf-73f2-0310-859d-f6bbb57e9c96
There are many other calls that crash in BeOS when called with invalid args, should we attempt to sanitize them or call debugger() instead ?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25372 a95241bf-73f2-0310-859d-f6bbb57e9c96
use to keep track of the current context. This should not only make it faster,
but may also fix the occasionally seen bug of the previous solution.
* Added a simple diff mode coloring as well - only enabled when quote coloring
is enabled.
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25364 a95241bf-73f2-0310-859d-f6bbb57e9c96
5ms off. Not really good...
* The test on non-shared unnamed semaphores doesn't request a shared
semaphore anymore. It passes under Haiku, now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25363 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Changed the semantics of unnamed semaphores. Before parent and child
of a fork() would always share an earlier created semaphore. Now we do
that only, if the "shared" parameter of sem_init() was true. That's
still not quite the behavior Linux and Solaris have, but should be
perfectly fine with how reasonable code would use the API.
* There's a global table for shared unnamed semaphores now. ATM a
semaphore is leaked when no one explicitly destroys it (just as with
named sems).
* Enforce per-team and global semaphore number limits.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25362 a95241bf-73f2-0310-859d-f6bbb57e9c96
not supposed to be passed to pathconf() or sysconf().
* Added POSIX semaphore related macros.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25361 a95241bf-73f2-0310-859d-f6bbb57e9c96
- cleanup
- handle frame size suggestions (Codycam gets QVGA now, and eXposer doesn't complain), though the picture is not centered nor scaled yet.
- added a stat text parameter to show actual frame rate.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25359 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Allow userland teams to create areas below 1 MB when requested specifically.
* Note, this is a temporary solution - see the comments in the code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25358 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Implemented BMediaFile::Copyright, which just calls Copyright() of the extractor. So this is just a simple pass through.
- Style cleanup (mostly whitespaces)
Problem is that our readers currently return the copyright of the source code, not the copyright of the MediaFile itself, like the BeBook documents. Thus, we might need to change all readers to return appropiate data or behave differently for Haiku readers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25356 a95241bf-73f2-0310-859d-f6bbb57e9c96
may take a short moment on real hardware, it is better than the "Asking blah
to quit..." which is otherwise still left.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25355 a95241bf-73f2-0310-859d-f6bbb57e9c96
- do not force bitmap size for ftp, in case the webcam doesn't give 320x240 it would mess up with memcpy. Maybe we'll want to give the option to either resize to QVGA or keep the native size someday.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25353 a95241bf-73f2-0310-859d-f6bbb57e9c96
assume the driver to be in reset when started.
* Major cleanup of the register access: now hda_controller and hda_stream both
have member functions for this, the OREGx() and REGx() macros are gone.
* Made the register names and definitions more descriptive - the short names
of the specs are still mentioned in the comments.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25352 a95241bf-73f2-0310-859d-f6bbb57e9c96
semantics of fork()ing with unnamed semaphores on other platforms is
different from what I thought it was.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25347 a95241bf-73f2-0310-859d-f6bbb57e9c96
* When initializing an unnamed semaphore failed, it would be deleted
twice.
* The user structure pointer wasn't correctly passed when initializing
named semaphores.
* When opening a named semaphore failed after it has already been
published, it is now unlinked again.
* The timeout passed to sem_timedwait() is relative to the Epoch. We
need to offset to system time.
* Added TODO regarding a per team semaphore limit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25345 a95241bf-73f2-0310-859d-f6bbb57e9c96
a "snowman" icon for BSnow (big snowballs, coals for eyes, carrot...) but have
not found the time yet. Meanwhile and I agree that his icon is much better than
the previous one in any case. :-) (Hope you don't take offense, Francois!)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25341 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Renamed the old kernel_posix[_arch...].o to kernel_lib_posix...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25336 a95241bf-73f2-0310-859d-f6bbb57e9c96
The NetworkStatus applet is now able to launch the Network preferences via
its contex menu.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25329 a95241bf-73f2-0310-859d-f6bbb57e9c96
application. NOTE: Using FileTypes within Haiku to set this properties
does not result in other applications to be able to use BRoster::Launch()
with the given signature. The error message will change from "Application
not found" to "No application found to handle this file type" (or the like).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25328 a95241bf-73f2-0310-859d-f6bbb57e9c96
Realtime option group). The implementation should be complete, but is
totally untested yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25326 a95241bf-73f2-0310-859d-f6bbb57e9c96
- added brightness and contrast parameters for sn9cxxx according to a linux driver, but doesn't seem to work for mine.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25323 a95241bf-73f2-0310-859d-f6bbb57e9c96
- hooks to handle probing sensor chips instead of hardcoding them.
- more urls for reference drivers (the macam driver would be interesting but it's GPL and ObjC :-( )...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25320 a95241bf-73f2-0310-859d-f6bbb57e9c96
open reference to it. Otherwise the descriptor could be closed while
being on the way. This fixes the ssh login problem with non-root users.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25318 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Added hooks to handle device and sensor-specific parameters
- Added gain controls for my webcam, oddly none seem to work correctly except green gain :^)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25315 a95241bf-73f2-0310-859d-f6bbb57e9c96
it does now accept directories and doesn't ignore the "recursive"
parameter anymore.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25308 a95241bf-73f2-0310-859d-f6bbb57e9c96
* delete app icon on pref close
* use HVIF icon in case of Haiku
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25302 a95241bf-73f2-0310-859d-f6bbb57e9c96
unnecessary data copies and waste of memory.
* Changed the storage backend to ring_buffer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25300 a95241bf-73f2-0310-859d-f6bbb57e9c96
module interface. They directly operate on iovecs and thus allow
protocols that don't need it to avoid the creation of a net_buffer.
* Adjusted the socket module to support the new hooks. If they are
present, they will be chosen over the old hooks.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25299 a95241bf-73f2-0310-859d-f6bbb57e9c96
actually pointing to userland. This saves checks in the net stack.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25298 a95241bf-73f2-0310-859d-f6bbb57e9c96
* In SendData(), TCP will now split the buffer into smaller parts if it
can send data (ie. there is free space in the buffer queue left, but
not enough to send the whole buffer, and the free space is more than
the send low water mark of the socket).
* Both of these changes together let TCP now pass the "forwarding" test
of the OpenSSH suite.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25294 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Prepend "ahci port" to all trace entries in ahci_port.cpp.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25293 a95241bf-73f2-0310-859d-f6bbb57e9c96
module to the stack module. There's a dedicated struct
ancillary_data_container, now. One can just set the container on a
net_buffer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25292 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Added controller attribute to the AHCIPort class for debugging purposes.
AHCI is failing whenever the PRD table has an address above the 2048 Mb mark.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25291 a95241bf-73f2-0310-859d-f6bbb57e9c96
the socket first, so the FD open flags are in sync with that. Fixes
situations where a socket accept()ed from a non-blocking listener socket
wouldn't have O_NONBLOCK set.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25288 a95241bf-73f2-0310-859d-f6bbb57e9c96
socket. Not sure, if there are any cases where there is a next protocol,
though. Please review.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25287 a95241bf-73f2-0310-859d-f6bbb57e9c96
ignored. This fixes the hanging OpenSSH "multiplex" test. Save for the
"forwarding" test, which sometimes hangs due to a TCP bug, the complete
test suite passes, now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25284 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Trivial adjustments of code using mutexes. Mostly removing the
mutex_init() return value check.
* Added mutex_lock_threads_locked(), which is called with the threads
spinlock being held. The spinlock is released while waiting, of
course. This function is useful in cases where the existence of the
mutex object is ensured by holding the threads spinlock.
* Changed the two instances in the VFS code where an IO context of
another team needs to be locked to use mutex_lock_threads_locked().
Before it required a semaphore-based mutex implementation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25283 a95241bf-73f2-0310-859d-f6bbb57e9c96
table. This is not necessary, but allows for a better solution fo how to
lock the IO context of another team.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25281 a95241bf-73f2-0310-859d-f6bbb57e9c96
that can unlock the mutex, so one bit is sufficient.
* Added cutex_init_etc() which has an additional "flags" parameter.
The only specifyable flag is CUTEX_FLAG_CLONE_NAME, which causes the
function to strdup() the given name and free() its copy in
cutex_destroy().
* cutex_destroy() does now unblock waiting threads.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25280 a95241bf-73f2-0310-859d-f6bbb57e9c96
when using the shutdown() command.
* If TCP no longer needs a socket, it will now set the flag FLAG_DELETE_ON_CLOSE;
when the socket is closed from the upper layers, it will set the FLAG_CLOSED
flag - and only if both are set, TCP will now delete the socket itself on
receive.
* This fixes bug #2189.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25278 a95241bf-73f2-0310-859d-f6bbb57e9c96
name, couldn't resist :-P). It's semantically equivalent to a mutex,
but doesn't need a semaphore (it uses thread blocking and a simple
queue instead). Initialization can't fail. In fact it is ready to use
without initialization when living in the bss segment, also in the
early boot process. It's as fast as a benaphore in cases of low lock
contention, and faster otherwise. Only disadvantage is the higher
immediate memory footprint of 16 bytes.
* Changed how the "thread" and "threads" debugger commands list the
objects they are waiting for. Cutexes are also included.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25276 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added data_node::flags field and currently only flag
DATA_NODE_READ_ONLY, indicating that the node is read-only (i.e.
a clone). If set, the node won't have any header or tail space. Not
being able to write to it is not yet enforced, though.
* Moved data_node::tail_space to data_header.
* Removed data_node:used_header_space/own_header_space.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25275 a95241bf-73f2-0310-859d-f6bbb57e9c96
the selecting thread, which has obviously no effect.
* Changed select_info::events to vint32. It is now updated atomically.
This removes a race condition when concurrent threads would notify at
the same time.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25273 a95241bf-73f2-0310-859d-f6bbb57e9c96
by BWindow, no longer by the app_server. This should stop the "screen freeze"
effect.
This adds a dependency on libpng.so and libz.so to libbe.so. The same
dependencies and the PNGDump code added here can be removed from the
app_server. I am just waiting for a code review of this before doing that.
This implementation still does not give the client a chance to handle it
differently.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25269 a95241bf-73f2-0310-859d-f6bbb57e9c96
select_fd() first added the select info to the IO context and then
called select() on the descriptor, a close() called at the same time
could already deselect the events and close the descriptor before
select_fd() was done with select(). select_fd() does now keep an own
open reference while selecting the events and add the select info
afterwards to the IO context (if the FD is still current).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25266 a95241bf-73f2-0310-859d-f6bbb57e9c96
not necessary, since the VFS makes sure (or should at least) that all
events are deselected when close() is called. ~0 isn't a valid event
anyway.
* Removed delete_select_sync_pool() in socket_free(). It's not
necessary, since the select_sync_pool is auto-destroyed when the last
event has been deselected (which the VFS should take care of).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25265 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Made the pointers const.
* Changed how the ARP module maintains its arp_entry::request_buffer: it
now uses the atomic_pointer*() functions to make sure there is no race
condition, and it's deleted only once.
* Getting an ARP entry would return uninitialized data, if the entry hadn't
been resolved yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25263 a95241bf-73f2-0310-859d-f6bbb57e9c96
64-bit safe version of atomic_test_and_set() for pointers:
atomic_pointer_test_and_set().
* The VFS is now using this function (it's not used anywhere else in the
kernel this way).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25260 a95241bf-73f2-0310-859d-f6bbb57e9c96
although it put the freed space in the free list. Alternating
invocations of alloc_...() and free_...() would thus increase the
header space unboundedly.
* Unified the way a data_header and data_node access the header space.
Originally data_header::data_space and data_node::header_space had to
be kept in sync, which some functions failed to do. Introduced a
header_space structure, which is located in data_header and referenced
by data_node, so that accessing it either way does always keep both
structures in sync.
* Removed the special handling for the data node created with a buffer.
Since remove_{header,trailer}() and trim() could remove it without
knowing, the last reference to the first data header would be freed
prematurely, causing operations on freed memory, and in the end a
second free which screwed the object cache's free list. This crashed
Haiku e.g. when running OpenSSH's "forwarding" test. Now the first
created node is just a node like any other. It's allocated in the data
header, too.
* Changed the mechanism how data nodes are allocated. Now they will
always be allocated on a header associated with the buffer for which
they are created. This fixes a race condition when freeing them. They
would otherwise modify the free list of a header which might be
accessed by another thread at the same time (added a TODO explaining
how the old code could possibly be fixed). Also squashed several
TODOs related to running out of header space when allocating a node.
If the buffer runs out of header space, it will simply allocate a new
header, now.
* Dealt with some TODOs regarding reverting the buffer to its previous
state when running out of memory after allocating a few nodes.
* Added several TODOs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25256 a95241bf-73f2-0310-859d-f6bbb57e9c96
This fixes bug #1900 for real.
* Rearranged find_page_candidate() a bit, removed duplicate code, added a panic
in case the marker state is invalid.
* Some cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25255 a95241bf-73f2-0310-859d-f6bbb57e9c96
arp_update_entry(). While arp_timer() was sending the last request
arp_update_entry() could be called (caused by an incoming reply) and
free the request buffer, which arp_timer() would free a moment later
again. The problem is not completely solved, since a duplicate reply can
still cause a double free. Checked in mainly for Axel's reading
pleasure. :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25252 a95241bf-73f2-0310-859d-f6bbb57e9c96
sPageLock. This could easily mess up the page queue.
* Now, remove_page_marker() gets the lock itself. This fixes bug #1900.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25250 a95241bf-73f2-0310-859d-f6bbb57e9c96
block would be incorrectly addressed when allocating a stream - this could
cause random blocks to be overwritten, and therefore could cause many sorts
of problems.
* Moved BFS_TRACING macro to the tracing_config.h file, and let it follow the
new semantics of those other macros in there.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25249 a95241bf-73f2-0310-859d-f6bbb57e9c96
if the other end is not a Haiku host (retrieving of urgent data is still
missing).
* Resolved TODO: SendData() now sends a SIGPIPE when trying to send on a
closed connection.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25245 a95241bf-73f2-0310-859d-f6bbb57e9c96
this (seems to be what R5 BStatusBar does):
* combine the "trailing text" with the "trailing label" and truncate the
resulting string on the left side according to the width of the entire
control
* combine the "label" with the "text" and truncate that on the right side
according to the space left by the right hand text.
-> No more overlaps (theoretically, in practise there are still overlaps
because our BFont::TruncateString() does not respect the width in some
situations.)
* Changed _SetTextData() accordingly, it is not used anymore for the
label and trailing label, and could therefor be simplified a little.
* fixed _BarFrame() to not return fractional coords, which could sometimes
leave a dirty line of pixels.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25244 a95241bf-73f2-0310-859d-f6bbb57e9c96
our repository, and integrated it to the build system.
* Got it from: http://www.icir.org/christian/sock.html (sock-0.3).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25242 a95241bf-73f2-0310-859d-f6bbb57e9c96
we know that the connection was torn down cleanly, and there are no inflight
segments floating around anymore.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25239 a95241bf-73f2-0310-859d-f6bbb57e9c96
fixes the "endless discussions" when closing a local connection - only
happened on a simultaneous close.
* A FIN in TIME_WAIT now updates the time-wait timer, as required by the
TCP specification.
* Entering TIME_WAIT now cancels all connection timers. We might want to
think about putting time wait connections into a separate hash, and delete
the socket early on.
* Added tracing support for send/receive, timers, and state changes.
* Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25236 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Introduced the TCP_TRACING macro in tracing_config.h.
* Enlarged the default trace size to something a tiny bit useful (but still
acceptable for systems with little RAM).
* Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25235 a95241bf-73f2-0310-859d-f6bbb57e9c96
off the screen at all, it will be moved back on when the window is activated.
I almost think this might be a reasonable default implementation for
WindowActivated in BWindow :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25234 a95241bf-73f2-0310-859d-f6bbb57e9c96
The media kit will always call BMediaNode
and BMediaAddOn functions with valid pointers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25232 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implement "close" command that actively closes the server socket, or does
an simultaneous close. Even though this triggers an "endless conversation"
between two time-wait endpoints on Haiku, it works fine in the shell.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25225 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Pick 8 random icons from the application and preference folders
* Pick 8 different icons when the game starts again
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25224 a95241bf-73f2-0310-859d-f6bbb57e9c96
now used from various places that previously did not cancel all timers
they should have.
* When a connection moves to the CLOSED state, it should cancel all timers;
this prevents from sending a reset at the end of a connection.
* If the persist/delayed acknowledge timers were canceled too late, they might
still have tried to send something (which would eventually cause a reset
sent to the peer).
* Follow RFC 1337 with respect to time wait assassination prevention (ie.
we now ignore resets from peers in time wait state).
* _SegmentReceived() must not check the sequence of a time wait connection;
it prevented sending a reset when that was due (a new connection request
would time out, instead of fail immediately).
* Also, that method must never be called in the LISTEN or SYNCHRONIZE_SENT
states, so we don't need to check for those.
* We don't have to wait in Close() until the connection is actually closed -
removed a TODO. TCP should handle this internally.
* Renamed _ShutdownEgress() to _Shutdown().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25219 a95241bf-73f2-0310-859d-f6bbb57e9c96
one next. This should work around the problem Ingo observed with the OpenSSH
tests (not tested, though).
* The only TCP compliant fix for this problem would be to not enter time wait
for local connections at all (which I will do soon).
* Another work around other implementations use is to accept incoming
connections for time wait endpoints (the connection will then be replaced).
I'm not yet sure if I want that behaviour, though.
* Added tracing for unbinding endpoints (with stack trace) to investigate
another bug (sometimes closed connections aren't actually closed).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25218 a95241bf-73f2-0310-859d-f6bbb57e9c96
* cache paranoia was always enabled.
* Changed from paranoia on/off to levels. Adjusted the macros to take a
level argument.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25215 a95241bf-73f2-0310-859d-f6bbb57e9c96
defined/undefined to numeric values (0 for undefined). This allows for
trace levels.
* Set SYSCALL_TRACING_IGNORE_KTRACE_OUTPUT default to 1, since this is
what one usually wants.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25213 a95241bf-73f2-0310-859d-f6bbb57e9c96
modules could use it. Moved the tracing_stack_trace definition out of
the conditional section instead.
* Made the TraceOutput::Print()/PrintStackTrace() method no-ops when
tracing is disabled.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25211 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added Revert button and Revert feature. The time at which the preflet
is started is remembered, the uptime of the preflet is calculated
via system_time().
TODO: Better placement for the Revert button. Currently it looks like it can
only revert date changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25210 a95241bf-73f2-0310-859d-f6bbb57e9c96