protected override void OnListen()
 {
     TransportSettings innerSettings = this.transportSettings.InnerTransportSettings;
     this.innerListener = innerSettings.CreateListener();
     this.innerListener.Closed += new EventHandler(OnInnerListenerClosed);
     this.innerListener.Listen(this.OnAcceptInnerTransport);
 }
        protected ConnectionListener(
            Uri addressUri,
            AmqpSettings amqpSettings,
            AmqpConnectionSettings connectionSettings)
        {
            amqpSettings.ValidateListenerSettings();
            this.listenAddress = addressUri;
            this.amqpSettings = amqpSettings;
            this.connectionSettings = connectionSettings;
            this.onAcceptTransport = this.OnAcceptTransport;

            TcpTransportSettings tcpSettings = new TcpTransportSettings();
            tcpSettings.SetEndPoint(addressUri.Host, addressUri.Port, true);
            TransportListener tpListener = null;
            if (addressUri.Scheme.Equals(AmqpConstants.SchemeAmqps, StringComparison.OrdinalIgnoreCase))
            {
                TlsTransportProvider tlsProvider = this.amqpSettings.GetTransportProvider<TlsTransportProvider>();
                if (tlsProvider == null)
                {
                    throw Fx.Exception.ArgumentNull("TlsSecurityProvider");
                }

                Fx.Assert(tlsProvider.Settings.Certificate != null, "Must have a valid certificate.");
                TlsTransportSettings tlsSettings = new TlsTransportSettings(tcpSettings, false);
                tlsSettings.Certificate = tlsProvider.Settings.Certificate;
                tpListener = tlsSettings.CreateListener();
            }
            else
            {
                tpListener = tcpSettings.CreateListener();
            }

            this.transportListener = new AmqpTransportListener(new TransportListener[] { tpListener }, this.amqpSettings);
            this.onConnectionOpenComplete = new AsyncCallback(this.OnConnectionOpenComplete);
        }
Beispiel #3
0
        public T Find <T>()
            where T : TransportListener
        {
            T t;

            List <TransportListener> .Enumerator enumerator = this.innerListeners.GetEnumerator();
            try
            {
                while (enumerator.MoveNext())
                {
                    TransportListener current = enumerator.Current;
                    if (typeof(T) != current.GetType())
                    {
                        continue;
                    }
                    t = (T)current;
                    return(t);
                }
                return(default(T));
            }
            finally
            {
                ((IDisposable)enumerator).Dispose();
            }
            return(t);
        }
 void OnInnerListenerClosed(object sender, EventArgs e)
 {
     if (!this.IsClosing())
     {
         TransportListener innerListener = (TransportListener)sender;
         this.TryClose(innerListener.TerminalException);
     }
 }
        protected override void OnListen()
        {
            TransportSettings innerSettings = this.transportSettings.InnerTransportSettings;

            this.innerListener         = innerSettings.CreateListener();
            this.innerListener.Closed += new EventHandler(OnInnerListenerClosed);
            this.innerListener.Listen(this.OnAcceptInnerTransport);
        }
Beispiel #6
0
 private void OnListenerClosed(object sender, EventArgs e)
 {
     if (!base.IsClosing())
     {
         TransportListener transportListener = (TransportListener)sender;
         MessagingClientEtwProvider.TraceClient <AmqpTransportListener, TransportListener>((AmqpTransportListener source, TransportListener listener) => MessagingClientEtwProvider.Provider.EventWriteAmqpLogError(source, "OnListenerClosed", listener.ToString()), this, transportListener);
         base.SafeClose(transportListener.TerminalException);
     }
 }
Beispiel #7
0
            public void Open()
            {
                int port = this.container.addressUri.Port;
                if (port == -1)
                {
                    port = AmqpConstants.DefaultPort;
                }

                TcpTransportSettings tcpSettings = new TcpTransportSettings();
                tcpSettings.TcpBacklog = 20;
                tcpSettings.TcpBufferSize = 4096;
                tcpSettings.SetEndPoint(this.container.addressUri.Host, port, true);
                TransportSettings transportSettings = tcpSettings;

                this.listener = transportSettings.CreateListener();
                this.listener.Listen(this.OnAcceptTransport);
            }
Beispiel #8
0
 protected override void OnListen()
 {
     this.innerListener         = this.transportSettings.InnerTransportSettings.CreateListener();
     this.innerListener.Closed += new EventHandler(this.OnInnerListenerClosed);
     this.innerListener.Listen(new Action <TransportAsyncCallbackArgs>(this.OnAcceptInnerTransport));
 }
Beispiel #9
0
 protected override void Start(TransportSettings transportSettings)
 {
     this.listener = transportSettings.CreateListener();
     this.listener.Listen(this.OnAcceptTransport);
 }