[BACK]Return to launch CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / lib

Annotation of OpenXM_contrib2/asir2000/lib/launch, Revision 1.1

1.1     ! noro        1: /* $OpenXM: OpenXM/src/asir99/lib/launch,v 1.2 1999/11/15 08:59:10 noro Exp $ */
        !             2: /*
        !             3:        usage of
        !             4:
        !             5:        generate_port()
        !             6:        try_bind_listen()
        !             7:        try_connect()
        !             8:        try_accept()
        !             9:        register_server()
        !            10: */
        !            11:
        !            12: def local_launch(Server,Use_X,Conn_To_Server,Use_Unix)
        !            13: {
        !            14:        Host = Use_Unix ? "." : "127.1";
        !            15:        Display = getenv("DISPLAY");
        !            16:        if ( !Display )
        !            17:                Display = "0";
        !            18:        do {
        !            19:                Control_Sock = -1;
        !            20:                Server_Sock = -1;
        !            21:                do {
        !            22:                        Control_Port = generate_port(Use_Unix);
        !            23:                        Server_Port = generate_port(Use_Unix);
        !            24:                        if ( !Conn_To_Server ) {
        !            25:                                if ( Control_Sock < 0 )
        !            26:                                        Control_Sock = try_bind_listen(Control_Port);
        !            27:                                if ( Server_Sock < 0 )
        !            28:                                        Server_Sock = try_bind_listen(Server_Port);
        !            29:                        } else
        !            30:                                break;
        !            31:                } while ( Control_Sock < 0 || Server_Sock < 0 );
        !            32:                ServerCmd = get_rootdir()+"/ox_launch"
        !            33:                        +" "+Host
        !            34:                        +" "+rtostr(Conn_To_Server) +" "+rtostr(Control_Port)
        !            35:                        +" "+rtostr(Server_Port) +" "+Server +" "+Display;
        !            36:                if ( Use_X && getenv("DISPLAY") )
        !            37:                        Cmd = "xterm -name ox_xterm -display "+Display
        !            38:                                +" -geometry 60x10 -e "
        !            39:                                + ServerCmd+"\&";
        !            40:                else
        !            41:                        Cmd =ServerCmd+"\&";
        !            42:                shell(Cmd);
        !            43:                if ( Conn_To_Server ) {
        !            44:                        Control_Sock = try_connect(Host,Control_Port);
        !            45:                        Server_Sock = try_connect(Host,Server_Port);
        !            46:                } else {
        !            47:                        Control_Sock = try_accept(Control_Sock,Control_Port);
        !            48:                        Server_Sock = try_accept(Server_Sock,Control_Port);
        !            49:                }
        !            50:        } while ( Control_Sock < 0 || Server_Sock < 0 );
        !            51:        return register_server(Control_Sock,Control_Port,Server_Sock,Server_Port);
        !            52: }
        !            53:
        !            54: def remote_launch(Host,Server,Use_X,Conn_To_Server)
        !            55: {
        !            56:        Display = getenv("DISPLAY");
        !            57:        if ( !Display )
        !            58:                Display = "0";
        !            59:        do {
        !            60:                Control_Sock = -1;
        !            61:                Server_Sock = -1;
        !            62:                do {
        !            63:                        Control_Port = generate_port();
        !            64:                        Server_Port = generate_port();
        !            65:                        if ( !Conn_To_Server ) {
        !            66:                                if ( Control_Sock < 0 )
        !            67:                                        Control_Sock = try_bind_listen(Control_Port);
        !            68:                                if ( Server_Sock < 0 )
        !            69:                                        Server_Sock = try_bind_listen(Server_Port);
        !            70:                        } else
        !            71:                                break;
        !            72:                } while ( Control_Sock < 0 || Server_Sock < 0 );
        !            73:                ServerCmd = get_rootdir()+"/ox_launch"
        !            74:                        +" "+Host
        !            75:                        +" "+rtostr(Conn_To_Server) +" "+rtostr(Control_Port)
        !            76:                        +" "+rtostr(Server_Port) +" "+Server +" "+Display;
        !            77:                if ( Use_X && getenv("DISPLAY") )
        !            78:                        Cmd = "xterm -name ox_xterm -display "+Display
        !            79:                                +" -geometry 60x10 -e "
        !            80:                                + ServerCmd+">&/dev/null&";
        !            81:                else
        !            82:                        Cmd =ServerCmd+">&/dev/null&";
        !            83:                shell("rsh -n "+Host+" \""+Cmd+"\""+">/dev/null");
        !            84:                if ( Conn_To_Server ) {
        !            85:                        Control_Sock = try_connect(Host,Control_Port);
        !            86:                        Server_Sock = try_connect(Host,Server_Port);
        !            87:                } else {
        !            88:                        Control_Sock = try_accept(Control_Sock,Control_Port);
        !            89:                        Server_Sock = try_accept(Server_Sock,Control_Port);
        !            90:                }
        !            91:        } while ( Control_Sock < 0 || Server_Sock < 0 );
        !            92:        return register_server(Control_Sock,Control_Port,Server_Sock,Server_Port);
        !            93: }
        !            94: end$

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