Article View: comp.os.os2.misc
Article #17033Re: Help needed configuring OS/2 Warp SLIP dialer for Annex server...
From: Larry Shurr CB7211
Date: Thu, 26 Jan 1995 18:31
Date: Thu, 26 Jan 1995 18:31
278 lines
13748 bytes
13748 bytes
In article <3g7su9$3ad@sol.ccs.deakin.edu.au> ninja@Deakin.Edu.Au (Paul Vatta) writes:
>I need some help configuring the Warp SLIP dialer to work with my Uni's
>terminal server. The included annex.cmd REXX script doesn't work as it
>doesn't do anything after the modem connects with the message CONNECT XXXXX.
>Here is an example of how it appear/worked under Trumpet Winsock for Windows:
>> [Annex connect session transcript omitted].
The sample annex.cmd doesn't work for you because it is written to
expect authentication AFTER you enter the SLIP command whereas yours
requires it before. The basic thing you have to do is rearrange the
waitfor/send commands appropriately. I include herewith, my
modifications to annex.cmd which support connecting to a Xylogics
Annex terminal server which is identical to the one portrayed in your
session script. The script also has to negotiate access through an
AT&T Datakit dialup with authentication in order to get to the Annex,
so there's some extra stuff you won't need (basically, everything
related to dkusername, dkpassword, & dkdestination AND the waitfor
routine has a new argument telling it how long to wait). A diff with
annex.cmd will illustrate the differences very clearly.
------------included------------included------------included------------included
/*--------------------------------------------------------------------------*/
/* */
/* OS/2 2.11 / WARP REX Driver for IBM TCP/IP version 2.0 / IAK */
/* */
/* Sample attachment script for dialing into an Internet access provider. */
/* This script should be specified on page 1 in the Login Script field for */
/* connections via SlipPM or using the -connect option if executing slip */
/* directly. */
/* */
/* NOTE: This file is supplied as a sample connection script, and */
/* does not constitute the endorsement of a particular */
/* Internet provider on the part of IBM. */
/* Internet providers periodically change their connection */
/* procedures; please refer to the latest information provided */
/* by the service provider. */
/* */
/* This script may be modified to suit the needs of the user */
/* and is written to process dialogs similar to those */
/* required by many Annex type service providers. */
/* */
/* When the script runs, it is automatically passed the interface name for */
/* the interface it is running on as the first argument, followed by the */
/* user arguments. */
/* */
/* The script sends the dial string to the modem and then logs into the */
/* terminal server using the username/password. It then issues the SLIP */
/* command to start SLIP, and parses the resulting output to determine the */
/* appropriate addresses to use. Lastly, it issues ifconfig and route */
/* commands to configure the OS/2 system appropriately. Note that the */
/* configuration assumes a class C netmask for the SLIP interface. */
/* */
/*--------------------------------------------------------------------------*/
parse arg interface , dialcmd dkusername dkpassword dkdestination username password
/*--------------------------------------------------------------------------*/
/* Initialization and Main Script Code */
/*--------------------------------------------------------------------------*/
/* Set some definitions for easier COM strings */
cr='0d'x
crlf='0d0a'x
say ''
say 'ANNEX - SLIP ANNEX Cybernet Server Connection Script ',
'(interface' interface')'
/* Flush any stuff left over from previous COM activity */
call flush_receive
/* Reset the modem here */
/* You may need to customize this for your modem make and model */
call lineout , 'Reset modem...'
call send 'AT&F' || cr
call waitfor 'OK', 5 ; call flush_receive 'echo'
if RC = 1 then do
call lineout , 'Modem not resetting... Trying again'
call send '+++'
call waitfor 'OK'
call send 'ATHZ' || cr
call waitfor 'OK', 3
end
/* Dial the remote server */
call charout , 'Now Dialing...'
/* Wait for connection */
call send dialcmd || cr
call waitfor 'CONNECT' ; call waitfor crlf
/* Handle login. We wait for standard strings, and then flush anything */
/* else to take care of trailing spaces, etc.. */
/* call send cr */
call waitfor 'USERID:' ; call flush_receive 'echo'
call send dkusername || cr
call waitfor 'Password:' ; call flush_receive 'echo'
call send dkpassword || cr
call waitfor 'DESTINATION:' ; call flush_receive 'echo'
call send dkdestination || cr
call waitfor 'username:' ; call flush_receive 'echo' , 2000
call send username || cr
call waitfor 'password:' ; call flush_receive 'echo' , 2000
call send password || cr
call waitfor 'annex:' ; call flush_receive 'echo'
call send 'SLIP' || cr
/* Parse the results of the SLIP command to determine our address. */
/* We use the "waitfor_buffer" variable from the waitfor routine */
/* to parse the stuff we get from the Annex after waiting for an */
/* appropriate point in the data stream. */
call waitfor 'Your address is'
parse var waitfor_buffer . 'Annex address is' a '.' b '.' c '.' d '.' .
annex_address = a||'.'||b||'.'||c||'.'||d
call waitfor crlf
parse var waitfor_buffer a '.' b '.' c '.' d '.' .
os2_address = a||'.'||b||'.'||c||'.'||d
/* Flush anything else */
call flush_receive 'echo'
/* Now configure this host for the appropriate address, */
/* and for a default route through the Annex. */
say 'SLIP Connection Established'
say 'Configuring local address =' os2_address ', Annex =' annex_address
'ifconfig sl0' os2_address annex_address 'netmask 255.255.255.0'
'route add default' annex_address '1'
/* All done */
exit 0
/*--------------------------------------------------------------------------*/
/* send ( sendstring) */
/*..........................................................................*/
/* */
/* Routine to send a character string off to the modem. */
/* */
/*--------------------------------------------------------------------------*/
send:
parse arg sendstring
call slip_com_output interface , sendstring
return
/*--------------------------------------------------------------------------*/
/* waitfor ( waitstring , [timeout] ) */
/*..........................................................................*/
/* */
/* Waits for the supplied string to show up in the COM input. All input */
/* from the time this function is called until the string shows up in the */
/* input is accumulated in the "waitfor_buffer" variable. */
/* */
/* If timeout is specified, it says how long to wait if data stops showing */
/* up on the COM port (in seconds). */
/* */
/*--------------------------------------------------------------------------*/
waitfor:
parse arg waitstring , timeout
if timeout = '' then
timeout = 5000 /* L O N G delay if not specified */
waitfor_buffer = '' ; done = -1; curpos = 1
ORI_TIME=TIME('E')
if (remain_buffer = 'REMAIN_BUFFER') then do
remain_buffer = ''
end
do while (done = -1)
if (remain_buffer \= '') then do
line = remain_buffer
remain_buffer = ''
end
else do
line = slip_com_input(interface,,10)
end
waitfor_buffer = waitfor_buffer || line
index = pos(waitstring,waitfor_buffer)
if (index > 0) then do
remain_buffer = substr(waitfor_buffer,index+length(waitstring))
waitfor_buffer = delstr(waitfor_buffer,index+length(waitstring))
done = 0
end
call charout , substr(waitfor_buffer,curpos)
curpos = length(waitfor_buffer)+1
if ((done \= 0) & (TIME('E')>timeout)) then do
call lineout , ' WAITFOR: timed out '
done = 1
end
end
timeout=0
RC=done
return RC
/*--------------------------------------------------------------------------*/
/* readpass () */
/*..........................................................................*/
/* */
/* Routine used to read a password from the user without echoing the */
/* password to the screen. */
/* */
/*--------------------------------------------------------------------------*/
readpass:
answer = ''
do until key = cr
key = slip_getch()
if key \= cr then do
answer = answer || key
end
end
say ''
return answer
/*--------------------------------------------------------------------------*/
/* flush_receive () */
/*..........................................................................*/
/* */
/* Routine to flush any pending characters to be read from the COM port. */
/* Reads everything it can until nothing new shows up for specified time- */
/* interval, at which point it returns. */
/* */
/* The optional echo argument, if non-empty, means echo flushed info. */
/* */
/* The optional timeout argument, specifies a timeout interval in milli- */
/* seconds. The default is 100. Unfortunately, I do not know enough */
/* about Rexx to make the first argument, echo, optional if you want to */
/* specify a timeout, so if you want to specify a timeout and no echo, I */
/* guess you'll just have to say "flush_receive '',<timeout>". Sorry. */
/* */
/*--------------------------------------------------------------------------*/
flush_receive:
parse arg echo , timout
if timout = '' then
timout = 100
/* If echoing the flush - take care of waitfor remaining buffer */
if (echo \= '') & (length(remain_buffer) > 0) then do
call charout , remain_buffer
remain_buffer = ''
end
/* Eat anything left in the modem or COM buffers */
/* Stop when nothing new appears for 100ms. */
do until line = ''
line = slip_com_input(interface,,timout)
if echo \= '' then
call charout , line
end
return
------------included------------included------------included------------included
Regards,
Larry
--
Larry A. Shurr (las@cbnmva.cb.att.com or lshurr@freenet.columbus.oh.us)
Norman, listen carefully. I am lying. Are you sure your circuits are
registering? Your ears are green. Logic is a little bird singing in a
meadow. Logic is a wreath of pretty flowers which smell bad! - Mr. Spock
Technical Details
Message-ID:
<LAS.95Jan26133136@nmgate.cb.att.com>Path:
arc1-ca.pugleaf.net!nntp.gmd.de!newsserver.jvnc.net!howland.reston.ans.net!gatech!purdue!news.bu.edu!gw1.att.com!nntpa!nntpa.cb.att.com!lasReferences:
<3g7su9$3ad@sol.ccs.deakin.edu.au>Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 1044c2,ce20ec5918a87e14 X-Google-Attributes: gid1044c2,public X-Google-Thread: 10a752,ce20ec5918a87e14 X-Google-Attributes: gid10a752,public X-Google-Thread: 127135,ce20ec5918a87e14 X-Google-Attributes: gid127135,public X-Google-Thread: 10b54f,ce20ec5918a87e14 X-Google-Attributes: gid10b54f,public X-Google-Thread: 107fbf,ce20ec5918a87e14 X-Google-Attributes: gid107fbf,public X-Google-ArrivalTime: 1995-01-26 10:31:36 PST Newsgroups: comp.os.os2.misc,comp.os.os2.setup,aus.computers.os2,deakin.general,deakin.ducs Path: arc1-ca.pugleaf.net!nntp.gmd.de!newsserver.jvnc.net!howland.reston.ans.net!gatech!purdue!news.bu.edu!gw1.att.com!nntpa!nntpa.cb.att.com!las From: las@nmgate.cb.att.com (Larry Shurr CB7211) Subject: Re: Help needed configuring OS/2 Warp SLIP dialer for Annex server... In-Reply-To: ninja@Deakin.Edu.Au's message of 26 Jan 1995 10:18:49 GMT Message-ID: <LAS.95Jan26133136@nmgate.cb.att.com> Sender: news@nntpa.cb.att.com (Netnews Administration) Nntp-Posting-Host: nmgate.cb.att.com Organization: AT&T References: <3g7su9$3ad@sol.ccs.deakin.edu.au> Date: Thu, 26 Jan 1995 18:31:36 GMT Lines: 278