[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.13 and 1.18

version 1.13, 2001/06/27 09:14:08 version 1.18, 2004/03/02 10:34:49
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.12 2001/06/06 02:21:40 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/io/ox_launch.c,v 1.17 2004/03/02 02:43:55 noro Exp $
 */  */
 #include <setjmp.h>  #include <setjmp.h>
 #include <signal.h>  #include <signal.h>
Line 78  static int which_command(char *,char *);
Line 78  static int which_command(char *,char *);
 static int search_command(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 int ox_io_init(int);  static void ox_io_init(int);
 static void push_one(Obj);  static void push_one(Obj);
 static Obj pop_one();  static Obj pop_one();
 static void do_cmd(int);  static void do_cmd(int);
Line 156  void launch_main(argc,argv)
Line 156  void launch_main(argc,argv)
 int argc;  int argc;
 char **argv;  char **argv;
 {  {
         int id;  #if !defined(VISUAL)
         Obj p,obj;          Obj p;
         char *name;          char *name;
         char buf[BUFSIZ];          char buf[BUFSIZ];
   #endif
           int id;
           Obj obj;
         int cs,ss;          int cs,ss;
         unsigned int cmd;          unsigned int cmd;
         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 182  char **argv;
Line 186  char **argv;
 #endif  #endif
   
         signal(SIGINT,SIG_IGN);          signal(SIGINT,SIG_IGN);
           signal(SIGHUP,SIG_IGN);
 #if defined(SIGUSR1)  #if defined(SIGUSR1)
         signal(SIGUSR1,SIG_IGN);          signal(SIGUSR1,SIG_IGN);
 #endif  #endif
Line 189  char **argv;
Line 194  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 226  static void do_cmd(cmd)
Line 240  static void do_cmd(cmd)
 int cmd;  int cmd;
 {  {
         USINT t;          USINT t;
         int id,cindex;  
         int bport,sport;  
         int bs,bs0;  
         STRING prog,dname;  
   
         switch ( cmd ) {          switch ( cmd ) {
                 case SM_shutdown:                  case SM_shutdown:
Line 293  int nolog;
Line 303  int nolog;
         char *av[BUFSIZ];          char *av[BUFSIZ];
         char sock_id[BUFSIZ],ox_intr[BUFSIZ],ox_reset[BUFSIZ],ox_kill[BUFSIZ];          char sock_id[BUFSIZ],ox_intr[BUFSIZ],ox_reset[BUFSIZ],ox_kill[BUFSIZ];
         char AsirExe[BUFSIZ];          char AsirExe[BUFSIZ];
         HANDLE hProc;          int hProc;
         STRING rootdir;          STRING rootdir;
         int mypid;          int mypid;
         int newbs;          int newbs;
Line 333  int nolog;
Line 343  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 ( dup2(bs,3) != 3 )                  if ( bs != 3 && dup2(bs,3) != 3 )
                         exit(1);                          exit(1);
                 if ( dup2(bs,4) != 4 )                  if ( bs != 4 && dup2(bs,4) != 4 )
                         exit(1);                          exit(1);
                 {                  {
 #if defined(linux) || defined(__NeXT__) || defined(ultrix)  #if defined(linux) || defined(__NeXT__) || defined(ultrix) || defined(__CYGWIN__)
 #include <sys/param.h>  #include <sys/param.h>
                         close(0);                          close(0);
                         for ( i = 5; i < NOFILE; i++ )                          for ( i = 5; i < NOFILE; i++ )
Line 391  char *s;
Line 401  char *s;
         exit(0);          exit(0);
 }  }
   
 static int ox_io_init(sock)  static void ox_io_init(sock)
 int sock;  int sock;
 {  {
         endian_init();          endian_init();
Line 414  static Obj pop_one() {
Line 424  static Obj pop_one() {
         }          }
 }  }
   
 static void terminate_server()  static void terminate_server(int sig)
 {  {
   #if defined(SIGKILL)
         kill(cpid,SIGKILL);          kill(cpid,SIGKILL);
   #endif
         exit(0);          exit(0);
 }  }
   

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.18

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