private void Initialize(IHttpServer server) { m_log.DebugFormat("[Wifi]: Initializing. Server at port {0}.", server.Port); IConfig serverConfig = m_Config.Configs[ConfigName]; if (serverConfig == null) { throw new Exception(String.Format("No section {0} in config file", ConfigName)); } // Launch the WebApp m_WebApp = new WebApp(m_Config, ConfigName, m_Server, m_SceneActor); // Register all the handlers BaseStreamHandler defaultHandler = new WifiDefaultHandler(m_WebApp); AddStreamHandler(defaultHandler); AddStreamHandler(new WifiRootHandler(defaultHandler)); AddStreamHandler(new WifiHeadHandler(m_WebApp)); AddStreamHandler(new WifiNotifyHandler(m_WebApp)); AddStreamHandler(new WifiInstallGetHandler(m_WebApp)); AddStreamHandler(new WifiInstallPostHandler(m_WebApp)); AddStreamHandler(new WifiLoginHandler(m_WebApp)); AddStreamHandler(new WifiLogoutHandler(m_WebApp)); AddStreamHandler(new WifiForgotPasswordGetHandler(m_WebApp)); AddStreamHandler(new WifiForgotPasswordPostHandler(m_WebApp)); AddStreamHandler(new WifiPasswordRecoverGetHandler(m_WebApp)); AddStreamHandler(new WifiPasswordRecoverPostHandler(m_WebApp)); AddStreamHandler(new WifiUserAccountGetHandler(m_WebApp)); AddStreamHandler(new WifiUserAccountPostHandler(m_WebApp)); AddStreamHandler(new WifiUserManagementGetHandler(m_WebApp)); AddStreamHandler(new WifiUserManagementPostHandler(m_WebApp)); AddStreamHandler(new WifiConsoleHandler(m_WebApp)); AddStreamHandler(new WifiInventoryLoadGetHandler(m_WebApp)); AddStreamHandler(new WifiInventoryGetHandler(m_WebApp)); AddStreamHandler(new WifiInventoryPostHandler(m_WebApp)); AddStreamHandler(new WifiHyperlinkGetHandler(m_WebApp)); AddStreamHandler(new WifiHyperlinkPostHandler(m_WebApp)); AddStreamHandler(new WifiTOSGetHandler(m_WebApp)); AddStreamHandler(new WifiTOSPostHandler(m_WebApp)); AddStreamHandler(new WifiGroupsManagementGetHandler(m_WebApp)); AddStreamHandler(new WifiGroupsManagementPostHandler(m_WebApp)); //server.AddStreamHandler(new WifiRegionManagementPostHandler(app)); //server.AddStreamHandler(new WifiRegionManagementGetHandler(app)); // Add handlers for serving configured paths IEnumerable <string> servePaths = serverConfig.GetKeys().Where(option => option.StartsWith(m_ServePathPrefix)); if (servePaths.Count() > 0) { foreach (string servePath in servePaths) { string paths = serverConfig.GetString(servePath, string.Empty); string[] parts = paths.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries); if (parts.Count() == 2) { AddStreamHandler(new WifiGetHandler(parts[0], parts[1])); } else { m_log.WarnFormat("[Wifi]: Invalid format with configuration option {0}: {1}", servePath, paths); } } } // Load addons IEnumerable <string> addonVars = serverConfig.GetKeys().Where(option => option.StartsWith(m_AddonPrefix)); if (addonVars.Count() > 0) { foreach (string addonVar in addonVars) { string addonDll = serverConfig.GetString(addonVar, string.Empty); if (addonDll != string.Empty) { m_log.InfoFormat("[Wifi]: Loading addon {0}", addonDll); object[] args = new object[] { m_Config, ConfigName, m_Server, m_WebApp }; IWifiAddon addon = ServerUtils.LoadPlugin <IWifiAddon>(addonDll, args); if (addon == null) { m_log.WarnFormat("[Wifi]: Unable to load addon {0}", addonDll); } } } } // Load Wifi addons as mono addins, if they exist try { AddinManager.AddExtensionNodeHandler("/Diva/Wifi/Addon", OnExtensionChanged); } catch (InvalidOperationException e) { m_log.DebugFormat("[Wifi]: extension point /Diva/Wifi/Addon not found"); } }
private void Initialize(IHttpServer server) { m_log.DebugFormat("[Wifi]: Initializing. Server at port {0}.", server.Port); IConfig serverConfig = m_Config.Configs[ConfigName]; if (serverConfig == null) throw new Exception(String.Format("No section {0} in config file", ConfigName)); // Launch the WebApp m_WebApp = new WebApp(m_Config, ConfigName, m_Server, m_SceneActor); // Register all the handlers BaseStreamHandler defaultHandler = new WifiDefaultHandler(m_WebApp); AddStreamHandler(defaultHandler); AddStreamHandler(new WifiRootHandler(defaultHandler)); AddStreamHandler(new WifiHeadHandler(m_WebApp)); AddStreamHandler(new WifiNotifyHandler(m_WebApp)); AddStreamHandler(new WifiInstallGetHandler(m_WebApp)); AddStreamHandler(new WifiInstallPostHandler(m_WebApp)); AddStreamHandler(new WifiLoginHandler(m_WebApp)); AddStreamHandler(new WifiLogoutHandler(m_WebApp)); AddStreamHandler(new WifiForgotPasswordGetHandler(m_WebApp)); AddStreamHandler(new WifiForgotPasswordPostHandler(m_WebApp)); AddStreamHandler(new WifiPasswordRecoverGetHandler(m_WebApp)); AddStreamHandler(new WifiPasswordRecoverPostHandler(m_WebApp)); AddStreamHandler(new WifiUserAccountGetHandler(m_WebApp)); AddStreamHandler(new WifiUserAccountPostHandler(m_WebApp)); AddStreamHandler(new WifiUserManagementGetHandler(m_WebApp)); AddStreamHandler(new WifiUserManagementPostHandler(m_WebApp)); AddStreamHandler(new WifiConsoleHandler(m_WebApp)); AddStreamHandler(new WifiInventoryLoadGetHandler(m_WebApp)); AddStreamHandler(new WifiInventoryGetHandler(m_WebApp)); AddStreamHandler(new WifiInventoryPostHandler(m_WebApp)); AddStreamHandler(new WifiHyperlinkGetHandler(m_WebApp)); AddStreamHandler(new WifiHyperlinkPostHandler(m_WebApp)); AddStreamHandler(new WifiTOSGetHandler(m_WebApp)); AddStreamHandler(new WifiTOSPostHandler(m_WebApp)); AddStreamHandler(new WifiGroupsManagementGetHandler(m_WebApp)); AddStreamHandler(new WifiGroupsManagementPostHandler(m_WebApp)); //server.AddStreamHandler(new WifiRegionManagementPostHandler(app)); //server.AddStreamHandler(new WifiRegionManagementGetHandler(app)); // Add handlers for serving configured paths IEnumerable<string> servePaths = serverConfig.GetKeys().Where(option => option.StartsWith(m_ServePathPrefix)); if (servePaths.Count() > 0) { foreach (string servePath in servePaths) { string paths = serverConfig.GetString(servePath, string.Empty); string[] parts = paths.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries); if (parts.Count() == 2) AddStreamHandler(new WifiGetHandler(parts[0], parts[1])); else m_log.WarnFormat("[Wifi]: Invalid format with configuration option {0}: {1}", servePath, paths); } } // Load addons IEnumerable<string> addonVars = serverConfig.GetKeys().Where(option => option.StartsWith(m_AddonPrefix)); if (addonVars.Count() > 0) { foreach (string addonVar in addonVars) { string addonDll = serverConfig.GetString(addonVar, string.Empty); if (addonDll != string.Empty) { m_log.InfoFormat("[Wifi]: Loading addon {0}", addonDll); object[] args = new object[] { m_Config, ConfigName, m_Server, m_WebApp }; IWifiAddon addon = ServerUtils.LoadPlugin<IWifiAddon>(addonDll, args); if (addon == null) m_log.WarnFormat("[Wifi]: Unable to load addon {0}", addonDll); } } } // Load Wifi addons as mono addins, if they exist try { AddinManager.AddExtensionNodeHandler("/Diva/Wifi/Addon", OnExtensionChanged); } catch (InvalidOperationException e) { m_log.DebugFormat("[Wifi]: extension point /Diva/Wifi/Addon not found"); } }