示例#1
0
        private static byte[] ReadFrom(ISocket4 socket, int length)
        {
            var buffer = new byte[length];

            socket.Read(buffer, 0, buffer.Length);
            return(buffer);
        }
        public ISocket4 CreateSocket(string hostName, int port)
        {
            ISocket4 socket = _delegating.CreateSocket(hostName, port);

            _lastClientSocket = new PassThroughSocket(socket);

            return(_lastClientSocket);
        }
示例#3
0
        private static string ReadString(ISocket4 socket)
        {
            var buffer = ReadBufferFrom(socket, Const4.IntLength);
            var marshalledStringSize = buffer.ReadInt();

            var marshalledString = ReadBufferFrom(socket, marshalledStringSize);
            var io = new LatinStringIO();

            return(io.ReadLengthAndString(marshalledString));
        }
		public Socket4Adapter(ISocket4Factory socketFactory, string hostName, int port)
		{
			try
			{
				_delegate = socketFactory.CreateSocket(hostName, port);
			}
			catch (IOException e)
			{
				throw new Db4oIOException(e);
			}
		}
 public Socket4Adapter(ISocket4Factory socketFactory, string hostName, int port)
 {
     try
     {
         _delegate = socketFactory.CreateSocket(hostName, port);
     }
     catch (IOException e)
     {
         throw new Db4oIOException(e);
     }
 }
 /// <exception cref="System.Exception"></exception>
 internal ServerMessageDispatcherImpl(ObjectServerImpl server, ClientTransactionHandle
                                      transactionHandle, ISocket4 socket4, int threadID, bool loggedIn, object mainLock
                                      )
 {
     _mainLock          = mainLock;
     _transactionHandle = transactionHandle;
     _loggedin          = loggedIn;
     _server            = server;
     _threadID          = threadID;
     _socket            = new Socket4Adapter(socket4);
     _socket.SetSoTimeout(((Config4Impl)server.Configure()).TimeoutServerSocket());
 }
		/// <exception cref="System.Exception"></exception>
		internal ServerMessageDispatcherImpl(ObjectServerImpl server, ClientTransactionHandle
			 transactionHandle, ISocket4 socket4, int threadID, bool loggedIn, object mainLock
			)
		{
			_mainLock = mainLock;
			_transactionHandle = transactionHandle;
			_loggedin = loggedIn;
			_server = server;
			_threadID = threadID;
			_socket = new Socket4Adapter(socket4);
			_socket.SetSoTimeout(((Config4Impl)server.Configure()).TimeoutServerSocket());
		}
示例#8
0
        private static Thread StartClient(int port, ISocket4Factory factory)
        {
            Thread clientTread = new Thread(delegate()
            {
                ISocket4 clientSocket = factory.CreateSocket("localhost", port);
                SendString(clientSocket, Message);
            });

            clientTread.Name = "SslSocketTest thread";
            clientTread.Start();

            return(clientTread);
        }
 public void Run()
 {
     try
     {
         ISocket4 socket = this._enclosing._serverSocket.Accept();
         ServerMessageDispatcherImpl messageDispatcher = new ServerMessageDispatcherImpl(this
                                                                                         ._enclosing, new ClientTransactionHandle(this._enclosing._transactionPool), socket
                                                                                         , this._enclosing.NewThreadId(), false, threadContainer.Lock());
         this._enclosing.AddServerMessageDispatcher(messageDispatcher);
         this._enclosing.ThreadPool().Start("server message dispatcher (still initializing)"
                                            , messageDispatcher);
     }
     catch (Exception)
     {
     }
 }
示例#10
0
        public void TestServerReadSocketTimeout()
        {
            Thread server = new Thread(delegate(object serverSocket)
            {
                ISocket4 client = AsServerSocket(serverSocket).Accept();
                client.SetSoTimeout(1000);
                Assert.Expect(typeof(Exception), delegate
                {
                    client.Read(new byte[1], 0, 1);
                });
            });

            int             serverTimeout       = MinutesToMiliseconds(5);
            ISocket4Factory clientSocketFactory = new SslSocketFactory(new StandardSocket4Factory(), delegate { return(true); });

            AssertTimeoutBehavior(server, serverTimeout, clientSocketFactory);
        }
示例#11
0
        private void AssertTimeoutBehavior(Thread serverTrigger, int serverTimeout, ISocket4Factory clientSocketFactory)
        {
            ISocket4Factory sslSocketFactory = new SslSocketFactory(new StandardSocket4Factory(), ServerCertificate());
            IServerSocket4  serverSocket     = sslSocketFactory.CreateServerSocket(0);

            serverSocket.SetSoTimeout(serverTimeout);

            serverTrigger.IsBackground = true;
            serverTrigger.Start(serverSocket);

            ISocket4 clientSocket = clientSocketFactory.CreateSocket("localhost", serverSocket.GetLocalPort());

            if (!serverTrigger.Join(MinutesToMiliseconds(2)))
            {
                serverTrigger.Abort();
                Assert.Fail("Server thread should have timedout.");
            }
        }
