internal HttpResponse(HttpRequest request) { _request = request; _outStream = new MemoryStream(); string encoding = "ascii"; _enc = Encoding.ASCII; if (request.Headers.CharSet != null) { switch (request.Headers.CharSet.ToLower()) { case "utf-7": encoding = "utf-7"; _enc = Encoding.UTF7; break; case "utf-8": encoding = "utf-8"; _enc = Encoding.UTF8; break; case "utf-32": encoding = "utf-32"; _enc = Encoding.UTF32; break; } } _responseWriter = new HttpStreamWriter(_outStream,_enc); _responseHeaders = new HeaderCollection(); _responseHeaders["Server"] = Messages.Current["Org.Reddragonit.EmbeddedWebServer.DefaultHeaders.Server"]; _responseHeaders.CharSet = encoding; _responseStatus = HttpStatusCodes.OK; _responseCookie = new CookieCollection(); _isResponseSent = false; }
public void HandleRequest(HttpRequest request, Site site) { XmlDocument doc = new XmlDocument(); doc.LoadXml(request.Parameters[""]); foreach (XmlElement elem in doc.GetElementsByTagName("cdr")) EventController.TriggerEvent(new HttpCDREvent(elem)); }
//Checks through the list of embedded files from the site definition to //see if any of the files available match the requested url bool IRequestHandler.CanProcessRequest(HttpRequest request, Site site) { if (site.EmbeddedFiles != null) { return site.EmbeddedFiles.ContainsKey(request.URL.AbsolutePath); } return false; }
public bool CanProcessRequest(HttpRequest request, Org.Reddragonit.EmbeddedWebServer.Interfaces.Site site) { return request.URL.AbsolutePath == "/resources/scripts/core.js" || request.URL.AbsolutePath == "/resources/scripts/setup.js" || request.URL.AbsolutePath == "/resources/scripts/user.js" || request.URL.AbsolutePath == "/resources/styles/core.css" || request.URL.AbsolutePath == "/resources/styles/setup.css" || request.URL.AbsolutePath == "/resources/styles/user.css"; }
/* * This function is used to process a call made to an embedded service. * It loads the embedded service specified then invokes the request. */ private void ProcessEmbeddedServiceCall(HttpRequest request, Site site) { string type = request.URL.AbsolutePath.Substring(0, request.URL.AbsolutePath.LastIndexOf("/")); if (_pathMaps.ContainsKey(type)) { request.ResponseHeaders.ContentType="application/json"; Type t = Utility.LocateType(_pathMaps[type]); EmbeddedService es = (EmbeddedService)t.GetConstructor(Type.EmptyTypes).Invoke(new object[0]); es.Invoke(request, site); } else request.ResponseStatus = HttpStatusCodes.Not_Found; }
void IRequestHandler.ProcessRequest(HttpRequest request, Site site) { FileInfo fi = new FileInfo(site.BaseSitePath + Path.DirectorySeparatorChar.ToString() + TranslateURLPath(request.URL.AbsolutePath)); request.ResponseHeaders.ContentType = HttpUtility.GetContentTypeForExtension(fi.Extension); BinaryReader br = new BinaryReader(new FileStream(fi.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)); while (br.BaseStream.Position < br.BaseStream.Length) { byte[] buffer = br.ReadBytes(1024); request.ResponseWriter.BaseStream.Write(buffer, 0, buffer.Length); } br.Close(); }
public void ProcessRequest(HttpRequest request, Org.Reddragonit.EmbeddedWebServer.Interfaces.Site site) { bool isComplete = false; try { if (Domain.AllDomainNames.Count == 0) throw new Exception("No Domains have been created"); if (Context.AllContextNames.Count < 2) throw new Exception("You need a minimum of 2 contexts"); if (SipProfile.AllSipProfileNames.Count < 2) throw new Exception("You need a minimum of 2 sip profiles"); User usr = User.Create(request.Parameters["UserName"], request.Parameters["FirstName"], request.Parameters["LastName"], request.Parameters["Password"], null, null, UserRight.All.ToArray()); if (usr == null) throw new Exception("Unable to create primary user"); else { usr.AllowedDomains = Domain.LoadAll().ToArray(); usr.Update(); } foreach (string c in Context.AllContextNames) CoreGenerator.RegenerateContextFile(c); foreach (SipProfile sp in SipProfile.LoadAll()) CoreGenerator.RegenerateSIPProfile(sp); foreach (Domain d in Domain.LoadAll()) CoreGenerator.RegenerateDomainFile(d); isComplete = true; } catch (Exception e) { request.ResponseWriter.WriteLine(e.Message); } if (!isComplete) request.ResponseStatus = HttpStatusCodes.Forbidden; else { request.ResponseStatus = HttpStatusCodes.OK; EventController.TriggerEvent(new SetupCompleteEvent()); } request.SendResponse(); }
public void ProcessRequest(HttpRequest request, ISite site) { string[] tmp = new string[request.UploadedFiles.Count]; request.UploadedFiles.Keys.CopyTo(tmp, 0); BinaryReader br = new BinaryReader(request.UploadedFiles[tmp[0]].Stream); MemoryStream ms = new MemoryStream(); BinaryWriter bw = new BinaryWriter(ms); while (br.BaseStream.Position < br.BaseStream.Length) { bw.Write(br.ReadBytes(1024)); } br.Close(); bw.Flush(); request.ResponseWriter.Write(FileCache.CacheFile(ms.ToArray())); bw.Close(); }
bool IRequestHandler.CanProcessRequest(HttpRequest request, Site site) { if (request.URL.AbsolutePath.StartsWith(BASE_PATH)) { IEmbeddedHandler hand = null; Dictionary<string, IEmbeddedHandler> handlers = null; Monitor.Enter(_lock); handlers = _handlers; Monitor.Exit(_lock); if (handlers != null) { if (handlers.ContainsKey(request.URL.AbsolutePath.Substring(BASE_PATH.Length))) hand = handlers[request.URL.AbsolutePath.Substring(BASE_PATH.Length)]; } if (hand == null) { if (handlers != null) { foreach (string str in handlers.Keys) { if (str.EndsWith("*")) { if (request.URL.AbsolutePath.Substring(BASE_PATH.Length).StartsWith(str.Substring(0, str.Length - 1))) { hand = handlers[str]; break; } } } } } request[CACHE_ID] = hand; return hand != null; } return false; }
public bool CanProcessRequest(HttpRequest request, Site site) { if (request.URL.AbsolutePath == _fileIconPath) return true; else if (request.URL.AbsolutePath == _folderIconPath) return true; else if (request.URL.AbsolutePath == _downloadIconPath) return true; bool ret = false; lock (_paths) { foreach (string str in _paths.Keys) { if (request.URL.AbsolutePath.StartsWith(str)) { ret = true; request["IFolder"] = _paths[str]; request["IFolderPath"] = str; break; } } } return ret; }
/* * This function processes a given request for an embedded file. * It finds the file from the list, sets the response type appropriately. * If its uncompresssed css or js, checks the cache, if not compresses it, * and caches it. It then writes the given file out to the response stream. */ void IRequestHandler.ProcessRequest(HttpRequest request, Site site) { request.ResponseHeaders["Cache-Control"] = "Private"; if (request.Headers["If-Modified-Since"] != null && DateTime.Parse(request.Headers["If-Modified-Since"]) >= site.StartTimestamp) request.ResponseStatus = HttpStatusCodes.Not_Modified; else { sEmbeddedFile file = site.EmbeddedFiles[request.URL.AbsolutePath]; Stream str = null; switch (file.FileType) { case EmbeddedFileTypes.Compressed_Css: string comCss = Utility.ReadEmbeddedResource(file.DLLPath); if (comCss == null) request.ResponseStatus = HttpStatusCodes.Not_Found; else { request.ResponseHeaders.ContentType = "text/css"; request.ResponseWriter.Write(comCss); } break; case EmbeddedFileTypes.Compressed_Javascript: string comJs = Utility.ReadEmbeddedResource(file.DLLPath); if (comJs == null) request.ResponseStatus = HttpStatusCodes.Not_Found; else { request.ResponseHeaders.ContentType = "text/javascript"; request.ResponseWriter.Write(comJs); } break; case EmbeddedFileTypes.Css: bool loadCss = true; Monitor.Enter(_lock); if (_compressedCache.ContainsKey(file.DLLPath)) { loadCss = false; request.ResponseHeaders.ContentType = "text/css"; request.ResponseWriter.Write(_compressedCache[file.DLLPath].Value); } Monitor.Exit(_lock); if (loadCss) { string css = Utility.ReadEmbeddedResource(file.DLLPath); if (css == null) request.ResponseStatus = HttpStatusCodes.Not_Found; else { request.ResponseHeaders.ContentType = "text/css"; Monitor.Enter(_lock); if (site.CompressCSS) css = CSSMinifier.Minify(css); if (!_compressedCache.ContainsKey(file.DLLPath)) { _compressedCache.Add(file.DLLPath, new CachedItemContainer(css)); } Monitor.Exit(_lock); request.ResponseWriter.Write(css); } } break; case EmbeddedFileTypes.Javascript: bool loadJS = true; Monitor.Enter(_lock); if (_compressedCache.ContainsKey(file.DLLPath)) { loadJS = false; request.ResponseHeaders.ContentType = "text/javascript"; request.ResponseWriter.Write(_compressedCache[file.DLLPath].Value); } Monitor.Exit(_lock); if (loadJS) { string js = Utility.ReadEmbeddedResource(file.DLLPath); if (js == null) request.ResponseStatus = HttpStatusCodes.Not_Found; else { request.ResponseHeaders.ContentType = "text/javascript"; if (site.CompressJS) js = JSMinifier.Minify(js); Monitor.Enter(_lock); if (!_compressedCache.ContainsKey(file.DLLPath)) { _compressedCache.Add(file.DLLPath, new CachedItemContainer(js)); } Monitor.Exit(_lock); request.ResponseWriter.Write(js); } } break; case EmbeddedFileTypes.Image: str = Utility.LocateEmbededResource(file.DLLPath); if (str == null) request.ResponseStatus = HttpStatusCodes.Not_Found; else { request.ResponseHeaders.ContentType = "image/" + file.ImageType.Value.ToString(); request.UseResponseStream(str); } break; case EmbeddedFileTypes.Text: str = Utility.LocateEmbededResource(file.DLLPath); if (str == null) request.ResponseStatus = HttpStatusCodes.Not_Found; else request.UseResponseStream(str); break; } } }
public bool RequiresSessionForRequest(HttpRequest request, Org.Reddragonit.EmbeddedWebServer.Interfaces.Site site) { return false; }
private void _WriteConstants(HttpRequest request) { StringBuilder js = new StringBuilder(); js.AppendLine("var DIRECTORY_SEPERATOR = '" + _EscapeCode(Path.DirectorySeparatorChar.ToString()) + "';"); js.AppendLine("var HELP_CLASS= 'help';"); js.AppendLine("var NPANXX_HELP='N = [2-9]<br/>Z = [1-9]<br/>X = [0-9]<br/>. = \\d+<br/>| = ignore on output, bracket in the validation';"); js.AppendLine("var CURRENT_OS=" + JSON.JsonEncode(Utility.OperatingSystem) + ";"); js.AppendLine("var PORT_RANGE_REGEX = '" + Constants.PORT_RANGE_REGEX + "';"); js.AppendLine("var IS_SETUP = " + Utility.IsSiteSetup.ToString().ToLower() + ";"); if (JavascriptConstants.Current.Count > 0) { foreach (string str in JavascriptConstants.Current.Keys) { js.AppendLine("var " + str + " = '" + _EscapeCode(JavascriptConstants.Current[str]) + "';"); } } js.AppendLine("Backbone=_.extend(Backbone,{HasConfigurationChangesToMake:" + ConfigurationController.HasChangesToMake.ToString().ToLower() + "});"); request.ResponseWriter.WriteLine(JSMinifier.Minify(js.ToString())); }
public bool CanProcessRequest(HttpRequest request, Org.Reddragonit.EmbeddedWebServer.Interfaces.Site site) { return request.URL.AbsolutePath == "/" || request.URL.AbsolutePath == "/index.html"; }
public void ProcessRequest(HttpRequest request, Org.Reddragonit.EmbeddedWebServer.Interfaces.Site site) { request.ResponseHeaders.ContentType = "text/html"; request.ResponseWriter.WriteLine(string.Format(_INDEX_PAGE_CODE, (request.IsMobile ? "<meta name=\"viewport\" content=\"width=device-width, height=device-height, initial-scale=1.0, user-scalable=no\">" : "")+ (!Utility.IsSiteSetup ? "<script src=\"/resources/scripts/setup.js\" type=\"text/javascript\"/></script>\n<link type=\"text/css\" href=\"/resources/styles/setup.css\" rel=\"Stylesheet\" />" : "<link type=\"text/css\" href=\"/resources/styles/user.css\" rel=\"Stylesheet\" />\n<script src=\"/resources/scripts/user.js\" type=\"text/javascript\"></script>"), (Utility.IsSiteSetup ? @"function Logout() { FreeswitchConfig.Services.UserService.Logout( function(msg) { location.href = msg; } ); }" : "")+"\nvar ready=false;"+ @"$(document).on('pageinit ready',function(){ if (!ready){ ready=true; FreeswitchConfig.Site.InitPage(); FreeswitchConfig.Site.Modals.ShowLoading(); if (FreeswitchConfig.Site.PreloadImages().length > 0) { var images = []; for (i = 0; i < FreeswitchConfig.Site.PreloadImages().length; ++i) { images[i] = new Image(); images[i].src = FreeswitchConfig.Site.PreloadImages()[i]; } }" + "\n"+ (!Utility.IsSiteSetup ? @"FreeswitchConfig.Site.TitleContainer().html('Initial Setup'); FreeswitchConfig.Web.Setup.GeneratePage(FreeswitchConfig.Site.MainContainer());" : @"FreeswitchConfig.Services.UserService.GetAvailbleUserDomains( function(msg) { var sel = $('<select id=""selDomain""></select>'); for(var x=0;x<msg.length;x++){ sel.append('<option value=""'+msg[x]+'"">'+msg[x]+'</option>'); } sel.bind('change',function(){ var sel = $('#selDomain'); FreeswitchConfig.Site.Modals.ShowLoading(); FreeswitchConfig.Services.UserService.ChangeDomain( sel.val(), function(msg){ FreeswitchConfig.Site.Modals.HideLoading(); if (msg){ FreeswitchConfig.CurrentDomain=FreeswitchConfig.Core.Domain.CurrentDomain(); FreeswitchConfig.CurrentDomain.fetch({async:false}); FreeswitchConfig.CurrentDomain = FreeswitchConfig.CurrentDomain.at(0); FreeswitchConfig.Site.triggerDomainChange(); }else{ alert('An error occured attempting to change the current domain.'); } }, function(){ FreeswitchConfig.Site.Modals.HideLoading(); alert('An error occured attempting to change the current domain.'); }); }); $(document.body).append(sel);" + (Domain.Current == null ? @" FreeswitchConfig.Services.UserService.GetCurrentDomain( function(msg){ if (msg==null){ $('#selDomain').trigger('change'); } }, null, null, true );" : "FreeswitchConfig.CurrentDomain=FreeswitchConfig.Core.Domain.CurrentDomain();FreeswitchConfig.CurrentDomain.fetch({async:false});FreeswitchConfig.CurrentDomain = FreeswitchConfig.CurrentDomain.at(0);") + @" }, null, null, true ); FreeswitchConfig.Site.MainMenuItem.SetupMenu();") + "}});")); }
public void ProcessRequest(HttpRequest request, Site site) { Thread.Sleep(site.RequestTimeout * 2); request.ResponseWriter.WriteLine("<h1>If you can read this the timeout failed.</h1>"); }
public HttpRequestRecievedEvent(HttpRequest request) { _pars.Add("Request", request); }
public HttpRequestErrorEvent(HttpRequest request,Exception error) { _pars.Add("Request", request); _pars.Add("Error", error); }
/* * searches through all methods of the requested name, without * checking parameters as that will delay things and they cannot get passed back. * If any method with that name requires the session state, then return true to create * a session within the request. */ public bool RequiresSessionForRequest(HttpRequest request, Site site) { Monitor.Enter(_lock); if (_pathMaps == null) Init(); Monitor.Exit(_lock); string type = request.URL.AbsolutePath.Substring(0, request.URL.AbsolutePath.LastIndexOf("/")); if (_pathMaps.ContainsKey(type)) { Type t = Utility.LocateType(_pathMaps[type]); EmbeddedService es = (EmbeddedService)t.GetConstructor(Type.EmptyTypes).Invoke(new object[0]); es.GetMethodForRequest(request, site); if (request[EmbeddedService.CONTEXT_METHOD_VARIABLE] != null) { return ((WebMethod)((MethodInfo)request[EmbeddedService.CONTEXT_METHOD_VARIABLE]).GetCustomAttributes(typeof(WebMethod), true)[0]).UseSession; } } return false; }
private static void AppendMessageToFile(Site site,HttpConnection conn,HttpRequest request, DiagnosticsLevels logLevel, string Message) { Monitor.Enter(_lock); _messages.Enqueue(_FormatDiagnosticsMessage(site,conn,request, logLevel, Message)); Monitor.Exit(_lock); }
public void ProcessRequest(HttpRequest request, sSite site) { RequestHandler.HandleRequest(new MappedRequest(request)); }
public void ProcessRequest(HttpRequest request, Org.Reddragonit.EmbeddedWebServer.Interfaces.Site site) { request.ResponseHeaders["Cache-Control"] = "max-age = " + (60 * 60).ToString(); List<string> paths = new List<string>(); string ext = request.URL.AbsolutePath.Substring(request.URL.AbsolutePath.LastIndexOf(".")); string bPath = "scripts"; if (ext == ".css") bPath = "styles"; switch (request.URL.AbsolutePath) { case "/resources/scripts/core.js": case "/resources/styles/core.css": paths.AddRange(_CORE_PATHS); break; case "/resources/scripts/setup.js": case "/resources/styles/setup.css": paths.AddRange(_SETUP_PATHS); break; case "/resources/scripts/user.js": paths.AddRange(_USER_PATHS); foreach (MainMenuItem mmi in MainMenuItem.LoadAll()) { if (mmi.JavascriptURLs != null) paths.AddRange(mmi.JavascriptURLs); if (mmi.CombinedURLs != null) paths.AddRange(mmi.CombinedURLs); if (mmi.SubMenuItems != null) { foreach (SubMenuItem smi in mmi.SubMenuItems) { if (smi.JavascriptURLs != null) paths.AddRange(smi.JavascriptURLs); if (smi.CombinedURLs != null) paths.AddRange(smi.CombinedURLs); } } foreach (IHomePageComponent ihp in parts) { if (ihp.JSUrls != null) paths.AddRange(ihp.JSUrls); } } break; case "/resources/styles/user.css": paths.AddRange(_USER_PATHS); foreach (MainMenuItem mmi in MainMenuItem.LoadAll()) { if (mmi.CssURLs != null) paths.AddRange(mmi.CssURLs); if (mmi.CombinedURLs != null) paths.AddRange(mmi.CombinedURLs); if (mmi.SubMenuItems != null) { foreach (SubMenuItem smi in mmi.SubMenuItems) { if (smi.CssURLs != null) paths.AddRange(smi.CssURLs); if (smi.CombinedURLs != null) paths.AddRange(smi.CombinedURLs); } } foreach (IHomePageComponent ihp in parts) { if (ihp.CSSUrls != null) paths.AddRange(ihp.CSSUrls); } } break; } request.ResponseHeaders.ContentType = HttpUtility.GetContentTypeForExtension(request.URL.AbsolutePath.Substring(request.URL.AbsolutePath.LastIndexOf("."))); foreach (string str in paths) { if (str.StartsWith("TYPE=")||str.StartsWith("/EmbeddedJSGenerator.js?TYPE=")) { if (ext != ".css") { request.ResponseWriter.WriteLine("/* " + str + " */"); foreach (IRequestHandler irh in site.Handlers) { if (irh is EmbeddedServiceHandler) { request.ResponseWriter.WriteLine(((EmbeddedServiceHandler)irh).GenerateJSForServiceType(str.Substring(str.IndexOf("=") + 1))); } } } } else { List<string> tpaths = new List<string>(); if (str.StartsWith("/")) { if (str.EndsWith(".min" + ext)) { tpaths.Add(str); tpaths.Add(str.Substring(0, str.LastIndexOf(".min")) + ext); } else { tpaths.Add(str); tpaths.Add(str.Substring(0, str.LastIndexOf(ext)) + ".min" + ext); } } else { tpaths.AddRange(new string[]{ "/resources/" + bPath + "/" + str.Replace(".", "/") + ext, "/resources/" + bPath + "/base/" + str.Replace(".", "/") + ext, "/resources/" + bPath + "/" + (request.IsMobile ? "mobile" : "desktop") + "/" + str.Replace(".", "/") + ext, "Org.Reddragonit.FreeSwitchConfig.Site." + bPath + ".base." + str + ext, "Org.Reddragonit.FreeSwitchConfig.Site." + bPath + "." + (request.IsMobile ? "mobile" : "desktop") + "." + str + ext, "/resources/" + bPath + "/" + str.Replace(".", "/")+".min" + ext, "/resources/" + bPath + "/base/" + str.Replace(".", "/")+".min" + ext, "/resources/" + bPath + "/" + (request.IsMobile ? "mobile" : "desktop") + "/" + str.Replace(".", "/")+".min" + ext, "Org.Reddragonit.FreeSwitchConfig.Site." + bPath + ".base." + str+".min" + ext, "Org.Reddragonit.FreeSwitchConfig.Site." + bPath + "." + (request.IsMobile ? "mobile" : "desktop") + "." + str+".min" + ext }); } foreach (string path in tpaths) { if (path.StartsWith("/")) { request.ResponseWriter.WriteLine("/* " + path + " */"); VirtualMappedRequest vmp = new VirtualMappedRequest(new Uri("http://" + request.URL.Host + ":" + request.URL.Port.ToString() + path), request.Headers["Accept-Language"]); Org.Reddragonit.BackBoneDotNet.RequestHandler.HandleRequest(vmp); request.ResponseWriter.WriteLine(vmp.ToString()); if (site.EmbeddedFiles != null) { if (site.EmbeddedFiles.ContainsKey(path)) { if (ModelHandler.CompressJS) request.ResponseWriter.WriteLine((request.URL.AbsolutePath.EndsWith(".js") ? JSMinifier.Minify(Utility.ReadEmbeddedResource(site.EmbeddedFiles[path].DLLPath)) : CSSMinifier.Minify(Utility.ReadEmbeddedResource(site.EmbeddedFiles[path].DLLPath)))); else request.ResponseWriter.WriteLine(Utility.ReadEmbeddedResource(site.EmbeddedFiles[path].DLLPath)); } } string tmpStr = Utility.ReadEmbeddedResource(_ReverseURL(path)); if (tmpStr != null) { if (ModelHandler.CompressJS) request.ResponseWriter.WriteLine((request.URL.AbsolutePath.EndsWith(".js") ? JSMinifier.Minify(tmpStr) : CSSMinifier.Minify(tmpStr))); else request.ResponseWriter.WriteLine(tmpStr); } } else { request.ResponseWriter.WriteLine("/* " + _ExtractURL(path) + " */"); request.ResponseWriter.WriteLine(Utility.ReadEmbeddedResource(path)); } } } } if (request.URL.AbsolutePath=="/resources/scripts/core.js") _WriteConstants(request); else if (request.URL.AbsolutePath == "/resources/scripts/setup.js") { } else if (request.URL.AbsolutePath == "/resources/scripts/user.js") { Template st = new Template(Utility.ReadEmbeddedResource("Org.Reddragonit.FreeSwitchConfig.Site.Deployments.home.js")); st.SetAttribute("components", parts); request.ResponseWriter.WriteLine(st.ToString()); } }
//formats a diagnostics message using the appropriate date time format as well as site and log level information private static string _FormatDiagnosticsMessage(Site site,HttpConnection conn,HttpRequest request, DiagnosticsLevels logLevel, string Message) { string sfs = "UNKNOWN"; if (request != null) sfs = "HttpRequest[" + request.ID.ToString() + "]"; else if (conn != null) sfs = "HttpConnection[" + conn.ID.ToString() + "]"; else if (BackgroundOperationRun.Current != null) sfs = "BackgroundRunThread[" + BackgroundOperationRun.Current.ID.ToString() + "][" + BackgroundOperationRun.Current.Call.type.FullName + "." + BackgroundOperationRun.Current.Call.Method.Name + "]"; else { try { sfs = "Thread[" + Thread.CurrentThread.Name + "]"; } catch (Exception e) { } } if (site != null) { if (Settings.UseServerNameInLogging) { if (site.ServerName != null) return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "|" + logLevel.ToString() + "|" + site.ServerName+"|"+sfs+"|" + Message; else if (conn!=null) return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "|" + logLevel.ToString() + "|" + conn.Listener.IP.ToString() + ":" + conn.Listener.Port.ToString() + "|" + sfs + "|" + Message; else return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "|" + logLevel.ToString() + "|" + site.ListenOn[0].Address.ToString() + ":" + site.ListenOn[0].Port.ToString() + "|" + sfs + "|" + Message; }else return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "|" + logLevel.ToString() + "|" + sfs + "|" + Message; } else if (conn != null) { if (Settings.UseServerNameInLogging) return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "|" + logLevel.ToString() + "|" + conn.Listener.IP.ToString() + ":" + conn.Listener.Port.ToString() + "|" + sfs + "|" + Message; } return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "|" + logLevel.ToString() + "|null|" + sfs + "|" + Message; }
//always returns false as sessions are never necessary bool IRequestHandler.RequiresSessionForRequest(HttpRequest request, Site site) { return false; }
public bool CanProcessRequest(HttpRequest request, sSite site) { return RequestHandler.HandlesURL(request.URL, request.Method); }
/* * This function is used to process a call made to get the javascript * to access a given service. It appends code to add jquery or json * libraries if necessary. It scans through the type specified * finding all methods that are tagged as web methods and generates * code to handle each method. */ private void ProcessJSGeneration(HttpRequest request, Site site) { string js = GenerateJSForServiceType(request.Parameters["TYPE"]); if (js == null) request.ResponseStatus = HttpStatusCodes.Not_Found; else { request.ResponseHeaders.ContentType = "text/javascript"; if (site.AddJqueryJavascript) { request.ResponseWriter.WriteLine("if (document.getElementsByName(\"jqueryScriptTag\").length==0){"); request.ResponseWriter.WriteLine("var e=window.document.createElement('script');"); request.ResponseWriter.WriteLine("e.setAttribute('src','/jquery.js');"); request.ResponseWriter.WriteLine("e.setAttribute('name','jqueryScriptTag');"); request.ResponseWriter.WriteLine("document.getElementsByTagName('head')[0].insertBefore(e,document.getElementsByTagName('head')[0].childNodes[0]);}"); } if (site.AddJsonJavascript) { request.ResponseWriter.WriteLine("if (document.getElementsByName(\"jsonScriptTag\").length==0){"); request.ResponseWriter.WriteLine("var e=window.document.createElement('script');"); request.ResponseWriter.WriteLine("e.setAttribute('src','/json.js');"); request.ResponseWriter.WriteLine("e.setAttribute('name','jsonScriptTag');"); request.ResponseWriter.WriteLine("document.getElementsByTagName('head')[0].insertBefore(e,document.getElementsByTagName('head')[0].childNodes[0]);}"); } request.ResponseWriter.WriteLine(js); } request.SendResponse(); }
public bool RequiresSessionForRequest(HttpRequest request, sSite site) { return true; }
//returns true if the requested url is for an embedded service or to generate javascript public bool CanProcessRequest(HttpRequest request, Site site) { Monitor.Enter(_lock); if (_pathMaps == null) Init(); Monitor.Exit(_lock); return _pathMaps.ContainsKey(request.URL.AbsolutePath.Substring(0,request.URL.AbsolutePath.LastIndexOf("/")))||(request.URL.AbsolutePath.EndsWith("EmbeddedJSGenerator.js") && (request.Parameters["TYPE"] != null)); }
public bool RequiresSessionForRequest(HttpRequest request, Site site) { return false; }
//processes the reuqest as to whether or not it should generate javascript //or perform the given operation public void ProcessRequest(HttpRequest request, Site site) { Monitor.Enter(_lock); if (_pathMaps == null) Init(); Monitor.Exit(_lock); if (request.URL.AbsolutePath.EndsWith("EmbeddedJSGenerator.js")) ProcessJSGeneration(request, site); else ProcessEmbeddedServiceCall(request, site); }