Ejemplo n.º 1
0
        private void SrvOnOnError(object sender, ErrorEventArgs e)
        {
            Log.Error("" + (int)e.Type + " " + e.Type + ": " + e.CurrentError);
            var req = new SimpleServerRequest(e.Context.Request, new SimpleServerConnection(e.Context.Connection),
                                              this);
            var res = new SimpleServerResponse(req, ((HttpContext)e.Context).Response);
            var ctx = new SimpleServerContext()
            {
                Request = req, Response = res, Connection = req.Connection, Handled = false
            };

            if (e.Type == ErrorType.HandlerNotFound)
            {
                ErrorManager.Error404(ctx);
            }
            else
            {
                ErrorManager.Error(ctx, (int)e.Type, e.Type.ToString(), e.CurrentError.ToString());
            }
        }
Ejemplo n.º 2
0
        /** For decls like "String foo" or "char *foo32[3]" compute the ID
         *  and type declarations.  Also handle "int x=3" and 'T t = new T("foo")'
         *  but if the separator is ',' you cannot use ',' in the initvalue.
         *  AttributeScope.addAttributes takes care of the separation so we are
         *  free here to use from '=' to end of string as the expression.
         *
         *  Set name, type, initvalue, and full decl instance vars.
         */
        protected virtual void ExtractAttribute(string decl)
        {
            if (decl == null)
            {
                return;
            }
            bool inID  = false;
            int  start = -1;
            int  rightEdgeOfDeclarator = decl.Length - 1;
            int  equalsIndex           = decl.IndexOf('=');

            if (equalsIndex > 0)
            {
                // everything after the '=' is the init value
                this.InitValue        = decl.Substring(equalsIndex + 1);
                rightEdgeOfDeclarator = equalsIndex - 1;
            }
            // walk backwards looking for start of an ID
            for (int i = rightEdgeOfDeclarator; i >= 0; i--)
            {
                // if we haven't found the end yet, keep going
                if (!inID && (char.IsLetterOrDigit(decl[i]) || decl[i] == '_' || decl[i] == '@'))
                {
                    inID = true;
                }
                else if (inID &&
                         !(char.IsLetterOrDigit(decl[i]) ||
                           decl[i] == '_' || decl[i] == '@'))
                {
                    start = i + 1;
                    break;
                }
            }
            if (start < 0 && inID)
            {
                start = 0;
            }
            if (start < 0)
            {
                ErrorManager.Error(ErrorManager.MSG_CANNOT_FIND_ATTRIBUTE_NAME_IN_DECL, decl);
            }
            // walk forwards looking for end of an ID
            int stop = -1;

            for (int i = start; i <= rightEdgeOfDeclarator; i++)
            {
                // if we haven't found the end yet, keep going
                if (!(char.IsLetterOrDigit(decl[i]) ||
                      decl[i] == '_' || decl[i] == '@'))
                {
                    stop = i;
                    break;
                }
                if (i == rightEdgeOfDeclarator)
                {
                    stop = i + 1;
                }
            }

            // the name is the last ID
            this.Name = decl.Substring(start, stop - start);

            // the type is the decl minus the ID (could be empty)
            this.Type = decl.Substring(0, start);
            if (stop <= rightEdgeOfDeclarator)
            {
                this.Type += decl.Substring(stop, rightEdgeOfDeclarator + 1 - stop);
            }
            this.Type = Type.Trim();
            if (this.Type.Length == 0)
            {
                this.Type = null;
            }

            this.Decl = decl;
        }
