Пример #1
1
        bool AcceptClient(UnixSocket csock, out ServerConnection conn)
        {
            //TODO: use the right abstraction here, probably using the Server class
            UnixNativeTransport transport = new UnixNativeTransport();
            //client.Client.Blocking = true;
            transport.socket = csock;
            transport.SocketHandle = (long)csock.Handle;
            transport.Stream = new UnixStream(csock);
            //Connection conn = new Connection (transport);
            //Connection conn = new ServerConnection (transport);
            //ServerConnection conn = new ServerConnection (transport);
            conn = new ServerConnection(transport);
            conn.Server = this;
            conn.Id = Id;

            if (conn.Transport.Stream.ReadByte() != 0)
                return false;

            conn.isConnected = true;

            SaslPeer remote = new SaslPeer();
            remote.stream = transport.Stream;
            SaslServer local = new SaslServer();
            local.stream = transport.Stream;
            local.Guid = Id;

            local.Peer = remote;
            remote.Peer = local;

            bool success = local.Authenticate();

            Console.WriteLine("Success? " + success);

            if (!success)
                return false;

            conn.UserId = ((SaslServer)local).uid;

            conn.isAuthenticated = true;

            return true;
        }
Пример #2
0
        bool AcceptClient(UnixSocket csock, out ServerConnection conn)
        {
            //TODO: use the right abstraction here, probably using the Server class
            UnixNativeTransport transport = new UnixNativeTransport();

            //client.Client.Blocking = true;
            transport.socket       = csock;
            transport.SocketHandle = (long)csock.Handle;
            transport.Stream       = new UnixStream(csock);
            //Connection conn = new Connection (transport);
            //Connection conn = new ServerConnection (transport);
            //ServerConnection conn = new ServerConnection (transport);
            conn        = new ServerConnection(transport);
            conn.Server = this;
            //conn.Id = Id;

            if (conn.Transport.Stream.ReadByte() != 0)
            {
                return(false);
            }

            //conn.isConnected = true;

            SaslPeer remote = new SaslPeer();

            remote.stream = transport.Stream;
            SaslServer local = new SaslServer();

            local.stream = transport.Stream;
            local.Guid   = Id;

            local.Peer  = remote;
            remote.Peer = local;

            bool success = local.Authenticate();

            Console.WriteLine("Success? " + success);

            if (!success)
            {
                return(false);
            }

            conn.UserId = ((SaslServer)local).uid;

            //conn.isAuthenticated = true;

            return(true);
        }
Пример #3
0
        bool AcceptClient(PipeStream client, out ServerConnection conn)
        {
            PipeTransport transport = new PipeTransport();

            //client.Client.Blocking = true;
            //transport.SocketHandle = (long)client.Client.Handle;
            transport.Stream = client;
            conn             = new ServerConnection(transport);
            conn.Server      = this;
            conn.Id          = Id;

            if (conn.Transport.Stream.ReadByte() != 0)
            {
                return(false);
            }

            conn.isConnected = true;

            SaslPeer remote = new SaslPeer();

            remote.stream = transport.Stream;
            SaslServer local = new SaslServer();

            local.stream = transport.Stream;
            local.Guid   = Id;

            local.Peer  = remote;
            remote.Peer = local;

            bool success = local.Authenticate();

            //bool success = true;

            Console.WriteLine("Success? " + success);

            if (!success)
            {
                return(false);
            }

            conn.UserId = ((SaslServer)local).uid;

            conn.isAuthenticated = true;

            return(true);
        }
Пример #4
0
        bool AcceptClient(PipeStream client, out ServerConnection conn)
        {
            PipeTransport transport = new PipeTransport ();
            //client.Client.Blocking = true;
            //transport.SocketHandle = (long)client.Client.Handle;
            transport.Stream = client;
            conn = new ServerConnection (transport);
            conn.Server = this;
            conn.Id = Id;

            if (conn.Transport.Stream.ReadByte () != 0)
                return false;

            conn.isConnected = true;

            SaslPeer remote = new SaslPeer ();
            remote.stream = transport.Stream;
            SaslServer local = new SaslServer ();
            local.stream = transport.Stream;
            local.Guid = Id;

            local.Peer = remote;
            remote.Peer = local;

            bool success = local.Authenticate ();
            //bool success = true;

            Console.WriteLine ("Success? " + success);

            if (!success)
                return false;

            conn.UserId = ((SaslServer)local).uid;

            conn.isAuthenticated = true;

            return true;
        }