X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fserver.c;h=777d724336699556b6d6d020eeb115566eb2e13d;hb=ef4e36360505da6c96404d6c762dcd6773fdb98f;hp=6cef2417d9c3ecd65a55f607390ff406e81c1ec9;hpb=85f7454c353763cb25aa719409e656bfd8d878df;p=silc.git diff --git a/apps/silcd/server.c b/apps/silcd/server.c index 6cef2417..777d7243 100644 --- a/apps/silcd/server.c +++ b/apps/silcd/server.c @@ -283,9 +283,14 @@ static void silc_server_packet_error(SilcPacketEngine engine, if (!silc_packet_stream_is_valid(stream)) return; + /* In case we get here many times, register only one timeout */ + silc_schedule_task_del_by_all(server->schedule, 0, + silc_server_packet_error_timeout, stream); + + /* Close connection with random timeout */ silc_schedule_task_add_timeout(server->schedule, silc_server_packet_error_timeout, stream, - silc_rng_get_byte(server->rng) % 5, 0); + silc_rng_get_byte(server->rng) % 10, 0); } /* Packet stream callbacks */