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

Diff for /OpenXM_contrib2/asir2000/io/tcpf.c between version 1.15 and 1.20

version 1.15, 2000/10/06 06:05:23 version 1.20, 2000/11/15 08:47:20
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/tcpf.c,v 1.14 2000/09/27 09:27:24 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/io/tcpf.c,v 1.19 2000/11/15 01:20:27 noro Exp $
 */  */
 #if INET  #if INET
 #include "ca.h"  #include "ca.h"
Line 59 
Line 59 
   
 #if defined(VISUAL)  #if defined(VISUAL)
 #include <stdlib.h>  #include <stdlib.h>
 #include <winsock.h>  #include <winsock2.h>
 #include <process.h>  #include <process.h>
 #endif  #endif
   
Line 76  static struct m_c {
Line 76  static struct m_c {
 } *m_c_tab;  } *m_c_tab;
   
 static int m_c_i,m_c_s;  static int m_c_i,m_c_s;
   int I_am_server;
   
 #if MPI  #if MPI
 extern int mpi_nprocs;  extern int mpi_nprocs;
 #define valid_mctab_index(ind)\  #define valid_mctab_index(ind)\
 if((ind)<0||(ind)>=mpi_nprocs){error("invalid server id");}  if((ind)<0||(ind)>=mpi_nprocs){error("invalid server id");}
   #define check_valid_mctab_index(ind)\
   if((ind)<0||(ind)>=mpi_nprocs){(ind)=-1;}
 #else  #else
 #define valid_mctab_index(ind)\  #define valid_mctab_index(ind)\
 if((ind)<0||(ind)>=m_c_i||\  if((ind)<0||(ind)>=m_c_i||\
 ((m_c_tab[ind].m<0)&&(m_c_tab[ind].c<0))){error("invalid server id");}  ((m_c_tab[ind].m<0)&&(m_c_tab[ind].c<0))){error("invalid server id");}
   #define check_valid_mctab_index(ind)\
   if((ind)<0||(ind)>=m_c_i||\
   ((m_c_tab[ind].m<0)&&(m_c_tab[ind].c<0))){(ind)=-1;}
 #endif  #endif
   
 int register_server();  int register_server();
Line 487  char *control_port_str,*server_port_str;
Line 493  char *control_port_str,*server_port_str;
 {  {
         char cmd[BUFSIZ];          char cmd[BUFSIZ];
         char localhost[BUFSIZ];          char localhost[BUFSIZ];
         char *dname,*conn_str,*rsh;          char *dname,*conn_str,*rsh,*dname0;
         char dname_str[BUFSIZ];          char dname_str[BUFSIZ];
         char AsirExe[BUFSIZ];          char AsirExe[BUFSIZ];
         STRING rootdir;          STRING rootdir;
         char prog[BUFSIZ];          char prog[BUFSIZ];
         char *av[BUFSIZ];          char *av[BUFSIZ];
   
         dname = use_x ? (char *)getenv("DISPLAY") : 0;          dname0 = (char *)getenv("DISPLAY");
           dname = use_x ? dname0 : 0;
         conn_str = conn_to_serv ? "1" : "0";          conn_str = conn_to_serv ? "1" : "0";
         rsh = getenv("ASIR_RSH");          rsh = getenv("ASIR_RSH");
         if ( !rsh )          if ( !rsh )
Line 536  char *control_port_str,*server_port_str;
Line 543  char *control_port_str,*server_port_str;
                                         control_port_str,server_port_str,server,dname,0);                                          control_port_str,server_port_str,server,dname,0);
                         else                          else
                                 execlp(launcher,launcher,".",conn_str,                                  execlp(launcher,launcher,".",conn_str,
                                         control_port_str,server_port_str,server,"0",0);                                          control_port_str,server_port_str,server,dname0,"-nolog",0);
                 }                  }
         } else if ( conn_to_serv == 2 ) {          } else if ( conn_to_serv == 2 ) {
                 /* special support for java */                  /* special support for java */
Line 566  char *control_port_str,*server_port_str;
Line 573  char *control_port_str,*server_port_str;
                                 control_port_str,server_port_str,server,dname);                                  control_port_str,server_port_str,server,dname);
                 else                  else
                         sprintf(cmd,                          sprintf(cmd,
 "%s -n %s \"%s %s %s %s %s %s %s >&/dev/null&\">/dev/null",  "%s -n %s \"%s %s %s %s %s %s %s %s>&/dev/null&\">/dev/null",
                                 rsh,host,launcher,localhost,conn_str,                                  rsh,host,launcher,localhost,conn_str,
                                 control_port_str,server_port_str,server,"0");                                  control_port_str,server_port_str,server,dname0,"-nolog");
                 system(cmd);                  system(cmd);
         }          }
 #endif /* VISUAL */  #endif /* VISUAL */
Line 1134  Q *rp;
Line 1141  Q *rp;
         valid_mctab_index(index);          valid_mctab_index(index);
         s = m_c_tab[index].m;          s = m_c_tab[index].m;
         ox_send_cmd(s,SM_shutdown);          ox_send_cmd(s,SM_shutdown);
   #if defined(VISUAL)
           Sleep(1000);
   #endif
         free_iofp(s);          free_iofp(s);
   #if !defined(VISUAL)
           s = m_c_tab[index].c;
           free_iofp(s);
   #endif
 #if !MPI && !defined(VISUAL)  #if !MPI && !defined(VISUAL)
         if ( m_c_tab[index].af_unix )          if ( m_c_tab[index].af_unix )
                 wait(&status);                  wait(&status);
Line 1157  Q *rp;
Line 1171  Q *rp;
         *rp = 0;          *rp = 0;
 }  }
 #endif  #endif
   
   void shutdown_all() {
           int s;
           int i,index;
           int status;
   
           for ( i = I_am_server?1:0; i < m_c_i; i++ ) {
                   index = i;
                   check_valid_mctab_index(index);
                   if ( index < 0 )
                           continue;
                   s = m_c_tab[index].m;
                   ox_send_cmd(s,SM_shutdown);
                   free_iofp(s);
   #if !defined(VISUAL)
                   s = m_c_tab[index].c;
                   free_iofp(s);
   #endif
   #if !MPI && !defined(VISUAL)
                   if ( m_c_tab[index].af_unix )
                           wait(&status);
   #endif
                   m_c_tab[index].m = 0; m_c_tab[index].c = 0;
                   m_c_tab[index].af_unix = 0;
           }
   }

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

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