home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 35 Internet
/
35-Internet.zip
/
iakont.faq
< prev
next >
Wrap
Text File
|
1995-01-18
|
44KB
|
1,096 lines
THE IAK ON TIA FAQ
This file is the FAQ (Frequently Asked Questions) for persons wishing to run
IAK (IBM's OS/2 Internet Access Kit) on TIA (The Internet Access). See also
the related FAQ list at the bottom of the file (especially the TIA FAQ).
WHAT IS THIS ALL ABOUT ?
The IAK was introduced by IBM as part of a "bonus pack" with the OS/2 3.0
(Warp) operating system. The IAK could be said to simply allow access to the
Internet via a set of programs that run as graphical applications under
the workplace shell (still often referred to as the PM or presentation
manager).
Right now there are basically four levels of internet access:
1. Mail only. This allows you to mail from your own familiar interface across
to users on the net. You may not even be aware that your mail crosses the
net.
2. Via "service", such as AOL (America On Line). These services provide menus
and other Internet services.
3. Shell account. A shell account lets you log onto someone else's host that
itself connects to the Internet. You use their operating systems commands
(usually Unix) to gain access to the net. Because you are dialing up with a
terminal emulation, this means that you are restricted to text mode programs
only. However, because the host is truly "on" the net, you can gain access
to any part of the net, usually using multiple programs to do so.
4. Direct connect. This is the "holy grail" of Internet service. It means that
you have a direct connection to the net, and your computer speaks the language
of the net (TCP/IP). Any access to the net you have is via programs that run
on your own machine, and know how to access various Internet services.
Up to now, direct connect has been the exceptional mode of Internet access.
This is because it traditionally involves leased lines, special hardware,
and special protocols. The expense of a direct connect ($1000 and up a month)
usually means that a large company will create a connection and then connect
that (via a "gateway") to their own network, allowing their staff to share
it.
Over time, another, cheaper means of achiving direct connect has appeared,
known as "slip" (Serial Line Internet Protocol), and later "ppp" (Point to Point
Protocol). What these protocols do is allow the Internet "native" communications
protocol to pass over an ordinary dial up line (modem).
What you get with a slip/ppp connection is virtually full access to the
Internet, including all the current services, and access to any services
that might appear in the future. The big difference between slip/ppp and
a "true" Internet connection is speed. With a slip/ppp interface, for example,
you are not going to be able to listen to live audio programming, or watch live
TV, or do anything else that requires high data rates.
WHY USE DIRECT (SLIP/PPP) ACCESS ?
Direct access changes the way you work on the Internet:
1. You can use graphical "front ends" such as provided with IAK.
2. You can operate more than one access program at one time.
3. You can use the new "advanced access" programs like Mosaic or Web Browser,
which require a direct connection.
As an example, I can open an IRC (Internet Relay Chat) channel to #os/2, the
os/2 channel, and leave that running up in the corner of the screen while I
read my mail, telnet to another computer, access an ftp site, etc.
WHY NOT USE IBM ADVANTIS ?
IBM advantis is a true SLIP service offered by IBM in major cities and also by
800 number dialup. Disregarding the monthy access fees for the moment, if you
are lucky enough to live close to one of their local access dialups, you can
get access for no hourly rate up to the 6 hour limit. If not, you must pay a
$6.00 an hour fee for the 800 number service. Past the 6 hour limit, you pay
a $4.00 an hour fee for local, and if you need to use the 800 number, you must
pay that fee as well. So you can wind up paying $10 an hour.
In my example, I live in the bay area, where I have two Internet providers on
a no-limit/no-hour charge basis, I live in the next exchange from an IBM local
access number. The cheapest I can dial there is $0.05/hour, so I get $3.00 in
the hour limit, and $9.00 over that limit. At that is on the weekends only,
by special rate.
WHY NOT USE ANOTHER SLIP PROVIDER ?
In my area I am lucky. I have two independent providers, both who will give
slip service. However, one provides business accounts only (at ridiculous
rates). The other provides slip at a $2.00 hour rate. This is better for me
the $3.00 minimum access fee for IBM, and there is no hourly limit.
WHAT IS TIA ?
If you step back a minute, you have to ask what is really so different about
a slip/ppp access from a dialup that accounts for the higher charges. The
equipment is the same. The speeds are the same. What you are going to do with
it is basically the same. It may even LESSEN the load on the provider if you
use slip (see below).
Well, it turns out that if you have a shell account, you can actually make
a "do it yourself" slip connection. You just need a program that runs on your
provider's host system, and talks to your computer in slip/ppp protocol.
It essentially does the same thing they must do to give you a slip/ppp line
when you pay "full price".
Because this "adapter" works over the same speed lines that you would use for
a paid slip/ppp line, and has virtually no difference in overhead, you are
getting a slip line for the price of a shell account.
So now you have slip with no hourly access charge, no time limits, and
virtually no difference from a "real" slip account. Duh.
TIA itself cost $25 (one time charge), which will rapidly pay for itself.
HOW DOES TIA WORK ?
TIA stands for "The Internet Adapter".
Basically, TIA takes packets of TCP/IP data that pass to/from your computer
in slip form and uses the host resources to pass them on to the Internet
(the TIA FAQ is going to do more justice to this subject than me). The most
important difference between a TIA link and a slip link is that a TIA link
does not represent a real address on the Internet, and therefore must represent
it's own address as a "virtual" address. Actually, TIA is good at handling
"virtual addresses" and we can use this to solve several problems (below).
TIA is not a program that runs on your PC. TIA runs on the provider's host CPU.
This means that the folks at Cyberspace (makers of TIA) have to compile it for
each possible machine type that is in use.
HOW DO I GET TIA ONLINE ?
First I recommend you obtain the file marketplace.com:/tia/tia.FAQ.single,
marketplace.com:/tia.single.instruct, and marketplace.com:/tia.single.form.txt.
FIRST, you need to determine the type of machine, then download TIA to your
host machine (the machine you connect to). DO THIS BEFORE YOU GET A USER
LICENCE. See the TIA FAQ to help you determine which TIA program is correct for
your host. Typically, this will be something like "sparc.sunos.tia", which
means a sparc CPU, running the sunos operating system.
Rename this file to "tia" on your host, then execute:
chmod +x tia
Which tells it to allow execution of tia. Now you run tia. It should sign on,
and give you a message about "cannot find licence".
The reason you want to do this first is that you want to be sure that
everything is set up before you start the time running on your evaluation
period.
Next, you fill in the tia.single.form.txt file, and send that (email) to
tia-single@marketplace.com. Go for the evaluation period FIRST. That way
you can check your system out first before you buy.
Ok, now you can have the files:
tia - The TIA executable
.tia - The text file that contains the licence number
.tiarc - A file containing startup parameters for TIA
.tiacf - This appears to contain a copy of the login information messages
that TIA generates on startup.
When started "by hand" TIA can be killed with 5 or more ctl-c's. However, under
IAK you will be starting TIA automatically, so you will terminate it by hanging
up.
Next, you must change your login prompt or add something to the end of the
prompt. Do do this, you edit your .login script on the host, and for example,
add the line:
set prompt=joeuser\>
(replacing any previous prompt command).
Reason that you do this is to allow the dialup script a way to know when the
host prompt appears, so that it can execute the TIA startup command.
HOW DO YOU CONFIGURE IAK TO ACCESS VIA TIA ?
FIrst, you need to create an access profile via the "dial other provider" menu
under warp. Here are the fields and buttons:
[PAGE 1]
Provider name: The name of your dialup provider. I just entered my provider
name, not the address, so I have to wonder if this field actually does
anything (but os/2 will not allow it to be blank).
Login ID: place your login ID just as you would enter it for shell access here.
Password: place your password just as you would enter it for shell access here.
Nickname: What is this used for ?
Phone number: Leave blank
Login script: This should point to your script that automatically dials the
host and starts TIA running. Usually it is <drive>\tcpip\etc\slipup.cmd
For the files we give here, this line must also have parameters. This is an
example line:
c:\tcpip\etc\slipup atdt555-1212 joeuser secretpass
The first parameter gives the string to send to your modem to dial the host.
The second gives the user name to log in by, and the third gives the password
to use.
Connection type: Can only be slip. PPP is grey because it is unimplemented by
IBM, and is presumably on their "to do" someday.
Inactivity timeout: Can be set to your pleasure. Note that many access
providers will automatically logout you out if inactive.
[PAGE 2]
MTU size: must be 1500 (see the TIA FAQ).
Domain name server: For this, log in to your shell account, and enter
"tia -address". It will give you this information.
Your host name: is the name of your machine. It should normally be the same
as your login name. This sets the name the programs running think your
machine goes by.
Your domain name: The machine name of your provider, such as bignet.com.
[PAGE 3]
News server: The address of a nntpd compatible news server. Your provider may
be able to give you this. However, it is possible that you may need to set up
your own nntpd server. Since NETCOM is the only provider that currently
lacks such a server, I have put that information in that section.
Gopher server: can be anything. Try os2info.gopher.ibm.com, the IBM gopher
server.
WWW server: can be anything. Try http://www01/ny.us.ibm.net, the IBM WWW
server.
POP mail server: This is the server that will handle your mail requests.
This can usually be any host machine. You may want to pick a machine that
has a low normal load.
Reply domain: the host name of your provider, like biglink.com.
Reply mail ID: Same as your login ID
POP mail login: Same as your login ID. The mail login uses an ID and
password just as your account does.
POP mail password: Same as your login password.
[PAGE 4]
Should be self explainitory, it contains all your modem port parameters. The
question is, does any of this have an effect since the login script does
the modem dialing ?
Now you should have your provider dialer configured. Next, you need to find or
create a slipup.cmd file, and place that under \tcpip\etc. See the specific
implementations for various scripts.
Next, you need to create a file, \tcpip\etc\hosts, which should appear as:
192.0.2.1 <your login name>
What this file does is tell tcpip programs how to convert the address of your
machine to a host name. Sendmail (part of the UltiMail) program does this,
and this file gives the name before it is requested via a domain name server.
This must be done because you don't really have an address for your host.
You are just faking a "virtual address" under TIA. If one of your programs
asks a real Internet domain nameserver to lookup that address, it will go
"huh?" and the program will fail.
Next, you need to find or create a file \tcpip\etc\sendmail.uml. Edit it and
find the lines:
# The unqualified (domain-less) name of the mail relay
DVYourRelay
# The fully-qualified domain name of the mail hub
DHYourHub
Replace "YourRelay" with the mail relay name, and "YourHub" with the mail hub.
This information is provider specific. I have placed examples in the provider
specific areas below.
At this point, you should be able to hit the "dial" button under "other
provider", and watch the slip connection start up in the status window.
WHY CAN"T I SEND MAIL FROM ULTIMAIL ? I CAN RECEIVE IT !
The mail from UltiMail is sent out via "sendmail.exe". This program has
a few oddities. For example, it gets your login name and password from
page 1 in the "other dial" form, instead of the POP mail section on page 3.
UltiMail also takes the address of your machine and asks the listed domain
server to look up the symbolic name (even though this information is in
the dialer form). This is not good on TIA, because we don't really have
an Internet address when on TIA. Instead, the host address is a made up,
virtual address that only TIA understands. When sendmail asks a real
Internet domain name server what that address means, it just says
"no such address", so sendmail bombs.
The fix for this is to create a file \tcpip\etc\hosts, and add or change
\tcpip\etc\sendmail.uml as described in the last section.
FTPPM TAKES FOREVER TO CONNECT, WHAT IS GOING ON ?
FTP-PM takes too long to connect (and to do anything) on even regular
SLIP/PPP service. I have waited (apparently forever) for it to connect
on a TIA access. Some folks report that this works ok. In any case,
use of a text based FTP or the web browser seems to be preferable.
HOW CAN I GET AN ORDINARY SHELL LOGIN TO MY HOST WHILE RUNNING TIA ?
You can telnet back to your host. Then you just log in as usual.
Alternately, you can create a "special address" that can connect
you to anything. First, you add a line to your .tiarc on the host machine:
-p192.0.2.4 csh
This causes TIA to "fake" an address that will connect only to the csh
program. This will work for any program, not just csh.
Then, you telnet to it:
telnet 192.0.2.4
NOTE: TIA has an older telnet server capability that IBM's telnet does not
work with. Use another telnet instead.
DOES TIA TAKE UP MORE OF THE HOST'S TIME THAN A SHELL ACCOUNT ?
IS THAT WHY THEY CHARGE MORE FOR SLIP ?
Given that you do the same things (email, gopher, etc) using TIA as you
did under the shell, using TIA will actually use LESS of the host's time
than a shell account. This is because the data sent via tcp/ip packets
is the more compact, computer encoded version of the data being used, and
because your computer is doing more of the work (since it is actually running
the access programs).
On the other hand, since TIA enables the use of programs like Web Browser,
which take much more bandwidth to run, you may use more host computer time
simply because you can do more.
IS TIA BEING BANNED FROM VARIOUS SYSTEMS ? WHY ?
I have heard that this is happening. We use TIA regularly on Netcom
without complaint (and indeed, netcom already provides their own, proprietary
method to do the same thing).
Optimistically, you can say that the providers may see this as a security
problem, since TIA accesses to the net may be more difficult to log.
Cynically, you could say that the providers don't want the competition for
their higher priced slip/ppp services.
WHAT IS THE DIFFERENCE BETWEEN SLIP AND PPP ? WHY IS PPP NOT USED ?
PPP is the more advanced protocol designed to replace SLIP. It is said to
be harder to crash with communications errors. One feature that PPP has
that would be quite usefull is that PPP can be set to "connect on demand",
which means that it would only dial up the provider when there is actual
data to be transferred, but to be done correctly, this needs to be implemented
on both sides of the line (because the host side must dial you when you
get data inbound). This is the method used by one provider along with ISDN,
and may indeed be the future. At this writing, IBM has added beta PPP support.
TIA is said to be going to PPP RSN :)
HOW DO I CONNECT TO NETCOM ?
Netcom does not have a nntpd compatible news server. All Netcom nodes that I
know of run sparc computers with the sunos operating system (a sun specific
unix variant). Because the news problem was just solved at the time of this
FAQ, you need to get special versions and setups for TIA. Go to
marketplace.com:/tiabeta. Get sparc.sunos.tia, which is the TIA server you
need. Then get sparc.sunos.nntpd which is the newserver.
rename them to tia and nntdp respectively.
nntpd is a program that acts as a nntpd server much the way that nntpd works,
by accessing the host and tranlating the requests into tcpip format. What we
then do is assign nntpd a "virtual" tcpip address, then we can direct the news
reader requests to that.
Then, perform the lines:
chmod +x tia
chmod +x nntdp
This will allow you to execute both programs.
Next, create the file ".tiarc", which is the TIA automatic startup file, with
the content:
-p:119 nntpd
This file tells TIA to create a virtual channel at 192.0.2.3 to access the news
server created.
Next, you must change your login prompt or add something to the end of the
prompt. Do do this, you edit your .login script on the host, and for example,
add the line:
set prompt=joeuser\>
(replacing any previous prompt command).
Here are the specific "other dialer" form entries for netcom:
[PAGE 1]
Provider name: netcom
Login ID: place your login ID just as you would enter it for shell access here.
Password: place your password just as you would enter it for shell access here.
Nickname: What is this used for ?
Phone number: Leave blank
Login script: This should point to your script that automatically dials the
host and starts TIA running. Usually it is <drive>\tcpip\etc\slipup.cmd
For the files we give here, this line must also have parameters. This is an
example line:
c:\tcpip\etc\slipup atdt555-1212 joeuser secretpass
The first parameter gives the string to send to your modem to dial the host.
The second gives the user name to log in by, and the third gives the password
to use.
Connection type: Can only be slip. PPP is grey because it is unimplemented by
IBM, and is presumably on their "to do" someday.
Inactivity timeout: Can be set to your pleasure. Note that netcom will
automatically logout you out if inactive.
[PAGE 2]
MTU size: must be 1500 (see the TIA FAQ).
Domain name server: For this, log in to your shell account, and enter
"tia -address". It will give you this information.
Your host name: is the name of your machine. It should normally be the same
as your login name. This sets the name the programs running think your
machine goes by.
Your domain name: netcom.com
[PAGE 3]
News server: 192.0.2.3
Gopher server: can be anything. Try os2info.gopher.ibm.com, the IBM gopher
server.
WWW server: can be anything. Try http://www01/ny.us.ibm.net, the IBM WWW
server.
POP mail server: netcom18 (this was determined to be the netcom node with
the lightest load).
Reply domain: netcom.com
Reply mail ID: Same as your login ID
POP mail login: Same as your login ID. The mail login uses an ID and
password just as your account does.
POP mail password: Same as your login password.
[PAGE 4]
Fill with modem parameters.
Ok, here is the "slipup.cmd" file for netcom. You must customize the variables
at the top to reflect your modem setup. You must also set CommandKey equal to
the unique command prompt string you entered while configuring the host
(above). Cut the result out and place it in \tcpip\etc\slipup.cmd.
/* version: 1.13 */
/* ------------------------------------------------------------------------*/
/* OS/2 slipup.cmd heavily modified for netcom/tia users and probably of */
/* value for to other people that need a decent slipup.cmd script. */
/* */
/* Any problems should be addressed to rupa@netcom.com or rupa on #os/2 */
/* */
/* Changes: */
/* System specific stuff SHOULD be in the "user setup variables" */
/* section. Let me know if I missed something. */
/* Added 'smart' redialer. */
/* Pulled login stuff from the main body and made it handle */
/* problems if login: or password: never shows up. */
/* Cleaned up some of the code, dynamic addressing for the OS/2 */
/* box is cleaned out, if anyone wants this back in the */
/* code is just commented out (though untested). */
/* Added support for TERM = -- stolen from peetah's mods */
/* ------------------------------------------------------------------------*/
/* files:: ftp.netcom.com:/pub/rupa/tia/netcom.slipup.cmd */
/* for hosts like netcom where you login directly into */
/* your host. */
/* ------------------------------------------------------------------------*/
/* user setup variables */
/* unique string for command prompt */
CommandKey='<replace me with a command prompt>'
/* set the comport you use */
ComPort='com2'
/* options for the "mode" system call */
ModeOptions='57600,n,8,1,buffer=on,rts=hs,dtr=on'
/* does your host ask you what terminal you use? */
/* 1 if it does, 0 if not */
AskTerm=0
/* Modem INIT string */
ModemInit='ATZ'
/* delay after BUSY */
BusyDelay=5
/* delay after NO CARRIER */
NoCDelay=2
/*--------------------------------------------------------------------------*/
/* */
/* OS/2 2.0 SLIP Driver for IBM TCP/IP version 2.0 */
/* */
/* SLIPUP.CMD */
/* */
/* .................................................. */
/* */
/* Sample attachment script for dialing into a Xylogics Annex terminal */
/* server in order to establish a SLIP connection. This script should be */
/* specified using the "attachcmd" and "attachparm" elements in the SLIP */
/* configuration file SLIP.CFG. For example: */
/* */
/* interface sl0 { */
/* attachcmd = slipup */
/* attachparm = "dialcmd username password" */
/* } */
/* */
/* The script parameters specify the command to send to the modem to dial */
/* the remote site and the username/password combination to use to log into */
/* the terminal server. If any of the parameters are omitted, or are */
/* specified as an asterix (*), the script will prompt for them. This is */
/* most useful with the password parameter to avoid storing the password */
/* in a text file on the disk. */
/* */
/* For example, the following might be how I would set it up: */
/* */
/* interface sl0 { */
/* attachcmd = slipup */
/* attachparm = "atdt###-#### db3l *" */
/* } */
/* */
/* which would cause slipup to initially prompt me for the password. It */
/* would then feed the "atdt###-####" command to the modem, and when the */
/* Annex answered, it would use "db3l" as a username and the password I */
/* initially entered as the password. */
/* */
/* - - - - - - - - - - - - - - - - - - - - - - - - - */
/* */
/* When the script runs, it is automatically passed the interface name for */
/* the interface it is running on as the first argument, and the user */
/* arguments (from SLIP.CFG) as the second argument. */
/* */
/* 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. */
/* */
/*--------------------------------------------------------------------------*/
call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysloadFuncs'
call SysLoadFuncs
parse arg interface , dialcmd username password
/*--------------------------------------------------------------------------*/
/* Initialization and Main Script Code */
/*--------------------------------------------------------------------------*/
/* Set some definitions for easier COM strings */
cr='0d'x
crlf='0d0a'x
say ''
say 'SLIPUP - SLIP Script ',
'(interface' interface')'
/* Prompt for missing information */
if dialcmd = '' then do
call charout , 'Dial Command: '
parse pull dialcmd
end
if username = '' | username = '*' then do
call charout , 'User Name: '
parse pull username
end
else do
say 'User:' username
end
if password = '' | password = '*' then do
call charout , 'Password: '
password = readpass()
end
/* set comport speed */
'mode 'ComPort||': ' ModeOptions
/* Flush any stuff left over from previous COM activity */
call flush_receive
/* dial the number and all that */
connected=0
DO FOREVER UNTIL connected
CALL SetModem
IF Dial()=1 THEN DO
SAY 'Something wrong, either VOICE or ERROR returned after'
SAY 'the dial() command. Aborting...'
EXIT
END
IF Login()=1 THEN DO
/* hang up */
'mode '||ComPort||': dtr=off > \dev\nul'
'mode '||ComPort||': dtr=on > \dev\nul'
SAY 'Retrying connection after 30sec delay.'
CALL SysSleep 30
END
ELSE DO
connected = 1
END
END
/* Wait for the main prompt and then send the "slip" command */
if waitfor(CommandKey, 60) =1 THEN DO
call flush_receive 'echo'
CALL LineOut , 'Never got "'||CommandKey||'". Check your setup!'
EXIT 1
END
call flush_receive 'echo'
call send 'tia -address' || 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. */
if waitfor(CommandKey, 60) =1 THEN DO
call flush_receive 'echo'
CALL LineOut , 'Never got "'||CommandKey||'". Your host may be severly loaded!'
EXIT 1
END
call flush_receive 'echo'
parse var waitfor_buffer . 'Gateway address):' a '.' b '.' c '.' d (cr) .
annex_address = a||'.'||b||'.'||c||'.'||d
/* WE DON'T USE THIS WITH TIA!
/* Now parse the remainder for our address */
call waitfor crlf
parse var waitfor_buffer a '.' b '.' c '.' d '.' .
os2_address = a||'.'||b||'.'||c||'.'||d
*/
os2_address = 192.0.2.1
/* Flush anything else */
call flush_receive 'echo'
call send 'exec tia' || cr
if waitfor('SLIP software.', 60) =1 THEN DO
call flush_receive 'echo'
CALL LineOut , 'Never got OK to start slip software.'
EXIT 1
END
call flush_receive 'echo'
/* Now configure this host for the appropriate address, */
/* and for a default route through the Annex. */
say cr || 'SLIP Connection Established'
say 'Configuring local address =' os2_address ', Annex =' annex_address
'ifconfig sl0' os2_address annex_address 'netmask 255.255.255.0'
'route -f add default' annex_address '1'
/* All done */
exit 0
/*-------------------------------------------------------------------------*/
/* SetModem() */
/*.........................................................................*/
/* Sets the modem and hopefully everybody is happy when done... */
/* We have to be very paranoid with "waitfor" or we hang the dialer. */
/*-------------------------------------------------------------------------*/
SetModem:
successful=0
DO UNTIL successful=1
call send ModemInit || cr
if waitfor('OK', 5) = 1 then DO
call flush_receive 'echo'
call lineout , 'Modem not resetting... Trying again'
call send '+++'
IF waitfor('OK' ,5) = 1 THEN DO
CALL LineOut , 'could not reset modem. Check your modem settings!'
EXIT
END
END
ELSE DO
CALL flush_receive 'echo'
successful=1
END
END
RETURN 1
/*-------------------------------------------------------------------------*/
/* dial() */
/*.........................................................................*/
/* Dials the number with some extra error handling above and beyond the */
/* normal stuff- */
/*-------------------------------------------------------------------------*/
dial:
do forever
/* Dial the remote server */
call charout , 'Now Dialing...'
call send dialcmd || cr
/* catch first cr from modem after dialing */
rc=waitfor(cr , 10); CALL flush_receive 'echo'
/* now parse the return from the modem, give time to return code */
rc=waitfor(cr, 120);
SELECT;
WHEN Pos('CONNECT', remain_buffer) \= 0 THEN DO
CALL flush_receive 'echo'
LEAVE
END
WHEN Pos('BUSY', remain_buffer) \= 0 THEN DO
CALL flush_receive 'echo'
CALL SysSleep BusyDelay
ITERATE
END
WHEN Pos('NO CARRIER', remain_buffer) \= 0 THEN DO
CALL flush_receive 'echo'
CALL SysSleep NoCDelay
ITERATE
END
WHEN Pos('ERROR', remain_buffer) \= 0 THEN DO
/* something seriously wrong */
CALL flush_receive 'echo'
RETURN 1
END
WHEN Pos('VOICE', remain_buffer) \= 0 THEN DO
/* don't wanna disturb 'em too much */
CALL flush_receive 'echo'
RETURN 1
END
OTHERWISE DO
/* cannot happen */
CALL flush_receive 'echo'
SAY 'oops! Missed a possible return. send bug report to'
SAY 'rupa@netcom.com with a screen shot.'
LEAVE
END
END /* select */
END /* do */
RETURN 0
/*-------------------------------------------------------------------------*/
/* login() */
/*.........................................................................*/
/* Handle the login process with the proper error checking and all that. */
/*-------------------------------------------------------------------------*/
login:
/* Handle login. We wait for standard strings, and then flush anything */
/* else to take care of trailing spaces, etc.. */
call send cr
IF waitfor('login:',30)=1 THEN DO
call flush_receive 'echo'
SAY crlf||'No login.'
RETURN 1
END
ELSE DO
call flush_receive 'echo'
call send username || cr
END
IF waitfor('Password:',30)=1 THEN DO
SAY crlf||'No Password.'
RETURN 1
END
ELSE DO
call flush_receive 'echo'
call send password || cr
END
IF AskTerm=1 THEN DO
IF waitfor('TERM = ',30)=1 THEN DO
SAY crlf||'Terminal emulation not set to default.'
RETURN 1
END
ELSE DO
call flush_receive 'echo'
call send cr
END
END
RETURN 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 100ms, at which */
/* point it returns. */
/* */
/* The optional echo argument, if 1, says to echo flushed information. */
/* */
/*--------------------------------------------------------------------------*/
flush_receive:
parse arg echo
/* 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,,100)
if echo \= '' then
call charout , line
end
return
******************************* end of slipup.cmd file ***********************
Hosts file: create the file: \tcpip\etc\hosts:
192.0.2.1 <your login name>
Finally, cut and place the next file under \tcpip\etc\sendmail.uml, or modify
your existing sendmail.uml with the following lines:
# The unqualified (domain-less) name of the mail relay
DVmail.netcom.com
# The fully-qualified domain name of the mail hub
DHnetcom.com
Replacing the existing lines.
Here is the file for my system, which should also work on any netcom system.
Note that all system programs are assumed to be on drive C:, so that would
need to be changed if they have moved.
########################################################################
# #
# #
# Sendmail #
# Copyright (c) 1983 Eric P. Allman #
# Berkeley, California #
# #
# Copyright (c) 1983 Regents of the University of California. #
# All rights reserved. The Berkeley software License Agreement #
# specifies the terms and conditions for redistribution. #
# #
# This configuration file was created specifically for IBM's #
# SENDMAIL product for the IBM OS/2 Operating System. Please avoid #
# making changes to this file, as it will change the operation of #
# SENDMAIL. #
# #
# This configuration file is used for outgoing mail in two ways: #
# 1. All mail is sent to a mail relay for delivery #
# 2. All addresses are rewritten if necessary to make them look #
# like they came from a mail hub #
# #
# Created by: William Chung for IBM Ultimedia Mail/2 "Lite" #
# and IBM NR/2 #
# IBM T.J. Watson Research, Yorktown Heights, NY #
# September 23, 1994 #
########################################################################
#
# Host-specific macros
#
# Note: The values of these macros are merely placeholders.
# Actual values will get substituted later at delivery
# time when sendmail is invoked with the -oM command
# line flag to override these configuration file values.
#
# The unqualified (domain-less) name of the mail relay
DVmail.netcom.com
# The fully-qualified domain name of the mail hub
DHnetcom.com
# Version # of this file
DZ1.0um
# Official canonical hostname.
#
# Do not bother setting macro $w (hostname) since we do not use it
# and sendmail will set it for us anyway.
Dj$w
#
# Standard macros
#
# Name used for error messages
DnMailer-Daemon
# UNIX header format
DlFrom $g $d
# Delimiter (operator) characters
Do.:%@!^=/[]
# Format of a total name
Dq<$g>
#
# Options
#
# Process messages in the background.
Odbackground
# Accept oldstyle addresses
Oo
# SMTP read timeout
Or15m
# Queue directory
OQc:\tcpip\etc\mqueue
# Always queue for safety
Os
# Time to live in the queue
OT5d
#
# Message precedences
# Note: use equal weight so we can let relay decide what to do
#
Pfirst-class=0
Pspecial-delivery=0
Pjunk=0
#
# Trusted users
# Note: not used by OS/2 sendmail
#
Troot daemon
#
# Required headers
#
HReceived: $?sfrom $s $.by $j ($v/$Z) id $i; $b
H?D?Date: $a
H?F?From: $q
H?M?Message-Id: <$t.$i@$j>
H?D?Resent-Date: $a
H?F?Resent-From: $q
H?M?Resent-Message-Id: <$t.$i@$j>
H?x?Full-Name: $x
# Throw all mail to relay
S0
R$* $#relay $@$V $:$1
# Rewrite local addresses so they look like they are from the hub
S3
R$*<$*<$*>$*>$* $3 denest
R$*<$+>$* $2 basic RFC822 parsing
R$*<>$* $n RFC1123 <>
R$- $@ $1 @ $H user => user@hub
R$+@$+ $: $1 @ $[$2$] canonify the hostname
R$+@$w $@ $1 @ $H user@thishost => user@hub
R$w!$+ $@ $2 @ $H thishost!user => user@hub
R$+%$w $@ $>3 $1 @ $2 handle % hack thishost
R$* $@ $1 default, unchanged
#
# Mail Delivery Agents
#
Mrelay, P=[IPC], F=mDFMuCX, S=0, R=0, A=IPC $h
Mlocal, P=c:\tcpip\umail\umailer.exe, F=lsDFP, S=10, R=20, A=-dest c:\tcpip\umail\server\inbox -to $u
Mprog, P=xxx, A=Required by sendmail but we do not use this
# Sendmail configuration file *must* end with a newline - do not remove below newline
WHERE CAN I FIND THE FILES ?
FTP to marketplace.com for TIA binaries, FAQs and other documentation.
FTP to ftp.netcom.com:/pub/rupa/tia and look at the readme. Here you will find
the slipup.cmd files you need for various systems. It is recommended by the author
of the files (rupa@netcom.com) that you get the latest version of slipup.cmd from
his account.
samiam@netcom.com