public SourceServerQuery(ServerQueryState state, string serverBrowserTag) {
     Contract.Requires<ArgumentNullException>(state != null);
     Contract.Requires<ArgumentNullException>(serverBrowserTag != null);
     _state = state;
     _state.MaxPackets = state.HandlePlayers ? 3 : 2;
     _remoteEp = new IPEndPoint(_state.Server.Address.Address, _state.Server.Address.Port);
 }
 async Task<ServerQueryState> UpdateServer(IServer server, IPEndPoint endPoint) {
     // TODO: The queue should not be just for Source ;-)
     using (var state = new ServerQueryState(server, sourceQueryParser, endPoint)) {
         await new SourceServerQuery(state, "arma3").UpdateAsync().ConfigureAwait(false);
         return state;
     }
 }