Commit Graph
11 Commits
Author SHA1 Message Date
Andrew Galante 16028bd0af TCP now acks incoming data, and stores it into the receive buffer. It should also reassemble packets received out-of-order, but this is untested. These bytes don't get to the application layer yet, mostly because i'm unsure how this is supposed to happen.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19163 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-01 06:08:36 +00:00
Andrew Galante db893fd8d8 Sending data over TCP should work now. Receiving is still MIA.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19007 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-06 04:02:23 +00:00
Andrew Galante 0054baf8c9 A few bugfixes to prepend_size and append_size so they don't create unnecessary empty nodes. Minor cleanup to ipv4.cpp.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18951 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-27 18:56:06 +00:00
Andrew Galante 86780a1f7f Revamp of the net_buffer code, using a datastore. I removed the data_header struct, but this means having to malloc() all the data_node objects - There may be a speed benefit in storing these in a datastore as well. As a consequence, most of the buffer functions are much simpler, if recursive at times. I don't see this as a big problem, as most buffers will only utilize a few data_nodes at a time.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18897 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-21 02:54:47 +00:00
Andrew Galante b425ce77ad A helper datastructure for network buffers. Defines a fixed-size region of same-size data blocks, and maintains a reference count for each
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18896 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-21 02:40:20 +00:00
Andrew Galante 7bfdb02ea8 The full TCP state machine should be working now, with the exception of the LISTEN state. It cannot yet transfer data though - that will be implemented next. Connections are only made from port 40000 though, ephemeral ports are not yet implemented.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18729 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-01 02:36:59 +00:00
Andrew Galante 806e2ef627 Three way handshake is now functional. Need to add error conditions and graceful cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18682 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-29 00:52:52 +00:00
Andrew Galante b611759230 TCP module now refuses connections to closed ports.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18616 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-24 20:31:10 +00:00
Andrew Galante 171ee97271 TCP Socket creation and destruction implemented, as well as the beginning of the TCP state-machine
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18558 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-21 23:16:22 +00:00
Andrew Galante 9515b3f27d Extra error checking in init
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18479 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-11 00:28:50 +00:00
Andrew Galante 6bfaab8ab3 Beginning of TCP implementation
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18478 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-11 00:26:36 +00:00