Example #1
0
        public override void Invoke(AMFContext context)
        {
            AMFMessage aMFMessage = context.AMFMessage;

            if (aMFMessage.GetHeader("DescribeService") != null)
            {
                aMFMessage.GetBodyAt(0).IsDescribeService = true;
            }
        }
Example #2
0
        public override void Invoke(AMFContext context)
        {
            AMFMessage amfMessage = context.AMFMessage;
            AMFHeader  amfHeader  = amfMessage.GetHeader(AMFHeader.ServiceBrowserHeader);

            if (amfHeader != null)
            {
                AMFBody amfBody = amfMessage.GetBodyAt(0);
                amfBody.IsDescribeService = true;
            }
        }
Example #3
0
        public override void Invoke(AMFContext context)
        {
            AMFMessage amfMessage = context.AMFMessage;
            AMFHeader  amfHeader  = amfMessage.GetHeader(AMFHeader.DebugHeader);

            if (amfHeader != null)
            {
                //The value of the header
                ASObject asObject = amfHeader.Content as ASObject;
                //["error"]: {true}
                //["trace"]: {true}
                //["httpheaders"]: {false}
                //["coldfusion"]: {true}
                //["amf"]: {false}
                //["m_debug"]: {true}
                //["amfheaders"]: {false}
                //["recordset"]: {true}

                AMFBody      amfBody    = amfMessage.GetBodyAt(amfMessage.BodyCount - 1);      //last body
                ResponseBody amfBodyOut = new ResponseBody();
                amfBodyOut.Target   = amfBody.Response + AMFBody.OnDebugEvents;
                amfBodyOut.Response = null;
                amfBodyOut.IsDebug  = true;

                ArrayList headerResults = new ArrayList();
                ArrayList result        = new ArrayList();
                headerResults.Add(result);


                if ((bool)asObject["httpheaders"] == true)
                {
                    //If the client wants http headers
                    result.Add(new HttpHeader( ));
                }
                if ((bool)asObject["amfheaders"] == true)
                {
                    result.Add(new AMFRequestHeaders(amfMessage));
                }

                ArrayList traceStack = NetDebug.GetTraceStack();
                if ((bool)asObject["trace"] == true && traceStack != null && traceStack.Count > 0)
                {
                    ArrayList tmp = new ArrayList(traceStack);
                    result.Add(new TraceHeader(tmp));
                    NetDebug.Clear();
                }

                //http://osflash.org/amf/envelopes/remoting/debuginfo

                amfBodyOut.Content = headerResults;
                context.MessageOutput.AddBody(amfBodyOut);
            }
            NetDebug.Clear();
        }
Example #4
0
        public override void Invoke(AMFContext context)
        {
            AMFMessage aMFMessage = context.AMFMessage;
            AMFHeader  header     = aMFMessage.GetHeader("amf_server_debug");

            if (header != null)
            {
                ASObject     content = header.Content as ASObject;
                AMFBody      bodyAt  = aMFMessage.GetBodyAt(aMFMessage.BodyCount - 1);
                ResponseBody body    = new ResponseBody {
                    Target   = bodyAt.Response + "/onDebugEvents",
                    Response = null,
                    IsDebug  = true
                };
                ArrayList list  = new ArrayList();
                ArrayList list2 = new ArrayList();
                list.Add(list2);
                if ((bool)content["httpheaders"])
                {
                    list2.Add(new HttpHeader());
                }
                if ((bool)content["amfheaders"])
                {
                    list2.Add(new AMFRequestHeaders(aMFMessage));
                }
                ArrayList traceStack = NetDebug.GetTraceStack();
                if ((((bool)content["trace"]) && (traceStack != null)) && (traceStack.Count > 0))
                {
                    ArrayList list4 = new ArrayList(traceStack);
                    list2.Add(new TraceHeader(list4));
                    NetDebug.Clear();
                }
                body.Content = list;
                context.MessageOutput.AddBody(body);
            }
            NetDebug.Clear();
        }