#
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.
|
#
da0d7409 |
|
28-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed broken UDP for non device bound sockets. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38415 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bbbb5592 |
|
27-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* UDP now respects the net_socket::bound_to_device field when propagating data to endpoints. This should help with the final issues of bug #6454. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38397 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9d433190 |
|
26-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Now we should also support link layer and INADDR_BROADCAST broadcasts again correctly. * This should finally fix ticket #6454, but I keep it open until it's confirmed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38365 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cb99c915 |
|
25-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* The KDL command "udp_endpoints" did not work anymore, since DatagramSocket::AvailableData() locks; introduced a UdpEndpoint::Dump() method to work around that. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38355 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7e046eab |
|
17-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* UDP really wanted to make sure that the error buffer was freed, and just did it once more. This should be the final nail on bug #6446. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38178 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3f2a18bd |
|
16-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* The UDP protocol was deleting a received error buffer twice in the case that everything went okay. This finally fixes #6446. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38145 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2b415445 |
|
04-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Finished groundwork on ICMP by introducing a completely protocol agnostic error mechanism. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37896 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2651e51d |
|
02-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed net_datalink_module::send_data() to send_routed_data(), and send_datagram() to send_data(). * Renamed DatagramSocket::SocketEnqueue() to EnqueueClone(), SocketDequeue() to Dequeue(). * Ordered the methods in ProtocolUtilities.h according to their declaration. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37870 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ca215dfe |
|
02-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Replaced more occurences of EOPNOTSUPP with B_NOT_SUPPORTED. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37847 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
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
|
#
2e1729d0 |
|
23-Jul-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed _EndpointFor() again; DeliverError() is using _FindActiveEndpoint() instead, ie. ICMP errors are only forwarded to connected UDP sockets. * Also notify the DatagramSocket's dequeue loop if an error occurs - this makes udp_unreachable finally work as intended. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37714 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2bb43d82 |
|
21-Jul-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* First (untested) steps into ICMP support for UDP: we should send port unreached ICMP messages now, and at least signal an error to select() (there is no mechanism yet to actually forward the error to userland). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37651 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8d1485fa |
|
19-Jul-2010 |
Axel Dörfler <axeld@pinc-software.de> |
Work in progress commit by Atis Elsts (I'm posting his ChangeLog comments directly here), I made only a few style changes: * introduced 'has_broadcast_address' field in struct net_address_module_info - REVIEW: the name, and the status of this field for UNIX and L2CAP families * ipv6 address family support * ipv6 address printing * ipv6 protocol support * ipv6 multicast support - TODO: add and remove multicast routes in a more proper way - TODO: support MLD * ipv6 datalink protocol support * icmpv6 protocol support (EchoRequest and EchoResponse messages) * ipv6 neigbor discovery protocol support (Advertisement and Solicitation messages) - TODO: only the very basic support is present, the protocol state machine is by no means completed - TODO: replying to Solicitation does not work too good ATM (visible, when pinging Haiku from outside) * added Jenkin's hash algorith * minor changes in existing IPv4 code - cleanup function ipv4_get_loopback_address(), written by myself * add tests: raw, udp, tcp/udp, mullicast sender * add 'hoplimit' field in struct net_buffer - TODO: this is just a hack, more generic approach would be better. * add 'receive_data' function pointer in struct net_datalink_protocol_module_info - TODO: this is also more like a hack, to support information passing from ICMPv6 to IPv6_datagram level. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37604 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
56f097eb |
|
12-Apr-2010 |
Oliver Tappe <zooey@hirschkaefer.de> |
Applying patch by Atis Elsts: * fix connecting to INADDR_ANY work for tcp (effectively will connect to INADDR_LOOPBACK) * add same behaviour to udp * move some ipv4-specific code out of tcp into ipv4 address module * bind() and connect() now reject addresses from non-matching families * myself: minor cleanup in udp.cpp with respect to 80 chars limit Closes #5716 - many thanks! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36192 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4e45de0e |
|
10-Jan-2010 |
Oliver Tappe <zooey@hirschkaefer.de> |
* when connect()ing an UDP socket, we need to set the local address to the default address of the outgoing interface as a side-effect git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34989 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5147963d |
|
26-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
headers/private/kernel/util/OpenHashTable.h, Hugo's version, is a bit nicer than Tracker's OpenHashTable.h which it should eventually replace. We've renamed the class to BOpenHashTable and changed the interface slightly so that HashTableLink became superfluous. Adapted all the code that used it. Since the OpenHashTables no longer clash, this should fix the GCC4 build. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31791 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
78888c44 |
|
15-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
Applied patch by Ma Jie adding functionality needed by mDNSResponder: * added new protocol method process_ancillary_data_no_container() that does not need a container to fill the cmsghdr data. * Added support for the IP_RECVDSTADDR option using this call. * Implemented support for IP_MULTICAST_IF. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31585 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9871124e |
|
17-Jun-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added missing hooks with a description of what's missing for clarity. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31077 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d0eaec30 |
|
01-Feb-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Fix more operator precedence errors. These do not do what you'd expect at first sight. The comparison operator takes precedence over the binary ones. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29121 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fb3e35fc |
|
22-Jan-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Fixing all headers/namespaces/name lookup problems that hinder a GCC 4.3.2 build. I sure hope that this doesn't break the build for anyone else. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28992 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f861e599 |
|
10-Jan-2009 |
François Revol <revol@free.fr> |
typo. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28870 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9e051839 |
|
19-Jul-2008 |
Oliver Tappe <zooey@hirschkaefer.de> |
* some minor cleanups and clarifications * dropped tracing of udp-header git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26518 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
|
#
2b07b8e0 |
|
28-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Replaced all instances of benaphores in the kernel code by mutexes. * Removed kernel benaphores. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25690 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6f58064f |
|
07-Feb-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added flags field in net_protocol_module_info; there is currently a single defined flag: NET_PROTOCOL_ATOMIC_MESSAGES. * socket_send() now honours NET_PROTOCOL_ATOMIC_MESSAGES and returns either EMSGSIZE if the data to be send is larger than net_socket::send::buffer_size, or divides the data in appropriately sized chunks. * This fixes sending >=64K over a TCP socket at once (TCP would just have returned an error in that case). * TCP now overrides the default send buffer size (to 32768 for now). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23915 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
84052230 |
|
31-Jul-2007 |
Axel Dörfler <axeld@pinc-software.de> |
axeld+bonefish: Got rid of the ParentType in the HashTableDefinition; it doesn't really belong there. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21766 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
119c6cdd |
|
14-Jul-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Use the AutoLocker defined by the super class. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21609 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a1deb55e |
|
23-May-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
net_interface_private: added receive queue and splited device reading from packet processing. Delivering to self no longer is executed in the sender's context, which had some problems with TCP's locking. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21214 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
|
#
45b5203b |
|
08-May-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
network stack: getsockopt/setsockopt are no longer optional for protocols, as suggested by Axel. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21085 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f6cfc5af |
|
02-May-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
set ValueIterator's fIndex to the next slot so OpenHashTable's Iterator properly gets it. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20974 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0086fe20 |
|
30-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
possibly fix to #1190, the endpoint wasn't being unlinked on Free(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20924 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cf5d9f4b |
|
29-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
added 'udp_endpoints' debugger command. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20908 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4e8a1b33 |
|
28-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
miniature cleanups. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20874 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
727ad0b0 |
|
27-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
completed UDP's locking. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20857 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
40bbf860 |
|
27-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
made UDP use OpenHashTable for the endpoint table, part of the lookup is now inlined. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20854 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5084c839 |
|
27-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
addressed Axel's suggestion regarding SocketAddress' GetPort() name. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20851 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
25a2744f |
|
27-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
adapted UDP to use AddressUtilities, for readability. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20850 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c72ab92d |
|
27-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
adapted UDP to use ProtocolSocket which it already derived through DatagramSocket. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20849 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
53f23f85 |
|
25-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
partially rewrote TCP's endpoint manager. Fixes #1173 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20814 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2445c00e |
|
19-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
some internal reorganization of getsockopt()/setsockopt() handling. TCP is now able to fully use the application requested sender/receiver buffer sizes for improved performance. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20764 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d5b5a2c2 |
|
15-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
introduced Checksum::PseudoHeader helper. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20717 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1408d1f0 |
|
15-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
introduced datalink's send_datagram to perform route and source address selection and dispatch the datagram to appropriate domain/protocol. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20714 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
|
#
4229d709 |
|
14-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
made UDP's send_data call into IPv4's, so we can handle of the datagram stuff in one place. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20694 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
49f3c71e |
|
13-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
respect SO_BROADCAST for received and sent datagrams. - check if the destination address is specified in IPv4's SendData() - minor cleanups to IPv4's TRACE()s. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20681 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
658a5506 |
|
13-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
use module_dependencies to load the required modules by udp, tcp, ipv4, icmp and arp. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20676 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d438fa4c |
|
12-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
added buffer, datalink and socket module references to the stack module so we don't have to load them in each other module. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20673 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bfb45f71 |
|
12-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
introduced a new helper class DatagramSocket which provides a consistent base interface and functionality for the implementation of datagram-based sockets. - made the ipv4 raw, udp and link protocols use DatagramSocket. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20672 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bf48e753 |
|
12-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
made UDP agnostic to the underlying network protocol (preparing some work into the future). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20661 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6c353509 |
|
11-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
moved address selection logic to a new 'get_buffer_route'. - IPv4 now assumes the addresses it is supplied in send_routed_data are already the appropriate ones. - made the Data(), operator* and operator-> methods in NetBufferFieldReader const so we can use them in the same expression as the constructor. - fixed an issue with UDP where the wrong source address could be used in the calculating the checksum. - changed ipv4_print_address to use the more common 0.0.0.0 format. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20660 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
87001e05 |
|
11-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
some NetBufferUtility revamp. - introduced base NetBufferFieldReader which deals with obtaining a continuguous field to deal with. - renamed Detach() to Sync() to better express the fact that we may be writing to the buffer. - Fixed IPv4's and ICMP's checksum calculation as it assumed the underlying header was contiguous. - ICMP is now able to reply to ICMP Echo Requests which were split across data nodes. - in split_buffer(), make sure we were able to trim() the new buffer before damaging the original one. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20657 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d86f48f3 |
|
05-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
tiny TCP cleanups, move the read notifications to _NotifyReader(). - Also fixed the buffer size check in UDP's SendData() since UDP's length field includes the size of the header we need to check that as well. IPv4 is correct since we check for the size after prepending the header (due to it being possibly already included). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20592 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4168e54a |
|
05-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
send buffer size is irrelevant for UDP, instead check if the fed buffer is larger than the maximum payload UDP supported. Do the same in IPV4. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20590 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9e084902 |
|
05-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
small cleanups in UDP - don't set_to_empty_address, instead consider NULL to be the empty address and use is_empty_address(). - most ipv4 address module calls already consider NULL to be the empty address, ipv4_hash_address_pair didn't, fixed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20589 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c3e054c8 |
|
05-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
fixed an issue in UDP due to copying addresses to sockaddr, which may be too small for protocols other than IPv4. In fact, we don't need to copy the addresses at all, we can use the original address pointers in the hash key for lookup and hashing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20588 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0d5afa4d |
|
05-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
introduced fifo_socket_enqueue_buffer which clones the buffer, enqueues it to the fifo and notifies the socket. - changed the link, ipv4 and udp modules to use fifo_socket_enqueue_buffer git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20587 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
abe1ec18 |
|
05-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
properly support MSG_TRUNC. we don't even have to trim the buffer, just try to fill the user buffers as much as possible git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20582 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
af3a31f7 |
|
01-Jan-2007 |
Axel Dörfler <axeld@pinc-software.de> |
Calmed down the networking stack a lot - since it basically works, there is no reason to slow it down with debug output that much; this will also help investigating some issues where you just aren't interested in most of the output. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19672 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c35b04de |
|
02-Nov-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Moved the TCPConnection class into its own file. * Added some missing result checks, mostly for allocations. * Fixed a wrong precendence with the ?: operator * Some minor cleanup. * Renamed sBufferModule to gBufferModule - the header expects it to be a global, so it should be named like one. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19178 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a7028ce6 |
|
06-Oct-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented select support for sockets and notifications, not yet tested, though; this closes ticket #811. * Added notification support to IPv4 and UDP. * Implemented reading out SO_ERROR. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19017 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
891a127f |
|
17-Sep-2006 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
various gcc 4 related build fixes git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18876 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c22d69bf |
|
08-Aug-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Completed the previous commit and merger of the team/network/new_stack branch. * Removed ppp_up and pppcontrol from the image for now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18457 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.
|
#
da0d740954abc809592ebf0b3cebbf78cf200d39 |
|
28-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed broken UDP for non device bound sockets. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38415 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bbbb5592e494946735177efe9d02353330924c9b |
|
27-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* UDP now respects the net_socket::bound_to_device field when propagating data to endpoints. This should help with the final issues of bug #6454. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38397 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9d4331902caac05ca23bc6f4d27342acce15f202 |
|
26-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Now we should also support link layer and INADDR_BROADCAST broadcasts again correctly. * This should finally fix ticket #6454, but I keep it open until it's confirmed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38365 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cb99c9153bc897faeb40947d7230a0d02a93ef1b |
|
25-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* The KDL command "udp_endpoints" did not work anymore, since DatagramSocket::AvailableData() locks; introduced a UdpEndpoint::Dump() method to work around that. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38355 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7e046eab3b4b605f10f825af03c04f9b7faad291 |
|
17-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* UDP really wanted to make sure that the error buffer was freed, and just did it once more. This should be the final nail on bug #6446. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38178 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3f2a18bd3008941d903371f911c0e259f77ab1d4 |
|
16-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* The UDP protocol was deleting a received error buffer twice in the case that everything went okay. This finally fixes #6446. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38145 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2b4154458a820aa0b55b2800de9f0a13ea6ec1e2 |
|
04-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Finished groundwork on ICMP by introducing a completely protocol agnostic error mechanism. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37896 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2651e51d92770a979fee2e99c4a4b27c3ac03e82 |
|
02-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed net_datalink_module::send_data() to send_routed_data(), and send_datagram() to send_data(). * Renamed DatagramSocket::SocketEnqueue() to EnqueueClone(), SocketDequeue() to Dequeue(). * Ordered the methods in ProtocolUtilities.h according to their declaration. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37870 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ca215dfe683e040f0a44917f26cef0d7d439e59a |
|
02-Aug-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Replaced more occurences of EOPNOTSUPP with B_NOT_SUPPORTED. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37847 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
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
|
#
2e1729d050a350918bd974d570a82dfcc57784a3 |
|
23-Jul-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed _EndpointFor() again; DeliverError() is using _FindActiveEndpoint() instead, ie. ICMP errors are only forwarded to connected UDP sockets. * Also notify the DatagramSocket's dequeue loop if an error occurs - this makes udp_unreachable finally work as intended. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37714 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2bb43d824636dd9a5589d6bb42f39f3eadeac758 |
|
21-Jul-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* First (untested) steps into ICMP support for UDP: we should send port unreached ICMP messages now, and at least signal an error to select() (there is no mechanism yet to actually forward the error to userland). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37651 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8d1485fa06b26cb13b0417e3cdafd5b45520a567 |
|
19-Jul-2010 |
Axel Dörfler <axeld@pinc-software.de> |
Work in progress commit by Atis Elsts (I'm posting his ChangeLog comments directly here), I made only a few style changes: * introduced 'has_broadcast_address' field in struct net_address_module_info - REVIEW: the name, and the status of this field for UNIX and L2CAP families * ipv6 address family support * ipv6 address printing * ipv6 protocol support * ipv6 multicast support - TODO: add and remove multicast routes in a more proper way - TODO: support MLD * ipv6 datalink protocol support * icmpv6 protocol support (EchoRequest and EchoResponse messages) * ipv6 neigbor discovery protocol support (Advertisement and Solicitation messages) - TODO: only the very basic support is present, the protocol state machine is by no means completed - TODO: replying to Solicitation does not work too good ATM (visible, when pinging Haiku from outside) * added Jenkin's hash algorith * minor changes in existing IPv4 code - cleanup function ipv4_get_loopback_address(), written by myself * add tests: raw, udp, tcp/udp, mullicast sender * add 'hoplimit' field in struct net_buffer - TODO: this is just a hack, more generic approach would be better. * add 'receive_data' function pointer in struct net_datalink_protocol_module_info - TODO: this is also more like a hack, to support information passing from ICMPv6 to IPv6_datagram level. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37604 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
56f097ebd91d9b6369407d2bbfcc19718788d182 |
|
12-Apr-2010 |
Oliver Tappe <zooey@hirschkaefer.de> |
Applying patch by Atis Elsts: * fix connecting to INADDR_ANY work for tcp (effectively will connect to INADDR_LOOPBACK) * add same behaviour to udp * move some ipv4-specific code out of tcp into ipv4 address module * bind() and connect() now reject addresses from non-matching families * myself: minor cleanup in udp.cpp with respect to 80 chars limit Closes #5716 - many thanks! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36192 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4e45de0e5f58b5a31ea1b56105c6e60467f09df6 |
|
10-Jan-2010 |
Oliver Tappe <zooey@hirschkaefer.de> |
* when connect()ing an UDP socket, we need to set the local address to the default address of the outgoing interface as a side-effect git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34989 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5147963dcd57fefa4f63c484eb88e9eaf4002976 |
|
26-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
headers/private/kernel/util/OpenHashTable.h, Hugo's version, is a bit nicer than Tracker's OpenHashTable.h which it should eventually replace. We've renamed the class to BOpenHashTable and changed the interface slightly so that HashTableLink became superfluous. Adapted all the code that used it. Since the OpenHashTables no longer clash, this should fix the GCC4 build. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31791 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
78888c44da518b5a28135c7b3e79013e283789d4 |
|
15-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
Applied patch by Ma Jie adding functionality needed by mDNSResponder: * added new protocol method process_ancillary_data_no_container() that does not need a container to fill the cmsghdr data. * Added support for the IP_RECVDSTADDR option using this call. * Implemented support for IP_MULTICAST_IF. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31585 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9871124eb2ceffad94e7c5bb54b9dd25250f8cb1 |
|
17-Jun-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added missing hooks with a description of what's missing for clarity. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31077 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d0eaec308617fe6623df22fb2e41308517c5d7cb |
|
01-Feb-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Fix more operator precedence errors. These do not do what you'd expect at first sight. The comparison operator takes precedence over the binary ones. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29121 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fb3e35fcec1ef41b413b3b121764509f436dee4d |
|
22-Jan-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Fixing all headers/namespaces/name lookup problems that hinder a GCC 4.3.2 build. I sure hope that this doesn't break the build for anyone else. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28992 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f861e599f5c85c60d989c6e64c7f671dd6ad85ec |
|
10-Jan-2009 |
François Revol <revol@free.fr> |
typo. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28870 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9e05183977f2e7cd320b86ea1d4adf82588d69d6 |
|
19-Jul-2008 |
Oliver Tappe <zooey@hirschkaefer.de> |
* some minor cleanups and clarifications * dropped tracing of udp-header git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26518 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
|
#
2b07b8e0f1a7f1e76f31db24a21a42cbb01d7b9c |
|
28-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Replaced all instances of benaphores in the kernel code by mutexes. * Removed kernel benaphores. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25690 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6f58064f104ef231faed3c2259885065c4242eaa |
|
07-Feb-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added flags field in net_protocol_module_info; there is currently a single defined flag: NET_PROTOCOL_ATOMIC_MESSAGES. * socket_send() now honours NET_PROTOCOL_ATOMIC_MESSAGES and returns either EMSGSIZE if the data to be send is larger than net_socket::send::buffer_size, or divides the data in appropriately sized chunks. * This fixes sending >=64K over a TCP socket at once (TCP would just have returned an error in that case). * TCP now overrides the default send buffer size (to 32768 for now). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23915 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
84052230379abf8e556e20e499d9a6040157f4a6 |
|
31-Jul-2007 |
Axel Dörfler <axeld@pinc-software.de> |
axeld+bonefish: Got rid of the ParentType in the HashTableDefinition; it doesn't really belong there. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21766 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
119c6cdd0b754bd48ee1bb7b945bb02ffaa43fd3 |
|
14-Jul-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Use the AutoLocker defined by the super class. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21609 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a1deb55ef50ae33e7533745d8a37891ddd6c885b |
|
23-May-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
net_interface_private: added receive queue and splited device reading from packet processing. Delivering to self no longer is executed in the sender's context, which had some problems with TCP's locking. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21214 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
|
#
45b5203b786a318040f09aafd9b7d86877d30fe9 |
|
08-May-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
network stack: getsockopt/setsockopt are no longer optional for protocols, as suggested by Axel. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21085 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f6cfc5af194a8f078022f793a00712d925d44984 |
|
02-May-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
set ValueIterator's fIndex to the next slot so OpenHashTable's Iterator properly gets it. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20974 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0086fe209526a3e9d0f89e58484bf4370e324160 |
|
30-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
possibly fix to #1190, the endpoint wasn't being unlinked on Free(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20924 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cf5d9f4b8d5ecfccb07ded3eee4c3af0e11c53b6 |
|
29-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
added 'udp_endpoints' debugger command. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20908 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4e8a1b331fd4aafb8fb018bb23e85b8945f41d67 |
|
28-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
miniature cleanups. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20874 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
727ad0b0a5bd0ba327940e25a92917411fcfb431 |
|
27-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
completed UDP's locking. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20857 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
40bbf8600ec2574a1e33ae7a0f2bfbdbe426cf7b |
|
27-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
made UDP use OpenHashTable for the endpoint table, part of the lookup is now inlined. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20854 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5084c83901d6e5e4214512211b5e86d5c63926bd |
|
27-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
addressed Axel's suggestion regarding SocketAddress' GetPort() name. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20851 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
25a2744f9e983bf304d65b284506fc7b6136a394 |
|
27-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
adapted UDP to use AddressUtilities, for readability. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20850 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c72ab92d8498f0787c3d6e1f9e5b72e03cd5e2a1 |
|
27-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
adapted UDP to use ProtocolSocket which it already derived through DatagramSocket. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20849 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
53f23f85a2725c8fc31c7a874256084c7c623d86 |
|
25-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
partially rewrote TCP's endpoint manager. Fixes #1173 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20814 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2445c00e6420e2b365cba47c758b66fc04e75f59 |
|
19-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
some internal reorganization of getsockopt()/setsockopt() handling. TCP is now able to fully use the application requested sender/receiver buffer sizes for improved performance. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20764 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d5b5a2c2f8c70f0e24cdf2e3a7fc9c4faa22e4c3 |
|
15-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
introduced Checksum::PseudoHeader helper. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20717 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1408d1f0ce8555b9b94037e6f1c9c530afe753b6 |
|
15-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
introduced datalink's send_datagram to perform route and source address selection and dispatch the datagram to appropriate domain/protocol. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20714 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
|
#
4229d7091edcd319ba893a3816e5a077871218cc |
|
14-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
made UDP's send_data call into IPv4's, so we can handle of the datagram stuff in one place. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20694 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
49f3c71e21b3b4f09905bf967b84e909fa24cd2b |
|
13-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
respect SO_BROADCAST for received and sent datagrams. - check if the destination address is specified in IPv4's SendData() - minor cleanups to IPv4's TRACE()s. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20681 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
658a550639d1b3ec33c934583d065c81bee46298 |
|
13-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
use module_dependencies to load the required modules by udp, tcp, ipv4, icmp and arp. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20676 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d438fa4c124c7dd113ccfb6f9badae5d18354af0 |
|
12-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
added buffer, datalink and socket module references to the stack module so we don't have to load them in each other module. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20673 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bfb45f717c648c5cd68e84c8ca1f805d099ba3c5 |
|
12-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
introduced a new helper class DatagramSocket which provides a consistent base interface and functionality for the implementation of datagram-based sockets. - made the ipv4 raw, udp and link protocols use DatagramSocket. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20672 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bf48e753d7c87ff1a38913f0117f6653bbac2bb1 |
|
12-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
made UDP agnostic to the underlying network protocol (preparing some work into the future). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20661 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6c35350908905903b5c150154b0da9698ca8943a |
|
11-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
moved address selection logic to a new 'get_buffer_route'. - IPv4 now assumes the addresses it is supplied in send_routed_data are already the appropriate ones. - made the Data(), operator* and operator-> methods in NetBufferFieldReader const so we can use them in the same expression as the constructor. - fixed an issue with UDP where the wrong source address could be used in the calculating the checksum. - changed ipv4_print_address to use the more common 0.0.0.0 format. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20660 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
87001e059c8012ef40c462709833b5ae4212fb4a |
|
11-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
some NetBufferUtility revamp. - introduced base NetBufferFieldReader which deals with obtaining a continuguous field to deal with. - renamed Detach() to Sync() to better express the fact that we may be writing to the buffer. - Fixed IPv4's and ICMP's checksum calculation as it assumed the underlying header was contiguous. - ICMP is now able to reply to ICMP Echo Requests which were split across data nodes. - in split_buffer(), make sure we were able to trim() the new buffer before damaging the original one. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20657 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d86f48f3f5a6ca5039ee8f2190c97906d976f2d1 |
|
05-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
tiny TCP cleanups, move the read notifications to _NotifyReader(). - Also fixed the buffer size check in UDP's SendData() since UDP's length field includes the size of the header we need to check that as well. IPv4 is correct since we check for the size after prepending the header (due to it being possibly already included). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20592 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4168e54af80fe7848dd39aca7c77740087a7603a |
|
05-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
send buffer size is irrelevant for UDP, instead check if the fed buffer is larger than the maximum payload UDP supported. Do the same in IPV4. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20590 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9e084902c1193d64fb3339e4a1fdcea9821dc42b |
|
05-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
small cleanups in UDP - don't set_to_empty_address, instead consider NULL to be the empty address and use is_empty_address(). - most ipv4 address module calls already consider NULL to be the empty address, ipv4_hash_address_pair didn't, fixed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20589 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c3e054c876e5ff3b87126e7937ff8c1d6a7be4c1 |
|
05-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
fixed an issue in UDP due to copying addresses to sockaddr, which may be too small for protocols other than IPv4. In fact, we don't need to copy the addresses at all, we can use the original address pointers in the hash key for lookup and hashing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20588 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0d5afa4decb83fc03232a420d85c7838f70d2266 |
|
05-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
introduced fifo_socket_enqueue_buffer which clones the buffer, enqueues it to the fifo and notifies the socket. - changed the link, ipv4 and udp modules to use fifo_socket_enqueue_buffer git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20587 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
abe1ec18ac0e70d36b0cc595fc176ea4dd9df818 |
|
05-Apr-2007 |
Hugo Santos <hugosantos@nowhere.fake> |
properly support MSG_TRUNC. we don't even have to trim the buffer, just try to fill the user buffers as much as possible git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20582 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
af3a31f770fcd8b7e8c5171342cba155bef6dc9e |
|
01-Jan-2007 |
Axel Dörfler <axeld@pinc-software.de> |
Calmed down the networking stack a lot - since it basically works, there is no reason to slow it down with debug output that much; this will also help investigating some issues where you just aren't interested in most of the output. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19672 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c35b04de314ab7f18763546366ea30eb8ae53997 |
|
02-Nov-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Moved the TCPConnection class into its own file. * Added some missing result checks, mostly for allocations. * Fixed a wrong precendence with the ?: operator * Some minor cleanup. * Renamed sBufferModule to gBufferModule - the header expects it to be a global, so it should be named like one. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19178 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a7028ce6802b20c7fea03c8b4defa0770a50b850 |
|
06-Oct-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented select support for sockets and notifications, not yet tested, though; this closes ticket #811. * Added notification support to IPv4 and UDP. * Implemented reading out SO_ERROR. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19017 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
891a127fecd553cc2168db11ccc564f5ba38fad6 |
|
17-Sep-2006 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
various gcc 4 related build fixes git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18876 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c22d69bf1f5f60f7ebddd79108a53c8f97f300fe |
|
08-Aug-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Completed the previous commit and merger of the team/network/new_stack branch. * Removed ppp_up and pppcontrol from the image for now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18457 a95241bf-73f2-0310-859d-f6bbb57e9c96
|