Ignore:
Timestamp:
Aug 6, 2022, 11:32:32 PM (2 years ago)
Author:
alloc
Message:

Big refactoring in Web to pass around a Context instead of a bunch of individual arguments all the time

File:
1 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements2/MapRendering/Web/Handlers/SessionHandler.cs

    r382 r387  
    33using System.Net;
    44using System.Text;
    5 using HttpListenerRequest = SpaceWizards.HttpListener.HttpListenerRequest;
    6 using HttpListenerResponse = SpaceWizards.HttpListener.HttpListenerResponse;
    75
    86namespace AllocsFixes.NetConnections.Servers.Web.Handlers {
     
    2927                }
    3028
    31                 public override void HandleRequest (string _requestPath, HttpListenerRequest _req, HttpListenerResponse _resp, WebConnection _con,
    32                         int _permissionLevel) {
     29                public override void HandleRequest (RequestContext _context) {
    3330                       
    34                         IPEndPoint reqRemoteEndPoint = _req.RemoteEndPoint;
     31                        IPEndPoint reqRemoteEndPoint = _context.Request.RemoteEndPoint;
    3532                        if (reqRemoteEndPoint == null) {
    36                                 _resp.Redirect (pageBasePath);
     33                                _context.Response.Redirect (pageBasePath);
    3734                                return;
    3835                        }
    3936
    40                         string subpath = _requestPath.Remove (0, urlBasePath.Length);
     37                        string subpath = _context.RequestPath.Remove (0, urlBasePath.Length);
    4138
    4239                        StringBuilder result = new StringBuilder ();
     
    4744
    4845                                try {
    49                                         ulong id = OpenID.Validate (_req);
     46                                        ulong id = OpenID.Validate (_context.Request);
    5047                                        if (id > 0) {
    5148                                                WebConnection con = connectionHandler.LogIn (id, reqRemoteEndPoint.Address);
     
    6057                                                        Secure = false
    6158                                                };
    62                                                 _resp.AppendCookie (cookie);
    63                                                 _resp.Redirect (pageBasePath);
     59                                                _context.Response.AppendCookie (cookie);
     60                                                _context.Response.Redirect (pageBasePath);
    6461
    6562                                                return;
     
    7370                                result.Append ($"<h1>Login failed, <a href=\"{pageBasePath}\">click to return to main page</a>.</h1>");
    7471                        } else if (subpath.StartsWith ("logout")) {
    75                                 if (_con != null) {
    76                                         connectionHandler.LogOut (_con.SessionID);
     72                                if (_context.Connection != null) {
     73                                        connectionHandler.LogOut (_context.Connection.SessionID);
    7774                                        Cookie cookie = new Cookie ("sid", "", "/") {
    7875                                                Expired = true
    7976                                        };
    80                                         _resp.AppendCookie (cookie);
    81                                         _resp.Redirect (pageBasePath);
     77                                        _context.Response.AppendCookie (cookie);
     78                                        _context.Response.Redirect (pageBasePath);
    8279                                        return;
    8380                                }
     
    8582                                result.Append ($"<h1>Not logged in, <a href=\"{pageBasePath}\">click to return to main page</a>.</h1>");
    8683                        } else if (subpath.StartsWith (steamLoginUrl)) {
    87                                 string host = (Web.IsSslRedirected (_req) ? "https://" : "http://") + _req.UserHostName;
     84                                string host = (Web.IsSslRedirected (_context.Request) ? "https://" : "http://") + _context.Request.UserHostName;
    8885                                string url = OpenID.GetOpenIdLoginUrl (host, host + urlBasePath + steamOpenIdVerifyUrl);
    89                                 _resp.Redirect (url);
     86                                _context.Response.Redirect (url);
    9087                                return;
    9188                        } else {
     
    9592                        result.Append (footer);
    9693
    97                         _resp.ContentType = MimeType.GetMimeType (".html");
    98                         _resp.ContentEncoding = Encoding.UTF8;
    99                         byte[] buf = Encoding.UTF8.GetBytes (result.ToString ());
    100                         _resp.ContentLength64 = buf.Length;
    101                         _resp.OutputStream.Write (buf, 0, buf.Length);
     94                        WebUtils.WriteText (_context.Response, result.ToString (), _mimeType: WebUtils.MimeHtml);
    10295                }
    10396        }
Note: See TracChangeset for help on using the changeset viewer.