Commit Graph

102 Commits (1fdf545800261b13b8f754a5e92c5c9552370594)

Author SHA1 Message Date
whitequark 1fdf545800 Fix outdated info in README. 2016-12-28 00:27:49 +00:00
whitequark 1fe5c5f4a4 We don't build on stable... yet. 2016-12-28 00:23:28 +00:00
whitequark 2404647163 Update Cargo metadata. 2016-12-28 00:21:01 +00:00
whitequark 22b0406c59 More sensible naming for examples. 2016-12-28 00:18:10 +00:00
whitequark 19e6ab5619 Add Travis CI configuration. 2016-12-28 00:14:45 +00:00
whitequark 151b3ba07b Get rid of the #![feature(associated_consts)]. 2016-12-28 00:12:15 +00:00
whitequark 71268ace88 Get rid of the #![feature(const_fn)]. 2016-12-28 00:08:51 +00:00
whitequark e043e7c496 Get rid of the #![feature(step_by)]. 2016-12-28 00:08:51 +00:00
whitequark b409eec11b Suppress unused variable warnings in net_trace!. 2016-12-27 23:52:43 +00:00
whitequark bba505bc90 Add a use_alloc feature. 2016-12-27 23:49:37 +00:00
whitequark de24d635fa Rename features: std→use_std, logging→use_log. 2016-12-27 23:45:24 +00:00
whitequark df69303624 Fix state names in documentation. 2016-12-27 23:28:57 +00:00
whitequark 979cd4c1bf Implement the TCP LAST-ACK state. 2016-12-27 23:27:33 +00:00
whitequark 874264503d Implement the TCP close operation. 2016-12-27 22:43:16 +00:00
whitequark feaef0d7c4 Fix TCP sequence number in multiple consecutive non-ACKed data packets. 2016-12-27 20:39:46 +00:00
whitequark 17f96ba929 Fix TcpSocket::can_recv(). 2016-12-27 20:17:46 +00:00
whitequark 71d1b4061f Fix ACK validation of TCP RST packets. 2016-12-27 20:17:35 +00:00
whitequark 867dda659d Fix several TCP out-of-bounds reads from the transmit buffer. 2016-12-27 20:17:03 +00:00
whitequark 69427c9e2f Add TcpSocket::is_connected(). 2016-12-27 18:54:45 +00:00
whitequark e6357ee79c Correctly propagate carries in the IP checksum. 2016-12-27 18:43:49 +00:00
whitequark 6b592742fd Use the correct wrapping operations on TCP sequence numbers. 2016-12-27 18:34:13 +00:00
whitequark bbff907e87 Fix examples. 2016-12-27 18:04:39 +00:00
whitequark a8fc4fd832 Improve the user-facing TCP socket API. 2016-12-27 17:49:40 +00:00
whitequark 09040f3e91 Accept TCP ACK packets in CLOSE_WAIT state. 2016-12-27 14:13:42 +00:00
whitequark d11016b138 Simplify TCP ACK handling. 2016-12-27 14:04:30 +00:00
whitequark 751a2269c3 Add support for TCP FIN in ESTABLISHED state. 2016-12-27 13:34:48 +00:00
whitequark 79553e81d4 Fix TCP incoming sequence number check. 2016-12-26 17:24:37 +00:00
whitequark 2d562c10fa Add support for multiple outgoing in-flight TCP packets. 2016-12-26 16:59:39 +00:00
whitequark 3917ba5836 Shrink the buffers in examples for ease of testing. 2016-12-26 16:29:33 +00:00
whitequark d7e73a36f0 Add some colors for readability. 2016-12-26 15:46:36 +00:00
whitequark a6eab874be Parameterize tracer over the write function. 2016-12-26 15:46:30 +00:00
whitequark a8b4ed2deb Implement the userspace side of TCP sockets. 2016-12-26 15:05:46 +00:00
whitequark 0e20ea9205 Implement TCP data transmission. 2016-12-26 14:24:17 +00:00
whitequark 0bf822c77e Implement TCP RST handling. 2016-12-26 13:54:26 +00:00
whitequark 83f886826f Validate ACK for TCP RST packets. 2016-12-26 13:10:39 +00:00
whitequark f468f47959 Validate ACK even in TCP LISTEN state. 2016-12-26 13:00:39 +00:00
whitequark 2de98aea06 Add tests for TCP error conditions. 2016-12-26 12:44:41 +00:00
whitequark 25d453447f Generalize the TCP tests to accept multiple packets. 2016-12-26 12:38:40 +00:00
whitequark ea78053dc1 Factor out IpRepr into the wire module. 2016-12-26 11:20:20 +00:00
whitequark ea07e79bdf Group IP header parts in the socket layer as struct IpRepr. 2016-12-26 10:06:49 +00:00
whitequark b5a9917950 Implement TCP data acknowledgement. 2016-12-25 11:19:50 +00:00
whitequark 0ae27678a0 Implement TCP data reception. 2016-12-25 11:09:50 +00:00
whitequark bdfb99ea16 Validate TCP ACKs. 2016-12-25 09:22:49 +00:00
whitequark fa1a51b90a Add tests for TCP state machine. 2016-12-24 23:06:42 +00:00
whitequark f5f0b8e435 Add basic TCP three-way handshake. 2016-12-23 08:05:50 +00:00
whitequark 3c05139204 Add logging capability. 2016-12-23 07:59:38 +00:00
whitequark f46c77bdd6 Fix autoselection of source address. 2016-12-23 07:57:54 +00:00
whitequark 6539019f19 Get rid of explicit backlog. 2016-12-23 07:34:10 +00:00
whitequark 6d8d3cb29d Use correct sequence numbers in TCP RST packets. 2016-12-23 07:34:10 +00:00
whitequark 3bd715e1bc Use signed integers to represent TCP sequence numbers. 2016-12-23 07:34:07 +00:00