示例#12
0
		public Socket4Decorator(ISocket4 socket)
		{
			_socket = socket;
		}
		public MonitoredServerSideClientSocket4(ISocket4 socket, NetworkingCounters counters) : base(socket)
		{
			_counters = counters;
		}
 public MonitoredServerSideClientSocket4(ISocket4 socket, NetworkingCounters counters) : base(socket)
 {
     _counters = counters;
 }
示例#15
0
 public SslSocket(ISocket4 socket, X509Certificate2 certificate) : this(socket)
 {
     _sslStream = new SslStream(new Socket4Stream(socket), false);
     _sslStream.AuthenticateAsServer(certificate);
 }
示例#16
0
 private SslSocket(ISocket4 socket)
 {
     _socket = socket;
 }
示例#17
0
		public SslSocket(ISocket4 socket, string hostName, RemoteCertificateValidationCallback certificateValidationCallback) : this(socket)
		{
			_sslStream = new SslStream(new Socket4Stream(socket), false, certificateValidationCallback);
			_sslStream.AuthenticateAsClient(hostName);
		}
示例#18
0
 public CountingSocket4(ISocket4 socket) : base(socket)
 {
 }
示例#19
0
 public MonitoredClientSocket4(ISocket4 socket) : base(socket)
 {
 }
示例#20
0
		private static ByteArrayBuffer ReadBufferFrom(ISocket4 socket, int length)
		{
			byte[] buffer = ReadFrom(socket, length);
			return new ByteArrayBuffer(buffer);
		}
示例#21
0
		private static byte[] ReadFrom(ISocket4 socket, int length)
		{
			byte[] buffer = new byte[length];
			socket.Read(buffer, 0, buffer.Length);
			return buffer;
		}
		public Socket4Adapter(ISocket4 delegate_)
		{
			_delegate = delegate_;
		}
示例#23
0
 public PassThroughSocket(ISocket4 socket) : base(socket)
 {
 }
示例#24
0
		protected MonitoredSocket4Base(ISocket4 socket) : base(socket)
		{
		}
示例#25
0
 public Socket4Decorator(ISocket4 socket)
 {
     _socket = socket;
 }
示例#26
0
		public Socket4Stream(ISocket4 socket)
		{
			_socket = socket;
		}
示例#27
0
		private static string ReadString(ISocket4 socket)
		{
			ByteArrayBuffer buffer = ReadBufferFrom(socket, Const4.IntLength);
			int marshalledStringSize = buffer.ReadInt();

			ByteArrayBuffer marshalledString = ReadBufferFrom(socket, marshalledStringSize);
			LatinStringIO io = new LatinStringIO();
			return io.ReadLengthAndString(marshalledString);
		}
示例#28
0
		private SslSocket(ISocket4 socket)
		{
			_socket = socket;
		}
示例#29
0
 public MonitoredClientSocket4(ISocket4 socket) : base(socket)
 {
 }
示例#30
0
		public SslSocket(ISocket4 socket, X509Certificate2 certificate) : this(socket)
		{
			_sslStream = new SslStream(new Socket4Stream(socket), false);
			_sslStream.AuthenticateAsServer(certificate);
		}
示例#31
0
        public override ISocket4 Accept()
        {
            ISocket4 socket = base.Accept();

            return(new SslSocket(socket, _certificate));
        }
示例#32
0
 public SslSocket(ISocket4 socket, string hostName, RemoteCertificateValidationCallback certificateValidationCallback) : this(socket)
 {
     _sslStream = new SslStream(new Socket4Stream(socket), false, certificateValidationCallback);
     _sslStream.AuthenticateAsClient(hostName);
 }
示例#33
0
		private static void SendString(ISocket4 clientSocket, string message)
		{
			byte[] data = BytesToSendFor(message);
			clientSocket.Write(data, 0, data.Length);
		}
示例#34
0
 public CountingSocket4(ISocket4 socket) : base(socket)
 {
 }
示例#35
0
 public Socket4Stream(ISocket4 socket)
 {
     _socket = socket;
 }
示例#36
0
 public Socket4Adapter(ISocket4 delegate_)
 {
     _delegate = delegate_;
 }
示例#37
0
        private static void SendString(ISocket4 clientSocket, string message)
        {
            var data = BytesToSendFor(message);

            clientSocket.Write(data, 0, data.Length);
        }
示例#38
0
		public PassThroughSocket(ISocket4 socket) : base(socket)
		{
		}
示例#39
0
        private static ByteArrayBuffer ReadBufferFrom(ISocket4 socket, int length)
        {
            var buffer = ReadFrom(socket, length);

            return(new ByteArrayBuffer(buffer));
        }
 protected MonitoredSocket4Base(ISocket4 socket) : base(socket)
 {
 }
        public ISocket4 CreateSocket(string hostName, int port)
        {
            ISocket4 clientSocket = _delegating.CreateSocket(hostName, port);

            return(new SslSocket(clientSocket, hostName, _validationCallback));
        }