(file) Return to cimserver_unix.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Server / Attic

Diff for /pegasus/src/Server/Attic/cimserver_unix.cpp between version 1.19 and 1.19.6.1

version 1.19, 2003/05/21 11:32:22 version 1.19.6.1, 2003/08/13 19:39:56
Line 27 
Line 27 
 //               Yi Zhou, Hewlett-Packard Company (yi_zhou@hp.com) //               Yi Zhou, Hewlett-Packard Company (yi_zhou@hp.com)
 //       Marek Szermutzky, IBM (ddt6szer@de.ibm.com) //       Marek Szermutzky, IBM (ddt6szer@de.ibm.com)
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
   
 #include <sys/types.h> #include <sys/types.h>
 #include <sys/stat.h> #include <sys/stat.h>
 #if defined(PEGASUS_OS_HPUX) #if defined(PEGASUS_OS_HPUX)
Line 45 
Line 44 
 PEGASUS_USING_STD; PEGASUS_USING_STD;
  
 Boolean handleSigUsr1 = false; Boolean handleSigUsr1 = false;
   Boolean graveError = false;
 void cim_server_service(int argc, char **argv ) { return; } void cim_server_service(int argc, char **argv ) { return; }
  
 pid_t server_pid; pid_t server_pid;
Line 55 
Line 54 
     handleSigUsr1 = true;     handleSigUsr1 = true;
 } }
  
   void sigTermHandler(int s_n, PEGASUS_SIGINFO_T * s_info, void * sig)
   {
       graveError= handleSigUsr1=true;
   }
 // daemon_init , RW Stevens, "Advance UNIX Programming" // daemon_init , RW Stevens, "Advance UNIX Programming"
  
 int cimserver_fork(void) int cimserver_fork(void)
 { {
 getSigHandle()->registerHandler(PEGASUS_SIGUSR1, sigUsr1Handler); getSigHandle()->registerHandler(PEGASUS_SIGUSR1, sigUsr1Handler);
 getSigHandle()->activate(PEGASUS_SIGUSR1); getSigHandle()->activate(PEGASUS_SIGUSR1);
   getSigHandle()->registerHandler(SIGTERM, sigTermHandler);
   getSigHandle()->activate(SIGTERM);
  
   pid_t pid;   pid_t pid;
   if( (pid = fork() ) < 0)   if( (pid = fork() ) < 0)
   {   {
       getSigHandle()->deactivate(PEGASUS_SIGUSR1);       getSigHandle()->deactivate(PEGASUS_SIGUSR1);
         getSigHandle()->deactivate(SIGTERM);
       return(-1);       return(-1);
   }   }
   else if (pid != 0)   else if (pid != 0)
Line 82 
Line 88 
             sleep(1);             sleep(1);
             waitTime--;             waitTime--;
       }       }
       exit(0);        exit(graveError);
   }   }
  
   setsid();   setsid();
Line 90 
Line 96 
  
   // get the pid of the cimserver process   // get the pid of the cimserver process
   server_pid = getpid();   server_pid = getpid();
   
   return(0);   return(0);
 } }
  
Line 324 
Line 329 
  
 // notify parent process to terminate so user knows that cimserver // notify parent process to terminate so user knows that cimserver
 // is ready to serve CIM requests. // is ready to serve CIM requests.
 void notify_parent(void)  void notify_parent(int id)
 { {
   pid_t ppid = getppid();   pid_t ppid = getppid();
     if (id)
      kill(ppid, SIGTERM);
     else
   kill(ppid, PEGASUS_SIGUSR1);   kill(ppid, PEGASUS_SIGUSR1);
 } }


Legend:
Removed from v.1.19  
changed lines
  Added in v.1.19.6.1

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2