History log of /haiku/src/add-ons/kernel/network/protocols/unix/UnixFifo.h
Revision Date Author Comments
# 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>


# 88e38c17 16-Dec-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Replace uses of obsolescent BReference[able] API.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39870 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


# 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


# 88e38c178a96634d52920e2de8bb3cbd49869f93 16-Dec-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Replace uses of obsolescent BReference[able] API.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39870 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


# 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