From 010bdfb68741949eee183851770b4e006024c617 Mon Sep 17 00:00:00 2001 From: moshix Date: Fri, 11 Jun 2021 16:49:39 -0500 Subject: [PATCH] wget for BREXX on MVS3.8 --- WGET.rexx | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 WGET.rexx diff --git a/WGET.rexx b/WGET.rexx new file mode 100644 index 0000000..8c9d9af --- /dev/null +++ b/WGET.rexx @@ -0,0 +1,80 @@ +Call TCPInit() +/* ------------------------------------------------------------------- + * Display primary "ISPF" like Menu + * ------------------------------------------------------------------- + */ +call display_HTML('35.192.97.153') +return 0 +/* ------------------------------------------------------------------- + * Render fetched HTML struing + * ------------------------------------------------------------------- + */ +Select_primary: + parse arg select + if select=2 then return display_HTML('35.192.97.153','info') + if select=3 then return display_HTML('35.192.97.153','moon') + if select=10 then return display_HTML('35.192.97.153','news') + else return 8 +return 0 +/* ------------------------------------------------------------------- + * Display ISPF like Web site + * ------------------------------------------------------------------- + */ +Display_HTML: + if wgetx(arg(1),arg(2),80)=0 then do /* result is in _html */ + call render_html + call fmtlist 0,'.','','','SELECT' + return 0 + end +return 8 +/* ------------------------------------------------------------------- + * Render fetched HTML struing + * ------------------------------------------------------------------- + */ +Render_html: + parse value _html with '' + keep='' + pp1=pos('<',_html) + pp2=pos('>',_html) + if pp2'_html + keep=keep''prefix + end + keep=keep''_html + i=0 + do until keep='' + parse value keep with line '15'x keep + if strip(line)='' then iterate + i=i+1 + buffer.i=line + end + buffer.0=i +return 0 +/* -------------------------------------------------------------------- + * WGET Call Web site and fetch data + * -------------------------------------------------------------------- + */ +WGETx: Procedure expose _html + parse arg tcp,page,port + if port='' then port=80 +/* Call TCPInit() */ + rc=TCPOpen(tcp,port) + if rc<>0 then return 8 + call TCPSend(_fd, e2a("GET /"page "HTTP/1.1" + call TCPSend(_fd, e2a("Host: "tcp + call TCPSend(_fd, e2a("User-Agent: " || V + call TCPSend(_fd, e2a("Accept: */*" + call TCPSend(_fd, e2a("" + len = 0 + _html='' + len = TCPReceive(_fd,5) /* Use longer time out wait for first call + Do until len <= 0 + _html=_html||a2e(_data) + len = TCPReceive(_fd,1) /* Use short time out wait for next calls * + End + Call TCPClose(_fd) +return 0