Redial Loop in REXX Script fails after slip/ppp update

From OS2World.com Wiki
Jump to: navigation, search

Return to The Warp Pharmacy:Software

Last update: 6th November, 1995

Symptoms

The latest slip/ppp update broke the redial loop in my REXX script used to "Dial Other Internet Provider."

Hardware

Various

Problem

The version of slippm.exe distributed with the ppp "golden" code in May 1995 is hard coded to abort when a busy signal is received.

Procedure

This breaks the redial loop in REXX dialing scripts. I have fashioned a successful workaround by patching slippm.exe with a binary editor. I would be glad to post the patched version for ftp if it were not copyrighted IBM code. It is easy to make the modification yourself, however, using the following instructions:

  1. Make a backup of slippm.exe
     COPY SLIPPM.EXE SLIPPM.XEX  
  2. Use a hex editor to edit slippm.exe Use an OS/2 PM based binary editor such as HexEdit/2 , or boot to DOS and use your favourite DOS binary editor (Norton, PCTools, etc.)
  3. Search for the string "BUSY" (no quotes)
  4. Change this string to some other 4 character string Choose a string that is not likely to appear in a dialing sequence. I used ETOH. ;-)
  5. Write the patched file out to disk.

Ed Tomlinson (tomlins@cam.org) writes: (20th June, 1995)

Just saw the above update to the Warp Pharmacy about the gold PPP and how it cancels REXX scripts on BUSY. Actually it cancels and starts timers depending on what it sees from the modem, fortunately we can control what is seen. The following code fragments show how to modify a script to handle the new code. I have passed this method along to the author of PPPDIAL and versions after 2.3 should incorporate it.

/* when you are initializing your variables set */

t2u = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
t2l = 'abcdefghijklmnopqrstuvwxyz'

/* where you reconize the final connect */

if abbrev( ResultCode, 'CONNECT' ) then do

    call lineout, 'CONNECT Your message goes here'

end

/* where you echo the modem's output to the dialer */

call charout , translate(substr(waitfor_buffer, curpos), t2l, t2u)

For a more extensive example, see eskimo.cmd.

By Bob Rayburn

Return to The Warp Pharmacy:Software