- Shutdown procedure implemented in nxhttpd
authorVictor Kirhenshtein <victor@netxms.org>
Tue, 7 Mar 2006 22:33:09 +0000 (22:33 +0000)
committerVictor Kirhenshtein <victor@netxms.org>
Tue, 7 Mar 2006 22:33:09 +0000 (22:33 +0000)
- nxhttpd added to Windows installer

src/install/windows/netxms.iss
src/server/tools/nxconfig/nxconfig.cpp
src/server/tools/nxconfig/nxconfig.h

index 79535b1..5b15c7e 100644 (file)
@@ -41,6 +41,7 @@ Source: "..\..\libnxcl\Release\libnxcl.dll"; DestDir: "{app}\bin"; Flags: ignore
 Source: "..\..\libnxsnmp\Release\libnxsnmp.dll"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: server console
 Source: "..\..\libnxsl\Release\libnxsl.dll"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: server console
 Source: "..\..\nxscript\Release\nxscript.exe"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: server console
+Source: "..\..\server\tools\nxconfig\Release\nxconfig.exe"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: server websrv
 ; Server files
 Source: "..\..\server\libnxsrv\Release\libnxsrv.dll"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: server
 Source: "..\..\server\core\Release\nxcore.dll"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: server
@@ -53,7 +54,6 @@ Source: "..\..\server\dbdrv\sqlite\Release\sqlite.ddr"; DestDir: "{app}\bin"; Fl
 Source: "..\..\server\smsdrv\generic\Release\generic.sms"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: server
 Source: "..\..\server\tools\nxaction\Release\nxaction.exe"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: server
 Source: "..\..\server\tools\nxadm\Release\nxadm.exe"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: server
-Source: "..\..\server\tools\nxconfig\Release\nxconfig.exe"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: server
 Source: "..\..\server\tools\nxdbmgr\Release\nxdbmgr.exe"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: server
 Source: "..\..\server\tools\nxget\Release\nxget.exe"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: server
 Source: "..\..\server\tools\nxsnmpget\Release\nxsnmpget.exe"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: server
@@ -116,9 +116,9 @@ Name: "{app}\database"
 Name: "{app}\var\packages"
 
 [Registry]
-Root: HKLM; Subkey: "Software\NetXMS"; Flags: uninsdeletekeyifempty; Components: server
-Root: HKLM; Subkey: "Software\NetXMS\Server"; Flags: uninsdeletekey; Components: server
-Root: HKLM; Subkey: "Software\NetXMS\Server"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"; Components: server
+Root: HKLM; Subkey: "Software\NetXMS"; Flags: uninsdeletekeyifempty; Components: server websrv
+Root: HKLM; Subkey: "Software\NetXMS\Server"; Flags: uninsdeletekey; Components: server websrv
+Root: HKLM; Subkey: "Software\NetXMS\Server"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"; Components: server websrv
 Root: HKLM; Subkey: "Software\NetXMS\Server"; ValueType: string; ValueName: "ConfigFile"; ValueData: "{app}\etc\netxmsd.conf"; Components: server
 
 [Run]
@@ -129,14 +129,22 @@ Filename: "{app}\bin\nxagentd.exe"; Parameters: "-s"; WorkingDir: "{app}\bin"; S
 Filename: "{app}\bin\nxconfig.exe"; Parameters: "--configure-if-needed"; WorkingDir: "{app}\bin"; StatusMsg: "Running server configuration wizard..."; Components: server
 ;Filename: "{app}\bin\netxmsd.exe"; Parameters: "--config ""{app}\etc\netxmsd.conf"" install"; WorkingDir: "{app}\bin"; StatusMsg: "Installing core service..."; Flags: runhidden; Components: server
 Filename: "{app}\bin\netxmsd.exe"; Parameters: "start"; WorkingDir: "{app}\bin"; StatusMsg: "Starting core service..."; Flags: runhidden; Components: server
+Filename: "{app}\bin\nxconfig.exe"; Parameters: "--create-nxhttpd-config {code:GetMasterServer}"; WorkingDir: "{app}\bin"; StatusMsg: "Creating web server's configuration file..."; Components: websrv
+Filename: "{app}\bin\nxhttpd.exe"; Parameters: "-c ""{app}\etc\nxhttpd.conf"" -I"; WorkingDir: "{app}\bin"; StatusMsg: "Installing web server service..."; Flags: runhidden; Components: websrv
+Filename: "{app}\bin\nxhttpd.exe"; Parameters: "-s"; WorkingDir: "{app}\bin"; StatusMsg: "Starting web server service..."; Flags: runhidden; Components: websrv
 
 [UninstallRun]
