+ too_fast += 10 if valid_recv
+ rescue ServerMessageParseError => e
+ # if the bot tried reconnecting too often, we can get forcefully
+ # disconnected by the server, while still receiving an empty message
+ # wait at least 10 minutes in this case
+ if e.message.empty?
+ oldtf = too_fast
+ too_fast = [too_fast, 300].max
+ too_fast*= 2
+ log "Empty message from server, extra delay multiplier #{oldtf} -> #{too_fast}"
+ end
+ quit_msg = "Unparseable Server Message: #{e.message.inspect}"
+ retry
+ rescue ServerError => e