我知道TCP_SYN_RECV,但是TCP_NEW_SYN_RECV是什么意思?它们之间有什么区别?
enum {
TCP_ESTABLISHED = 1,
TCP_SYN_SENT,
TCP_SYN_RECV,
TCP_FIN_WAIT1,
TCP_FIN_WAIT2,
TCP_TIME_WAIT,
TCP_CLOSE,
TCP_CLOSE_WAIT,
TCP_LAST_ACK,
TCP_LISTEN,
TCP_CLOSING, /* Now a valid state */
TCP_NEW_SYN_RECV,
TCP_MAX_STATES /* Leave at the end! */
};
我看到了下面的代码 "sk->sk_state == TCP_NEW_SYN_RECV",为什么不使用 "sk->sk_state == TCP_SYN_RECV" 代替?
if (sk->sk_state == TCP_NEW_SYN_RECV) {
struct request_sock *req = inet_reqsk(sk);
struct sock *nsk;
git log -S'TCP_NEW_SYN_RECV' -- path/to/file/of/interest
命令查找添加了TCP_NEW_SYN_RECV
的提交记录。阅读找到的提交信息以获取新定义及其用法的线索。此外,建议您使用 kernel.org 的主线版本库(这个)而不是 GitHub。 - Sam Protsenko