Beispiel #1
0
        private void VerifyPasswordResult(string correctPassword, string suppliedPassword, bool expectPasswordIsCorrect)
        {
            ReadRequestMessage readRequest = new ReadRequestMessage(new DateTime(0), suppliedPassword);

            using (BookmarkableStream clientStream = ClientRequestToStream(readRequest))
            {
                MockNetworkConnection networkConnection  = new MockNetworkConnection(clientStream);
                MockFolderPackager    mockFolderPackager = new MockFolderPackager();
                MockClock             serverClock        = new MockClock(new DateTime(2007, 5, 25, 15, 27, 03));

                RequestListener folderMonitor = new RequestListener(networkConnection, mockFolderPackager, serverClock, @"c:\fakepath\fakedir", correctPassword);
                folderMonitor.ProcessNextRequest();

                clientStream.ResetToBookmark();
                FarmerMessageSerializer deserializer = new FarmerMessageSerializer();
                ReadResponseMessage     readResponse = (ReadResponseMessage)deserializer.Deserialize(clientStream);

                Assert.AreEqual(expectPasswordIsCorrect, readResponse.IsPasswordCorrect);

                if (expectPasswordIsCorrect)
                {
                    Assert.AreEqual(serverClock.GetCurrentTimeUtc(), readResponse.CurrentServerTimeUtc);
                    Assert.IsNotNull(readResponse.Data);
                }
                else
                {
                    Assert.IsNull(readResponse.Data);
                }
            }
        }
Beispiel #2
0
 public Server(string defaultLocation, NetworkInterface networkInterface)
 {
     default_location       = defaultLocation;
     network_interface_info = NetworkInterfaceInfo.GetNetworkInterfaceInfo(networkInterface);
     request_listener       = new RequestListener(this);
     announcers             = new Dictionary <string, Announcer> ();
 }
 public LineAssembler(RequestListener networkListener)
 {
     //        assert (this.owner = Thread.currentThread()) != null;
     Debug.Assert(networkListener != null);
     this.networkListener = networkListener;
     linePart             = new PeekableByteArrayOutputStream();
 }
Beispiel #4
0
 public virtual void write(string message, RequestListener listener)
 {
     lock (this)
     {
         if (closed || released)
         {
             log.Debug("Message discarded because the channel [" + ch.Id + "] is closed: " + message);
             return;
         }
         if (listener != null)
         {
             /*
              * NB
              * I moved the onOpen call outside of operationComplete write callback
              * because sometimes the write callback of a request was fired after
              * the read callback of the response.
              * The effect of calling onOpen after the method onMessage/onClosed of a RequestListener
              * was the retransmission of the request.
              * Probably this behavior was caused by the tests running on localhost, but who knows?
              */
             listener.onOpen();
         }
         Task chf = ch.WriteAndFlushAsync(new TextWebSocketFrame(message));
         chf.ContinueWith((antecedent, outerInstance) =>
         {
             if (antecedent.IsFaulted || antecedent.IsCanceled)
             {
                 ((MyChannel)outerInstance).onBroken(message, antecedent.Exception);
             }
         }, ch);
     }
 }
        private void sendControlRequest(LightstreamerRequest request, RequestListener reqListener, RequestTutor tutor)
        {
            ongoingRequest = new PendingRequest(request, reqListener, tutor);

            wsTransport.sendRequest(protocol, request, new ListenerWrapperAnonymousInnerClass(this, reqListener)
                                    , null, null, 0, 0);
        }
Beispiel #6
0
 public virtual void send(string message, RequestListener listener)
 {
     if (logStream.IsDebugEnabled)
     {
         logStream.Debug("WS transport sending [" + channel + "]: " + message);
     }
     channel.write(message, listener);
 }
        /// <summary>
        /// Finds the listener associated with the request.
        /// If found, removes it from the list of pending requests.
        /// </summary>
        public virtual RequestListener getAndRemoveRequestListener(long reqId)
        {
            RequestListener reqListener = pendingRequestMap.GetValueOrNull(reqId);

            pendingRequestMap.Remove(reqId);


            return(reqListener);
        }