+Filename: "{app}\bin\nxhttpd.exe"; Parameters: "-S"; StatusMsg: "Stopping web server service..."; RunOnceId: "StopWebService"; Flags: runhidden; Components: websrv
+Filename: "{app}\bin\nxhttpd.exe"; Parameters: "-R"; StatusMsg: "Uninstalling web server service..."; RunOnceId: "DelWebService"; Flags: runhidden; Components: websrv
 Filename: "{app}\bin\netxmsd.exe"; Parameters: "stop"; StatusMsg: "Stopping core service..."; RunOnceId: "StopCoreService"; Flags: runhidden; Components: server
 Filename: "{app}\bin\netxmsd.exe"; Parameters: "remove"; StatusMsg: "Uninstalling core service..."; RunOnceId: "DelCoreService"; Flags: runhidden; Components: server
 Filename: "{app}\bin\nxagentd.exe"; Parameters: "-S"; StatusMsg: "Stopping agent service..."; RunOnceId: "StopAgentService"; Flags: runhidden; Components: server
 Filename: "{app}\bin\nxagentd.exe"; Parameters: "-R"; StatusMsg: "Uninstalling agent service..."; RunOnceId: "DelAgentService"; Flags: runhidden; Components: server
 
 [Code]
+Var
+  HttpdSettingsPage: TInputQueryWizardPage;
+
 Procedure StopAllServices;
 Var
   strExecName : String;
@@ -155,3 +163,30 @@ Begin
   End;
 End;
 
+Procedure InitializeWizard;
+Begin
+  HttpdSettingsPage := CreateInputQueryPage(wpSelectTasks,
+    'Select Master Server', 'Where is master server for web interface?',
+    'Please enter host name or IP address of NetXMS master server. NetXMS web interface you are installing will provide connectivity to that server.');
+  HttpdSettingsPage.Add('NetXMS server:', False);
+  HttpdSettingsPage.Values[0] := GetPreviousData('MasterServer', 'localhost');
+End;
+
+Procedure RegisterPreviousData(PreviousDataKey: Integer);
+Begin
+  SetPreviousData(PreviousDataKey, 'MasterServer', HttpdSettingsPage.Values[0]);
+End;
+
+Function ShouldSkipPage(PageID: Integer): Boolean;
+Begin
+  If PageID = HttpdSettingsPage.ID Then
+    Result := not IsComponentSelected('websrv')
+  Else
+    Result := False;
+End;
+
+Function GetMasterServer(Param: String): String;
+Begin
+  Result := HttpdSettingsPage.Values[0];
+End;
+
index f81d7b8..9fbfae7 100644 (file)
@@ -58,6 +58,7 @@ BOOL CNxconfigApp::InitInstance()
 {
    HKEY hKey;
    DWORD dwSize, dwData = 0;
+   TCHAR *pszArg, szCmd[1024];
 
        if (!AfxSocketInit())
        {
@@ -94,6 +95,12 @@ BOOL CNxconfigApp::InitInstance()
       CreateAgentConfig();
       return FALSE;
    }
+   pszArg = ExtractWord(m_lpCmdLine, szCmd);
+   if (!_tcsicmp(szCmd, _T("--create-nxhttpd-config")))
+   {
+      CreateWebConfig(pszArg);
+      return FALSE;
+   }
 
    // Check if server is already configured or we cannot determine
    // installation directory
@@ -205,7 +212,8 @@ void CNxconfigApp::CreateAgentConfig()
    IP_ADDR_STRING *pAddr;
    TCHAR szAddrList[4096], szFile[MAX_PATH];
 
-   if (_taccess(_T("nxagentd.conf"), 0) == 0)
+   _sntprintf(szFile, MAX_PATH, _T("%s\\etc\\nxagentd.conf"), m_szInstallDir);
+   if (_taccess(szFile, 0) == 0)
       return;  // File already exist, we shouldn't overwrite it
 
    // Get local interface list
@@ -232,7 +240,6 @@ void CNxconfigApp::CreateAgentConfig()
       free(pBuffer);
    }
 
-   _sntprintf(szFile, MAX_PATH, _T("%s\\etc\\nxagentd.conf"), m_szInstallDir);
    fp = _tfopen(szFile, _T("w"));
    if (fp != NULL)
    {
@@ -248,3 +255,30 @@ void CNxconfigApp::CreateAgentConfig()
       fclose(fp);
    }
 }
+
+
+//
+// Create configuration file for nxhttpd
+//
+
+void CNxconfigApp::CreateWebConfig(TCHAR *pszServer)
+{
+   FILE *fp;
+   time_t currTime;
+   TCHAR szFile[MAX_PATH];
+
+   _sntprintf(szFile, MAX_PATH, _T("%s\\etc\\nxhttpd.conf"), m_szInstallDir);
+   if (_taccess(szFile, 0) == 0)
+      return;  // File already exist, we shouldn't overwrite it
+
+   fp = _tfopen(szFile, _T("w"));
+   if (fp != NULL)
+   {
+      currTime = time(NULL);
+      _ftprintf(fp, _T("#\n# NetXMS web server configuration file\n# Created by server installer at %s#\n\n"),
+                _tctime(&currTime));
+      _ftprintf(fp, _T("LogFile = {syslog}\nMasterServer = %s\n"), pszServer);
+      _ftprintf(fp, _T("DocumentRoot = %s\\var\\www\n"), m_szInstallDir);
+      fclose(fp);
+   }
+}
index 01c5e8a..74b2e54 100644 (file)
@@ -113,6 +113,7 @@ public:
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 protected:
+       void CreateWebConfig(TCHAR *pszServer);
        TCHAR m_szInstallDir[MAX_PATH];
        void CreateAgentConfig(void);
 };