• Dan McGee's avatar
    Set socket TCP keepalive option on incoming connections · 27946a98
    Dan McGee authored
    If a connected host disappears without our knowledge, as can happen over
    wireless or a hibernating machine, we continue to hold the port open waiting
    for messages. Because we never try to send anything down this now-broken
    pipe, the connection will sit idle taking up a slot in our allowed incoming
    connections list.
    
    If enough of these happen, an unintended Denial of Service takes place,
    where all connection slots are filled with now-broken, never ending
    connections. Setting the TCP keepalive option at least allows these to time
    out after the default two hours, which is sufficient in the non-malicious
    case.
    Signed-off-by: 's avatarDan McGee <dan@archlinux.org>
    27946a98
socket_util.h 2.13 KB