Beispiel #8
0
 static void AcceptRequest(RequestListener listener)
 {
     while (true)
     {
         Console.WriteLine("Waiting");
         //this is blocking
         listener.Accept();
     }
 }
    public RxjavaDisposable callHello(RequestListener listener)
    {
        if (isAndroid)
        {
            AndroidJavaObject helloDisposable = mMainInterfaceObject.Call <AndroidJavaObject>("hello", new AdLocusListenerCallBack(listener));
            return(new RxjavaDisposable(helloDisposable));
        }

        return(null);
    }
	    /** 
	     * Starts (or restart if needed, if for example the configuration 
	     * of the server has been modified) the RTSP server. 
	     */
	    public void start() {
		    if (!mEnabled || mRestart) stop();
		    if (mEnabled && mListenerThread == null) {
			    try {
				    mListenerThread = new RequestListener();
			    } catch (System.Exception e) {
				    mListenerThread = null;
			    }
		    }
		    mRestart = false;
	    }
Beispiel #11
0
        public void HandleRequest_NoMatchingSkillRequestHandler_ReturnsRequestContextFallbackResponse()
        {
            SkillResponse response = ResponseBuilder.Tell("Test");

            RequestListener.SkillRequestHandlerFactory = new DefaultSkillRequestHandlerFactory();
            RequestContext.FallbackResponse            = response;
            SkillRequest request = new SkillRequest();

            request.Request = new IntentRequest();

            AssertExt.IsEmpty(RequestListener.SkillRequestHandlerFactory.SkillRequestHandlers);
            Assert.AreSame(response, RequestListener.HandleRequest(request, null));
        }
	    /** 
	     * Stops the RTSP server but not the Android Service. 
	     * To stop the Android Service you need to call {@link android.content.Context#stopService(Intent)}; 
	     */
	    public void stop() {
		    if (mListenerThread != null) {
			    try {
				    mListenerThread.kill();
				    foreach ( Session session in mSessions.KeySet() ) {
				        if ( session != null && session.isStreaming() ) {
						    session.stop();
				        } 
				    }
			    } catch (System.Exception e) {
			    } finally {
				    mListenerThread = null;
			    }
		    }
	    }
Beispiel #13
0
        public void HandleRequest_WithMatchingSkillRequestHandler_ReturnsMatchingSkillRequestHandlerResponse()
        {
            SkillResponse           response            = ResponseBuilder.Tell("Test");
            MockSkillRequestHandler skillRequestHandler = new MockSkillRequestHandler();

            skillRequestHandler.HandleRequest_Result = response;

            RequestListener.SkillRequestHandlerFactory = new DefaultSkillRequestHandlerFactory();
            RequestListener.SkillRequestHandlerFactory.SkillRequestHandlers.Add(skillRequestHandler);
            SkillRequest request = new SkillRequest();

            request.Request = new IntentRequest();

            Assert.IsNotNull(RequestListener.SkillRequestHandlerFactory.SkillRequestHandlers.Exists(x => x.IsHandlerForRequest(request)));
            Assert.AreSame(response, RequestListener.HandleRequest(request, null));
        }
Beispiel #14
0
        private void Form1_Load(object sender, EventArgs e)
        {
            tcpL = new TcpListener(5000);

            tcpL.Start();
            tcpClientConnected.Reset();

            tcpL.BeginAcceptTcpClient(new AsyncCallback(NewClientEvent), tcpL);

            RequestListener.RunWorkerAsync();

            for (int p = 0; p < 5; p++)
            {
                GameRoom gr = new GameRoom("Empty Room", game_rooms.Count);
                game_rooms.Add(gr);
            }
        }
