Patch level : 10.0
Files correlati : lurch.exe Ricompilazione Demo : [ ] Commento : Migliorata gestione restart di Authorization git-svn-id: svn://10.65.10.50/branches/R_10_00@22315 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									0449fed52d
								
							
						
					
					
						commit
						8a39e3f976
					
				| @ -36,7 +36,7 @@ protected: | ||||
|   const TProcessHashMap& GetRunningServers() const { return m_hmProcMap; } | ||||
| 
 | ||||
|   bool PingProcess(const wxString& strApp); | ||||
|   void StopProcess(const wxString& strApp); | ||||
|   bool StopProcess(const wxString& strApp); | ||||
|   wxString StartProcess(const wxString& strApp); | ||||
|    | ||||
|   TXmlItem& AddTableRow(TXmlItem& table, const wxChar* prompt, const wxString& value) const; | ||||
| @ -168,13 +168,13 @@ void TLurchServer::OnTimer(wxTimerEvent& evt) | ||||
| 
 | ||||
| void TLurchServer::OnEndProcess(wxProcessEvent& evt) | ||||
| { | ||||
|   TProcessHashMap::const_iterator it; | ||||
|   for (it = m_hmProcMap.begin(); it != m_hmProcMap.end(); ++it) | ||||
|   for (TProcessHashMap::const_iterator it = m_hmProcMap.begin(); it != m_hmProcMap.end(); ++it) | ||||
|   { | ||||
|     const wxProcess* p = it->second; | ||||
|     if (p->GetPid() == evt.GetPid()) | ||||
|     { | ||||
|       ForgetProcess(it->first); | ||||
|       const wxString name = it->first; | ||||
|       ForgetProcess(name); | ||||
|       break; | ||||
|     } | ||||
|   } | ||||
| @ -290,7 +290,7 @@ void TLurchServer::GenerateFile(wxString& strFilename) | ||||
| 
 | ||||
|       const bool bAutoRun = bLurch || GetAutoRunList().Index(arr[i]) != wxNOT_FOUND; | ||||
|       TXmlItem& buttStart = AddMiniForm(tr, "start.cgi", arr[i], _("Start")); | ||||
|       if (bRunning || bAutoRun) | ||||
|       if (bRunning /* || bAutoRun */) | ||||
|          buttStart.SetAttr(wxT("type"), wxT("hidden")); | ||||
| 
 | ||||
|       TXmlItem& buttStop = AddMiniForm(tr, "kill.cgi", arr[i], _("Stop")); | ||||
| @ -422,12 +422,23 @@ void TLurchServer::ProcessFormStart(const THashTable& args, wxSocketBase& sock) | ||||
| 
 | ||||
| bool TLurchServer::ForgetProcess(const wxString& strApp) | ||||
| { | ||||
|   WriteLog(strApp + _(" terminated.")); | ||||
|   return m_hmProcMap.erase(strApp) != 0; | ||||
|   bool ok = m_hmProcMap.erase(strApp) != 0; | ||||
|   if (ok) | ||||
|     WriteLog(strApp + _(" terminated.")); | ||||
|   return ok; | ||||
| } | ||||
| 
 | ||||
| void TLurchServer::StopProcess(const wxString& strApp) | ||||
| bool TLurchServer::StopProcess(const wxString& strApp) | ||||
| { | ||||
|   if (strApp != GetAppName()) | ||||
|   { | ||||
|     const wxSingleInstanceChecker sic(strApp); | ||||
|     if (!sic.IsAnotherRunning()) // E' belle che muorto!
 | ||||
|       return ForgetProcess(strApp);  | ||||
|   } | ||||
|   else | ||||
|     return false; | ||||
|   | ||||
| 	const wxString strHost = GetConfigString("Host", "localhost", strApp); | ||||
| 	const int nPort = GetConfigInt("Port", 0, strApp); | ||||
| 	if (nPort > 0) | ||||
| @ -455,12 +466,13 @@ void TLurchServer::StopProcess(const wxString& strApp) | ||||
|           if (p != NULL) | ||||
|           { | ||||
|             p->Kill(p->GetPid()); | ||||
|             ForgetProcess(strApp); | ||||
|             return ForgetProcess(strApp); | ||||
|           } | ||||
|         } | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|   return false; | ||||
| } | ||||
| 
 | ||||
| void TLurchServer::ProcessFormStop(const THashTable& args, wxSocketBase& sock) | ||||
| @ -670,13 +682,11 @@ bool TLurchServer::Initialization() | ||||
|   { | ||||
|   	for (size_t i = 0; i < nAuto; i++) | ||||
|       StartProcess(arr[i]);  | ||||
|       const int nFreq = GetConfigInt("PingFreq"); | ||||
|       if (nFreq > 0) | ||||
|       { | ||||
|         m_PingTimer.Start(nFreq * 1000); // sec to msec
 | ||||
|         m_Semaphore.Post();              // GREEN!
 | ||||
|     } | ||||
|     const int nFreq = GetConfigInt("PingFreq"); | ||||
|     if (nFreq > 0) | ||||
|       m_PingTimer.Start(nFreq * 1000); // sec to msec
 | ||||
|   }   | ||||
|   m_Semaphore.Post(); // GREEN!
 | ||||
| 	return true; | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user