[BACK]Return to ox_launch.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / io

Diff for /OpenXM_contrib2/asir2000/io/ox_launch.c between version 1.16 and 1.20

version 1.16, 2001/12/25 02:39:05 version 1.20, 2004/06/15 09:04:41
Line 44 
Line 44 
  * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY   * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  * $OpenXM: OpenXM_contrib2/asir2000/io/ox_launch.c,v 1.15 2001/10/09 01:36:21 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/io/ox_launch.c,v 1.19 2004/03/18 01:59:41 noro Exp $
 */  */
 #include <setjmp.h>  #include <setjmp.h>
 #include <signal.h>  #include <signal.h>
Line 74  HANDLE hIntr,hReset,hKill;
Line 74  HANDLE hIntr,hReset,hKill;
 #endif  #endif
   
 static void put_log(char *);  static void put_log(char *);
 static int which_command(char *,char *);  
 static int search_command(char *);  
 static int ox_spawn(char *,int,char *,int);  static int ox_spawn(char *,int,char *,int);
 static void launch_error(char *);  static void launch_error(char *);
 static void ox_io_init(int);  static void ox_io_init(int);
Line 103  char *str;
Line 101  char *str;
         fflush(logfile);          fflush(logfile);
 }  }
   
 #if !defined(VISUAL)  
 static int which_command(com,file)  
 char *com,*file;  
 {  
         char *c,*s;  
         int len;  
         char dir[BUFSIZ],path[BUFSIZ];  
   
         for ( s = (char *)getenv("PATH"); s; ) {  
                 c = (char *)index(s,':');  
                 if ( c ) {  
                         len = c-s;  
                         strncpy(dir,s,len); s = c+1; dir[len] = 0;  
                 } else {  
                         strcpy(dir,s); s = 0;  
                 }  
                 sprintf(path,"%s/%s",dir,com);  
                 if ( search_command(path) ) {  
                         strcpy(file,path); return 1;  
                 }  
         }  
         file[0] = 0; return 0;  
 }  
   
 static int search_command(file)  
 char *file;  
 {  
         struct stat buf;  
   
         if ( stat(file,&buf) || (buf.st_mode & S_IFDIR) )  
                 return 0;  
         if ( access(file,X_OK) )  
                 return 0;  
         else  
                 return 1;  
 }  
 #endif  
   
 /*  /*
         argv[1] : host to connect          argv[1] : host to connect
         argv[2] : if 1, call try_bind_listen and try_accept          argv[2] : if 1, call try_bind_listen and try_accept
Line 168  char **argv;
Line 128  char **argv;
         int use_unix,accept_client,nolog;          int use_unix,accept_client,nolog;
         char *control_port_str,*server_port_str;          char *control_port_str,*server_port_str;
         char *rhost,*server,*dname;          char *rhost,*server,*dname;
           char *e,*s;
   
         GC_init(); nglob_init();          GC_init(); nglob_init();
         gethostname(hostname,BUFSIZ);          gethostname(hostname,BUFSIZ);
Line 185  char **argv;
Line 146  char **argv;
 #endif  #endif
   
         signal(SIGINT,SIG_IGN);          signal(SIGINT,SIG_IGN);
   #if defined(SIGHUP)
           signal(SIGHUP,SIG_IGN);
   #endif
 #if defined(SIGUSR1)  #if defined(SIGUSR1)
         signal(SIGUSR1,SIG_IGN);          signal(SIGUSR1,SIG_IGN);
 #endif  #endif
Line 192  char **argv;
Line 156  char **argv;
         signal(SIGTERM,terminate_server);          signal(SIGTERM,terminate_server);
 #endif  #endif
   
           /* XXX a dirty hack */
           if ( !getenv("LD_LIBRARY_PATH") ) {
                   if ( e = getenv("OpenXM_HOME") ) {
                           s = (char *)alloca(strlen(e)+100);
                           sprintf(s,"LD_LIBRARY_PATH=%s/lib",e);
                           putenv(s);
                   }
           }
   
         if ( accept_client ) {          if ( accept_client ) {
                 cs = try_bind_listen(use_unix,control_port_str);                  cs = try_bind_listen(use_unix,control_port_str);
                 ss = try_bind_listen(use_unix,server_port_str);                  ss = try_bind_listen(use_unix,server_port_str);
Line 332  int nolog;
Line 305  int nolog;
         char errcode;          char errcode;
   
         pid = fork();          pid = fork();
         if ( pid )          if ( pid ) {
                 return pid;                  return pid;
         else {          } else {
                 setpgid(0,getpid());                  setpgid(0,getpid());
                 if ( bs != 3 && dup2(bs,3) != 3 )                  if ( bs != 3 && dup2(bs,3) != 3 )
                         exit(1);                          exit(1);

Legend:
Removed from v.1.16  
changed lines
  Added in v.1.20

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>