Esempio n. 1
0
        private string MakeHeader(ComposeOptions Options)
        {
            string header = Version + " " + (int)Number + " " + Text + "\r\n"
                            + "Server: Delta Web Server\r\n"
                            //Fri, 30 Oct 2007 14:19:41 GMT"
                            + "Date: " + DateTime.Now.ToUniversalTime().ToString("r") + "\r\n";


            if (Options == ComposeOptions.AllCalculateLength && Message != null)
            {
                Headers["Content-Length"] = Message.Length.ToString();
            }

            foreach (var kv in Headers)
            {
                header += kv.Key + ": " + kv.Value + "\r\n";
            }

            // Set-Cookie: ckGeneric=CookieBody; expires=Sun, 30-Dec-2007 21:00:00 GMT; path=/
            // Set-Cookie: ASPSESSIONIDQABBDSQA=IPDPMMMALDGFLMICEJIOCIPM; path=/

            foreach (var Cookie in Cookies)
            {
                header += "Set-Cookie: " + Cookie.ToString() + "\r\n";
            }


            header += "\r\n";

            return(header);
        }
Esempio n. 2
0
    private string MakeHeader(ComposeOptions options)
    {
        string header = $"{Version} {(int)Number} {Text}\r\nServer: Esiur {Global.Version}\r\nDate: {DateTime.Now.ToUniversalTime().ToString("r")}\r\n";

        if (options == ComposeOptions.AllCalculateLength)
        {
            Headers["Content-Length"] = Message?.Length.ToString() ?? "0";
        }

        foreach (var kv in Headers)
        {
            header += kv.Key + ": " + kv.Value + "\r\n";
        }


        // Set-Cookie: ckGeneric=CookieBody; expires=Sun, 30-Dec-2007 21:00:00 GMT; path=/
        // Set-Cookie: ASPSESSIONIDQABBDSQA=IPDPMMMALDGFLMICEJIOCIPM; path=/

        foreach (var Cookie in Cookies)
        {
            header += "Set-Cookie: " + Cookie.ToString() + "\r\n";
        }


        header += "\r\n";

        return(header);
    }
Esempio n. 3
0
        public bool Compose(ComposeOptions options)
        {
            List <byte> msg = new List <byte>();

            if (options != ComposeOptions.DataOnly)
            {
                msg.AddRange(Encoding.UTF8.GetBytes(MakeHeader(options)));
            }

            if (options != ComposeOptions.SpecifiedHeadersOnly)
            {
                if (Message != null)
                {
                    msg.AddRange(Message);
                }
            }

            Data = msg.ToArray();

            return(true);
        }
Esempio n. 4
0
        /// <summary>
        /// Composes two gates with the logical OR operator.
        /// </summary>
        /// <param name="a"></param>
        /// <param name="b"></param>
        /// <returns>The resulting gate.</returns>
        public static IGate ComposeOR(IGate a, IGate b, ComposeOptions options = ComposeOptions.None)
        {
            IGate result;

            DecomposeExchange(ref a, ref b);

            if (a.Type == GateType.OR && b.Type == GateType.OR)
            {
                var r = new ORGate();
                r.AddInputRange(a.GetInputs());
                r.AddInputRange(b.GetInputs());
                result = r;
            }
            else if (a.Type == GateType.OR)
            {
                var r = new ORGate();
                r.AddInputRange(a.GetInputs());
                r.AddInput(b);
                result = r;
            }
            else
            {
                var r = new ORGate();
                r.AddInput(a);
                r.AddInput(b);
                result = r;
            }

            if (0 == (options & ComposeOptions.NoSimplify))
            {
                result = Simplify(result);
            }

            TraceCompose(a, b, result, "OR");

            return(result);
        }
Esempio n. 5
0
        /// <summary>
        /// Composes two gates with the logical OR operator.
        /// </summary>
        /// <param name="a"></param>
        /// <param name="b"></param>
        /// <returns>The resulting gate.</returns>
        public static IGate ComposeOR(IGate a, IGate b, ComposeOptions options = ComposeOptions.None)
        {
            IGate result;

            DecomposeExchange(ref a, ref b);

            if (a.Type == GateType.OR && b.Type == GateType.OR)
            {
                var r = new ORGate();
                r.AddInputRange(a.GetInputs());
                r.AddInputRange(b.GetInputs());
                result = r;
            }
            else if (a.Type == GateType.OR)
            {
                var r = new ORGate();
                r.AddInputRange(a.GetInputs());
                r.AddInput(b);
                result = r;
            }
            else
            {
                var r = new ORGate();
                r.AddInput(a);
                r.AddInput(b);
                result = r;
            }

            if (0 == (options & ComposeOptions.NoSimplify))
            {
                result = Simplify(result);
            }

            TraceCompose(a, b, result, "OR");

            return result;
        }