=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/io/tcpf.c,v retrieving revision 1.17 retrieving revision 1.25 diff -u -p -r1.17 -r1.25 --- OpenXM_contrib2/asir2000/io/tcpf.c 2000/11/08 06:21:17 1.17 +++ OpenXM_contrib2/asir2000/io/tcpf.c 2001/06/06 02:21:40 1.25 @@ -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.24 2001/06/04 02:49:47 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; @@ -501,12 +500,14 @@ char *control_port_str,*server_port_str; char *av[BUFSIZ]; 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 ) rsh = use_ssh ? "ssh" : RSH; - if ( !use_unix && dname && strstr(rsh,"ssh") ) { + if ( !use_unix && strstr(rsh,"ssh") ) { /* * if "ssh" is used to invoke a remote server, * we should not specify "-display". @@ -562,17 +563,23 @@ char *control_port_str,*server_port_str; } else { if ( dname ) if ( use_ssh ) - sprintf(cmd, + sprintf(cmd, "%s -f -n %s \"xterm -name %s -title ox_launch:%s -geometry 60x10 -e %s %s %s %s %s %s %s >&/dev/null\">/dev/null", rsh,host,OX_XTERM,host,launcher,localhost,conn_str, control_port_str,server_port_str,server,"1"); else - sprintf(cmd, + sprintf(cmd, "%s -n %s \"xterm -name %s -title ox_launch:%s -display %s -geometry 60x10 -e %s %s %s %s %s %s %s >&/dev/null&\">/dev/null", rsh,host,OX_XTERM,host,dname,launcher,localhost,conn_str, control_port_str,server_port_str,server,dname); else - sprintf(cmd, + if ( use_ssh ) + sprintf(cmd, +"%s -f -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,"1","-nolog"); + else + sprintf(cmd, "%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,dname0,"-nolog"); @@ -1142,6 +1149,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); @@ -1163,7 +1174,6 @@ Q *rp; ox_send_cmd(m_c_tab[index].c,ui); *rp = 0; } -#endif void shutdown_all() { int s; @@ -1177,7 +1187,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);