public void RequestHostList(HostDataFilter filter)
        {
            _timeOfHostListRequest = NetworkTime.localTime;

            _MasterConnect();

            var msg = new NetworkMasterMessage(NetworkMasterMessage.InternalCode.HostListRequest);

            msg.stream.WriteHostDataFilter(filter);

            if (_master.Status == NetConnectionStatus.Connected)
            {
                _master.SendMessage(msg.stream._buffer, NetChannel.ReliableInOrder1);
            }
            else
            {
                _pendingMessages[(int)NetworkMasterMessage.InternalCode.HostListRequest] = msg;
            }
        }
        internal override void _MasterSendProxyRequest(NetworkEndPoint host, string password)
        {
            _MasterConnect();

            Log.Info(NetworkLogFlags.MasterServer | NetworkLogFlags.Client, "Sending proxy request for host ", host, String.IsNullOrEmpty(password) ? " without password" : " with password");

            var msg = new NetworkMasterMessage(NetworkMasterMessage.InternalCode.ProxyRequest);

            msg.stream.WriteEndPoint(host);
            msg.stream.WritePassword(new Password(password));

            if (_master.Status == NetConnectionStatus.Connected)
            {
                _master.SendMessage(msg.stream._buffer, NetChannel.ReliableInOrder1);
            }
            else
            {
                _pendingMessages[(int)NetworkMasterMessage.InternalCode.ProxyRequest] = msg;
            }
        }