コード例 #1
0
ファイル: HTTPRequest.cs プロジェクト: L2N6H5B3/SoftSled2
        private void HeaderSink(HTTPSession sender, HTTPMessage header, Stream TheStream)
        {
            this._Source = sender.Source;
            StateData stateObject = null;

            if (TheStream != null)
            {
                stateObject = (StateData)sender.StateObject;
                object tag = stateObject.Tag;
                if (stateObject.HeaderCB != null)
                {
                    stateObject.HeaderCB(this, sender, header, TheStream, tag);
                }
                sender.StateObject = null;
                KeepAliveTimer.Add(this.GetHashCode(), 10);
            }
            else
            {
                lock (this.TagQueue)
                {
                    stateObject = (StateData)this.TagQueue.Dequeue();
                }
                sender.StateObject = stateObject;
                object obj3 = stateObject.Tag;
                if (stateObject.HeaderCB != null)
                {
                    stateObject.HeaderCB(this, sender, header, TheStream, obj3);
                    if ((sender.UserStream != null) && !sender.IsChunked)
                    {
                        sender.StateObject = null;
                    }
                }
            }
        }
コード例 #2
0
ファイル: HTTPRequest.cs プロジェクト: sqirrel99/FreeMi
        private void CreateFailedSink(HTTPSession ss)
        {
            lock (TagQueue)
            {
                while (TagQueue.Count > 0)
                {
                    StateData sd = (StateData)TagQueue.Dequeue();
                    OpenSource.Utilities.EventLogger.Log(this, System.Diagnostics.EventLogEntryType.Error, "Connection Attempt to [" + sd.Dest.ToString() + "] Refused/Failed");

                    object Tag = sd.Tag;
                    if (sd.HeaderCB != null)
                    {
                        sd.HeaderCB(this, ss, null, null, Tag);
                    }
                    else
                    {
                        if (this.OnResponse != null)
                        {
                            OnResponse(this, null, Tag);
                        }
                    }
                }
                s = null;
            }
        }
コード例 #3
0
        private void CreateFailedSink(HTTPSession ss)
        {
            lock (TagQueue)
            {
                while (TagQueue.Count > 0)
                {
                    StateData sd = (StateData)TagQueue.Dequeue();
                    EventLogger.Log(this, EventLogEntryType.Error, "Connection Attempt to [" + sd.Dest + "] Refused/Failed");

                    object Tag = sd.Tag;
                    if (sd.HeaderCB != null)
                    {
                        sd.HeaderCB(this, ss, null, null, Tag);
                    }
                    else
                    {
                        if (OnResponse != null)
                        {
                            OnResponse(this, null, Tag);
                        }
                    }
                }
                s = null;
            }
        }
コード例 #4
0
ファイル: HTTPRequest.cs プロジェクト: sqirrel99/FreeMi
        private void HeaderSink(HTTPSession sender, HTTPMessage header, Stream TheStream)
        {
            _Source = sender.Source;
            StateData sd = null;

            if (TheStream != null)
            {
                // This is the result of post-headers in a chunked document
                sd = (StateData)sender.StateObject;
                object Tag = sd.Tag;
                if (sd.HeaderCB != null)
                {
                    sd.HeaderCB(this, sender, header, TheStream, Tag);
                }
                sender.StateObject = null;
                KeepAliveTimer.Add(this.GetHashCode(), 10);
            }
            else
            {
                lock (TagQueue)
                {
                    sd = (StateData)TagQueue.Dequeue();
                }
                sender.StateObject = sd;
                object Tag = sd.Tag;
                if (sd.HeaderCB != null)
                {
                    sd.HeaderCB(this, sender, header, TheStream, Tag);
                    if (sender.UserStream != null && !sender.IsChunked)
                    {
                        // If I don't set this to null, this holds a strong reference, resulting in
                        // possible memory leaks
                        sender.StateObject = null;
                    }
                }
            }
        }
コード例 #5
0
ファイル: HTTPRequest.cs プロジェクト: L2N6H5B3/SoftSled2
 private void CreateFailedSink(HTTPSession ss)
 {
     lock (this.TagQueue)
     {
         while (this.TagQueue.Count > 0)
         {
             StateData data = (StateData)this.TagQueue.Dequeue();
             EventLogger.Log(this, EventLogEntryType.Error, "Connection Attempt to [" + data.Dest.ToString() + "] Refused/Failed");
             object tag = data.Tag;
             if (data.HeaderCB != null)
             {
                 data.HeaderCB(this, ss, null, null, tag);
             }
             else if (this.OnResponse != null)
             {
                 this.OnResponse(this, null, tag);
             }
         }
         this.s = null;
     }
 }