public void Register(IWifiAddon addon, string menuAnchor, string path) { WifiAddon a = new WifiAddon(); a.Addon = addon; a.MenuAnchor = menuAnchor; a.Path = path; m_Addons.Add(a); }
public void Register(IWifiAddon addon, string menuAnchor, string path, PrivilegeLevel level = PrivilegeLevel.Admins) { WifiAddon a = new WifiAddon(); a.Addon = addon; a.MenuAnchor = menuAnchor; a.Path = path; a.Privilege = level; m_Addons.Add(a); }
private void OnExtensionChanged(object s, ExtensionNodeEventArgs args) { IWifiAddon addon = (IWifiAddon)args.ExtensionObject; if (args.Change == ExtensionChange.Add) { m_log.InfoFormat("[Wifi]: Detected addon {0}", addon.Name); if (addon.LoadConfig(m_Config)) { addon.Initialize(m_Config, ConfigName, m_Server, m_WebApp); } } }
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"); } }
public WifiServerConnector(IConfigSource config, IHttpServer server, string configName, ISceneActor sactor) : base(config, server, configName) { m_log.DebugFormat("[Wifi]: WifiServerConnector starting"); IConfig serverConfig = config.Configs[m_ConfigName]; if (serverConfig == null) { throw new Exception(String.Format("No section {0} in config file", m_ConfigName)); } // // Leaving this here for educational purposes // //if (Environment.StaticVariables.ContainsKey("AppDll")) //{ // object[] args = new object[] { config, server }; // WebApp app = ServerUtils.LoadPlugin<IWebApp>(Environment.StaticVariables["AppDll"].ToString(), args); // Environment.InitializeWebApp(app); //} // Launch the WebApp WebApp app = new WebApp(config, m_ConfigName, server, sactor); // Register all the handlers server.AddStreamHandler(new WifiDefaultHandler(app)); server.AddStreamHandler(new WifiHeadHandler(app)); server.AddStreamHandler(new WifiNotifyHandler(app)); server.AddStreamHandler(new WifiInstallGetHandler(app)); server.AddStreamHandler(new WifiInstallPostHandler(app)); server.AddStreamHandler(new WifiLoginHandler(app)); server.AddStreamHandler(new WifiLogoutHandler(app)); server.AddStreamHandler(new WifiForgotPasswordGetHandler(app)); server.AddStreamHandler(new WifiForgotPasswordPostHandler(app)); server.AddStreamHandler(new WifiPasswordRecoverGetHandler(app)); server.AddStreamHandler(new WifiPasswordRecoverPostHandler(app)); server.AddStreamHandler(new WifiUserAccountGetHandler(app)); server.AddStreamHandler(new WifiUserAccountPostHandler(app)); server.AddStreamHandler(new WifiUserManagementGetHandler(app)); server.AddStreamHandler(new WifiUserManagementPostHandler(app)); server.AddStreamHandler(new WifiConsoleHandler(app)); server.AddStreamHandler(new WifiInventoryLoadGetHandler(app)); server.AddStreamHandler(new WifiInventoryGetHandler(app)); server.AddStreamHandler(new WifiInventoryPostHandler(app)); server.AddStreamHandler(new WifiHyperlinkGetHandler(app)); server.AddStreamHandler(new WifiHyperlinkPostHandler(app)); server.AddStreamHandler(new WifiTOSGetHandler(app)); server.AddStreamHandler(new WifiTOSPostHandler(app)); server.AddStreamHandler(new WifiGroupsManagementGetHandler(app)); server.AddStreamHandler(new WifiGroupsManagementPostHandler(app)); //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) { server.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[] { config, m_ConfigName, server, app }; IWifiAddon addon = ServerUtils.LoadPlugin <IWifiAddon>(addonDll, args); if (addon == null) { m_log.WarnFormat("[Wifi]: Unable to load addon {0}", addonDll); } } } } }