mirror of
https://github.com/versity/scoutfs.git
synced 2026-09-24 00:44:22 +00:00
A connecting client must send a greeting message so the server can get their RID and start processing. The server acted on connections that hadn't received a greeting with the RID. It would print messages and would try to fence these connections' client if it disconnected. The server never received the RID, though, so there was nothing to fence. The server would shut down if either fencing raised an error or when the net stack called its notify_down callback with a 0 RID. And all of this is actively triggered in the field by port scans that send either nothing or garbage down connections to the ports that they're sweeping. We fix all this by ignoring the connections until we receive a RID. We don't print the accepted or closed messages, free the connection if it disconnects, and don't call the notify up or down methods. Signed-off-by: Zach Brown <zab@versity.com>