This is a massive upgrade removing almost all pre-waf 1.6 script code. In addition, this does away with custom pkgconfig.py script for making .pc files and replaces it with waf's builtin mechanism.
Massive thanks to Alex Afanasyev for ideas and bugfixing, to Alina Quereilhac for bugfixing and testing, and to Tom Henderson for thorough testing.
Compilers shouldn't warn on unused static inline function and just don't emit code for
them in optimized builds.
Also debugging-only functions don't pollute symbol tables.
1. Make connection count (m_cnCount) a separate variable from the number of
connection retries (m_cnRetries), so that the number of connection retries
can be cloned without affecting the number of connections to be made in the
cloned sockets.
2. There was a case that the m_highTxMark was mistaken as m_nextTxSequence
3. Update m_lastRtt correctly, fixes bug 1242
4. The endpoint allocation/deallocation is rewritten so that the endpoint
remembers the correct peer's address and it is deleted upon close.
RecvFrom() call now use the data in endpoint to return the peer's address,
and the socket closes nicely.
5. TcpL4Protocol::m_sockets now holds a complete list of all existing sockets
6. RST packet is sent before CloseAndNotify() is called, so that m_endPoint is
not yet destroyed, fixes bug 1166
7. Fix cwnd deflation bug in partial ACK handling in TcpNewReno
8. Created attributes for fast retransmit threshold (m_retxThresh) and max
advertised window size (m_maxWinSize)
9. Refactor SendPendingData() and DoRetransmit(), created SendDataPacket()
10. Call NotifySend() after connection established in ProcessSynSent() and
ProcessSynRcvd()
11. Defines new flags in TcpHeader: ECE and CWR (see RFC3168)
12. Prepared hooks for TCP option handling
13. Code tidy up
14. Fix the definition of out-of-order packets
15. TCP can now move from TIME_WAIT state to CLOSED state after 2*MSL
16. Implemented limited transmit (RFC3042) in TcpNewReno, c.f. bug 1227
17. Added Raj's email to the preamble, as TcpSocketBase was modified from
TcpSocketImpl.