=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/io/tcpf.c,v retrieving revision 1.16 retrieving revision 1.25 diff -u -p -r1.16 -r1.25 --- OpenXM_contrib2/asir2000/io/tcpf.c 2000/11/07 06:35:39 1.16 +++ 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.15 2000/10/06 06:05:23 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; @@ -493,19 +492,22 @@ 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 ) 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". @@ -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 */ @@ -561,20 +563,26 @@ 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, -"%s -n %s \"%s %s %s %s %s %s %s >&/dev/null&\">/dev/null", + 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,"0"); + 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"); system(cmd); } #endif /* VISUAL */ @@ -1141,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); @@ -1162,7 +1174,6 @@ Q *rp; ox_send_cmd(m_c_tab[index].c,ui); *rp = 0; } -#endif void shutdown_all() { int s; @@ -1176,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);