History log of /haiku/src/add-ons/kernel/network/protocols/ipv4/multicast.cpp
Revision Date Author Comments
# 9e3513fc 25-Nov-2020 Jérôme Duval <jerome.duval@gmail.com>

ipv4: IP_ADD_MEMBERSHIP twice should return EADDRINUSE

also IP_ADD_SOURCE_MEMBERSHIP

Change-Id: Icc9af4fc7ffe6457ca968fad3fba46f0942a9e3f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3418
Reviewed-by: Rene Gollent <rene@gollent.com>


# fa2fa026 19-Aug-2012 Siarzhuk Zharski <zharik@gmx.li>

Insert Addressing::LeaveGroup call on dropping multicast group membership.
Omitting this call left invalid reference to deleted group in the
multicast groups hash-map and any upcoming attempt to join the group will
crash the system. Fixes #6736.


# 61729d93 28-Jul-2010 Axel Dörfler <axeld@pinc-software.de>

* Reworked the complete stack to allow more than one address per network
interface - this caused quite a number of changes.
* Network interfaces, and its addresses are now reference counted (not yet
complete, though, InterfaceAddresses need to hold references to their
interface as well).
* There are two known regressions of this commit that I will fix later:
- you cannot remove interfaces anymore
- IPv4 multicast was broken anyway, but now it's disabled, too.
* Moved a device_interfaces.cpp|h out of interfaces.cpp.
* The datalink layer chain is now instantiated per domain per interface,
not just per interface anymore.
* When a buffer reaches the network layer, it has no known interface yet, ie.
the ipv4|6|whatever modules need to set this manually.
* Added more debug output, and some new debugger commands, the control option
is now printed in clear text.
* Added hash_address() function to the address modules. Added "const" to
set_to_defaults() where needed.
* Fixed net_buffer's restore header functions offset use as reported by Atis.
* Improved buffer dump output, use the domain module to print the address if
available.
* Moved net_buffer::type into the union, as it's not needed by the upper layers
anymore.
* Moved IPv6 specific code from {add|remove}_default_route() to where it
belongs, but disabled it for the time being.
* Completely discarded useless ipv4_datagram module.
* Added ping6 to the build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37794 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 276aa463 24-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Replaced the useless InitCheck() method in {Open,Multi}HashTable (it
always returned B_OK) by a Init() method, which sets the initial size
and returns an error, if that fails.
* Adjusted code using the classes accordingly. Replaced a few
InitCheck() methods in the network code by Init().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26127 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 79a0d252 22-May-2007 Hugo Santos <hugosantos@nowhere.fake>

net_buffer: preparing for better metadata management


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21210 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8aa4c7e3 01-May-2007 Hugo Santos <hugosantos@nowhere.fake>

prepared the ipv4 multicast code for full multicast support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20945 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 57967505 29-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

fixed getsockopt/setsockopt callchains. also fixed the cleanup of multicast filters.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20923 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0e30c21c 29-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

ipv4: changed the multicast filter to use an hash table to keep source states.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20920 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4526eff1 15-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

gcc 4 template instantiation fixes


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20697 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6a606180 15-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

glued the multicast filter handling to the receive path: we are now capable of receiving multicast frames in datagram sockets.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20695 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6c501a40 14-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

support RFC 3678's Protocol-Independent setsockopt()s for IPv4 multicast.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20691 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 46527f68 14-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

initial steps towards IPv4 Multicast Filter Delta API (RFC 3678)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20690 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fa2fa02613347204e0e1aa2e588f5e4a4d19d108 19-Aug-2012 Siarzhuk Zharski <zharik@gmx.li>

Insert Addressing::LeaveGroup call on dropping multicast group membership.
Omitting this call left invalid reference to deleted group in the
multicast groups hash-map and any upcoming attempt to join the group will
crash the system. Fixes #6736.


# 61729d9323a555b9025ef6ebeb85dc1627f8acf7 28-Jul-2010 Axel Dörfler <axeld@pinc-software.de>

* Reworked the complete stack to allow more than one address per network
interface - this caused quite a number of changes.
* Network interfaces, and its addresses are now reference counted (not yet
complete, though, InterfaceAddresses need to hold references to their
interface as well).
* There are two known regressions of this commit that I will fix later:
- you cannot remove interfaces anymore
- IPv4 multicast was broken anyway, but now it's disabled, too.
* Moved a device_interfaces.cpp|h out of interfaces.cpp.
* The datalink layer chain is now instantiated per domain per interface,
not just per interface anymore.
* When a buffer reaches the network layer, it has no known interface yet, ie.
the ipv4|6|whatever modules need to set this manually.
* Added more debug output, and some new debugger commands, the control option
is now printed in clear text.
* Added hash_address() function to the address modules. Added "const" to
set_to_defaults() where needed.
* Fixed net_buffer's restore header functions offset use as reported by Atis.
* Improved buffer dump output, use the domain module to print the address if
available.
* Moved net_buffer::type into the union, as it's not needed by the upper layers
anymore.
* Moved IPv6 specific code from {add|remove}_default_route() to where it
belongs, but disabled it for the time being.
* Completely discarded useless ipv4_datagram module.
* Added ping6 to the build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37794 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 276aa463efb0cc5b6562c46b540c01df679f77ba 24-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Replaced the useless InitCheck() method in {Open,Multi}HashTable (it
always returned B_OK) by a Init() method, which sets the initial size
and returns an error, if that fails.
* Adjusted code using the classes accordingly. Replaced a few
InitCheck() methods in the network code by Init().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26127 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 79a0d25245275ef5f65afd610279dc9befffd65e 22-May-2007 Hugo Santos <hugosantos@nowhere.fake>

net_buffer: preparing for better metadata management


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21210 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8aa4c7e3701d51a64961dd68d2ff74ee4d3374b2 01-May-2007 Hugo Santos <hugosantos@nowhere.fake>

prepared the ipv4 multicast code for full multicast support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20945 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 57967505c2947a442e0a1185ab7a3930786787cc 29-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

fixed getsockopt/setsockopt callchains. also fixed the cleanup of multicast filters.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20923 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0e30c21c70428fc9536b49c257aea9e846c108fd 29-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

ipv4: changed the multicast filter to use an hash table to keep source states.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20920 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4526eff1379f8c63096409f54971caa8e1eb62d0 15-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

gcc 4 template instantiation fixes


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20697 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6a60618094d288e845e7384ec6ab5b4e63f742e5 15-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

glued the multicast filter handling to the receive path: we are now capable of receiving multicast frames in datagram sockets.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20695 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6c501a4085f9f397f2865e80df1242404c8f7066 14-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

support RFC 3678's Protocol-Independent setsockopt()s for IPv4 multicast.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20691 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 46527f6806b3d52282de36566581fd567d839839 14-Apr-2007 Hugo Santos <hugosantos@nowhere.fake>

initial steps towards IPv4 Multicast Filter Delta API (RFC 3678)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20690 a95241bf-73f2-0310-859d-f6bbb57e9c96