=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/io/tcpf.c,v retrieving revision 1.39 retrieving revision 1.41 diff -u -p -r1.39 -r1.41 --- OpenXM_contrib2/asir2000/io/tcpf.c 2003/03/07 06:39:57 1.39 +++ OpenXM_contrib2/asir2000/io/tcpf.c 2003/05/23 00:11:58 1.41 @@ -44,7 +44,7 @@ * 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.38 2003/03/07 03:12:28 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/io/tcpf.c,v 1.40 2003/03/12 07:56:23 noro Exp $ */ #include "ca.h" #include "parse.h" @@ -425,17 +425,23 @@ void ox_launch_generic(char *host,char *launcher,char generate_port(use_unix,server_port_str); if ( !conn_to_serv ) { cs = try_bind_listen(use_unix,control_port_str); + if ( cs < 0 ) continue; ss = try_bind_listen(use_unix,server_port_str); + if ( ss < 0 ) continue; } spawn_server(host,launcher,server, use_unix,use_ssh,use_x,conn_to_serv, control_port_str,server_port_str); if ( conn_to_serv ) { cs = try_connect(use_unix,host,control_port_str); + if ( cs < 0 ) continue; ss = try_connect(use_unix,host,server_port_str); + if ( ss < 0 ) continue; } else { cs = try_accept(use_unix,cs); + if ( cs < 0 ) continue; ss = try_accept(use_unix,ss); + if ( ss < 0 ) continue; } } while ( cs < 0 || ss < 0 ); @@ -884,8 +890,11 @@ void Pox_push_local(NODE arg,Obj *rp) int s; struct oLIST dummy; VL vl; - int index = QTOS((Q)ARG0(arg)); + int index; + if ( !arg ) + error("ox_push_local : too few arguments."); + index = QTOS((Q)ARG0(arg)); valid_mctab_index(index); s = m_c_tab[index].c; arg = NEXT(arg); @@ -901,8 +910,11 @@ void Pox_push_local(NODE arg,Obj *rp) void Pox_push_cmo(NODE arg,Obj *rp) { int s; - int index = QTOS((Q)ARG0(arg)); + int index; + if ( !arg ) + error("ox_push_cmo : too few arguments."); + index = QTOS((Q)ARG0(arg)); valid_mctab_index(index); s = m_c_tab[index].c; arg = NEXT(arg); for ( ; arg; arg = NEXT(arg) )