quiet 1 ; timestamp 1 ; local ; list ERROR_HANDLER() { puts "Error occurred, exiting hyperscript" ; exit ; } ; global ERROR_HANDLER ; on_error return ERROR_HANDLER() ; list HANGUP_HANDLER() { str stat = _hangup_status_ ; on_hangup return HANGUP_HANDLER() ; str x = strtok stat ; if ( count(x) < 4 ) return "$ACK" ; int id2 = int (x[3]) ; str name2 = "h_"+id2 ; nodes.*name2 = -1 ; return "$ACK" ; } ; global HANGUP_HANDLER ; on_hangup return HANGUP_HANDLER() ; list MESSAGE_HANDLER() { on_message return MESSAGE_HANDLER() ; return "$ACK" ; } ; global MESSAGE_HANDLER ; on_message return MESSAGE_HANDLER() ; list ALARM_HANDLER() { on_alarm return ALARM_HANDLER() ; return "$ACK" ; } ; global ALARM_HANDLER ; on_alarm return ALARM_HANDLER() ; list nodes = {} ; global nodes ; int nextId = 1 ; global nextId ; int GET_CONNECTED ( str server, int port, str target ) { id = nextId++ ; str name = "h_"+id ; if ( !exists ( nodes.*name ) ) { handle nodes.*name = -1 ; } if ( nodes.*name == -1 ) { handle x = http_open ( server, port ) ; if ( x == -1 ) return -1 ; if ( port == 443 || port == 8443 ) { handle hSSL = ssl_new() ; ssl_assign ( hSSL, x ) ; } http_assign ( id, x ) ; nodes.*name = x ; } return id ; } ; global GET_CONNECTED ; boolean isJava = 0 ; global isJava ; boolean isActiveX = 0 ; global isActiveX ; list LOAD_BRAINS ( str server, int port, str target, str deploy ) { isJava = (deploy == "java") ; isActiveX = (deploy == "activex" ) ; id = GET_CONNECTED ( server, port, target ) ; list att = { str 'Content-Type' = "text/plain" } ; ret = http_query ( id, "GET", target, att ) ; if ( exists ( _http_data_ ) ) { *_http_data_ ; ; } else puts { _http_status_, ":", _http_text_ } ; } ; global LOAD_BRAINS ; list EVAL ( str token ) { str cmd = token ; *cmd ; ; } ; global EVAL ; enable EVAL ; list PUTS ( str token ) { str cmd = token ; puts cmd ; ; } ; global PUTS ; enable PUTS ; list HSEVAL () { *_data_ ; ; } ; global HSEVAL ; list JSEVAL( str text ) { if ( isJava ) ret = port_event ( loopbackId, text ) ; else jeval text ; } ; global JSEVAL ; int loopbackId = 999 ; global loopbackId ; list BOOTSTRAP( str loopbackAddr, int loopbackPort ) { handle h = port_service ( loopbackPort, loopbackAddr ) ; port_assign ( loopbackId, h ) ; port_enable ( HSEVAL, loopbackId ) ; } ; global BOOTSTRAP ; list HELLO() { puts {"Copyright 2004 Abinition, Inc. HyperScript Version ",version()} ; } ; global HELLO ; HELLO() ;