• Xin Long's avatar
    sctp: fix double EPs display in sctp_diag · bed187b5
    Xin Long authored
    We have this situation: that EP hash table, contains only the EPs
    that are listening, while the transports one, has the opposite.
    We have to traverse both to dump all.
    
    But when we traverse the transports one we will also get EPs that are
    in the EP hash if they are listening. In this case, the EP is dumped
    twice.
    
    We will fix it by checking if the endpoint that is in the endpoint
    hash table contains any ep->asoc in there, as it means we will also
    find it via transport hash, and thus we can/should skip it, depending
    on the filters used, like 'ss -l'.
    
    Still, we should NOT skip it if the user is listing only listening
    endpoints, because then we are not traversing the transport hash.
    so we have to check idiag_states there also.
    Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
    Acked-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    bed187b5
sctp_diag.c 12.7 KB