Beispiel #15
0
        /**
         * Cancels all running transactions and prepares for garbage collection
         */
        public virtual void ShutDown()
        {
            requestListener = null;

            ArrayList toRemove = new ArrayList();

            foreach (object o in clientTransactions.Keys)
            {
                toRemove.Add(o);
            }

            foreach (TransactionID id in toRemove)
            {
                StunClientTransaction sct = (StunClientTransaction)clientTransactions[id];
                clientTransactions.Remove(id);
                if (sct != null)
                {
                    sct.Cancel();
                }
            }
        }
Beispiel #16
0
 public override void processREQERR(string message)
 {
     try
     {
         REQERRParser    parser      = new REQERRParser(message);
         RequestListener reqListener = wsRequestManager.getAndRemoveRequestListener(parser.requestId);
         if (reqListener == null)
         {
             /* discard the response of a request made outside of the current session */
             log.Warn("Acknowledgement discarded: " + message);
         }
         else
         {
             // notify the request listener (NB we are on SessionThread)
             reqListener.onMessage(message);
             reqListener.onClosed();
         }
     }
     catch (ParsingException e)
     {
         onIllegalMessage(e.Message);
     }
 }
Beispiel #17
0
        public static async Task <ImageSourceServiceResult?> SubmitAsync(this RequestBuilder requestBuilder, RequestManager requestManager, CancellationToken cancellationToken = default)
        {
            var callback = new RequestListener();

            try
            {
                requestBuilder = requestBuilder.AddListener(callback);

                var target = requestBuilder.Submit();

                var drawable = await callback.Result;
                if (drawable == null)
                {
                    return(null);
                }

                return(new ImageSourceServiceResult(drawable, () => requestManager.Clear(target)));
            }
            finally
            {
                GC.KeepAlive(callback);
            }
        }
Beispiel #18
0
        private void VerifyMonitoring(DateTime startTimestampExpected, byte[] folderDataExpected)
        {
            MockFolderPackager mockFolderPackager = new MockFolderPackager();
            MockClock          serverClock        = new MockClock(new DateTime(2007, 5, 25, 15, 27, 03));

            ReadRequestMessage readRequest = new ReadRequestMessage(startTimestampExpected, CorrectPassword);

            using (BookmarkableStream clientStream = ClientRequestToStream(readRequest))
            {
                MockNetworkConnection networkConnection = new MockNetworkConnection(clientStream);
                RequestListener       folderMonitor     = new RequestListener(networkConnection, mockFolderPackager, serverClock, @"c:\fakepath\fakedir", CorrectPassword);
                folderMonitor.ProcessNextRequest();
                Assert.AreEqual(@"c:\fakepath\fakedir", mockFolderPackager.LastFolderPacked);
                Assert.AreEqual(startTimestampExpected, mockFolderPackager.LastModifiedMinimumRequested);

                clientStream.ResetToBookmark();
                FarmerMessageSerializer deserializer = new FarmerMessageSerializer();
                ReadResponseMessage     response     = (ReadResponseMessage)deserializer.Deserialize(clientStream);

                Assert.AreEqual(serverClock.GetCurrentTimeUtc(), response.CurrentServerTimeUtc);
                Assert.IsTrue(Util.ArraysEqual <byte>(folderDataExpected, response.Data));
            }
        }
Beispiel #19
0
        private static void Setup(String[] args)
        {
            Logger.Log("INFO :: Follower setup process started.");
            string   ip       = GetBindedIpAddress(args);
            Follower follower = null;

            if (!String.IsNullOrEmpty(ip))
            {
                var       ipPartsArr = ip.Split(new Char[] { '.' }, StringSplitOptions.RemoveEmptyEntries);
                byte[]    ipParts    = ipPartsArr.Select(s => Convert.ToByte(s, 10)).ToArray();
                IPAddress ipAddress  = new IPAddress(ipParts);
                follower = new Follower(ipAddress);
            }
            else
            {
                follower = new Follower();
            }
            NodeRegistryCache.GetInstance().RegisterCurrentNode(follower);
            Logger.Log(string.Format("Node added : {0}", follower.ToString()));
            RequestListener.StartListeningOnPorts();
            RegisterCluster(args);
            follower.StartUp();
            follower.StartNetworkBootstrap();
        }