Ejemplo n.º 3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            int i = 0;

            while (true)
            {
                i++;

                try
                {
                    Response.Clear();

                    ErrorManager.Initialize(Member.Null());
                    if (Utilities.isMobileBrowser())
                    {
                        Utilities.MoveToSecure();
                    }

                    DateTime startTime = DateTime.Now;

                    string HTTP_Protocol = (Request.IsSecureConnection) ? "https://" : "http://";
                    Uri    PageUri       = new Uri(HTTP_Protocol + Request.Url.Host + Request.RawUrl);

                    try
                    {
                        SqlConnection = new MySqlConnection("Server=localhost;Uid=root;Pwd=hl1vlAbR9a3Riu;database=blazegameshome5;Pooling=true;Min Pool Size=5;Max Pool Size=60;");
                        SqlConnection.Open();
                    }
                    catch (MySql.Data.MySqlClient.MySqlException)
                    {
                        MySqlConnection.ClearAllPools();

                        SqlConnection = new MySqlConnection("Server=localhost;Uid=root;Pwd=hl1vlAbR9a3Riu;database=blazegameshome5");
                        SqlConnection.Open();
                    }

                    #region Build PageEditor If Needed
                    BlazeGames.Web.Core.Page PageEditor = new BlazeGames.Web.Core.Page(1, SqlConnection);
                    if (PageEditor.Code != File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/bin/PageEditor.cs"))
                    {
                        PageEditor.Code = File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/bin/PageEditor.cs");
                        System.CodeDom.Compiler.CompilerErrorCollection errors = PageEditor.Compile();

                        if (errors.Count >= 1)
                        {
                            ErrorManager.Error(errors[0].ErrorText);
                        }
                    }
                    #endregion

                    ErrorManager.Initialize(SqlConnection);

                    string NewSessionKey = "";

                    while (true)
                    {
                        NewSessionKey = Guid.NewGuid().ToString();
                        MySqlCommand SessionVerifyQuery = new MySqlCommand("SELECT ID FROM members WHERE WebSessionKey=@WebSessionKey", SqlConnection);
                        SessionVerifyQuery.Parameters.AddWithValue("@WebSessionKey", NewSessionKey);
                        MySqlDataReader SessionVerifyReader = SessionVerifyQuery.ExecuteReader();

                        if (!SessionVerifyReader.Read())
                        {
                            SessionVerifyReader.Close();
                            break;
                        }
                        else
                        {
                            SessionVerifyReader.Close();
                            continue;
                        }
                    }

                    if (Request.Cookies["BlazeGames"] == null)
                    {
                        BGxCookie = new System.Web.HttpCookie("BlazeGames");
                        BGxCookie.Values.Add("WebSession", NewSessionKey);
                        BGxCookie.Expires = DateTime.Now.AddDays(7);
                        BGxCookie.Domain  = ".blaze-games.com";
                        Response.Cookies.Add(BGxCookie);
                    }
                    else
                    {
                        BGxCookie = Request.Cookies["BlazeGames"];

                        System.Web.HttpCookie BGxCookieNew = new System.Web.HttpCookie("BlazeGames");
                        BGxCookieNew.Values.Add("WebSession", BGxCookie.Values["WebSession"]);
                        BGxCookieNew.Expires = DateTime.Now.AddDays(7);
                        BGxCookieNew.Domain  = ".blaze-games.com";
                        Response.Cookies.Add(BGxCookieNew);

                        BGxCookie = BGxCookieNew;
                    }

                    //Response.Write(BGxCookie.Values["WebSession"] + "<br />" + Request.UserHostAddress);
                    //Response.End();

                    Member LoggedInMember;

                    if (Utilities.GET("Account") != "" && Utilities.GET("Password") != "")
                    {
                        string Account  = Utilities.GET("Account"),
                               Password = Utilities.GET("Password");

                        if (Member.TryLoginWithPassword(Account, Password, SqlConnection))
                        {
                            LoggedInMember = new Member(Account, SqlConnection);
                        }
                        else
                        {
                            LoggedInMember = new Member(BGxCookie.Values["WebSession"], Request.UserHostAddress, SqlConnection);
                        }
                    }
                    else
                    {
                        LoggedInMember = new Member(BGxCookie.Values["WebSession"], Request.UserHostAddress, SqlConnection);
                    }

                    if (Utilities.POST("Account") != "" && Utilities.POST("Password") != "" && Utilities.POST("Act") == "Login" && !LoggedInMember.IsValid)
                    {
                        if (!Member.Login(Utilities.POST("Account"), Utilities.POST("Password"), BGxCookie.Values.Get("WebSession"), Request.UserHostAddress, SqlConnection))
                        {
                            ErrorManager.Fatal("Login Failed!\r\n<a href='" + PageUri.AbsolutePath + "'>Go Back</a><script>setTimeout('location.href = \"" + PageUri.AbsolutePath + "\";', 2500);</script>", "Account: " + Utilities.POST("Account") + "<br />Hash: " + Member.HashPassword(Utilities.POST("Password")));
                        }
                        else
                        {
                            LoggedInMember.Load();
                            ErrorManager.Initialize(LoggedInMember);

                            ErrorManager.Message("Login Complete!\r\n<a href='" + PageUri.AbsolutePath + "'>Continue</a><script>setTimeout('location.href = \"" + PageUri.AbsolutePath + "\";', 2500);</script>");
                        }
                    }
                    else
                    if (Utilities.GET("Act") == "Logout")
                    {
                        BGxCookie = new System.Web.HttpCookie("BlazeGames");
                        BGxCookie.Values.Add("WebSession", Guid.NewGuid().ToString());
                        BGxCookie.Domain  = ".blaze-games.com";
                        BGxCookie.Expires = DateTime.Now.AddMonths(1);
                        Response.Cookies.Add(BGxCookie);

                        ErrorManager.Initialize(new Member("", "", SqlConnection));
                        ErrorManager.Message("Logout Complete!\r\n<a href='" + PageUri.AbsolutePath + "'>Go Back</a><script>setTimeout('location.href = \"" + PageUri.AbsolutePath + "\";', 2500);</script>");
                    }
                    LoggedInMember.Load();
                    ErrorManager.Initialize(LoggedInMember);

                    Logging     Log      = new Logging(SqlConnection, LoggedInMember);
                    HttpHeader  HttpHead = new HttpHeader();
                    Core.Events Event    = new Core.Events();

                    PageSys = new DynamicPages(PageUri.AbsolutePath, SqlConnection, LoggedInMember, Log, HttpHead, Event);
                    PageSys.onPageInitialize();
                    PageSys.onPageLoad();

                    string Buffer = "";

                    if (Utilities.isMobileApps())
                    {
                        Buffer = File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/Themes/MobileApps/index.txt");
                    }
                    else if (Utilities.isMobileBrowser())
                    {
                        Buffer = File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/Themes/Mobile/index.txt");
                    }
                    else
                    {
                        Buffer = File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/Themes/" + HttpHead.Theme + "/index.txt");
                    }

                    Buffer = Buffer.Replace("<!--{PageHeader}-->", HttpHead.ToString() + "\r\n<style type='text/css'>\r\n" + PageSys.CurrentPage.PageCSS + "\r\n</style>\r\n" + "<script type='text/javascript'>\r\n" + PageSys.CurrentPage.PageJS + "\r\n</script>");
                    Buffer = Buffer.Replace("<!--{PageContents}-->", PageSys.CurrentPage.PageHTML);
                    Buffer = Buffer.Replace("<!--{PageCode}-->", PageSys.onPageReturn());
                    Buffer = Buffer.Replace("<!--{WIDGET_Clock}-->", File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/Themes/Default/Widgets/Clock.txt"));
                    if (LoggedInMember.IsValid)
                    {
                        Buffer = Buffer.Replace("<!--{WIDGET_Login}-->", File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/Themes/Default/Widgets/Login_Member.txt"));
                    }
                    else
                    {
                        Buffer = Buffer.Replace("<!--{WIDGET_Login}-->", File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/Themes/Default/Widgets/Login_Guest.txt"));
                    }
                    Buffer = Buffer.Replace("<!--{WIDGET_Social)-->", File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/Themes/Default/Widgets/Social.txt"));
                    Buffer = Buffer.Replace("<!--{WIDGET_Posts}-->", File.ReadAllText(HttpContext.Current.Server.MapPath(".") + "/Themes/Default/Widgets/Posts.txt"));

                    Buffer = Buffer.Replace("<!--{Time}-->", Utilities.GetDateTime());
                    Buffer = Buffer.Replace("<!--{Nickname}-->", LoggedInMember.Nickname);
                    Buffer = Buffer.Replace("<!--{ProfileImage}-->", LoggedInMember.GetProfileImage());
                    Buffer = Buffer.Replace("<!--{Url_Secure)-->", Utilities.GetCurrentUrl(true));
                    Buffer = Buffer.Replace("<!--{PageName}-->", PageSys.PageURL);

                    foreach (string ParamKey in HttpHead.ThemeParameters.Keys)
                    {
                        Buffer = Buffer.Replace("{" + ParamKey + "}", HttpHead.ThemeParameters[ParamKey]);
                    }
                    Buffer = Buffer.Replace("{ThemePath}", "/Themes/" + HttpHead.Theme + "/");

                    DateTime stopTime = DateTime.Now;
                    TimeSpan duration = stopTime - startTime;

                    SqlConnection.CancelQuery(100);
                    SqlConnection.Close();
                    //SqlConnection.Dispose();

                    Response.Write(@"<!--

------------------------------------------
---- Blaze Games Web v5 Debug Console ----
------------------------------------------
Script Execution Time: " + duration.Milliseconds + @"MS
sqlConnection State: " + SqlConnection.State + @"

-->
");

                    Response.Write(Buffer);
                    Response.Flush();
                    Response.End();

                    PageSys.onPageUnLoad();

                    break;
                }
                catch (Exception ex) { if (i == 5)
                                       {
                                           throw ex;
                                       }
                                       continue; }
            }
        }