#
303ff56a |
|
11-Aug-2023 |
Trung Nguyen <trungnt282910@gmail.com> |
unix: Implement SO_RCVBUF Implemented `UnixBufferQueue::SetCapacity` so that `setsockopt` with `SO_RCVBUF` will not always return an error. Change-Id: I2d9be84633f84474fac64b379e9f89ef2751a094 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6816 Reviewed-by: waddlesplash <waddlesplash@gmail.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
b7b57869 |
|
18-Jun-2023 |
Trung Nguyen <trungnt282910@gmail.com> |
unix: Implement datagram sockets Implement `SOCK_DGRAM` sockets for `AF_UNIX` family. Change-Id: If3d6f408a7d881635ccf04b080391905fdc94b13 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6617 Reviewed-by: Jérôme Duval <jerome.duval@gmail.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
f0c4b0a6 |
|
19-Mar-2021 |
Jérôme Duval <jerome.duval@gmail.com> |
unix: get a read event when read-polling a read-shutdown socket UnixEndpoint::Receivable(): EOF means there is nothing left to read, and the shutdown happened on the read side or the write side. also fix x86_64 build with trace Change-Id: I54c806f0b900591c3d441240b8f6768dfb756bad Reviewed-on: https://review.haiku-os.org/c/haiku/+/3808 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
6d796a84 |
|
10-Aug-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Fixed up network stack and drivers for x86_64. * Various compilation fixes. * Fixes to the FreeBSD compatibility layer (from comparing the x86- specific bits with the equivalent amd64 sources in FreeBSD). * Compile all the Ethernet drivers except for sis900 and wb840, these require a bit more work to fix (will file a ticket soon). Tested ipro1000 and rtl81xx, no issues.
|
#
6093698c |
|
12-Oct-2008 |
Jérôme Duval <korli@users.berlios.de> |
No newline at end of file git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28010 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cb919155 |
|
16-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
bonefish + axeld: * Removed the superfluous "flags" parameter from ConditionVariable::Add() that we forgot there when we moved the flags field from ConditionVariableEntry::Add() to Wait(). * Using this method was therefore not a good idea - only UnixFifo did, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26454 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8a1852a4 |
|
15-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Corrected the read() behavior on a read-shutdown socket. All the data that arrived before the shutdown can still be read. * Debug some more returns. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25514 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ea035707 |
|
02-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Support the new {send,read}_data_no_buffer() protocol hooks to avoid 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
|
#
39ae5e4d |
|
01-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Use a mutex instead of a benaphore. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25286 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6057b5ee |
|
01-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added a bit more debug output in UnixFifo, but disabled debug output in all files by default. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25285 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cfb0e473 |
|
23-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fixed the write behavior: Blocking writes should write what they can and loop until everything has been written. Non-blocking writes should write as much as they can and return B_WOULD_BLOCK, if that wasn't the whole request. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25122 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5b29b956 |
|
23-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Replaced the reader/writer blocking semaphores by condition variables. This fixes race conditions. The OpenSSH tests don't hang anymore -- instead they run the system out of memory, apparently due to a net buffer/data node leak. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25117 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
438df7ec |
|
19-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Riddled UnixBufferQueue class with debug code. * Implemented temporary work-around for net_buffer append_cloned(), which doesn't seem to work right in combination with remove_header(). Or maybe I'm just misunderstood how it is supposed to be used. Anyway, this fixed invalid data in the stream when buffers were split by a read. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25070 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ae3633b0 |
|
15-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
We weren't tracking the buffer size in one case, which was rewarded with a segment violation due to NULL pointer access. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24975 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
59234b36 |
|
12-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added support for SCM_RIGHTS (sending file descriptors). * Fixed shutdown(). It was computing the wrong fifo flags and set the wrong ones from the wrong variable on the peer fifo. * Generally made the Unix sockets behave more like they should. E.g. after closing one end, it must still be possible to read from the other (as long as there are buffered data). Also fine-tuned when to return what errors from recv()/send(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24943 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
875757ad |
|
09-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Wait states should be interruptable. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24887 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9c796e6e |
|
09-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added some debug output. * Flags and timeout arguments to acquire_sem_etc() were swapped. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24886 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
65a0f233 |
|
09-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Looks like I had been fallen asleep before finishing the implementation. After successfully copying the data from the receive queue into a new buffer, we should actually return that buffer and update the queue size. recv() doesn't KDL anymore when reading less data than queued. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24885 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
eb8b342d |
|
09-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Protocol module for Unix domain stream type sockets. The implementation is almost complete, but still quite buggy (receiving data has a good chance to drop into KDL). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24884 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6d796a84bd484ccc4fb072a29c663b660180ae51 |
|
10-Aug-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Fixed up network stack and drivers for x86_64. * Various compilation fixes. * Fixes to the FreeBSD compatibility layer (from comparing the x86- specific bits with the equivalent amd64 sources in FreeBSD). * Compile all the Ethernet drivers except for sis900 and wb840, these require a bit more work to fix (will file a ticket soon). Tested ipro1000 and rtl81xx, no issues.
|
#
6093698cca17d0c8ea27b87b73f616a4c27b3065 |
|
12-Oct-2008 |
Jérôme Duval <korli@users.berlios.de> |
No newline at end of file git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28010 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cb9191556c39d4321b6dc700532eb74f598d166d |
|
16-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
bonefish + axeld: * Removed the superfluous "flags" parameter from ConditionVariable::Add() that we forgot there when we moved the flags field from ConditionVariableEntry::Add() to Wait(). * Using this method was therefore not a good idea - only UnixFifo did, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26454 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8a1852a4477ad28446454238fabc29b2ce291fb6 |
|
15-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Corrected the read() behavior on a read-shutdown socket. All the data that arrived before the shutdown can still be read. * Debug some more returns. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25514 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ea035707b3d55375ed24f460add69e2d51c3076b |
|
02-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Support the new {send,read}_data_no_buffer() protocol hooks to avoid 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
|
#
39ae5e4d1275233861000e67a197b6a16268a2ca |
|
01-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Use a mutex instead of a benaphore. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25286 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6057b5ee44416b26f14a0b10c008889285c2a0bb |
|
01-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added a bit more debug output in UnixFifo, but disabled debug output in all files by default. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25285 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cfb0e473673d2a115a173fc605a36eef7c04c98e |
|
23-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fixed the write behavior: Blocking writes should write what they can and loop until everything has been written. Non-blocking writes should write as much as they can and return B_WOULD_BLOCK, if that wasn't the whole request. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25122 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5b29b956f3dd018fe374c2766adaa367bcaa0259 |
|
23-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Replaced the reader/writer blocking semaphores by condition variables. This fixes race conditions. The OpenSSH tests don't hang anymore -- instead they run the system out of memory, apparently due to a net buffer/data node leak. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25117 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
438df7ecac73998a9f98cb417f2e03c3f80a9991 |
|
19-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Riddled UnixBufferQueue class with debug code. * Implemented temporary work-around for net_buffer append_cloned(), which doesn't seem to work right in combination with remove_header(). Or maybe I'm just misunderstood how it is supposed to be used. Anyway, this fixed invalid data in the stream when buffers were split by a read. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25070 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ae3633b0490f5d8c4c349d268ff11cf9d8121f53 |
|
15-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
We weren't tracking the buffer size in one case, which was rewarded with a segment violation due to NULL pointer access. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24975 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
59234b36ce027000c55abc7ec2f6ff5b8f6f816b |
|
12-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added support for SCM_RIGHTS (sending file descriptors). * Fixed shutdown(). It was computing the wrong fifo flags and set the wrong ones from the wrong variable on the peer fifo. * Generally made the Unix sockets behave more like they should. E.g. after closing one end, it must still be possible to read from the other (as long as there are buffered data). Also fine-tuned when to return what errors from recv()/send(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24943 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
875757adef265627e6b72751099f4748ff797208 |
|
09-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Wait states should be interruptable. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24887 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9c796e6e71d07507cd9ab3889ed41d24eb0e5fcb |
|
09-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added some debug output. * Flags and timeout arguments to acquire_sem_etc() were swapped. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24886 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
65a0f233b90e64968cafef95304745f433b6a22c |
|
09-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Looks like I had been fallen asleep before finishing the implementation. After successfully copying the data from the receive queue into a new buffer, we should actually return that buffer and update the queue size. recv() doesn't KDL anymore when reading less data than queued. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24885 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
eb8b342d5610c48f6eb319d6726491e4f360e005 |
|
09-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Protocol module for Unix domain stream type sockets. The implementation is almost complete, but still quite buggy (receiving data has a good chance to drop into KDL). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24884 a95241bf-73f2-0310-859d-f6bbb57e9c96
|