Exemple #1
0
        private void OnExtensionChanged(object s, ExtensionNodeEventArgs args)
        {
            IRobustConnector connector = (IRobustConnector)args.ExtensionObject;
            Addin            a         = Registry.GetAddin(args.ExtensionNode.Addin.Id);

            if (a == null)
            {
                Registry.Rebuild(null);
                a = Registry.GetAddin(args.ExtensionNode.Addin.Id);
            }

            switch (args.Change)
            {
            case ExtensionChange.Add:
                if (a.AddinFile.Contains(Registry.DefaultAddinsFolder))
                {
                    m_log.InfoFormat("[SERVER UTILS]: Adding {0} from registry", a.Name);
                    connector.PluginPath = System.IO.Path.Combine(Registry.DefaultAddinsFolder, a.Name.Replace(',', '.'));
                }
                else
                {
                    m_log.InfoFormat("[SERVER UTILS]: Adding {0} from ./bin", a.Name);
                    connector.PluginPath = a.AddinFile;
                }
                LoadPlugin(connector);
                break;

            case ExtensionChange.Remove:
                m_log.InfoFormat("[SERVER UTILS]: Removing {0}", a.Name);
                UnloadPlugin(connector);
                break;
            }
        }
Exemple #2
0
        private void LoadPlugin(IRobustConnector connector)
        {
            IHttpServer server = null;
            uint        port   = connector.Configure(Config);

            if (connector.Enabled)
            {
                server = GetServer(connector, port);
                connector.Initialize(server);
            }
            else
            {
                m_log.InfoFormat("[SERVER UTILS]: {0} Disabled.", connector.ConfigName);
            }
        }
Exemple #3
0
        private IHttpServer GetServer(IRobustConnector connector, uint port)
        {
            IHttpServer server;

            if (port != 0)
            {
                server = MainServer.GetHttpServer(port);
            }
            else
            {
                server = MainServer.Instance;
            }

            return(server);
        }
Exemple #4
0
        private void UnloadPlugin(IRobustConnector connector)
        {
            m_log.InfoFormat("[SERVER UTILS]: Unloading {0}", connector.ConfigName);

            connector.Unload();
        }