=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/io/tcpf.c,v retrieving revision 1.16.2.1 retrieving revision 1.24 diff -u -p -r1.16.2.1 -r1.24 --- OpenXM_contrib2/asir2000/io/tcpf.c 2000/11/08 08:31:55 1.16.2.1 +++ OpenXM_contrib2/asir2000/io/tcpf.c 2001/06/04 02:49:47 1.24 @@ -44,9 +44,8 @@ * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. - * $OpenXM: OpenXM_contrib2/asir2000/io/tcpf.c,v 1.16 2000/11/07 06:35:39 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/io/tcpf.c,v 1.23 2000/12/16 07:12:01 noro Exp $ */ -#if INET #include "ca.h" #include "parse.h" #include "com.h" @@ -59,7 +58,7 @@ #if defined(VISUAL) #include -#include +#include #include #endif @@ -203,7 +202,7 @@ NODE arg; LIST *rp; { int i,c; - Q sid; + Q s_id; NODE t,n0,n; LIST list,l; @@ -212,8 +211,8 @@ LIST *rp; if ( (m_c_tab[i].m>=0) || (m_c_tab[i].c>=0) ) { c = m_c_tab[i].c; ox_get_serverinfo(c,&list); - STOQ(i,sid); - t = mknode(2,sid,list); + STOQ(i,s_id); + t = mknode(2,s_id,list); MKLIST(l,t); NEXTNODE(n0,n); BDY(n) = (pointer)l; @@ -309,7 +308,7 @@ Q *rp; } /* - try_accept(sock) + try_accept(sock,port) */ void Ptry_accept(arg,rp) @@ -322,7 +321,7 @@ Q *rp; use_unix = 0; else use_unix = 1; - s = try_accept(QTOS((Q)ARG0(arg))); + s = try_accept(use_unix,QTOS((Q)ARG0(arg))); STOQ(s,*rp); } @@ -448,8 +447,8 @@ Q *rp; cs = try_connect(use_unix,host,control_port_str); ss = try_connect(use_unix,host,server_port_str); } else { - cs = try_accept(cs); - ss = try_accept(ss); + cs = try_accept(use_unix,cs); + ss = try_accept(use_unix,ss); } } while ( cs < 0 || ss < 0 ); @@ -493,14 +492,17 @@ char *control_port_str,*server_port_str; { char cmd[BUFSIZ]; char localhost[BUFSIZ]; - char *dname,*conn_str,*rsh; + char *dname,*conn_str,*rsh,*dname0; char dname_str[BUFSIZ]; char AsirExe[BUFSIZ]; STRING rootdir; char prog[BUFSIZ]; char *av[BUFSIZ]; - dname = use_x ? (char *)getenv("DISPLAY") : 0; + dname0 = (char *)getenv("DISPLAY"); + if ( !dname0 ) + dname0 = "0"; + dname = use_x ? dname0 : 0; conn_str = conn_to_serv ? "1" : "0"; rsh = getenv("ASIR_RSH"); if ( !rsh ) @@ -542,7 +544,7 @@ char *control_port_str,*server_port_str; control_port_str,server_port_str,server,dname,0); else 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 ) { /* special support for java */ @@ -572,9 +574,9 @@ char *control_port_str,*server_port_str; control_port_str,server_port_str,server,dname); else 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, - control_port_str,server_port_str,server,"0"); + control_port_str,server_port_str,server,dname0,"-nolog"); system(cmd); } #endif /* VISUAL */ @@ -1141,6 +1143,10 @@ Q *rp; 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); @@ -1162,7 +1168,6 @@ Q *rp; ox_send_cmd(m_c_tab[index].c,ui); *rp = 0; } -#endif void shutdown_all() { int s; @@ -1176,7 +1181,14 @@ void shutdown_all() { continue; s = m_c_tab[index].m; ox_send_cmd(s,SM_shutdown); +#if defined(VISUAL) + Sleep(1000); +#endif 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);