Beispiel #20
0
 public RequestObjects(LightstreamerRequest request, RequestTutor tutor, RequestListener listener)
 {
     this.request  = request;
     this.tutor    = tutor;
     this.listener = listener;
 }
        public override EndpointReferenceType CreatePullPointSubscription(FilterType Filter, [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)] string InitialTerminationTime, CreatePullPointSubscriptionSubscriptionPolicy SubscriptionPolicy, [System.Xml.Serialization.XmlAnyElementAttribute()] ref System.Xml.XmlElement[] Any, [System.Xml.Serialization.XmlElementAttribute(Namespace = "http://docs.oasis-open.org/wsn/b-2")] out System.DateTime CurrentTime, [System.Xml.Serialization.XmlElementAttribute(Namespace = "http://docs.oasis-open.org/wsn/b-2", IsNullable = true)] out System.Nullable <System.DateTime> TerminationTime)
        {
            SoapHeaderProcessing(unknownHeaders);

            ConfStorageLoad();
            EventServerLoad();

            EndpointReferenceType res = new EndpointReferenceType();

            DateTime terminationTime;
            bool     nullInitialTerminationTime = false;

            if (InitialTerminationTime == null)
            {
                InitialTerminationTime     = "PT10S";
                nullInitialTerminationTime = true;
            }

            try
            {
                TimeSpan timeSpan = System.Xml.XmlConvert.ToTimeSpan(InitialTerminationTime);
                terminationTime = DateTime.UtcNow.Add(timeSpan.Add(new TimeSpan(0, 0, 1)));
            }
            catch (Exception)
            {
                try
                {
                    terminationTime = System.Xml.XmlConvert.ToDateTime(InitialTerminationTime, XmlDateTimeSerializationMode.Utc);
                }
                catch (Exception)
                {
                    throw FaultLib.GetSoapException(FaultType.General, "Wrong Initial Termination Time.");
                }
            }

            string     rawRequest    = RequestListener.Take();
            XmlElement filterElement = Utils.GetFilterElements(rawRequest, true);

            int subscriptionKey = EventServer.AddSubscribtion(null, Filter, filterElement, terminationTime, nullInitialTerminationTime);

            CurrentTime     = DateTime.UtcNow;
            TerminationTime = terminationTime;

            res.ReferenceParameters = new ReferenceParametersType();
            res.Address             = new AttributedURIType();
            string hostAndPort = HttpContext.Current.Request.Url.Authority;

            res.Address.Value           = "http://" + hostAndPort + "/ServiceEvents10/PullpointSubscriptionService.asmx";
            res.ReferenceParameters.Any = new System.Xml.XmlElement[1];

            NameTable           nt    = new NameTable();
            XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);

            nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
            nsmgr.AddNamespace("dut", "http://dut");
            nsmgr.AddNamespace("tdc", "http://www.onvif.org/ver10/doorcontrol/wsdl");

            XmlDocument referenceParameters = new XmlDocument(nt);

            res.ReferenceParameters.Any[0]          = referenceParameters.CreateElement("dut", "id", "http://dut");
            res.ReferenceParameters.Any[0].InnerXml = subscriptionKey.ToString();



            EventServerSave();
            ConfStorageSave();

            actionHeader.actionValue = "http://www.onvif.org/ver10/events/wsdl/EventPortType/CreatePullPointSubscriptionResponse";
            EventServer.SynchronizationPoint(subscriptionKey);
            return(res);
        }
        public override SubscribeResponse Subscribe([System.Xml.Serialization.XmlElementAttribute("Subscribe", Namespace = "http://docs.oasis-open.org/wsn/b-2")] Subscribe Subscribe1)
        {
            SoapHeaderProcessing(unknownHeaders);

            ConfStorageLoad();
            EventServerLoad();

            SubscribeResponse res = new SubscribeResponse();

            DateTime terminationTime;

            try
            {
                TimeSpan timeSpan = System.Xml.XmlConvert.ToTimeSpan(Subscribe1.InitialTerminationTime);
                terminationTime = DateTime.UtcNow.Add(timeSpan.Add(new TimeSpan(0, 0, 1)));
            }
            catch (Exception)
            {
                try
                {
                    terminationTime = System.Xml.XmlConvert.ToDateTime(Subscribe1.InitialTerminationTime, XmlDateTimeSerializationMode.Utc);
                }
                catch (Exception)
                {
                    throw FaultLib.GetSoapException(FaultType.General, "Wrong Initial Termination Time.");
                }
            }

            string     rawRequest    = RequestListener.Take();
            XmlElement filterElement = Utils.GetFilterElements(rawRequest);

            int subscriptionKey = EventServer.AddSubscribtion(Subscribe1.ConsumerReference.Address.Value,
                                                              Subscribe1.Filter,
                                                              filterElement,
                                                              terminationTime, false);



            res.CurrentTimeSpecified          = true;
            res.CurrentTime                   = DateTime.UtcNow;
            res.TerminationTimeSpecified      = true;
            res.TerminationTime               = terminationTime;
            res.SubscriptionReference         = new EndpointReferenceType();
            res.SubscriptionReference.Address = new AttributedURIType();
            string hostAndPort = HttpContext.Current.Request.Url.Authority;

            res.SubscriptionReference.Address.Value           = "http://" + hostAndPort + "/ServiceEvents10/SubscriptionManagerService.asmx";
            res.SubscriptionReference.ReferenceParameters     = new ReferenceParametersType();
            res.SubscriptionReference.ReferenceParameters.Any = new System.Xml.XmlElement[1];

            NameTable           nt    = new NameTable();
            XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);

            nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
            nsmgr.AddNamespace("dut", "http://dut");
            nsmgr.AddNamespace("tdc", "http://www.onvif.org/ver10/doorcontrol/wsdl");

            XmlDocument referenceParameters = new XmlDocument(nt);

            res.SubscriptionReference.ReferenceParameters.Any[0]          = referenceParameters.CreateElement("dut", "id", "http://dut");
            res.SubscriptionReference.ReferenceParameters.Any[0].InnerXml = subscriptionKey.ToString();



            EventServerSave();
            ConfStorageSave();

            actionHeader.actionValue = "http://docs.oasis-open.org/wsn/bw-2/NotificationProducer/SubscribeResponse";
            EventServer.SynchronizationPoint(subscriptionKey);
            return(res);
        }
