예제 #1
0
파일: Options.cs 프로젝트: OpBug/Quanta-WIP
 public Options()
 {
     _noDelay             = true;
     _useTimestamps       = true;
     _exclusiveAddressUse = true;
     _protectionLevel     = IPProtectionLevel.Unrestricted;
 }
예제 #2
0
 private Listener(Options options) : base()
 {
     _noDelay             = options.NoDelay;
     _exclusiveAddressUse = options.ExclusiveAddressUse;
     _useTimestamps       = options.UseTimestamps;
     _protectionLevel     = options.ProtectionLevel;
 }
예제 #3
0
        public void AllowNatTraversal_Windows(bool allow, IPProtectionLevel resultLevel)
        {
            var l = new TcpListener(IPAddress.Any, 0);

            l.AllowNatTraversal(allow);
            Assert.Equal((int)resultLevel, (int)l.Server.GetSocketOption(SocketOptionLevel.IP, SocketOptionName.IPProtectionLevel));
        }
예제 #4
0
 public void SetIPProtectionLevel_Unix(IPProtectionLevel level, AddressFamily family)
 {
     using (var socket = new Socket(family, SocketType.Stream, ProtocolType.Tcp))
     {
         Assert.Throws <PlatformNotSupportedException>(() => socket.SetIPProtectionLevel(level));
     }
 }
예제 #5
0
 public void AllowNatTraversal_Windows(bool allow, IPProtectionLevel resultLevel)
 {
     using (var c = new UdpClient())
     {
         c.AllowNatTraversal(allow);
         Assert.Equal((int)resultLevel, (int)c.Client.GetSocketOption(SocketOptionLevel.IP, SocketOptionName.IPProtectionLevel));
     }
 }
예제 #6
0
        public void SetIPProtectionLevel_Windows(IPProtectionLevel level, AddressFamily family, SocketOptionLevel optionLevel)
        {
            using (var socket = new Socket(family, SocketType.Stream, ProtocolType.Tcp))
            {
                socket.SetIPProtectionLevel(level);

                int result = (int)socket.GetSocketOption(optionLevel, SocketOptionName.IPProtectionLevel);
                Assert.Equal(result, (int)level);
            }
        }
예제 #7
0
 public void SetIPProtectionLevel(IPProtectionLevel level)
 {
     throw new NotImplementedException();
 }
예제 #8
0
 /// <inheritdoc />
 public void SetIPProtectionLevel(IPProtectionLevel level)
 {
     _socket.SetIPProtectionLevel(level);
 }
 public void SetIPProtectionLevel(IPProtectionLevel level)
 {
 }
예제 #10
0
파일: Socket.cs 프로젝트: REALTOBIZ/mono
        public void SetIPProtectionLevel(IPProtectionLevel level) {
            if (level == IPProtectionLevel.Unspecified) {
                throw new ArgumentException(SR.GetString(SR.net_sockets_invalid_optionValue_all), "level");
            }

            if (addressFamily == AddressFamily.InterNetworkV6) {
                SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IPProtectionLevel, (int)level);
            }
            else if (addressFamily == AddressFamily.InterNetwork) {
                SetSocketOption(SocketOptionLevel.IP, SocketOptionName.IPProtectionLevel, (int)level);
            }
            else {
                throw new NotSupportedException(SR.GetString(SR.net_invalidversion));
            }
        }
예제 #11
0
 public void SetIPProtectionLevel_Unix(IPProtectionLevel level, AddressFamily family)
 {
     using (var socket = new Socket(family, SocketType.Stream, ProtocolType.Tcp))
     {
         Assert.Throws<PlatformNotSupportedException>(() => socket.SetIPProtectionLevel(level));
     }
 }
예제 #12
0
        public void SetIPProtectionLevel_Windows(IPProtectionLevel level, AddressFamily family, SocketOptionLevel optionLevel)
        {
            using (var socket = new Socket(family, SocketType.Stream, ProtocolType.Tcp))
            {
                socket.SetIPProtectionLevel(level);

                int result = (int)socket.GetSocketOption(optionLevel, SocketOptionName.IPProtectionLevel);
                Assert.Equal(result, (int)level);
            }
        }
예제 #13
0
 public void AllowNatTraversal_Windows(bool allow, IPProtectionLevel resultLevel)
 {
     var l = new TcpListener(IPAddress.Any, 0);
     l.AllowNatTraversal(allow);
     Assert.Equal((int)resultLevel, (int)l.Server.GetSocketOption(SocketOptionLevel.IP, SocketOptionName.IPProtectionLevel));
 }
예제 #14
0
 /// <summary>
 /// Set the IP protection level on a socket.
 /// </summary>
 /// <param name="level">The IP protection level to set on this socket.</param>
 public void SetIPProtectionLevel(IPProtectionLevel level) {
     this.Socket.SetIPProtectionLevel(level);
 }
예제 #15
0
 /// <summary>
 ///     This method sets the IP protection level of the socket and initializes the brute-force attack protection
 ///     system for the socket. This method does not need to be called to initialize the socket. If skipped,
 ///     there will be no brute-force attack protection on the socket (dangerous).
 /// </summary>
 /// <param name="protectionLevel">Specifies the restriction of the socket to a specified IP scope.</param>
 /// <param name="maximum">The maximum amount of connections from one IP address per minute.</param>
 /// <param name="banTime">The amount of time a player is banned for after a brute-force attack in minutes.</param>
 public void SetSecurity(IPProtectionLevel protectionLevel, uint maximum, uint banTime)
 {
     SetIPProtectionLevel(protectionLevel);
 }
예제 #16
0
 public void SetIPProtectionLevel(IPProtectionLevel level)
 {
     this.m_Socket.SetIPProtectionLevel(level);
 }
예제 #17
0
파일: Socket.cs 프로젝트: AtsushiKan/corefx
        public void SetIPProtectionLevel(IPProtectionLevel level)
        {
            if (level == IPProtectionLevel.Unspecified)
            {
                throw new ArgumentException(SR.Format(SR.net_sockets_invalid_optionValue_all), nameof(level));
            }

            if (_addressFamily == AddressFamily.InterNetworkV6)
            {
                SocketPal.SetIPProtectionLevel(this, SocketOptionLevel.IPv6, (int)level);
            }
            else if (_addressFamily == AddressFamily.InterNetwork)
            {
                SocketPal.SetIPProtectionLevel(this, SocketOptionLevel.IP, (int)level);
            }
            else
            {
                throw new NotSupportedException(SR.net_invalidversion);
            }
        }
예제 #18
0
 public void SetIPProtectionLevel(IPProtectionLevel level);
예제 #19
0
 public void AllowNatTraversal_Windows(bool allow, IPProtectionLevel resultLevel)
 {
     using (var c = new UdpClient())
     {
         c.AllowNatTraversal(allow);
         Assert.Equal((int)resultLevel, (int)c.Client.GetSocketOption(SocketOptionLevel.IP, SocketOptionName.IPProtectionLevel));
     }
 }