]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - net/ipv4/tcp_diag.c
[TCP]: Export accept queue len of a TCP listening socket via rx_queue
[net-next-2.6.git] / net / ipv4 / tcp_diag.c
index c148c1081880a03aa1a7f24a692cb439f7ee3d70..b56399c7cc12ac626372331768a7ac9effd2e946 100644 (file)
@@ -26,7 +26,10 @@ static void tcp_diag_get_info(struct sock *sk, struct inet_diag_msg *r,
        const struct tcp_sock *tp = tcp_sk(sk);
        struct tcp_info *info = _info;
 
-       r->idiag_rqueue = tp->rcv_nxt - tp->copied_seq;
+       if (sk->sk_state == TCP_LISTEN)
+               r->idiag_rqueue = sk->sk_ack_backlog;
+       else
+               r->idiag_rqueue = tp->rcv_nxt - tp->copied_seq;
        r->idiag_wqueue = tp->write_seq - tp->snd_una;
        if (info != NULL)
                tcp_get_info(sk, info);