On 23-11-14 16:17, Lev Stipakov wrote: > Added new packet format P_DATA_V2, which includes peer-id. If server > supports, client sends all data packets in the new format. When data > packet arrives, server identifies peer by peer-id. If peer's ip/port has > changed, server assumes that client has floated, verifies HMAC and > updates ip/port in internal structs.
ACK During the hackathon, the group decided that this indeed is a nice way to support floating clients. I did a code review, but no real testing (just 'make check', including t_client). Lev, Gert and Arne have however performed real-life tests with multiple iterations of this patch. A remaining issue is that the memory usage of a client increases for each 'float', because generate_prefix(mi) allocates memory on each call, which will only be free'd when the client disconnects. However, we agreed to fix that in a separate patch. -Steffan