Beispiel #23
0
 public Server()
 {
     request_listener = new RequestListener(this);
     announcers       = new Dictionary <string, Announcer> ();
 }
 public virtual void add(RequestListener listener)
 {
     listeners.Add(listener);
 }
        public virtual void addRequest(LightstreamerRequest request, RequestTutor tutor, RequestListener listener)
        {
            Debug.Assert(request is ControlRequest || request is MessageRequest || request is ReverseHeartbeatRequest);

            if (this.@is(END) || this.@is(ENDING))
            {
                log.Error("Unexpected call on dismissed batch manager: " + request.TransportUnawareQueryString);
                throw new System.InvalidOperationException("Unexpected call on dismissed batch manager");
            }

            this.addToProperBatch(request, tutor, listener);

            if (this.@is(IDLE))
            {
                this.dequeue(SYNC_DEQUEUE, "add");
            }
            else
            {
                //we're already busy, we'll dequeue when we'll be back
                log.Debug("Request manager busy: the request will be sent later " + request);
            }
        }
Beispiel #26
0
        /**
         * Cancels all running transactions and prepares for garbage collection
         */
        public virtual void ShutDown()
        {
            requestListener = null;

            ArrayList toRemove = new ArrayList();
            foreach (object o in clientTransactions.Keys)
            {
                toRemove.Add(o);
            }

            foreach (TransactionID id in toRemove)
            {
                StunClientTransaction sct = (StunClientTransaction) clientTransactions[id];
                clientTransactions.Remove(id);
                if (sct != null)
                {
                    sct.Cancel();
                }
            }
        }
Beispiel #27
0
 /**
  * Sets the listener that should be notified when a new Request is received.
  * @param requestListener the listener interested in incoming requests.
  */
 public virtual void SetRequestListener(RequestListener requestListener)
 {
     this.requestListener = requestListener;
 }
        public RequestHandle sendRequest(Protocol protocol, LightstreamerRequest request, RequestListener protocolListener, IDictionary <string, string> extraHeaders, Proxy proxy, long tcpConnectTimeout, long tcpReadTimeout)
        {
            if (httpProvider == null)
            {
                log.Fatal("There is no default HttpProvider, can't connect");
                return(null);
            }

            RequestHandle connection;

            try
            {
                HttpProvider_HttpRequestListener httpListener = new MyHttpListener(protocolListener, request, sessionThread);
                connection = httpProvider.createConnection(protocol, request, httpListener, extraHeaders, proxy, tcpConnectTimeout, tcpReadTimeout);
            }
            catch (Exception e)
            {
                log.Error("Error - " + e.Message + " - " + e.StackTrace);

                sessionThread.queue(new Task(() =>
                {
                    protocolListener.onBroken();
                }));
                return(null);
            }
            if (connection == null)
            {
                // we expect that a closed/broken event will be fired soon
                return(null);
            }

            return(new RequestHandleAnonymousInnerClass(this, connection));
        }
 protected override void forwardDestroyRequest(DestroyRequest request, RequestTutor tutor, RequestListener reqListener)
 {
     // don't send destroy request when transport is http
 }
        private bool addToProperBatch(LightstreamerRequest request, RequestTutor tutor, RequestListener listener)
        {
            if (request is MessageRequest)
            {
                if (log.IsDebugEnabled)
                {
                    log.Debug("New Message request: " + request.RequestName + ", " + listener);
                }

                return(this.messageQueue.addRequestToBatch((MessageRequest)request, tutor, listener));
            }
            else if (request is ReverseHeartbeatRequest)
            {
                return(this.hbQueue.addRequestToBatch((ReverseHeartbeatRequest)request, tutor, listener));
            }
            else if (request is ConstrainRequest)
            {
                return(this.controlQueue.addRequestToBatch((ConstrainRequest)request, tutor, listener));
            }
            else if (request is ForceRebindRequest)
            {
                return(this.controlQueue.addRequestToBatch((ForceRebindRequest)request, tutor, listener));
            }
            else if (request is UnsubscribeRequest)
            {
                return(this.controlQueue.addRequestToBatch((UnsubscribeRequest)request, tutor, listener));
            }
            else if (request is SubscribeRequest)
            {
                return(this.controlQueue.addRequestToBatch((SubscribeRequest)request, tutor, listener));
            }
            else if (request is ChangeSubscriptionRequest)
            {
                return(this.controlQueue.addRequestToBatch((ChangeSubscriptionRequest)request, tutor, listener));
            }
            else if (request is DestroyRequest)
            {
                return(this.destroyQueue.addRequestToBatch((DestroyRequest)request, tutor, listener));
            }
            else
            {
                return(false);
            }
        }
 public void Shutdown()
 {
     RequestListener.Shutdown();
 }
 public MyHttpListener(RequestListener listener, LightstreamerRequest request, SessionThread sessionThread)
 {
     this.listener      = listener;
     this.request       = request;
     this.sessionThread = sessionThread;
 }