From: Paul Mackerras Date: Thu, 26 Mar 1998 02:54:53 +0000 (+0000) Subject: Update from Steve Perkins X-Git-Tag: RELEASE_2_3_6~88 X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=commitdiff_plain;h=b5c0cf380b11e37f580e6f2affcb78d5ccedade0 Update from Steve Perkins --- diff --git a/NeXT/ChangeLog.rtf b/NeXT/ChangeLog.rtf new file mode 100644 index 0000000..25c5e98 --- /dev/null +++ b/NeXT/ChangeLog.rtf @@ -0,0 +1,427 @@ +{\rtf0\ansi{\fonttbl\f0\fmodern Courier;\f1\fswiss Helvetica;\f2\fmodern Ohlfs;} +\paperw12040 +\paperh11720 +\margl40 +\margr40 +{\colortbl;\red59\green11\blue84;\red0\green0\blue0;\red19\green34\blue84;\red6\green0\blue85;} +\pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\b0\i0\ulnone\fs24\fc0\cf0 \ + +\b\gray128\fc1\cf1 11 +\b0\gray0\fc0\cf0 Submitted: +\b\fc2\cf2 perkins +\b0 +\b\fc0\cf0 Jul 10 1996 00:00\ + +\b0 Topic: +\b /PPP-2.x/Documentation/WWW Pages/ +\b0 \ + Owner: +\b perkins +\b0 (nobody) +\b \ + +\b0 Status: +\b Fixed\ + +\b0 \ + +\pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\b\i\gray136\fc3\cf3 Mail setup for FAQ\ + +\i0\gray0\fc0\cf0 +\b0 \ + +\pard\tx1480\tx2020\tx2560\tx3080\tx3620\tx4160\tx4680\tx5220\tx5760\tx6280\f1\li960\fc0\cf0 [perkins Wed Jul 10 14:59:39 EDT 1996]\ +[perkins Wed Jun 05 21:31:44 EDT 1996]\ +On 06/04/96, Francois Magnan wrote:\ + +\gray46\fc4\cf4 >\ +>I have written down the steps I did to configure sendmail 8.7.5 for a \ +>standalone machine using a dial up PPP connection to link to the \ +>internet. It uses the user database to set From and Reply to fields \ +>correctly to each user of the system own's Pop account (in all \ +>outgoing mail). Is there a need for this? Should I post it? Could an \ +>expert verify it before an unexperienced user try this???\ +>\ +>Thank you,\ +>Francois Magnan\ +> \ +>-- \ +>______________________________________________________\ +>Francois Magnan\ +>Departement de Mathematique & Statistiques\ +>Universite de Montreal\ +>email: magnan@mathcn.umontreal.ca (MIME, NeXTMail Ok!)\ +>\ +>\ + +\gray0\fc0\cf0 \ +Sorry for this.... My news server was always telling me it could not \ +send the post.\ +\ +Francois\ +\ +\ +-- \ +______________________________________________________\ +Francois Magnan\ +Departement de Mathematique & Statistiques\ +Universite de Montreal\ +email: magnan@mathcn.umontreal.ca (MIME, NeXTMail Ok!)\ +\ + +\pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\li960\fc0\cf0 \ + +\li0 \ +Trackers: perkins\ + +\pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fc0\cf0 \ + +\b\gray128\fc1\cf1 13 +\b0\gray0\fc0\cf0 Submitted: +\b\fc2\cf2 perkins +\b0 +\b\fc0\cf0 Jul 10 1996 00:00\ + +\b0 Topic: +\b /PPP-2.x/PPP Daemon/Interoperation/ +\b0 \ + Owner: +\b perkins +\b0 (nobody) +\b \ + +\b0 Status: +\b Open\ + +\b0 \ + +\pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\b\i\gray136\fc3\cf3 PPP-2.2 doesn't negotiate well with Netcom's PPP server using bsdcomp\ + +\i0\gray0\fc0\cf0 +\b0 \ + +\pard\tx1480\tx2020\tx2560\tx3080\tx3620\tx4160\tx4680\tx5220\tx5760\tx6280\f1\li960\fc0\cf0 [perkins Wed Jul 10 15:01:24 EDT 1996]\ +\ +[aisbell@cubicsol.com Mon Jun 17 16:47:27 CDT 1996]\ + Using the default PPP options file which specifies the "bsdcomp 10,10" pppd option, negotiation with Netcom's PPP server has been problematic since early June, 1996. Negotiation succeeds, ipcp comes up, but then the Netcom server resends a negotiation packet causing ipcp to be brought down followed by successful renegotiation bringing ipcp up. This causes ip-up to run, then ip-down, and then ip-up again. Depending on what is being done in ip-up and ip-down, this multiple repeated execution, possibly concurrently, can cause problems.\ +\ + However, BSD compression negotiation is rejected by the Netcom server. So by disabling BSD compression negotiation (i.e., specifying the "-bsdcomp" instead of the "bsdcomp 10,10" pppd option), this problem seems to disappear. +\pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\li960\fc0\cf0 \ + +\li0 \ +Trackers: perkins\ + \ + +\b\gray128\fc1\cf1 15 +\b0\gray0\fc0\cf0 Submitted: +\b\fc2\cf2 perkins +\b0 +\b\fc0\cf0 Jul 10 1996 00:00\ + +\b0 Topic: +\b /PPP-2.x/Kernel Server/ +\b0 \ + Owner: +\b perkins +\b0 (nobody) +\b \ + +\b0 Status: +\b Open\ + +\b0 \ + +\b\i\gray136\fc3\cf3 PPP running out of netbuffers & thrashing\ + +\i0\gray0\fc0\cf0 +\b0 \ + +\pard\tx1480\tx2020\tx2560\tx3080\tx3620\tx4160\tx4680\tx5220\tx5760\tx6280\f1\li960\fc0\cf0 [perkins Wed Jul 10 15:02:51 EDT 1996]\ +\ +[rvose@ix.netcom.com Wed Jun 26 01:03:20 CDT 1996]\ +You'll have to excuse me if this is categorized wrong. I'm a PPP newbie.\ +\ +I'm running PPP 2.2.046 on a NeXTstation Turbo Color w/32MB RAM to access my ISP over a modem. Certain operations cause my system to thrash until I break into the NMI to stop it. When I look at messages in the NMI, at the very end are several errors from PPP indicating that it's out of 'netbuffers' I'm not sure if PPP is causing the trash, but the netbuffer errors seemed to point to it. A friend of mine running the same configuration has the same problems.\ +\ +I'm looking for a way to recreate the problem on demand, and will forward that on when I find it. The trashing usually appears while using OmniWeb 2.0.1 from Lighthouse Design, but I've had similar problems using NetSurfer. The problem seems to happen much faster with NetSurfer.\ +\ +Again, I'll try to get you more details. Does this sound like a PPP problem? +\b \ + ===============================================\ +\ + +\b0 [perkins Mon Jul 01 10:33:36 EDT 1996]\ +\ +See Bug #16 for more information.\ + +\pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\li960\fc0\cf0 \ + +\li0 \ +Trackers: perkins\ + \ + +\b\gray128\fc1\cf1 16 +\b0\gray0\fc0\cf0 Submitted: +\b\fc2\cf2 perkins +\b0 +\b\fc0\cf0 Jul 10 1996 00:00\ + +\b0 Topic: +\b /PPP-2.x/Kernel Server/Panic/ +\b0 \ + Owner: +\b perkins +\b0 (nobody) +\b \ + +\b0 Status: +\b Obsolete\ + +\b0 \ + +\b\i\gray136\fc3\cf3 Re: PPP causing thrashing - Tracking ID 15\ + +\i0\gray0\fc0\cf0 +\b0 \ + +\pard\tx1480\tx2020\tx2560\tx3080\tx3620\tx4160\tx4680\tx5220\tx5760\tx6280\f1\li960\fc0\cf0 [perkins Wed Jul 10 15:04:07 EDT 1996]\ +\ +[rvose@ix.netcom.com Mon Jul 1 04:37:03 CDT 1996]\ +Last week I had submitted report indicating that my NeXTstation Color Turbo machine ran out of network buffers and thrashed to the point of crashing. The tracking ID assigned was 16.\ +\ +I believe that this problem may have been due to my swapfile size growing beyond the high-water mark. My machine crashed several times this evening (thrashing) while connected and I happened to notice that the swapfile size was pushing the hiwat limit. I increased the hiwat limit on the file from 40 MB (which is the NeXT default) to 105 MB (the partition size where the file residess - it's on its own drive) and voila! No more thrashing. I've been connected over PPP and hitting the system hard with network transactions with ZERO difficulties.\ +\ +Just wanted to pass that info along. I'm not sure if the combination of the system hitting the hiwat mark on the swapfile + PPP needing more resources caused the thrashing problem, but it seems reasobable.\ +\ +Thanks...\ +\ +Randy\ +rvose@ix.netcom.com\ +\ + +\b \ + ===============================================\ +\ + +\b0 [perkins Mon Jul 01 10:33:24 EDT 1996]\ +\ +This bug is in relation to bug #15\ + +\pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\li960\fc0\cf0 \ + +\li0 \ +Trackers: perkins\ + \ + +\b\gray128\fc1\cf1 21 +\b0\gray0\fc0\cf0 Submitted: +\b\fc2\cf2 perkins +\b0 +\b\fc0\cf0 Aug 10 1996 00:00\ + +\b0 Topic: +\b /PPP-2.x/PPP Daemon/ +\b0 \ + Owner: +\b perkins +\b0 (nobody) +\b \ + +\b0 Status: +\b Fixed\ + +\b0 \ + +\b\i\gray136\fc3\cf3 ip-up and ip-down examples need updating\ + +\i0\gray0\fc0\cf0 +\b0 \ + +\pard\tx1480\tx2020\tx2560\tx3080\tx3620\tx4160\tx4680\tx5220\tx5760\tx6280\f1\li960\fc0\cf0 [perkins Sat Aug 10 09:41:59 EDT 1996]\ +\ +Update ip-up and ip-down examples.\ +\ +\ +\ +\ +ams@best.com (Samuel G. Streeper) wrote:\ +\ + +\gray46\fc4\cf4 > You need to restart the nameserver on your home system when\ +> you bring PPP up:\ +> \ +> kill -USR2 \ +> \ +> (You may want to do this in your ppp-up script) I've heard some\ +> people also do the same with lookupd but that hasn't been necessary\ +> for me.\ + +\gray0\fc0\cf0 \ + Sending the pre-OS 4.0 lookupd a USR2 signal causes it to toggle logging, \ +but sending it a HUP signal forces it to restart and thus read any new \ +resolv.conf indo. You shouldn't have to do this unless you need to use \ +different nameservers when establishing your PPP connection. I need to \ +connect to several different PPP servers, so I slide in the correct \ +resolv.conf and send resolv.conf a HUP signal in pppd's ip-up.\ +\ + Note that sending the OS 4.0 lookupd a HUP signal won't cause it to \ +restart. Restarting it manually will leave the system unusable until a \ +reboot :-( NeXT is aware of this problem.\ +-- \ +Art Isbell NeXT/MIME Mail: aisbell@ix.netcom.com\ +Trego Systems Voice/Fax: +1 408 335 2515\ +CaseServ: NEXTSTEP/OpenStep Voice Mail: +1 408 335 1154\ + managed care solutions US Mail: Felton, CA 95018-9442\ + +\pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\li960\fc0\cf0 \ + +\li0 \ +Trackers: perkins\ + \ + +\b\gray128\fc1\cf1 22 +\b0\gray0\fc0\cf0 Submitted: +\b\fc2\cf2 perkins +\b0 +\b\fc0\cf0 Aug 13 1996 00:00\ + +\b0 Topic: +\b /PPP-2.x/PPP Daemon/ +\b0 \ + Owner: +\b perkins +\b0 (nobody) +\b \ + +\b0 Status: +\b Open\ + +\b0 \ + +\b\i\gray136\fc3\cf3 NXHosting \ + +\i0\gray0\fc0\cf0 +\b0 \ + +\pard\tx1480\tx2020\tx2560\tx3080\tx3620\tx4160\tx4680\tx5220\tx5760\tx6280\f1\li960\fc0\cf0 [perkins Tue Aug 13 09:06:52 EDT 1996]\ +\ +In article <4ule10$g2t@nuke.csu.net>, John Rudd wrote:\ + +\gray46\fc4\cf4 >(isc-ts2-* are our dialup PPP lines.. each line in the hunt group has a \ +>different IP addy associated with it.. so you are likely to get a different \ +>one each time. And this is why I can't do the "Services -> OpenSesame -> \ +>Open on host X", because that sends "-NXHost copernicus".. which is what my \ +>home machine internally identifies itself as)\ + +\gray0\fc0\cf0 \ +The only way to get -NXHost to work over PPP is to have an IP address\ +assigned to your Ethernet port, and have a route to that address\ +reachable over the PPP.\ +\ +When you try to -NXHost, it uses UDP, and for some reason the UDP\ +protocol decides to use the Ethernet's IP address for outgoing\ +packets, rather than using the PPP's IP address.\ +\ +You'll also have similar problems trying to get talk to work over\ +PPP. Unless there is a route to your Ethernet's IP address, it isn't\ +going to work.\ +\ +-- \ +Chris Osborn, Network Administrator Napa Valley College\ +707 253 3130 - Voice 2277 Napa-Vallejo Hwy.\ +707 253 3063 - Fax Napa, CA 94558\ + <¬http://www.nvc.cc.ca.us/~fozztexx>\ + +\pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\li960\fc0\cf0 \ + +\li0 \ +Trackers: perkins\ + \ + +\b\gray128\fc1\cf1 25 +\b0\gray0\fc0\cf0 Submitted: +\b\fc2\cf2 perkins +\b0 +\b\fc0\cf0 Sep 17 1996 00:00\ + +\b0 Topic: +\b /PPP-2.x/Documentation/Installation Instructions/ +\b0 \ + Owner: +\b perkins +\b0 (nobody) +\b \ + +\b0 Status: +\b Fixed\ + +\b0 \ + +\b\i\gray136\fc3\cf3 typo?\ + +\i0\gray0\fc0\cf0 +\b0 \ + +\pard\tx1480\tx2020\tx2560\tx3080\tx3620\tx4160\tx4680\tx5220\tx5760\tx6280\f1\li960\fc0\cf0 [sysadmin Tue Sep 17 12:05:33 EDT 1996]\ +In ./NeXT/INSTALL, I assume '-DBPFILTER' in the second paragraph \ +should be '-DNBPFILTER'? And the third paragraph applies with the \ +second paragraph condition?\ +\ + 4) If you plan in using tcpdump to monitor packets, you must\ + enable the Berkley Packet Filter code. Edit ./NeXT/Makefile\ + and make sure the '-DNBPFILTER' option is defined in DFLAGS.\ + WARNING: If you choose to use BPF, you must make sure that you\ + compile _AND LOAD_ the bpf_reloc LKS _BEFORE_ you load the\ + ppp_reloc LKS. See the ./NeXT/bpf directory for more \ +information.\ +\ + If you don't want to compile in this code, please make sure that\ + '-DBPFILTER' is _not_ defined in the ./NeXT/Makefile DFLAGS.\ +\ + Also, make sure you read the installation file in ./NeXT/bpf. \ +You\ + will need to create a few special device files in /dev/.\ +\ +Stephen Johnson\ +stephen@ccc1.tamu.edu\ +\ +\ + +\pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\li960\fc0\cf0 \ + +\li0 \ +Trackers: perkins\ + \ + +\b\gray128\fc1\cf1 26 +\b0\gray0\fc0\cf0 Submitted: +\b\fc2\cf2 J. P. McCann +\b0 +\b\fc0\cf0 Oct 06 1996 00:00\ + +\b0 Topic: +\b /PPP-2.x/PPP Daemon/Option Handling/ +\b0 \ + Owner: +\b perkins +\b0 (nobody) +\b \ + +\b0 Status: +\b Superseded\ + +\b0 \ + +\b\i\gray136\fc3\cf3 Netcom ISP hookups disconnect with bsdcomp values\ + +\i0\gray0\fc0\cf0 +\b0 \ + +\pard\tx1480\tx2020\tx2560\tx3080\tx3620\tx4160\tx4680\tx5220\tx5760\tx6280\f1\li960\fc0\cf0 [jpmeia@ix.netcom.com Sun Oct 6 20:11:22 CDT 1996]\ +When trying to connect to Netcom with any bsdcomp values (eg, bsdcomp 10,10) in the options script, connection will fail vice ignore bsdcomp. Must use the "-bsdcomp" option to negotiate a connection that does not fail. +\pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\li960\fc0\cf0 \ + +\li0 \ +Trackers: perkins\ + +} diff --git a/NeXT/Examples/NXHosting_with_PPP b/NeXT/Examples/NXHosting_with_PPP new file mode 100644 index 0000000..7c744c4 --- /dev/null +++ b/NeXT/Examples/NXHosting_with_PPP @@ -0,0 +1,56 @@ +From: gbrown@alumni.caltech.edu (Glenn Brown) +Subject: Re: ppp and NXHost problems +Date: 23 Nov 1994 07:37:57 GMT +Organization: California Institute of Technology, Pasadena + +If you want to NXHost over PPP, Simply execute the following 7 lines +after the ppp connection has been brought up (these are simply the +lines from the rc.net script that signal the nmserver that it should +check for new interfaces. Note that the kill command does not kill the +nmserver. Rather, it sends the "USR2" signal to the nmserver.) + +#!/bin/sh +# Let the nmserver know the fruits of our network configuration endeavor. +pid=`ps cax | egrep nmserver | awk '{print $1;}'` +if [ -n "$pid" ]; then + echo "Reinitializing nmserver's network portion" + /bin/kill -USR2 $pid +fi + +Note 1: You have to executed the lines under "sh". I suggest you +save them in a file and type "/bin/sh file". + +Note 2: I haven't actually tried this (I don't have another NeXT to +test it on), but I figured out out reading the rc scripts. Please let +me know the result if you try it. + +--Glenn + +---------------------------------------------------------------------- + +In article <4ule10$g2t@nuke.csu.net>, John Rudd wrote: +>(isc-ts2-* are our dialup PPP lines.. each line in the hunt group has a +>different IP addy associated with it.. so you are likely to get a different +>one each time. And this is why I can't do the "Services -> OpenSesame -> +>Open on host X", because that sends "-NXHost copernicus".. which is what my +>home machine internally identifies itself as) + +The only way to get -NXHost to work over PPP is to have an IP address +assigned to your Ethernet port, and have a route to that address +reachable over the PPP. + +When you try to -NXHost, it uses UDP, and for some reason the UDP +protocol decides to use the Ethernet's IP address for outgoing +packets, rather than using the PPP's IP address. + +You'll also have similar problems trying to get talk to work over +PPP. Unless there is a route to your Ethernet's IP address, it isn't +going to work. + +-- +Chris Osborn, Network Administrator Napa Valley College +707 253 3130 - Voice 2277 Napa-Vallejo Hwy. +707 253 3063 - Fax Napa, CA 94558 + <¬http://www.nvc.cc.ca.us/~fozztexx> + + diff --git a/NeXT/Examples/Persistent_Connection b/NeXT/Examples/Persistent_Connection new file mode 100644 index 0000000..0813c51 --- /dev/null +++ b/NeXT/Examples/Persistent_Connection @@ -0,0 +1,125 @@ +#! /usr/bin/perl + +# ip-down -- executed by pppd on connection death +# +# This particular implementation of ip-down attempts to re-establish +# the ppp connection. It does this by first forking and having the +# parent die (returning control to the invoking pppd for final +# cleanup). +# +# The child waits until the specified port (pppd passes the path to +# the port's device as argument 2) is available and launches pppd (or +# whatever is specfied by $PATH_pppd. +# +# This script requires "syslog.pl" (included with perl). Because of +# this, it also requires "syslog.ph"; "syslog.ph" can be +# manufactured using the h2ph script included with the perl +# distribution. Under NeXTSTEP, one can create syslog.ph by: +# +# h2ph < /usr/include/bsd/sys/syslog.h > syslog.ph +# +# 'syslog.ph' should either be copied into your machines perl library +# (wherever syslog.pl resides), or you should add wherever syslog.ph +# resides to Perl's library search path. +# +# Removing all references to syslog (including openlog() and +# closelog()) will also work, but will render this script's execution +# completely silent. +# +# By default, this script logs to the default target for ppp's logs -- +# LOCAL2. +# +# hacqued by: , jan 30 1995 +# +# Please send any changes/improvements to . And +# please try not to laugh at this code... or, at least, tell me why +# you are laughing so I won't make the same mistakes twice. + +# ABSOLUTE path to PPP daemon (or whatever you want executed after the +# port becomes available). + +$PATH_pppd = "/usr/local/ppp/bin/pppd"; + +# number of seconds to sleep between checking for port availability +$lock_sleep = 2; + +require "syslog.pl"; + +FORK: { + if ($pid = fork) { + # this is the parent. It must die so the old pppd can + # clean-up and exit. + exit; + } elsif ($! =~ /No more process/) { + # oops! ran out of processes. This is supposed to be a + # recoverable error, so sleep and try again. + sleep 5; + redo FORK; + } elsif (!defined($pid)) { + # fork error -- log it and die. + &openlog("pppd/ip-down", 'cons,pid', LOG_LOCAL2); + &syslog('warning', + "Fork() error '$!'"); + &closelog; + die "can't fork: $!\n"; + } +} + +# everything from here down is the child. +&openlog("pppd/ip-down", 'cons,pid', LOG_LOCAL2); + +if ( ! @ARGV ) { + # no arguments -- exec specified thing (assume the process + # being called has a clue about what port it should use) + + &syslog('info', "No device specified. Executing '$PATH_pppd'."); + &closelog; + + exec $PATH_pppd; + ## NOT REACHED: exec never returns +} + +# (assume-- it will if pppd starts ip-down) +# ARGV contains: +# interface-name tty-device speed local-IP-address +# remote-IP-address +($interface_name, + $tty_device, + $speed, + $local_IP_address, + $remote_IP_address) = @ARGV; + +# find the raw device name +@path = split ('/', $tty_device); +$device = pop @path; + +# Generate path to lock file -- assumes NeXT style device locking +$lock = "/usr/spool/uucp/LCK/LCK..$device"; + +# log some info. +&syslog('info', + "Reconnecting '$interface_name' ($local_IP_address:$remote_IP_address) through '$tty_device' at '$speed' baud."); + +# check for lock +if ( -e $lock) { + + &syslog('info', + "'$device' locked. Waiting for unlock."); + + # loop until unlocked + while ( -e $lock ) { + sleep $lock_sleep; + } +} + +#### port available -- log and execute + +&syslog('info', + "Port '$device' available. Launching '$PATH_pppd'"); + +&closelog; + +exec $PATH_pppd; +### NOT REACHED + + diff --git a/NeXT/Examples/README b/NeXT/Examples/README new file mode 100644 index 0000000..bc35d58 --- /dev/null +++ b/NeXT/Examples/README @@ -0,0 +1,3 @@ +This directory contains example files that people have found useful +on NeXTStep systems. They were collected by Stephen Perkins +(perkins@netmass.com). diff --git a/NeXT/Examples/chap-secrets.example b/NeXT/Examples/chap-secrets.example new file mode 100644 index 0000000..5cc3abb --- /dev/null +++ b/NeXT/Examples/chap-secrets.example @@ -0,0 +1,9 @@ +# +# This file is used to control CHAP access +# the local machine. See the man pages +# for details. Make sure this file does +# not have world read access. +# +#"userid" "providerid" "Password" + + diff --git a/NeXT/Examples/flow-control-hints b/NeXT/Examples/flow-control-hints new file mode 100644 index 0000000..e0e6787 --- /dev/null +++ b/NeXT/Examples/flow-control-hints @@ -0,0 +1,9 @@ +From katzlbt@vuse.vanderbilt.edu mentions: + +I was working with software flow control (at 38400 baud) so the output +to /dev/cufa resulted in a deadlock. If the modem does not dial but +shows TR, check hardware flow control by using the device /dev/cufa +with tip. If this results in a deadlock relace your modem cable, for +now replace /dev/cufa with /dev/cua and change the baudrate to 19200. + + diff --git a/NeXT/Examples/ip-down.example b/NeXT/Examples/ip-down.example new file mode 100644 index 0000000..92576ec --- /dev/null +++ b/NeXT/Examples/ip-down.example @@ -0,0 +1,33 @@ +#!/bin/sh +# -*- Fundamental -*- +# +# args: interface-name tty-device speed local-IP remote-IP + +PATH=/usr/ucb:/bin:/usr/bin:/etc:/usr/etc:/usr/local/bin; export PATH + +# +# Remove the route to localhost that we created in ip-up +# +/usr/etc/route delete $4 127.0.0.1 + +# Let the nmserver know the fruits of our network configuration +# endeavor. This allows NXHost connections. Thanks to Glenn Brown +# +pid=`ps cax | egrep nmserver | awk '{print $1;}'` +if [ -n "$pid" ]; then + echo "PPP Reinitializing nmserver's network portion" > /dev/console + kill -USR2 $pid +fi + +# +# Let lookupd know that things have changed +# +pid=`ps cax | egrep lookupd | awk '{print $1;}'` +if [ -n "$pid" ]; then + echo "PPP Reinitializing lookupd" > /dev/console + kill -HUP $pid +fi + + + + diff --git a/NeXT/Examples/ip-up.example b/NeXT/Examples/ip-up.example new file mode 100644 index 0000000..0cd5266 --- /dev/null +++ b/NeXT/Examples/ip-up.example @@ -0,0 +1,46 @@ +#!/bin/sh +# -*- Fundamental -*- +# +# +# args: interface-name tty-device speed local-IP remote-IP + +PATH=/usr/ucb:/bin:/usr/bin:/etc:/usr/etc:/usr/local/bin; export PATH + +# +# Add a route to localhost so netinfo won't sleep. +# +/usr/etc/route add $4 127.0.0.1 0 + + +# Let the nmserver know the fruits of our network configuration +# endeavor. This allows NXHost connections. Thanks to Glenn Brown +# +pid=`ps cax | egrep nmserver | awk '{print $1;}'` +if [ -n "$pid" ]; then + echo "PPP Reinitializing nmserver's network portion" > /dev/console + kill -USR2 $pid +fi + + +# +# Let lookupd know that things have changed +pid=`ps cax | egrep lookupd | awk '{print $1;}'` +if [ -n "$pid" ]; then + echo "PPP Reinitializing lookupd" > /dev/console + kill -HUP $pid +fi + + +# +# Send any mail that has been queued while the link +# was down. +/usr/lib/sendmail -q & + + +# +# Synchronize our clock with some of the public NTP servers. +# +# norad.arc.nasa.gov - 192.203.230.10 +# tick.usno.navy.mil - 192.5.41.40 +# +/usr/etc/ntp -sf 192.203.230.10 192.5.41.40 > /dev/console 2>&1 & diff --git a/NeXT/Examples/options.example b/NeXT/Examples/options.example new file mode 100644 index 0000000..14b58b8 --- /dev/null +++ b/NeXT/Examples/options.example @@ -0,0 +1,134 @@ +# +# NOTE: All options in the file are commented out. PPP.app +# typically takes care of setting options on a per provider +# basis. If you want to set a global option, then +# add/uncomment the appropriate option in this file. +# +# +# This is an example options file. The options file +# should be placed in /etc/ppp/options. These options +# are global to all ppp connections. See the "OPTIONS FILES" section +# in the pppd man page for more details. +# +# Options specified here don't need to be respecified +# on the pppd command line. Note: Most of the example +# scripts in this directory assume an empty options file. +# However, it doesn't hurt to respecify them. +# + +# +# The size of the Maximum Transfer Unit. Higher values +# give better performance for file transfers. Lower values +# give better performance for interactive performance. +# +#mtu 296 + +# +# If you want to periodically touch the other end to make +# sure it is still alive, set these options. +# +#lcp-echo-interval 15 # interval in seconds between touches +#lcp-echo-failure 3 # number of failed attempts before link shutdown + +# +# If you want to enable debugging of the pppd process, leave +# this uncommented. Output will be sent to the file +# /usr/adm/ppp2.2.debug (or whatever you set it to in +# /etc/syslog.conf. +# +#debug + +# +# If you want kernel debugging (i.e. debug output from the +# NeXT LKS), enable this: +# +# kdebug 1 is SC_DEBUG +# 2 is SC_LOG_INPKT +# 4 is SC_LOG_OUTPKT +# 8 is SC_LOG_RAWIN +# 16 is SC_LOG_FLUSH +# +# add together to get debugging you want. +# +#kdebug 17 + +# +# If you want pppd to set the PPP connection as the default +# route when the link is brought up, enable this option. +# Standalone systems dialing into a provider probably want this +# option. +# +#defaultroute + +# +# These two options disable some of the +# various types of authentication. +# +# Note: Some systems require authenticaion before +# negotiation can complete. If you disable +# authentication on these systems, they will +# not complain, but they will also not allow +# negotiaion to complete and your link will +# not come up. +# +# NOTE: PAP and CHAP authentication are enabled +# by default. +# +# If you uncomment either or both of these, you will +# refuse that type of authentication if the server +# requests it. DO NOT put +pap or +chap. This will +# require the server to authenticate to you and it will +# refuse (causing PPP to fail). read the pppd man page +# to create the proper secrets files. +# +#-pap +#-chap + +# +# This specifies that should use a UUCP-style lock on the +# serial device to ensure exclusive access to the device. +# +#lock + +# +# Use hardware flow control (i.e. RTS/CTS) to control the +# flow of data on the serial port. +# +# On NeXT, you also must use the proper device. +# /dev/cufa +# -or- +# /dev/cufb +# +#crtscts + +# +# bsdcomp nr,nt +# +# Request that the peer compress packets that it sends, +# using the BSD-Compress scheme, with a maximum code size +# of nr bits, and agree to compress packets sent to the +# peer with a maximum code size of nt bits. If nt is not +# specified, it defaults to the value given for nr. +# Values in the range 9 to 15 may be used for nr and nt; +# larger values give better compression but consume more +# kernel memory for compression dictionaries. Alterna- +# tively, a value of 0 for nr or nt disables compression +# in the corresponding direction. +# +# It is OK if the peer doesn't support BSD compression. In that +# case, the peer will NAK this option and things will continue +# normally. +# +#bsdcomp 10,10 + +# +# Add an entry to this system's ARP [Address Resolution +# Protocol] table with the IP address of the peer and the +# Ethernet address of this system. +# +# This is only necessary if your are allowing others to dial +# into you (i.e. you are the server). +#proxyarp + + + diff --git a/NeXT/Examples/pap-secrets.example b/NeXT/Examples/pap-secrets.example new file mode 100644 index 0000000..8e415a4 --- /dev/null +++ b/NeXT/Examples/pap-secrets.example @@ -0,0 +1,9 @@ +# +# This file is used to control PAP access +# the local machine. See the man pages +# for details. Make sure this file does +# not have world read access. +# +#"userid" "providerid" "Password" + + diff --git a/NeXT/Examples/ppp_multiple_hosts.tar.gz b/NeXT/Examples/ppp_multiple_hosts.tar.gz new file mode 100644 index 0000000..ddeda96 Binary files /dev/null and b/NeXT/Examples/ppp_multiple_hosts.tar.gz differ diff --git a/NeXT/Examples/pppdown b/NeXT/Examples/pppdown new file mode 100644 index 0000000..c35471f --- /dev/null +++ b/NeXT/Examples/pppdown @@ -0,0 +1,18 @@ +#!/bin/sh +# +# This script fill find processes with 'pppd' in the name +# and send them SIGINT. It must be run suid root to work +# correctly. Some people don't like suid root shell scripts. +# In that case, check out the example pppkill.c which contains a +# C program that does the same thing. This might be a bit safer +# to make suid root. +# +# Note: there is the potential that this script can kill more than +# one process. Maybe even an incorrect process. It could +# probably be done better. +# + +PATH=/usr/ucb:/bin:/usr/bin:/etc:/usr/etc:/usr/local/bin; export PATH + +kill -INT `ps -ax | egrep "(pppd)" | egrep -v "egrep" | sed 's/^\([ 0-9]*\) .*/\1'/` +exit 0 diff --git a/NeXT/Examples/pppkill.c b/NeXT/Examples/pppkill.c new file mode 100644 index 0000000..932eaca --- /dev/null +++ b/NeXT/Examples/pppkill.c @@ -0,0 +1,90 @@ +Many thanks to: + shess@winternet.com (Scott Hess) + andrew_abernathy@wire.seanet.com (Andrew Abernathy) + michal@ellpspace.math.ualberta.ca (Michal Jaegermann) + +for contributing programs that can take the place +of the pppdown script. I have included Scott Hess's +(now modified) here. If you would like to see the other program, please +mail Andrew. + +====================================================================== + +From shess@winternet.com Mon Jan 9 02:45 EST 1995 +Date: Mon, 9 Jan 95 01:45 CST +From: shess@winternet.com (Scott Hess) +Reply-To: shess@winternet.com (Scott Hess) +To: Steve Perkins +Subject: Bringing down ppp. + +[munch] + +In any case, having to run pppdown as root has been annoying, +because I don't like to run things as root more than necessary. +In other words, more than about once a week is too often :-). So, +I wrote the following quick&dirty hack. Basic operation is to read +the pppd pid from a file where it's stored and send a SIGINT to +that process. Since there's not a shell script in sight, this +should be a reasonably safe program to make setuid root. [I'll +have to think on what someone can do if they crack it or /etc/ppp +and can send SIGINT to just anyone. Perhaps it should check to +see if the process is really a pppd? Oh, well.] + +howard:/tmp> ls -l /usr/local/ppp/bin/killppp + +-rwsr-sr-x 1 root 1464 Jan 7 12:41 /usr/local/ppp/bin/killppp* +howard:/tmp> cat /usr/local/ppp/src/killppp.c + +/* + * Originally written by Scott Hess + * and later modified by Michal Jaegermann + */ + +#include +#include + + +#include +#include + +#define PIDF "/etc/ppp/ppp0.pid" + +int +main( void) +{ + FILE *ff; + int pid; + + + if( NULL == (ff = fopen( PIDF, "r"))) { + perror( "opening " PIDF + "\nppp0 link does not seem to be active" ); + exit(1); + } + + + if( fscanf( ff, "%d", &pid)<1) { + fprintf( stderr, "Cannot read pid from" PIDF "\n"); + exit(1); + } + + + fclose( ff); + if( kill( pid, SIGINT)==-1) { + perror( "killing pppd"); + fprintf( stderr, "removing stale" PIDF "file\n"); + if (0 != unlink( PIDF)) { + perror("cannot remove" PIDF); + } + exit(1); + } + return 0; +} + +Later, +--- +scott hess (WWW to "http://www.winternet.com/~shess/") +Home: 12901 Upton Avenue South, #326 Burnsville, MN 55337 (612) 895-1208 +Office: 101 W. Burnsville Pkwy, Suite 108E, Burnsville, MN 55337 890-1332 + + diff --git a/NeXT/Examples/pppup.annex b/NeXT/Examples/pppup.annex new file mode 100644 index 0000000..d5ee18f --- /dev/null +++ b/NeXT/Examples/pppup.annex @@ -0,0 +1,21 @@ +#!/bin/sh -f +# -*- Fundamental -*- +# +# kdebug 1 is SC_DEBUG +# 2 is SC_LOG_INPKT +# 4 is SC_LOG_OUTPKT +# 8 is SC_LOG_RAWIN +# 16 is SC_LOG_FLUSH +# +# add together to get debugging you want +# Remember: for HW flow control you must you /dev/cufa or /dev/cufb +# +# +# This is an example that dials a modem, logs into a remote Annex terminal +# server and starts ppp. +# +exec /usr/local/bin/pppd bsdcomp 10,10 mtu 296 lcp-echo-interval 15 \ +lcp-echo-failure 3 debug crtscts kdebug 17 defaultroute modem -pap -chap \ +connect '/usr/local/bin/chat -v ABORT BUSY ABORT "NO CARRIER" ABORT "NO DIAL TONE" ABORT "ERROR" "" ATZ0 "OK" ATDT####### CONNECT "" MSUnet: ppp sername: USER assword: PASS PPP.' \ +/dev/cufa 57600 lock + diff --git a/NeXT/Examples/pppup.direct b/NeXT/Examples/pppup.direct new file mode 100644 index 0000000..4958fc6 --- /dev/null +++ b/NeXT/Examples/pppup.direct @@ -0,0 +1,19 @@ +#!/bin/sh -f +# +# -*- Fundamental -*- +# +# kdebug 1 is SC_DEBUG +# 2 is SC_LOG_INPKT +# 4 is SC_LOG_OUTPKT +# 8 is SC_LOG_RAWIN +# 16 is SC_LOG_FLUSH +# +# add together to get debugging you want +# Remember: for HW flow control you must you /dev/cufa or /dev/cufb +# +# This is used to start a ppp session over a link that is directly +# connected to another computer. Make sure the peer runs at the +# same speed. +# +/usr/local/bin/pppd bsdcomp 10,10 ipcp-restart 4 ipcp-max-configure 5 lcp-echo-failure 3 lcp-echo-interval 30 debug crtscts kdebug 17 -pap -chap /dev/ttyfb 38400 lock +exit 0 diff --git a/NeXT/Examples/pppup.portmaster b/NeXT/Examples/pppup.portmaster new file mode 100644 index 0000000..c6431ff --- /dev/null +++ b/NeXT/Examples/pppup.portmaster @@ -0,0 +1,12 @@ +#!/bin/sh -f +# +# Call a portmaster terminal server; +# start ppp. +# +# Thanks to Terence John Parr +# +exec /usr/local/ppp/bin/pppd \ +netmask 255.255.255.0 bsdcomp 10,10 mtu 296 lcp-echo-interval 15 \ +lcp-echo-failure 3 debug crtscts kdebug 31 defaultroute modem +pap -chap \ +connect '/usr/local/ppp/bin/chat -v ABORT BUSY ABORT "NO CARRIER" ABORT "NO DIAL TONE" ABORT "ERROR" "" ATZ0 "OK" ATDT000-0000 CONNECT "" ogin:--ogin: mylogin: assword: mypassword.' \ +/dev/cufb 57600 diff --git a/NeXT/Examples/pppup.remote b/NeXT/Examples/pppup.remote new file mode 100644 index 0000000..5e10552 --- /dev/null +++ b/NeXT/Examples/pppup.remote @@ -0,0 +1,22 @@ +#!/bin/csh -f +# +# -*- Fundamental -*- +# +# +# kdebug 1 is SC_DEBUG +# 2 is SC_LOG_INPKT +# 4 is SC_LOG_OUTPKT +# 8 is SC_LOG_RAWIN +# 16 is SC_LOG_FLUSH +# +# add together to get debugging you want +# Remember: for HW flow control you must you /dev/cufa or /dev/cufb +# +# This script is used as the shell for a user account entitiled ppp. +# When users log into this account, PPP is automatically started +# (through this script). The 'echo' command is to help the remote +# process synchronize with this end. +echo Starting PPP +/usr/bin/mesg n +/bin/stty -tostop litout +exec /usr/local/bin/pppd passive bsdcomp 10,10 lcp-echo-interval 15 lcp-echo-failure 3 debug kdebug 17 57600 diff --git a/NeXT/Examples/pppup.zyxel b/NeXT/Examples/pppup.zyxel new file mode 100644 index 0000000..a1d87fc --- /dev/null +++ b/NeXT/Examples/pppup.zyxel @@ -0,0 +1,27 @@ +ABORT BUSY ABORT "NO CARRIER" ABORT "NO DIAL TONE" ABORT "ERROR" +"" +ATI1 "OK" +AT+FCLASS=0 "OK" +ATS42.1=0 "OK" +ATS38.3=1 "OK" +ATS38.5=1 "OK" +ATS2=128 "OK" +ATS46.2=1 "OK" +AT&K4 "OK" +AT&N0 "OK" +ATM0 "OK" +ATV1 "OK" +ATQ0 "OK" +ATX5 "OK" +AT&C1 "OK" +AT&D3 "OK" +AT&H3 "OK" +AT&J0 "OK" +AT&L0 "OK" +AT&M0 "OK" +AT&R1 "OK" +AT&S0 "OK" +ATN1 "OK" +ATDT######## +CONNECT "" ogin: USERNAME assword: PASSWORD +ACTIVE diff --git a/NeXT/Examples/redial.sh b/NeXT/Examples/redial.sh new file mode 100644 index 0000000..5c40acf --- /dev/null +++ b/NeXT/Examples/redial.sh @@ -0,0 +1,76 @@ +#!/bin/csh +# Script for multiple redialing to bring up PPP connection. +# Written by Colin.Allen@tamu.edu +# I make no warranties about this script, but if you have suggestions +# for improving it please feel free to email them to me. + +# Last modified 11-29-95 + +if ( -f /usr/local/ppp/etc/ppp0.pid ) then + +# The ppp0.pid file should only exist with an active ppp connection +# in which case we don't want to try to dial out. Sometimes the file +# will need to be deleted manually if ppp was dropped abnormally. + + echo ERROR: PPP already running. + set quit = y +else + set quit = n + set count = 0 + set limit = 500 + set script = pppup + +endif + +while ( $quit != y ); + +# Next we loop as long as we are not quitting. Each circuit we check +# for a connection and if it's there we launch PopOver. +# Delete or add other programs as desired. + + if ( -f /usr/local/ppp/etc/ppp0.pid ) then + set quit = y + echo Connected after $count attempts. + echo -n "Launching PopOver...Process id: " + nohup /LocalApps/PopOver.app/PopOver & + echo Done. + +# If the connection is not there we ascertain whether the modem is +# still trying to get a connection by looking to see if "chat" appears +# in the output of ps. It is bound to appear at least once because ps +# will find the grep process. If it appears exactly once then any +# previous connection attempt has failed and we need to allow time +# for the modem to reset, then we are free to dial again. + +# You may be able to optimize this script by adjusting the sleep values +# below. My modem (a ZyXEL 1496E) takes about 8 seconds to reset after +# hanging up. + + else + set chat = `ps | grep -c chat` + if ( $chat == 1 ) then + if ( $count != 0 ) then + echo "no connect" + sleep 8 + endif + @ count++ + if ( $count == $limit ) then + echo "Dial count over limit. Aborting." + set quit = y + else + /usr/local/ppp/scripts/$script + echo -n "($count) Dialing..." + sleep 5 + echo -n "trying to connect..." + sleep 5 + endif + else + +# If chat is still working we just wait a bit and loop again. + + echo -n "." + sleep 5 + endif + endif +end + diff --git a/NeXT/INSTALL b/NeXT/INSTALL index d43f541..bd00b61 100644 --- a/NeXT/INSTALL +++ b/NeXT/INSTALL @@ -4,24 +4,22 @@ Authoritative information can be found at: - WWW site: http://www.thoughtport.com:8080/PPP/ - FTP site: ftp://ftp.thoughtport.com/pub/next/ppp - Mirror FTP: ftp://ftp.duq.edu/pub/next/ppp/ - Mirror FTP: ftp://ftp.NMR.EMBL-Heidelberg.DE/pub/next/ppp/ + WWW site: http://www.peak.org/next/ppp/ + WWW mirror: http://www.thoughtport.com:8080/PPP/ + + FTP site: ftp://next-ftp.peak.org/pub/next/apps/internet/ppp/dev + FTP Mirror: ftp://ftp.NMR.EMBL-Heidelberg.DE/pub/next/ppp/ If you have questions or problems, please visit the WWW site for FAQ and mailing list information. -NEW: If you want to submit a bug report, use the new MailBug.app - provided in this directory. You will need to install it as - you would any package. If you don't have email access, please - use bug submission form on the WWW site. +NEW: If you want to submit a bug report, please + use the bug submission form on the WWW site. If you use this software and are pleased with its performance, you are encouraged to make a donation to support continued development. 50% of all donations go to charity. For more information, please see: - http://www.thoughtport.com:8080/PPP/donations.html - + http://www.thoughtport.com:8080/cgi-bin/PPP/donation NeXT Specific Installation Instructions @@ -43,51 +41,41 @@ To install on a computer running NeXTSTEP: ./NeXT/hppa/README.hppa and install the serial driver patch. Successfull installation of this patch will require a reboot of your machine. HPPA - is not supported. + is no longer supported. 3) If you have previously installed a SLIP package, comment out the slip configuration code in /etc/rc.local and reboot your machine. SLIP and PPP _should_ interoperate but for initial testing it is best to remove SLIP. - 4) If you are using Intel, you _must_ get the latest NeXT serial - drivers from NeXTAnswers. You need both the serial and ttyport - drivers (version 3.33 or later). Install these according to - the directions. PPP-2.3 is optimized to work with - the NeXT drivers. It will work with the Mux driver, but - that driver has been known to cause panics with PPP. - - 5) If you plan in using tcpdump to monitor packets, you must - enable the Berkley Packet Filter code. Edit ./NeXT/Makefile - and make sure the '-DNBPFILTER' option is defined in DFLAGS. - WARNING: If you choose to use BPF, you must make sure that you - compile _AND LOAD_ the bpf_reloc LKS _BEFORE_ you load the - ppp_reloc LKS. Also, make sure you read the installation file in - ./NeXT/bpf. You will need to create a few special device files in - /dev/. - - If you don't want to compile in this code, please make sure that - '-DBPFILTER' is _not_ defined in the ./NeXT/Makefile DFLAGS. - - 6) Type ./configure in the top level PPP directory. This will set + 4) If you are using Intel OS version 3.3, you _must_ get the latest + NeXT serial drivers from NeXTAnswers. You need both the serial + and ttyport drivers (version 3.33 or later). Install these + according to the directions. PPP-2.3 is optimized to work with + the NeXT drivers. It will work with the Mux driver (especially + beneficial for OS versions prior to 3.3), but that driver has been + known to cause panics with PPP. If you use OS 4.x you can use the + drivers that came with the system. + + 5) Type ./configure in the top level PPP directory. This will set up some necessary links. - 7) If you have developer 3.2, you need to use the old version of + 6) If you have developer 3.2, you need to use the old version of chat.c. Perform: a) cd to the chat directory b) backup chat.c (mv chat.c chat.c.orig) c) use the old chat (mv chat.c.3.2 chat.c) - 8) Edit ./Makefile and set the installation directories. + 7) Edit ./Makefile and set the installation directories. If you change the ETCDIR you will need to modify pathnames in pppd/pathnames.h. I recommend keeping it set to /etc/ppp. If you don't specifically like that directory, you may also change the Makefile directory and put a link in /etc/ppp - that points to the proper place. + that points to the proper place. You will also want to set the -arch flags to the appropriate architectures. Leaving it blank will default to your current - architecture. + architecture. 9) Do a: make @@ -99,10 +87,9 @@ To install on a computer running NeXTSTEP: If you are performing an upgrade, you are done after successfully making and installing the latest release. All you need to do is to reboot your machine so that the new loadable kernel server (LKS) is -loaded. Make sure you remember to edit /etc/rc.local and add the code -to load the bpf_reloc LKS (if you enabled BPF support). You should be -able to start the upgraded PPP just like normal. If this doesn't -work, see the "Troubleshooting" section later on. +loaded. You should be able to start the upgraded PPP just like +normal. If this doesn't work, see the "Troubleshooting" section later +on. Also, you might want to compare the ip-up and ip-down scripts in the ./NeXT/Examples directory with those you have installed in @@ -135,20 +122,8 @@ done once. These steps do not need to be re-performed for an upgrade. separators ;) somewhere near the end of the file /etc/rc.local: ====================================================================== -# -# Load the Berkley Packet Filter LKS -# This must be done before PPP. Comment this out -# if you disabled BPF. If you use BPF, you _must_ -# load it before the PPP LKS. If you chaged pathnames -# in the Makefile, make sure the appropriate paths are -# used below. -# -if [ -f /usr/local/bpf/reloc/bpf_reloc ]; then - /usr/etc/kl_util -a /usr/local/bpf/reloc/bpf_reloc -fi - # -# Load the selected version of the PPP-2.2 loadable +# Load the selected version of the PPP-2.3 loadable # kernel server (LKS). # if [ -f /usr/local/ppp/reloc/ppp_reloc ]; then @@ -157,15 +132,10 @@ if [ -f /usr/local/ppp/reloc/ppp_reloc ]; then fi ====================================================================== - If you choose not to use BPF, then comment out the first lines - of code by adding the '#' mark in front of them (similar to the - comment lines that are already in place). All three lines - (including the 'if' and 'fi') need to be commented. - This code will now be executed next time you reboot your machine. - You can verify that this was executed by checking the output of + You can verify that this was executed by checking the output of /usr/adm/messages upon a successful reboot. There should be a - section of output that says the PPP-2.2 LKS was successfully loaded. + section of output that says the PPP-2.3 LKS was successfully loaded. 2) The default Makefile paths place PPP files in a directory called @@ -199,7 +169,6 @@ fi to you from the command line. However, before you can immediately see them, you may need to log out and log back in. - 3) Once you start trying to make PPP connections, it is important to have access to the logging information that PPP generates. This will allow you to follow the progress of PPP and will aid in @@ -218,11 +187,11 @@ fi Now, as root, use vi or your favorite editor to edit the file /etc/syslog.conf. You need to add the line: - local2.debug /usr/adm/ppp2.2.log + local2.debug /usr/adm/pppd.log It is _imperative_ that you place a character between the level "local2.debug" and the file name - "/usr/adm/ppp2.2.log. Do _not_ use spaces. If your + "/usr/adm/pppd.log. Do _not_ use spaces. If your editor converts tab characters to spaces, you need to use a different editor. Also beware of cutting and pasting between buffers. Sometimes a tab will be converted to spaces @@ -230,7 +199,7 @@ fi my /etc/syslog.conf: ====================================================================== -local2.debug /usr/adm/ppp2.2.log +local2.debug /usr/adm/pppd.log *.err;kern.debug;auth.notice /dev/console kern.debug;daemon,auth.notice;*.err;mail.crit /usr/adm/messages mark.debug,daemon.info /usr/adm/messages @@ -248,12 +217,13 @@ mail.info /usr/spool/mqueue/syslog This step is necessary because if syslog does not see the file, it will not create it. So, removing the file is a handy way to turn off the logging. To create an empty logging file, as root execute: - touch /usr/adm/ppp2.2.log + touch /usr/adm/pppd.log Upon a successful reboot, logging will be enabled for pppd (remember to specify the 'debug' option to pppd to get reasonable information sent to the logging file). + 4) You should copy a few files to a new directory. Part of the installation process creates a new directory (or link) called /etc/ppp/. Further, it creates an empty file called @@ -265,82 +235,13 @@ mail.info /usr/spool/mqueue/syslog following commands. It assumes you are in the PPP distribution directory: - cp NeXT/Examples/options /etc/ppp/options + cp NeXT/Examples/options.example /etc/ppp/options cp NeXT/Examples/ip-up.example /etc/ppp/ip-up cp NeXT/Examples/ip-down.example /etc/ppp/ip-down /usr/etc/chown root.wheel /etc/ppp/options /etc/ppp/ip-up /etc/ppp/ip-down chmod 644 /etc/ppp/options chmod 511 /etc/ppp/ip-up /etc/ppp/ip-down - -5) If you have a standalone machine, it is necessary for you to make - sure your system is configured to correctly support a network. The - following steps will help in correctly configuring your machine. - Please note, if you do not have a standalone machine (i.e. you are - on a local network), you need to speak with your system - administrator to determine the proper configuration for your - machine. In most cases, a machine correctly configured for a - network will not need to perform the steps listed here. The - following only applies to standalone machines. - - It is suggested that you reboot your machine _before_ you start - these procedures. This is to verify that you successfully - completed the previous steps and that your machine does indeed - reboot. If it doesn't, you should replace /etc/rc.local with the - backup copy and reboot. Then, determine why your modifications - failed. After successfully rebooting, you are ready to move on to - these steps. - - As root, make a backup copy of /etc/hostconfig. You might - name it /etc/hostconfig.prePPP. If, after the following steps, you - run into problems booting your machine, you may replace - /etc/hostconfig with the backup and you should be able to - successfully reboot. - - Start up the HostManager.app (under /NextAdmin). After - successfully entering the root password, you should get the - HostManager Menu. Select the "Local..." menu option to get the - main window. Modify it as follows: - - For "NetInfo Binding", select "use local domain only" - and make sure the box for "Readable only by local net" - is checked. - - For "Hostname", fill in your host name as appropriate. Do - _not_ add the domain name. For example, use "sidney" - rather than "sidney.cps.msu.edu". - - For "NIS Domain Name", select "None" - - For "Internet Address", use the provided IP address - (probably 192.42.172.1) unless your system administrator has - assigned you your own unique IP address. In this case, - reverify that you are a standalone machine. Please - note... if your PPP service provider has assigned you an - IP address, do _NOT_ use that address here. That address - will be used later. Use whatever address is already in - the display. - - For "Broadcast Address", select "Default" - - For "Time Standard", select "Ignore Network Time" - - For "Netmask", select "Default" - - For "Router", select "None" - - When this is complete, click the "Set" button. You will then have - the option to reboot or to skip the reboot. Choose the appropriate - action. It is suggested that you reboot immediately and verify that - your system does indeed reboot (and behave as normal). If it - doesn't, replace /etc/hostconfig with the backup copy and then - reboot. Once you are back up, determine the problem with your - configuration. - - Please note that this description is generic and will work in most - cases. There are lots of variations that people can and will need - to make. Your network administrator will be able to provide you with - the correct details for your particular site. Congratulations! You have successfully installed PPP and are now ready to start up a connection. See the section "Initial Testing" for @@ -354,7 +255,11 @@ One of the most notoriously difficult portions of getting PPP links up and running involves writing the script that automatically dials your modem, connects to the peer, and starts the remote ppp process. Once you are connected to the peer, each PPP process will start -communications and things become much easier. +communications and things become much easier. Several frontends are +available that help ease this problem. See: + http://www.peak.org/next/ppp/NeXT_PPP_Frontends.html +for more information on those. If you want or need to go the +scripting route, then please read on. Before you dive into script writing, there is a simpler solution that will allow you to test the ppp portion. Once this works, getting the @@ -413,7 +318,7 @@ There are several ways to determine if the link has actaully been established. I will go through some of them. 1) You may look at the pppd log file (typically - /usr/adm/ppp2.2.log). If you see lines that look similar to: + /usr/adm/pppd.log). If you see lines that look similar to: Jan 11 23:13:38 sidney2b pppd[2141]: local IP address 35.9.12.55 Jan 11 23:13:38 sidney2b pppd[2141]: remote IP address 35.9.10.13 @@ -484,7 +389,8 @@ the scripts icon. This will start the chat process that will dial the modem and log into the remote system. It will then turn control over to pppd. If your script is successful (as described in the "Determining if the link is actually up" section), you will be all -set. All your apps, OmniWeb, FTP, telnet, etc should work. +set. All your apps, OmniWeb, FTP, telnet, etc should work. Please +note that pppd itself will not appear to do anything but sit there. Once you are through using the connection, you can close down the PPP link by executing the ppp down script. Again, this can be done by @@ -519,9 +425,8 @@ the command line). The second thing is a list of name servers. These should be local to your ppp provider. Your network administrator will be able to provide -you with the appropriate addresses. There are default name servers to -use in case the local provider is not responding. An example file -might look like: +you with the appropriate addresses and you should use those, not the +ones listed below. An example file might look like: ---------------------------------------------------------------------- domain cps.msu.edu @@ -538,12 +443,6 @@ nameserver 35.8.2.41 nameserver 35.8.2.41 nameserver 128.247.160.56 -# -# Other servers -- hopefully something will work if needed -#shadooby.cc.umich.edu -nameserver 35.1.1.91 -#ns.nasa.gov -nameserver 128.102.16.10 ---------------------------------------------------------------------- You will need to reboot your computer for the new nameservers to take @@ -607,136 +506,10 @@ the bug report form found there. Please remember to include your hardware type and the LKS version number in all reports. This number may be found in the file /usr/adm/messages (once the LKS has been installed). Also, for most questions, it is best to append a copy of -the /usr/adm/ppp2.2.log file. +the /usr/adm/pppd.log file. If you do have troubles, please see the FAQ on: - http://www.thoughtport.com:8080/PPP/ - -Here are a few of the more common problems that this FAQ addresses: - -====================================================================== -1) pppd bombs out with an error similar to: - Jan 26 14:46:25 localhost pppd[256]: Connected... - Jan 26 14:46:26 localhost pppd[256]: ioctl(PPPIOCGUNIT): Inappropriate ioctl for device - Jan 26 14:46:26 localhost pppd[256]: Exit. - -There are two things that can cause this error. The most common error -is that you are using the innappropriate device for communication to -your modem. You should be using /dev/cufa or /dev/cufb. Second, the -Loadable Kernel Server (LKS) and the user level daemon (pppd) must be -of the same version. While unusual, the error above can be the result -of using the wrong Loadable Kernel Server (LKS) with pppd (or vice -versa). Some versions of PPP installed the LKS (ppp_reloc) in -/usr/lib/kern_loader/ppp and some in /usr/local/ppp/reloc. The second -is going to be the standard place for installation from now on. - -Solution: Make sure that you are using the appropriate device for -communications with your modem. Further, make sure that your -/etc/rc.local is loading the correct version of the LKS and make sure -you are really calling the correct pppd for use with the LKS that you -loaded. -====================================================================== - -2) PPP works fine, but when the link is up, netinfo sleeps when you - try to print or send mail. - -This problem is typically a result of an improper routing setup on the -PPP client (your host). When PPP starts up, it will dynamically -negotiate an IP address for use on the PPP interface (usually ppp0). -If you don't specify an IP address to pppd, then the address will -usually be provided by the peer. It may change each time that you -bring up a PPP link. If you did specify an IP address, pppd will -attempt to use that address first. If that fails, it will try to get -an address from the peer. Either way, the PPP interface usually has a -new IP address. The routing problem can result when trying to access -your local host (and netinfo) on the IP address that was dynamically -negotiated. - -Solution: The solution is straightforward. You must add a route from -the IP address that your PPP interface uses to the special loopback IP -address 127.0.0.1. The 'route' command will allow you to do this. -For instance, if you are assigned the address 35.8.74.211 during PPP -negotiation, you can add the needed route byentering (as the user -root): - - /usr/etc/route add 35.8.74.211 127.0.0.1 0 - -This route needs to be added each time the link comes up. However, -one problem with hard coding this command into /etc/ppp/ip-up is that -you may get a different IP address each time the link comes -up. Fortunately, Bill Bereza submitted -this nice script clip that can be pasted into /etc/ppp/ip-up. This -will create the correct route entry for you automatically. Place this -in /etc/ppp/ip-up: - - /usr/etc/route add $4 127.0.0.1 0 - -You will also want to add this little clip to /etc/ppp/ip-down:
- - /usr/etc/route delete $4 127.0.0.1 - -This removes the route when your link goes down. - -====================================================================== - -3) People who are trying to set up a NeXT as a PPP server that - they dial into often complain that they can make a connection, but - the remote machine can only ping the server. No other packets - work. - -Check out the 'proxyarp' option to pppd. Servers (connected to their -LAN) must proxyarp for the remote address (i.e. the address of the -machine dialing in). - -====================================================================== - -4) Your pppd/chat dials the modem but you cannot get a negotiation - to start. The /usr/adm/ppp2.2.log file shows something similar - to: - - Mar 13 12:02:41 crystal pppd[243]: sent [LCP ConfReq id=0x1 ] - Mar 13 12:02:44 crystal pppd[243]: sent [LCP ConfReq id=0x1 ] - Mar 13 12:02:47 crystal pppd[243]: sent [LCP ConfReq id=0x1 ] - Mar 13 12:02:51 crystal pppd[243]: sent [LCP ConfReq id=0x1 ] - Mar 13 12:02:54 crystal pppd[243]: sent [LCP ConfReq id=0x1 ] - Mar 13 12:02:57 crystal pppd[243]: sent [LCP ConfReq id=0x1 ] - Mar 13 12:03:00 crystal pppd[243]: sent [LCP ConfReq id=0x1 ] - Mar 13 12:03:03 crystal pppd[243]: sent [LCP ConfReq id=0x1 ] - Mar 13 12:03:06 crystal pppd[243]: sent [LCP ConfReq id=0x1 ] - Mar 13 12:03:09 crystal pppd[243]: sent [LCP ConfReq id=0x1 ] - Mar 13 12:03:12 crystal pppd[243]: LCP: timeout sending Config-Requests - Mar 13 12:03:12 crystal pppd[243]: Connection terminated. - Mar 13 12:03:12 crystal pppd[243]: Serial link is not 8-bit clean: - Mar 13 12:03:12 crystal pppd[243]: All received characters had bit 7 set to 0 - -Discussion: This is a common problem. It is typically the result of a -failure to properly start the remote PPP process. The problem arises -since the local PPP starts sending packets as soon as chat -exits. Since there is no remote PPP process running to interpret the -packets, the remote command line interpreter starts sending error -messages for each received packet (considered garbage to the remote -CLI). Thus, your local PPP process is receiveing error message text -instead of the expected PPP packets. Since error message text is -usually ascii (values < 127) PPP believes that the link is not 8-bit -clean. - -Solution: Make sure you add the '-v' option to chat (in your dial -script) and then check the output of /usr/adm/ppp2.2.log to see why -chat failed to start the remote PPP process. - - - -====================================================================== - -5) NXHosting applications over PPP fails. I don't know why this - happens. Rest assured, that I and others do have it working. - The most obvious things to check are that you have your system set - up as a public window server. Also, make sure that you reset the - nmserver in /etc/ppp/ip-up (see the example ip-up file). If it - still doesn't work, you might want to add your peer to your - /etc/hosts.equiv file. I don't know if that has anything to do - with it or not, but I don't know why some people can't NXHost - and others can. + http://www.peak.org/next/ppp/ Updates @@ -746,16 +519,16 @@ You may want to join the mailing list for PPP. This will keep you informed of new releases and will provide an arena for discussing problems with the NeXT specific PPP port. To add yourself to the list (or for any other administrative requests), send an email message to: - listproc@listproc.thoughtport.com + majordomo@peak.org with no subject and message body consisting of: - subscribe nextppp Stephen J. Perkins + subscribe nextppp (please use your own name ;). To send mail to all the participants on the list, address your messages to: - nextppp@listproc.thoughtport.com + nextppp@peak.org If you want announcements only, there is a second "announcements only" list. To subscribe to this, you may use the alternate body: - subscribe nextppp-announce Stephen J. Perkins + subscribe nextppp-announce You don't need to subscribe to both. All announcements are forwarded to the regular list. @@ -772,11 +545,10 @@ Noted bugs There have been various problems reported when trying to install LKSs the way NeXT intended (i.e. placing them in /usr/lib/kern_loader/* and -modifying /etc/kern_loader.conf). The main problem seems to be that -after modifying /etc/iftab, /etc/rc.net (on NSFIP) will not correctly -configure the interfaces. This means that booting under NSFIP will -hang. So, for the time, it is suggested that you install the package -manually and load the LKS in /etc/rc.local. +modifying /etc/kern_loader.conf). The main problem is that if users +have a bad copy of the LKS, the system will panic and will be unable +to boot. So, for the time, it is suggested that you install the package +manually and load the LKS in /etc/rc.local as directed above. Modem Configuration @@ -805,4 +577,6 @@ ftpmail service, send a message to "ftpmail@decwrl.dec.com" whose body consists of the single line "help". -Thanks Stephen J. Perkins +Thanks + +Stephen J. Perkins diff --git a/NeXT/Makefile b/NeXT/Makefile index f3be5f6..b39a849 100755 --- a/NeXT/Makefile +++ b/NeXT/Makefile @@ -1,7 +1,7 @@ # # Makefile for NeXT OS 3.2 # -# $Id: Makefile,v 1.2 1997/04/30 05:39:28 paulus Exp $ +# $Id: Makefile,v 1.3 1998/03/26 02:51:37 paulus Exp $ # #ARCHFLAGS = -arch i386 -arch m68k @@ -29,16 +29,6 @@ LKS_DIR=/usr/local/ppp/reloc # OLD_MUX Fixes double buffer problem with the MuX serial # driver. # -# NBPFILTER If defined, adds hooks for the Berkley Packet Filter -# If this symbol is defined, you must load the -# bpf_reloc LKS _BEFORE_ you load the ppp_reloc LKS. -# See the ./bpf directory for more information. -# -# NETBUF_PROXY Enable proxy routines for custom Netbuf handling -# -# CHECK_BOUNDS Turn on bounds checking on netbufs. NETBUF_PROXY -# must be enabled for this to work. -# # OPTIMIZE_PPPREND Enable an optimization supported by the NeXT serial # drivers. Basically they buffer characters for an # interrupt and call ppprend. @@ -46,18 +36,16 @@ LKS_DIR=/usr/local/ppp/reloc # NEW_CLOCAL Used to enable the new code that sets CLOCAL. Else, # the old code is used. # -# -# -DFLAGS = -DINET -DKERNEL -DMACH -DPOSIX_KERN \ +DFLAGS = -D_POSIX_SOURCE -DINET -DKERNEL -DMACH -DPOSIX_KERN \ -DNUM_PPP=2 -DVJC -DPPP_COMPRESS \ - -DDEBUG -DNEW_CLOCAL -DNBPFILTER -DOPTIMIZE_PPPREND + -DDEBUG -DNEW_CLOCAL -DOPTIMIZE_PPPREND -IFLAGS = -I. -I.. -I../pppd +IFLAGS = -I. -I../include -I../pppd -CFLAGS = -pipe -posix $(ARCHFLAGS) $(DFLAGS) $(IFLAGS) +CFLAGS = -O -g -pipe $(ARCHFLAGS) $(DFLAGS) $(IFLAGS) -OBJS = bsd-comp.o if_ppp.o nbq.o ppp_tty.o vjcompress.o +OBJS = bsd-comp.o if_ppp.o ppp_tty.o vjcompress.o SRCS = $(OBJS:.o=.c) @@ -65,7 +53,6 @@ SRCS = $(OBJS:.o=.c) # Default target # all: ppp_reloc - cd bpf; $(MAKE) ARCHFLAGS="$(ARCHFLAGS)" all install: all @@ -73,15 +60,13 @@ install: all if (test ! -r /etc/ppp) then (ln -s $(ETCDIR) /etc/ppp) fi install -c -m 644 -o root -g daemon ppp_reloc $(LKS_DIR) touch $(ETCDIR)/options - cd bpf; $(MAKE) ARCHFLAGS="$(ARCHFLAGS)" install ppp_reloc: $(OBJS) Load_Commands.sect Unload_Commands.sect kl_ld $(ARCHFLAGS) -n ppp -l Load_Commands.sect -u Unload_Commands.sect \ - -i instance -o $@ $(OBJS) + -d ppp_loadable -i instance -o $@ $(OBJS) clean: rm -f ppp_reloc ppp_loadable core make $(OBJS) *~ - cd bpf; $(MAKE) clean $(SRCS): if_pppvar.h nbq.h inlines.h Makefile diff --git a/NeXT/Makefile.top b/NeXT/Makefile.top index e833fdf..456139b 100644 --- a/NeXT/Makefile.top +++ b/NeXT/Makefile.top @@ -1,23 +1,32 @@ - # ppp top level makefile for NeXT systems # -# $Id: Makefile.top,v 1.2 1997/04/30 05:39:28 paulus Exp $ +# $Id: Makefile.top,v 1.3 1998/03/26 02:51:39 paulus Exp $ # +# Change the values of ARCHFLAGS to include the +# appropriate architectures. A blank entry compiles +# for the local architecture +#ARCHFLAGS = -arch i386 -arch m68k -arch hppa -arch sparc +#ARCHFLAGS = -arch i386 -arch m68k +ARCHFLAGS = + +# +# It is not suggested that you change any values from here +# on. +# BINDIR = /usr/local/ppp/bin MANDIR = /usr/local/ppp/man ETCDIR = /etc/ppp -#ARCHFLAGS = -arch i386 -arch m68k -arch hppa -arch sparc -#ARCHFLAGS = -arch i386 -arch m68k -ARCHFLAGS = all: + cd NeXT/libposix; $(MAKE) ARCHFLAGS="$(ARCHFLAGS)" all cd chat; $(MAKE) -f Makefile.NeXT ARCHFLAGS="$(ARCHFLAGS)" all cd pppstats; $(MAKE) -f Makefile.NeXT ARCHFLAGS="$(ARCHFLAGS)" all cd pppd; $(MAKE) -f Makefile.NeXT ARCHFLAGS="$(ARCHFLAGS)" all cd NeXT; $(MAKE) ARCHFLAGS="$(ARCHFLAGS)" all + install: cd chat; \ $(MAKE) -f Makefile.NeXT ARCHFLAGS="$(ARCHFLAGS)" BINDIR=$(BINDIR) MANDIR=$(MANDIR) install @@ -30,6 +39,7 @@ install: clean: rm -f *~ + (cd libposix; $(MAKE) -f Makefile.NeXT clean) (cd chat; $(MAKE) -f Makefile.NeXT clean) (cd pppstats; $(MAKE) -f Makefile.NeXT clean) (cd pppd; $(MAKE) -f Makefile.NeXT clean) @@ -41,6 +51,11 @@ NEXTTOP = \ README.NeXT \ ${NULL} +NEXTPOSIX = \ + libposix/Makefile.NeXT \ + libposix/libposix.c \ + ${NULL} + NEXTPPPD = \ pppd/Makefile.NeXT \ pppd/sys-NeXT.c \ @@ -48,13 +63,16 @@ NEXTPPPD = \ NEXTNET = \ net/if_ppp.h \ + net/ppp_defs.h \ ${NULL} NEXTSTATS = \ pppstats/Makefile.NeXT \ - pppstats/pppstats.c \ ${NULL} +# pppstats/pppstats.c + + NEXTCHAT = \ chat/Makefile.NeXT \ chat/chat.c.3.2 \ @@ -64,10 +82,9 @@ NEXTLKS = \ NeXT/ChangeLog.rtf \ NeXT/INSTALL \ NeXT/Load_Commands.sect \ - NeXT/MailBug.app.tar.gz \ NeXT/Makefile \ NeXT/Makefile.top \ - NeXT/NeXT_Version \ + NeXT/NeXT_Version.h \ NeXT/TODO.NeXT \ NeXT/Unload_Commands.sect \ NeXT/bsd-comp.c \ @@ -75,7 +92,6 @@ NEXTLKS = \ NeXT/if_pppvar.h \ NeXT/inlines.h \ NeXT/linedisc.h \ - NeXT/nbq.c \ NeXT/nbq.h \ NeXT/netbuf.h \ NeXT/ppp_tty.c \ @@ -93,30 +109,16 @@ NEXTMACH = \ ${NULL} -NEXTBPF = \ - NeXT/bpf/Load_Commands.sect \ - NeXT/bpf/Makefile \ - NeXT/bpf/NeXT_Support.c \ - NeXT/bpf/README.NeXT \ - NeXT/bpf/Unload_Commands.sect \ - NeXT/bpf/bpf.4 \ - NeXT/bpf/bpf.c \ - NeXT/bpf/bpf.h \ - NeXT/bpf/bpf_compat.h \ - NeXT/bpf/bpf_filter.c \ - NeXT/bpf/bpfdesc.h \ - NeXT/bpf/netbuf.h \ - NeXT/bpf/promisc.c \ - NeXT/bpf/spl.h \ - ${NULL} - NEXTEXAMP = \ + NeXT/Examples/NXHosting_with_PPP \ NeXT/Examples/Persistent_Connection \ NeXT/Examples/README \ + NeXT/Examples/chap-secrets.example \ NeXT/Examples/flow-control-hints \ NeXT/Examples/ip-down.example \ NeXT/Examples/ip-up.example \ - NeXT/Examples/options \ + NeXT/Examples/options.example \ + NeXT/Examples/pap-secrets.example \ NeXT/Examples/ppp_multiple_hosts.tar.gz \ NeXT/Examples/pppdown \ NeXT/Examples/pppkill.c \ @@ -125,12 +127,12 @@ NEXTEXAMP = \ NeXT/Examples/pppup.portmaster \ NeXT/Examples/pppup.remote \ NeXT/Examples/pppup.zyxel \ - NeXT/Examples/rc.ppp \ NeXT/Examples/redial.sh \ ${NULL} NEXTPORT = \ ${NEXTTOP} \ + ${NEXTPOSIX} \ ${NEXTPPPD} \ ${NEXTNET} \ ${NEXTSTATS} \ @@ -138,12 +140,10 @@ NEXTPORT = \ ${NEXTLKS} \ ${NEXTHPPA} \ ${NEXTMACH} \ - ${NEXTBPF} \ ${NEXTEXAMP} \ ${NULL} - # # The idea is to make for easy distribution of new port material. # Just make sure all relevant files appear in the lists above, @@ -155,27 +155,27 @@ NEXTPORT = \ # portdist: - echo NeXT-ppp2.3-`sed -e '/version_string/!d' \ - -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q ./NeXT/NeXT_Version` > .fname + echo NeXT-ppp2.3.3-`sed -e '/version_string/!d' \ + -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q ./NeXT/NeXT_Version.h` > .fname rm -rf `cat .fname` mkdir `cat .fname` + mkdir `cat .fname`/libposix mkdir `cat .fname`/pppd mkdir `cat .fname`/net mkdir `cat .fname`/chat mkdir `cat .fname`/NeXT mkdir `cat .fname`/NeXT/hppa mkdir `cat .fname`/NeXT/mach - mkdir `cat .fname`/NeXT/bpf mkdir `cat .fname`/NeXT/Examples mkdir `cat .fname`/pppstats -ln $(NEXTTOP) `cat .fname` + -ln $(NEXTPOSIX) `cat .fname`/libposix -ln $(NEXTPPPD) `cat .fname`/pppd -ln $(NEXTNET) `cat .fname`/net -ln $(NEXTCHAT) `cat .fname`/chat -ln $(NEXTLKS) `cat .fname`/NeXT -ln $(NEXTHPPA) `cat .fname`/NeXT/hppa -ln $(NEXTMACH) `cat .fname`/NeXT/mach - -ln $(NEXTBPF) `cat .fname`/NeXT/bpf -ln $(NEXTEXAMP) `cat .fname`/NeXT/Examples -ln $(NEXTSTATS) `cat .fname`/pppstats for file in $(NEXTPORT); do \ diff --git a/NeXT/NeXT_Version b/NeXT/NeXT_Version deleted file mode 100644 index 4b23fed..0000000 --- a/NeXT/NeXT_Version +++ /dev/null @@ -1,6 +0,0 @@ -# -# ppp-2.3 port to the NeXT -# version_string 0.5.0 -# -# $Id: NeXT_Version,v 1.2 1997/04/30 05:39:29 paulus Exp $ -# diff --git a/NeXT/NeXT_Version.h b/NeXT/NeXT_Version.h new file mode 100644 index 0000000..41fe944 --- /dev/null +++ b/NeXT/NeXT_Version.h @@ -0,0 +1,7 @@ +/* +* ppp-2.3 port to the NeXT +* version_string 0.5.1 +* +* $Id: NeXT_Version.h,v 1.1 1998/03/26 02:51:41 paulus Exp $ +*/ +#define PPPVERSION "0.5.1" diff --git a/NeXT/README.NeXT b/NeXT/README.NeXT deleted file mode 100644 index 0f0a6ab..0000000 --- a/NeXT/README.NeXT +++ /dev/null @@ -1,168 +0,0 @@ -# -# $Id: README.NeXT,v 1.1 1995/12/18 03:29:54 paulus Exp $ -# - -This file has been "reset" for ppp-2.2. - ----------------------------------------------------------------------- - -The NeXT OS does not provide a way of determining the ethernet address -of a particular interface and thus the -proxyarp option to pppd and -this code does not work in quite the way that it would on other -versions. Given an ethernet interface, to find the address for the -code will firstly find the hostname associated with that interface's -IP address. From here it tries 2 methods of obtaining the hardware -address. The first is to look for an entry in the ethernets -database. This can be done by simplay placing a single line in -/etc/ethers with your address and hostname. The second method used is -to look for the ethernet address in the / netinfo domain. This will -most likely have the ethernet address on systems where a configuration -server is used to boot the client machines. Thus on a large numbver of -systems the code will find the ethernet address without any -modification of /etc/ethers. If for any reason the address as given by -netinfo needs to be overridden then this can be done by placing an -ethry in /etc/ethers which is then used in preference. This code has -been tested on both black and white hardware where it does seem to -work correctly. - -Thanks to Pete French for the code fix. - -Status: installed fix. Proxy-arp works as stated above. - ----------------------------------------------------------------------- - -The ioctl problems for NS Intel have been reduced. :) A real workaround for -the errors in PPPIOCG* routines is in place. The ioctl macro is only -used to handle the bad return values. See ppptioctl() for a -description of the fix. - -This fix also fixed the problems encountered when trying to use -multiple interfaces. Previously, the second interface would steal -from the first. - -I have been in contact with NeXT about this bug. I hope that it -will be fixed in 3.3. It turns out, after further study, that the -problem only occurred when using the NeXT supplied serial drivers. -The MuX driver worked flawlessly (thanks Mark!). However, please note -that PPP works with either driver installed. - ----------------------------------------------------------------------- - -============== -From ppp-2.1.2 -============== - -# -# LKS for NeXT OS -# -# $ORIG: README.NeXT,v 1.2 1994/10/02 19:34:44 perkins Exp $ -# - -Known Problems: The following are excerpts from mail messages - (sometimes concatenations from several people or - edited). - ----------------------------------------------------------------------- - -for NS intel: - -I wasn't able to get LKSs working with ppp_reloc placed in -/etc/kern_loader.conf at all. rc.net insisted on setting the -interface flags to UP, and I wasn't able to get it not to by changing -iftab the way I could on black hardware. - -Rather than wasting time trying to debug rc.net, I just took ppp_reloc -out of kern_loader.conf and used kl_util from rc.local to load ppp -(which happens after netinfo is up and running, and after rc.net). - -If you insist on installing your LKS in /usr/lib/kern_loader/* and -modifying your /etc/kern_loader.conf appropriately, you will want to -add a line like: - -ppp* !false - -in /etc/iftab. Again, note that this approach does not work correctly -on Intel based systems. The suggested approach is to modify -/etc/rc.local as suggested in the file INSTALL. - -Status: Work around by calling rc.ppp from rc.local - ------------------------------------------------------------------------ - -It seems that some modems, specifically my telebit T3000 take a little -bit of time to initialize after a DTR drop, so if "modem" is set on -the command line, they can [accidentally] drop the first part of the -chat command. An easy fix is to put delay into the script, or just -change the code in main.c (pppd) to: - - if (!default_device && modem) { - setdtr(fd, FALSE); - sleep(1); - setdtr(fd, TRUE); - sleep(2); /* <-- Give modems time to reinit after DTR drop*/ - -Also, I am among the many having difficulty getting a SIGHUP when the -peer drops the connection (on the dial out case). - -status: Decided for the time being that this should be added to - the chat script by using the \\d construct. - - The SIGHUP problem is addressed in the next release. - A temporary fix is to use the '/bin/csh' instead of the - normal '/bin/sh' in the script that starts pppd. - ----------------------------------------------------------------------- -For Proxy-arp, there is a problem in not finding the ether address -correctly. The address is marked as AF_UNSPEC and full of zeroes -rather than being AF_DLI. I don't know quite why as yet. - -The bug also occurs under 3.0 systems too. Has anyone at NeXT -commented on this bug? - -NeXT does not provide a way of determining the ethernet address of a -particular interface and thus this code does not work in quite the way -that it would on other versions. Given an ethernet interface, to find -the address for the code will firstly find the hostname associated -with that interface's IP address. From here it tries 2 methods of -obtaining the hardware address. The first is to look for an entry in -the ethernets database. This can be done by simplay placing a single -line in /etc/ethers with your address and hostname. The second method -used is to look for the ethernet address in the / netinfo domain. This -will most likely have the ethernet address on systems where a -configuration server is used to boot the client machines. Thus on a -large numbver of systems the code will find the ethernet address -without any modification of /etc/ethers. If for any reason the address -as given by netinfo needs to be overridden then this can be done by -placing an ethry in /etc/ethers which is then used in preference. This -code has been tested on both black and white hardware where it does -seem to work correctly. - -Thanks to Pete French for the code fix. - -Status: installed fix. Proxy-arp works as stated above. - ----------------------------------------------------------------------- - -This kernel is known to work on black and white hardware runnign OS -GG3.2. On White hareware if you should run the NeXT supplied serial drivers. -It currently does not work with the MuX driver. However, we are in -contact with the MuX developers and are working on a solution. - - Rumors abound that MuX v1.4 works as long as you undefine - `DOUBLE_BUFFER'. - -This has not been thoroughly verified. - ----------------------------------------------------------------------- - -If you change the LKS_DIR installation directory to something other -than /usr/lib/kern_loader/ppp, you will probably want to change the -default location that pppstats searches. Do a search for *system and -change the pathname appropriately. - ----------------------------------------------------------------------- - -For problems, send mail to Steve Perkins (perkins@cps.msu.edu). -Please include your hardware type the LKS version number in all -reports. This number may be found in the file /usr/adm/messages (once -the LKS has been installed). diff --git a/NeXT/TODO.NeXT b/NeXT/TODO.NeXT index fc0c1a9..a893288 100644 --- a/NeXT/TODO.NeXT +++ b/NeXT/TODO.NeXT @@ -1,11 +1,7 @@ # -# $Id: TODO.NeXT,v 1.2 1997/04/30 05:39:29 paulus Exp $ +# $Id: TODO.NeXT,v 1.3 1998/03/26 02:51:42 paulus Exp $ # -* FAQ on shell chat scripts and special characters - -* Add /dev/bpf* in installation docs - * Check persist option * Fix installer to recognize other installation. @@ -14,19 +10,12 @@ * NUM_PPP in pppd/pppd.h and Makefile are different -* Unify NBPFILTER symbol - -* Better Load support for BPF. Figure out how to support - NeXT (moto) with driverkit stuff. - * Fix with VirtModem -* If the dialing program fails to get a line, but returns success, - then ppp will report that it could not determine the ip address, - and not notice the "received own echo reply" condition. - * Use kget inside interrupt handler. +* Move LKS to user space via an IP Tunneler + Look at NAT:There *is* a way to get multiple machines on a network to use one IP address. RFC 1631 -- The IP Network Address Translator (NAT) describes how this works. diff --git a/NeXT/bsd-comp.c b/NeXT/bsd-comp.c index a77c450..8ae9404 100644 --- a/NeXT/bsd-comp.c +++ b/NeXT/bsd-comp.c @@ -49,12 +49,11 @@ /* * This version is for use with mbufs on BSD-derived systems. * - * $Id: bsd-comp.c,v 1.4 1997/04/30 05:39:29 paulus Exp $ + * $Id: bsd-comp.c,v 1.5 1998/03/26 02:51:45 paulus Exp $ */ #include #include -#include #include #define KERNEL 1 @@ -62,6 +61,7 @@ #include #include + #include #include "nbq.h" @@ -93,7 +93,6 @@ #include #define mtod(m,type) ((type)NB_MAP(m)) -typedef unsigned short u_int16_t; /* * PPP "BSD compress" compression diff --git a/NeXT/hppa/README.hppa b/NeXT/hppa/README.hppa new file mode 100755 index 0000000..daf140f --- /dev/null +++ b/NeXT/hppa/README.hppa @@ -0,0 +1,95 @@ +NeXTSTEP on HP-PA OS 3.2 has a few problems that require special +installation procedures. + +There seem to be two major problems. The first is related to the use +of FAT binaries on HPPA Lodable Kernel Servers and the second seems to +be kernel bugs. NeXT says they will be fixed in 3.3. I guess we will +have to wait and see. + +Problem 1 +========= + +For some reason, the HPPA kernel loading utility kl_util is unable to +load FAT LKS modules. So before you try to load a FAT LKS onto an +HPPA machine, you will need to use lipo to thin it down. You may use a +command similar to: + lipo ppp_reloc -thin hppa -output ppp_reloc.hppa +to get a thin version named ppp_reloc.hppa. + + + +Problem 2 +========= + +Alain Fauconnet managed to get PPP-2.1.2 working +on HPPA. He graciously allowed me to incorporate his changes into +PPP-2.2. I have included part of his original instructions for +getting the serial driver patch installed. You should follow these +procedures for PPP-2.2. Also, you may wish to send him a short thank +you for his excellent work. + +Please note, that you only need these instructions to install the +SerialDriverPatch. After that is installed, you may install PPP-2.2 +as specified in the README.NeXT file at the top level directory. + +Here are the original instructions: + +Temporary PPP 2.1.2 kit for HP-PA systems running NeXTSTEP 3.2 +============================================================== + + 14-Nov-1994 + Alain Fauconnet + + + +INSTALLATION FOR A HP-PA/NEXSTEP MACHINE +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + 1) Serial driver patch + +This tarfile includes a ./hppaSerialPatch tree that is a temporary +work-around for a severe bug in the HP-PA serial tty driver. I have +been allowed to include it here provided that it is clearly stated that +it is *not* an official patch from NeXT and that it should *not* be +installed on machines that do not absolutely require it. The problem +will be corrected in NeXTSTEP 3.3, according to the NeXT people. + +As I understand it, the problem is about the select() call on a file +descriptor opened on a tty line. This affect emacs (hangs when run from +a remote tty session), MicroEMACS (arrow keys don't work), PPP (protocol +hangs) and probably other programs as well. + +I felt the need to add some installation instructions, since I've lost +some hair in that process myself. + +Install it as follows : + +a) go to the hppaSerialPatch directory + +b) type `make'. Compilation should complete with a few warnings about +`linesw' + +c) type `make install' (YOU DON'T NEED TO BE root FOR THAT, the +installed tree will be created in /tmp/hppaSerialPatch.* + +d) as root, bring up /NextAdmin/Configure.app, choose Configuration -> +Install driver... and select +/tmp/hppaSerialPatch.bproj/usr/Devices/hppaSerialPatch.config from the +file selection box. + +e) reboot the system. As root, bring up /NextAdmin/Configure.app again +and look if "hppaSerialPatch" appears on the "Other" line. If not, click +the "Other" icon. Click "Add". The correct driver will probably appear +as "Long Name" in the list of drivers. Select it and click "Add". +Go back to "Summary" and click "Save". Reboot the system. +Check the file /usr/Devices/System.config/Instance0.table, +"hppaSerialPatch" should appear in the line of "Active Drivers". + +f) the /tmp/hppaSerialPatch trees may be deleted now. + + +GOOD LUCK ! + +Thanks to: + Jean Michel LUNATI + Philip Prindeville diff --git a/NeXT/if_ppp.c b/NeXT/if_ppp.c index 0e9b3e6..85938b6 100644 --- a/NeXT/if_ppp.c +++ b/NeXT/if_ppp.c @@ -81,17 +81,26 @@ /* from if_sl.c,v 1.11 84/10/04 12:54:47 rick Exp */ #if !defined(lint) -static char sccsid[] = "$Revision: 1.4 $ ($Date: 1997/11/27 05:59:11 $)"; +static char sccsid[] = "$Revision: 1.5 $ ($Date: 1998/03/26 02:51:47 $)"; #endif /* not lint*/ #define KERNEL 1 #define KERNEL_FEATURES 1 #define INET 1 -/* #include "ppp.h" */ - +#if NS_TARGET >= 40 +#if NS_TARGET >= 41 +#include +#include +#else +#include +#endif /* NS_TARGET */ +#endif /* NS_TARGET */ #include +#if NS_TARGET >= 41 +typedef simple_lock_data_t lock_data_t; /* XXX */ +#endif /* NS_TARGET */ #include #include "netbuf.h" #include @@ -99,7 +108,9 @@ static char sccsid[] = "$Revision: 1.4 $ ($Date: 1997/11/27 05:59:11 $)"; #include #include #include +#if !(NS_TARGET >= 40) #include +#endif #if defined(m68k) #import "spl.h" #else @@ -122,14 +133,15 @@ static char sccsid[] = "$Revision: 1.4 $ ($Date: 1997/11/27 05:59:11 $)"; #include #endif - #include #ifdef VJC #include #endif #include +#include "NeXT_Version.h" #include "if_pppvar.h" + struct ppp_softc ppp_softc[NUM_PPP]; @@ -138,15 +150,6 @@ struct ppp_softc ppp_softc[NUM_PPP]; #include #endif -#ifdef NBPFILTER -#include -/* - * We store the address of necessary BPF functions - * here. - */ -struct bpf_fns fnarg; -#endif - /* * The max number of NETBUF_Ts we wish to compress and cache for * sending. @@ -282,22 +285,16 @@ pppattach() register struct ppp_softc *sc; register int i = 0; - IOLog("\nPPP version 2.3.0 for NS 3.2 and 3.3\n"); - IOLog("LKS: %s\n", sccsid); + IOLog("\nPPP version 2.3.3-%s for NeXTSTEP and OPENSTEP\n", PPPVERSION); IOLog("by Stephen Perkins, Philip Prindeville, and Pete French\n"); - - IOLog("Installing PPP on Line Discipline %d\n", PPPDISC); if (install_ppp_ld() < 0) { IOLog("ppp: Could not install line discipline\n"); } - - IOLog("Installing interfaces:\n"); for (sc = ppp_softc; i < NUM_PPP; sc++, i++) { sc->sc_if = if_attach(NULL, NULL, pppoutput, pppgetbuf, pppcontrol, "ppp", i, "Serial line PPP", PPP_MTU, IFF_POINTOPOINT, NETIFCLASS_VIRTUAL, (void *) sc); - IOLog(" Initializing ppp%d\n", i); nbq_init(&sc->sc_freeq, &qparms[QFREE]); nbq_init(&sc->sc_rawq, &qparms[QRAW]); nbq_init(&sc->sc_fastq, &qparms[QFAST]); @@ -306,15 +303,12 @@ pppattach() nbq_init(&sc->sc_npq, &qparms[QNP]); nbq_init(&sc->sc_compq, &qparms[QCACHE]); IOLog(" ppp%d successfully attached.\n", i); -#ifdef NBPFILTER - bpfattach((caddr_t *) &sc->sc_bpf, sc->sc_if, DLT_PPP, PPP_HDRLEN); -#endif } ipforwarding = 1; ipsendredirects = 1; - IOLog("PPP-2.3 Successfully Installed.\n\n"); + IOLog("PPP Successfully Installed.\n\n"); } int @@ -354,6 +348,9 @@ pppalloc(pid) { int nppp, i; struct ppp_softc *sc; +#if NS_TARGET >= 40 + struct timeval tv_time; +#endif /* NS_TARGET */ for (nppp = 0, sc = ppp_softc; nppp < NUM_PPP; nppp++, sc++) if (sc->sc_xfer == pid) { @@ -380,7 +377,14 @@ pppalloc(pid) for (i = 0; i < NUM_NP; ++i) sc->sc_npmode[i] = NPMODE_ERROR; /* XXX - I'm not sure why the npqueue was zapped here... */ + +#if NS_TARGET >= 40 + ns_time_to_timeval(clock_value(System), &tv_time); + sc->sc_last_sent = sc->sc_last_recv = tv_time.tv_sec; +#else sc->sc_last_sent = sc->sc_last_recv = time.tv_sec; +#endif + sc->sc_compsched = 0; sc->sc_decompsched = 0; @@ -443,6 +447,10 @@ pppioctl(sc, cmd, data, flag) #ifdef HAS_BROKEN_TIOCSPGRP struct tty *tp = sc->sc_devp; #endif +#if NS_TARGET >= 40 + struct timeval tv_time; +#endif /* NS_TARGET */ + switch (cmd) { case FIONREAD: @@ -614,7 +622,12 @@ pppioctl(sc, cmd, data, flag) case PPPIOCGIDLE: s = splimp(); +#if NS_TARGET >= 40 + ns_time_to_timeval(clock_value(System), &tv_time); + t = tv_time.tv_sec; +#else t = time.tv_sec; +#endif /* NS_TARGET */ ((struct ppp_idle *)data)->xmit_idle = t - sc->sc_last_sent; ((struct ppp_idle *)data)->recv_idle = t - sc->sc_last_recv; splx(s); @@ -799,11 +812,6 @@ pppoutput(ifp, in_nb, arg) goto bad; } -#ifdef NETBUF_PROXY - m0->pktinfo.first.tv_sec = time.tv_sec; - m0->pktinfo.first.tv_usec = time.tv_usec; - m0->pktinfo.size1 = NB_SIZE(m0); -#endif /* * Compute PPP header. @@ -874,13 +882,6 @@ urgent: flags |= M_HIGHPRI; *cp++ = protocol >> 8; *cp++ = protocol & 0xff; -#if defined(NBPFILTER) && defined(NETBUF_PROXY) - /* - * We need to copy the header to the original copy. - */ - bcopy(mtod(m0, u_char *), NB_MAP_ORIG(m0), PPP_HDRLEN); - -#endif if (sc->sc_flags & SC_LOG_OUTPKT) { IOLog("ppp%d: output:\n", if_unit(ifp)); /* XXX */ @@ -888,22 +889,6 @@ urgent: flags |= M_HIGHPRI; } -#if defined(NBPFILTER) && !defined(NETBUF_PROXY) - /* - * See if bpf wants to look at the packet. - * We must hand it off _before_ any compression - * takes place. If NETBUF_PROXY is defined, - * we do the handoff later (in ppp_tty.c) - * because we keep a copy of the original - * datagram around. - */ - - if (sc->sc_bpf) - bpf_tap(sc->sc_bpf, NB_MAP(m0), NB_SIZE(m0)); - -#endif - - /* * Put the packet on the appropriate queue. */ @@ -1137,6 +1122,9 @@ ppp_outpkt(sc) NETBUF_T m; u_char *cp; int address, control, protocol; +#if NS_TARGET >= 40 + struct timeval tv_time; +#endif /* * Grab a packet to send: first try the fast queue, then the @@ -1157,17 +1145,20 @@ ppp_outpkt(sc) control = PPP_CONTROL(cp); protocol = PPP_PROTOCOL(cp); -#ifdef NETBUF_PROXY - m->pktinfo.second.tv_sec = time.tv_sec; - m->pktinfo.second.tv_usec = time.tv_usec; -#endif +#if NS_TARGET >= 40 + ns_time_to_timeval(clock_value(System), &tv_time); +#endif /* NS_TARGET */ switch (protocol) { case PPP_IP: /* * Update the time we sent the most recent packet. */ - sc->sc_last_sent = time.tv_sec; +#if NS_TARGET >= 40 + sc->sc_last_sent = tv_time.tv_sec; +#else + sc->sc_last_sent = time.tv_sec; +#endif /* NS_TARGET */ #ifdef VJC /* @@ -1187,15 +1178,9 @@ ppp_outpkt(sc) switch (type) { case TYPE_UNCOMPRESSED_TCP: protocol = PPP_VJC_UNCOMP; -#ifdef NETBUF_PROXY - m->pktinfo.flags |= NBFLAG_VJCINC; -#endif break; case TYPE_COMPRESSED_TCP: NB_SHRINK_TOP(m, vjhdr - (u_char *) ip); -#ifdef NETBUF_PROXY - m->pktinfo.flags |= NBFLAG_VJC; -#endif protocol = PPP_VJC_COMP; cp = mtod(m, u_char *); cp[0] = address; /* header has moved */ @@ -1219,11 +1204,6 @@ ppp_outpkt(sc) } -#ifdef NETBUF_PROXY - m->pktinfo.size2 = NB_SIZE(m); -#endif - - #ifdef PPP_COMPRESS if (protocol != PPP_LCP && protocol != PPP_CCP && sc->sc_xc_state && (sc->sc_flags & SC_COMP_RUN)) { @@ -1243,34 +1223,14 @@ ppp_outpkt(sc) if (mcomp != NULL) { -#ifdef NETBUF_PROXY - /* - * duplicate all the stat info into the new - * buffer. - */ - m->pktinfo.flags |= NBFLAG_CCP; - - NB_DUPLICATE(m, mcomp); -#endif - NB_FREE(m); m = mcomp; cp = mtod(m, u_char *); protocol = cp[3]; } -#ifdef NETBUF_PROXY - else - m->pktinfo.flags |= NBFLAG_CCPINC; -#endif - } #endif /* PPP_COMPRESS */ -#ifdef NETBUF_PROXY - m->pktinfo.size3 = NB_SIZE(m); -#endif - - /* * Compress the address/control and protocol, if possible. */ @@ -1279,9 +1239,6 @@ ppp_outpkt(sc) protocol != PPP_LCP) { /* can compress address/control */ NB_SHRINK_TOP(m, 2); -#ifdef NETBUF_PROXY - m->pktinfo.flags |= NBFLAG_AC; -#endif } if (sc->sc_flags & SC_COMP_PROT && protocol < 0xFF) { /* can compress protocol */ @@ -1290,15 +1247,8 @@ ppp_outpkt(sc) cp[1] = cp[0]; } NB_SHRINK_TOP(m, 1); -#ifdef NETBUF_PROXY - m->pktinfo.flags |= NBFLAG_PC; -#endif } -#ifdef NETBUF_PROXY - m->pktinfo.third.tv_sec = time.tv_sec; - m->pktinfo.third.tv_usec = time.tv_usec; -#endif s = splimp(); nbq_enqueue(&sc->sc_compq, m); @@ -1466,11 +1416,10 @@ ppp_inproc(sc, m) NETBUF_T dmp; u_char *iphdr; u_int hlen; +#if NS_TARGET >= 40 + struct timeval tv_time; +#endif /* NS_TARGET */ -#ifdef NETBUF_PROXY - m->pktinfo.third.tv_sec = time.tv_sec; - m->pktinfo.third.tv_usec = time.tv_usec; -#endif incr_cnt(sc->sc_if, if_ipackets); @@ -1499,22 +1448,10 @@ ppp_inproc(sc, m) */ if (proto == PPP_COMP && sc->sc_rc_state && (sc->sc_flags & SC_DECOMP_RUN) && !(sc->sc_flags & SC_DC_ERROR) && !(sc->sc_flags & SC_DC_FERROR)) { -#ifdef NETBUF_PROXY - m->pktinfo.flags |= NBFLAG_CCP; -#endif /* decompress this packet */ rv = (*sc->sc_rcomp->decompress)(sc->sc_rc_state, m, &dmp); if (rv == DECOMP_OK){ -#ifdef NETBUF_PROXY - if (dmp != NULL) - { - - NB_DUPLICATE(m, dmp); -/* bcopy(&(m->pktinfo), &(dmp->pktinfo), sizeof(bpf_encapsulater)); */ - - } -#endif NB_FREE(m); if (dmp == NULL){ /* No error, but no decompressed packet returned */ @@ -1544,9 +1481,6 @@ ppp_inproc(sc, m) if (sc->sc_rc_state && (sc->sc_flags & SC_DECOMP_RUN)) { -#ifdef NETBUF_PROXY - m->pktinfo.flags |= NBFLAG_CCPINC; -#endif (*sc->sc_rcomp->incomp)(sc->sc_rc_state, m); } if (proto == PPP_CCP) { @@ -1557,10 +1491,6 @@ ppp_inproc(sc, m) ilen = NB_SIZE(m); -#ifdef NETBUF_PROXY - m->pktinfo.size2 = ilen; -#endif - #ifdef VJC if (sc->sc_flags & SC_VJ_RESET) { /* @@ -1583,9 +1513,6 @@ ppp_inproc(sc, m) if (sc->sc_flags & SC_REJ_COMP_TCP) goto bad; -#ifdef NETBUF_PROXY - m->pktinfo.flags |= NBFLAG_VJC; -#endif xlen = vj_uncompress_tcp(cp + PPP_HDRLEN, ilen - PPP_HDRLEN, ilen - PPP_HDRLEN, @@ -1650,9 +1577,6 @@ ppp_inproc(sc, m) if (sc->sc_flags & SC_REJ_COMP_TCP) goto bad; -#ifdef NETBUF_PROXY - m->pktinfo.flags |= NBFLAG_VJCINC; -#endif vj_uncompress_uncomp(cp + PPP_HDRLEN, ilen-PPP_HDRLEN, &sc->sc_comp); @@ -1661,24 +1585,6 @@ ppp_inproc(sc, m) } #endif /* VJC */ -#ifdef NETBUF_PROXY - m->pktinfo.size3 = NB_SIZE(m); - m->pktinfo.fourth.tv_sec = time.tv_sec; - m->pktinfo.fourth.tv_usec = time.tv_usec; -#endif - -#ifdef NBPFILTER - /* - * See if bpf wants to look at the packet. - * Size includes the PPP header by not the trailer. - */ - if (sc->sc_bpf) -#ifndef NETBUF_PROXY - bpf_tap(sc->sc_bpf, NB_MAP(m), NB_SIZE(m)); -#else - bpf_tap(sc->sc_bpf, m, 0); -#endif -#endif rv = 0; switch (proto) { @@ -1696,7 +1602,13 @@ ppp_inproc(sc, m) } NB_SHRINK_TOP(m, PPP_HDRLEN); inet_queue(sc->sc_if, NB_TO_nb(m)); +#if NS_TARGET >= 40 + /* I am assuming the time is different here than above. */ + ns_time_to_timeval(clock_value(System), &tv_time); + sc->sc_last_recv = tv_time.tv_sec; /* update time of last pkt rcvd */ +#else sc->sc_last_recv = time.tv_sec; /* update time of last pkt rcvd */ +#endif return; #endif diff --git a/NeXT/if_pppvar.h b/NeXT/if_pppvar.h index bbad31d..f3bf004 100644 --- a/NeXT/if_pppvar.h +++ b/NeXT/if_pppvar.h @@ -20,7 +20,9 @@ /* Portions Copyright (C) 1990 Brad K. Clements (streams support) */ +#if !(NS_TARGET >= 40) #import +#endif /* NS_TARGET */ /* * Supported network protocols. These values are used for @@ -34,7 +36,6 @@ /* only defined in the posix universe... */ /*typedef int pid_t; */ -typedef unsigned short u_int16_t; struct ppp_softc { netif_t sc_if; /* network-visible interface */ @@ -58,10 +59,6 @@ struct ppp_softc { #endif u_int sc_bytessent; /* count of octets sent */ u_int sc_bytesrcvd; /* count of octets received */ -#if NBPFILTER - caddr_t sc_bpf; /* hook for BPF */ - int if_pcount; /* Really belongs in ifnet_t */ -#endif enum NPmode sc_npmode[NUM_NP]; /* what to do with each NP */ #ifdef PPP_COMPRESS struct compressor *sc_xcomp; /* transmit compressor */ diff --git a/NeXT/inlines.h b/NeXT/inlines.h index 5a83d07..88e155a 100644 --- a/NeXT/inlines.h +++ b/NeXT/inlines.h @@ -217,31 +217,3 @@ extern struct uthread *uthread_from_thread(thread_t); #define curproc (proc_from_thread(current_thread())) -#ifdef NBPFILTER -#include - -extern struct bpf_fns fnarg; - -static inline void -bpfattach(caddr_t *driverp, netif_t ifp, u_int dlt, u_int hdrlen) -{ - struct bpf_attachargs atarg = {driverp, (caddr_t) ifp, dlt, hdrlen}; - - if (cdevsw[BPF_MAJOR_CHAR].d_ioctl != 0) - { - (*cdevsw[BPF_MAJOR_CHAR].d_ioctl)(0, BIOCATTACH, &atarg, 0); - (*cdevsw[BPF_MAJOR_CHAR].d_ioctl)(0, BIOCGFNS, &fnarg, 0); - } -} - - -static inline void -#ifndef NETBUF_PROXY - bpf_tap(caddr_t arg, u_char *pkt, u_int pktlen) -#else - bpf_tap(caddr_t arg, NETBUF_T pkt, u_int pktlen) -#endif -{ - (*fnarg.tapfn)(arg, pkt, pktlen); -} -#endif diff --git a/NeXT/libposix/Makefile b/NeXT/libposix/Makefile new file mode 100644 index 0000000..d4c9188 --- /dev/null +++ b/NeXT/libposix/Makefile @@ -0,0 +1,17 @@ +# +# libposix makefile +# $Id: Makefile,v 1.1 1998/03/26 02:52:03 paulus Exp $ +# + +ARCHFLAGS = + +SRCS = libposix.c +OBJS = libposix.o + +CFLAGS = -O -D_POSIX_SOURCE $(ARCHFLAGS) + +all: $(OBJS) + +clean: + rm -f *.o *~ core + diff --git a/NeXT/libposix/libposix.c b/NeXT/libposix/libposix.c new file mode 100644 index 0000000..a9a5887 --- /dev/null +++ b/NeXT/libposix/libposix.c @@ -0,0 +1,165 @@ +/* Yes, that's right: of all the platforms supported by ppp, + only Mach OpenStep 4.x doesn't support POSIX. Sheesh. + + Stranger still, the POSIX declatations are still in the 4.x header files, + and the gcc -posix still defines _POSIX_SOURCE. So... + we emulate (sometimes badly) the missing POSIX functions. This + is by no means a complete or general POSIX emulation. Just enough + to get us by for ppp, so we don't have to pollute the rest of the + sources of every other (non-braindead) platform. Much of the + code was snarfed from NeXT's 4.0 ppp port, the rest inspired by + "POSIX Programmers Guide" by Donald Lewine. + + Maybe if we complain NeXT will upgrade to BSD4.4 libs like the rest of + the free world (and maybe pink elephants will fly out of my... -KC) + */ + +#include +#include +#include +#include +#include +#include + +int sigemptyset(sigset_t *set) +{ + *set = 0; + return 0; +} + +int sigaddset(sigset_t *set, int signo) +{ + *set |= 1<sa_handler; + vec.sv_mask = act->sa_mask; + vec.sv_flags = act->sa_flags; + + st = sigvec(sig, &vec, &ovec); + + if (oact) { + oact->sa_handler = ovec.sv_handler; + oact->sa_mask = ovec.sv_mask; + oact->sa_flags = ovec.sv_flags; + } + + return st; +} + +int tcgetattr(int fildes, struct termios *tp) +{ + return ioctl(fildes, TIOCGETA, tp); +} + +int tcsetattr(int fd, int opt, const struct termios *t) +{ + int st; + + switch(opt) { + case TCSANOW: + st = ioctl(fd, TIOCSETA, t); + break; + case TCSADRAIN: + st = ioctl(fd, TIOCSETAW, t); + break; + case TCSAFLUSH: + st = ioctl(fd, TIOCSETAF, t); + break; + default: + st = -1; + errno = EINVAL; + break; + } + return st; +} + +/* XXX we ignore duration (which is 0 in chat.c anyway). + */ +int tcsendbreak(int fildes, int duration) +{ + struct timeval sleepytime; + + sleepytime.tv_sec = 0; + sleepytime.tv_usec = 400000; + if (ioctl(fildes, TIOCSBRK, 0) != -1) + { + select(0, 0, 0, 0, &sleepytime); + (void) ioctl(fildes, TIOCCBRK, 0); + } +} + +/* XXX This is the implementation of cfgetospeed from NeXT's ppp-5 + pppd/sys-NeXT.c. I don't know whether returning c_ispeed instead + of c_ospeed is deliberate or a type-o. + */ +speed_t cfgetospeed(const struct termios *t) +{ + return t->c_ispeed; +} + +int cfsetospeed(struct termios *t, int speed) +{ + t->c_ospeed = speed; + return 0; +} + +speed_t cfgetispeed(const struct termios *t) +{ + return t->c_ispeed; +} + +int cfsetispeed(struct termios *t, int speed) +{ + t->c_ispeed = speed; + return 0; +} + +int setsid(void) +{ + int fd; + + setpgrp(0, getpid()); + + if ( (fd = open("/dev/tty", O_RDWR | O_NDELAY)) < 0) + return -1; + ioctl(fd, TIOCNOTTY, NULL); + close(fd); + + return 0; +} + +int waitpid(pid_t pid, int *stat_loc, int options) +{ + if (pid == -1) + pid = 0; + return wait4(pid, (union wait *) stat_loc, options, NULL); +} + diff --git a/NeXT/mach/features.h b/NeXT/mach/features.h new file mode 100644 index 0000000..e2efd55 --- /dev/null +++ b/NeXT/mach/features.h @@ -0,0 +1,8 @@ +/* + * NeXTStep 3.3 Developer for m68k is missing this file. + * Some needed headers try to include it: + * proc.h includes user.h + * user.h includes cpu.h + * m68k cpu.h tries in include features.h + * + */ diff --git a/NeXT/nbq.h b/NeXT/nbq.h index d4b16c6..0fd632c 100644 --- a/NeXT/nbq.h +++ b/NeXT/nbq.h @@ -11,177 +11,16 @@ #ifndef __NBQ_H__ #define __NBQ_H__ - #define KERNEL 1 #include +#if !(NS_TARGET >= 40) #include +#endif /* NS_TARGET */ #include "netbuf.h" typedef u_int mark_t; -/* - * Netbufs and Netbuf wrappers don't help us because we - * have no way of keeping track of information on start - * position once nb_grow* or nb_shrink* are called. - */ - -#ifdef NETBUF_PROXY - -#warning ...you are compiling with NETBUF_PROXY - -typedef struct _bpf_encapsulater -{ - /* - * Depending on the direction of packet travel, these - * values have different meanings. - * - * INCOMING: - * first -- time first byte of packet received. - * second -- time last byte of packet received. - * third -- Decompression start time - * fourth -- Packet Handoff time - * (second-first) -- receive time - * (third-second) -- queue time waiting for decompression - * (fourth-third) -- decompression time - * (fourth - first) -- total receive time. - * (fourth - second) -- total system process time. - * - * async_esc -- The number of characters escaped in this packet. - * size1 -- The size of the inital packet before decompression. - * This value includes the expansion caused by AC and PC compression. - * If flags set: - * AC implies packet got increased by 2 during receive. - * PC implies packet got increased by 1 during receive. - * This + "async_esc" - (AC + PC expansion) describe actual bytes over link. - * Includes PPP header and trailer. - * Doesn't count framing PPP_FLAG character. - * - * size2 -- The size after BSD decompression. PPP trailer was removed - * so packet should be at least 2 shorter than original. - * size3 -- The size after VJ decompression. - * - * - * OUTGOING: (very similar to incoming) - * first -- time packet arrived to pppwrite() or pppoutput() - * second -- time compression started - * third -- time compression ended - * fourth -- time first byte sent to interface - * fifth -- time last byte sent to interface - * - * (second - first) Time waiting in system before compression - * (third - second) Time for compression - * (fourth - third) Time waiting in system out queue waiting to be - * selected for sending to interface - * (fourth - first) Total system processing time - * (fifth-fourth) Total interface send time. - * (fifth-first) Total send time. - * - * size1 -- The size of the intial packet as receved from the stack - * size2 -- The size after VJ compression - * size3 -- The size after BSD compression - * - */ - struct timeval first, second, third, fourth, fifth; - unsigned async_esc, size1, size2, size3; - - int flags; /* info about packet */ -#define NBFLAG_INCOMING 0x01 /* else outgoing */ -#define NBFLAG_AC 0x02 /* Address compressed */ -#define NBFLAG_PC 0x04 /* Protocol Compressed */ -#define NBFLAG_VJC 0x08 /* VJ compressed */ -#define NBFLAG_CCP 0x10 /* BSD compressed */ -#define NBFLAG_CCPINC 0x20 /* BSD incompressible */ -#define NBFLAG_VJCINC 0x40 /* VJ incompressible */ - -} bpf_encapsulater; - -typedef struct _ppp_netbuf_t -{ - netbuf_t buffer; - netbuf_t orig_buffer; /* - * Original outgoing datagram - * received. We do compression and - * statistics gathering on buffer, - * we send buffer, but we return - * orig_buffer to BPF so that it doesn't - * have to understand all the compression. - */ - - - struct _ppp_netbuf_t *next; /* for linked list */ - - unsigned int size; /* original size requested for netbuf. - * We leave it up to caller to - * determine extra space they need. We - * may also include extra space we need - * for bounds checking. - */ - - unsigned char *wrapper, /* unaligned address returned for this containing - * structure. Used for freeing. - */ - - *init_offset; /* Init_offset is nb_map of the netbuf_t before - * user can change it around. Can check bounds - * against this. - */ - mark_t mark; - - bpf_encapsulater pktinfo; /* The size and compression stats that - * get passed to user level tcpdump - */ - -} *ppp_netbuf_t; - -/* - * These prototypes are identical to the corrisponding functions - * found in netbuf.h except they use the ppp_netbuf_t type. - */ - -extern ppp_netbuf_t cb_nb_alloc(unsigned size); -extern void cb_nb_free(ppp_netbuf_t nb); -extern void cb_nb_duplicate(ppp_netbuf_t from, ppp_netbuf_t to); -extern char * cb_nb_map(ppp_netbuf_t nb); -extern char * cb_nb_map_orig(ppp_netbuf_t nb); -extern unsigned cb_nb_size(ppp_netbuf_t nb); -extern unsigned cb_nb_size_orig(ppp_netbuf_t nb); -extern int cb_nb_shrink_top(ppp_netbuf_t nb, unsigned size); -extern int cb_nb_grow_top(ppp_netbuf_t nb, unsigned size); -extern int cb_nb_shrink_bot(ppp_netbuf_t nb, unsigned size); -extern int cb_nb_grow_bot(ppp_netbuf_t nb, unsigned size); -extern int cb_nb_read(ppp_netbuf_t nb, unsigned offset, unsigned size, void *target); -extern int cb_nb_write(ppp_netbuf_t nb, unsigned offset, unsigned size, void *source); -extern void cb_nb_get_mark(ppp_netbuf_t nb, mark_t *ptr); -extern void cb_nb_set_mark(ppp_netbuf_t nb, mark_t ptr); -extern void cb_nb_get_next(ppp_netbuf_t nb, ppp_netbuf_t *ptr); -extern void cb_nb_set_next(ppp_netbuf_t nb, ppp_netbuf_t ptr); -extern ppp_netbuf_t cb_nb_to_NB(netbuf_t); -extern netbuf_t cb_NB_to_nb(ppp_netbuf_t); - -#define NETBUF_T ppp_netbuf_t -#define NB_ALLOC cb_nb_alloc -#define NB_FREE cb_nb_free -#define NB_DUPLICATE cb_nb_duplicate -#define NB_MAP cb_nb_map -#define NB_MAP_ORIG cb_nb_map_orig -#define NB_SIZE cb_nb_size -#define NB_SIZE_ORIG cb_nb_size_orig -#define NB_SHRINK_TOP cb_nb_shrink_top -#define NB_GROW_TOP cb_nb_grow_top -#define NB_SHRINK_BOT cb_nb_shrink_bot -#define NB_GROW_BOT cb_nb_grow_bot -#define NB_READ cb_nb_read -#define NB_WRITE cb_nb_write -#define NB_GET_MARK cb_nb_get_mark -#define NB_SET_MARK cb_nb_set_mark -#define NB_GET_NEXT cb_nb_get_next -#define NB_SET_NEXT cb_nb_set_next -#define nb_TO_NB cb_nb_to_NB -#define NB_TO_nb cb_NB_to_nb - -#else /* NETBUF_PROXY */ - #define NETBUF_T netbuf_t #define NB_ALLOC ppp_nb_alloc #define NB_FREE nb_free @@ -200,8 +39,6 @@ extern netbuf_t cb_NB_to_nb(ppp_netbuf_t); #define nb_TO_NB(nb) (nb) #define NB_TO_nb(NB) (NB) -#endif /* NETBUF_PROXY */ - struct qparms { u_char q_low, q_high, q_max; @@ -214,7 +51,6 @@ struct nb_queue { NETBUF_T head, tail; }; -#ifndef NETBUF_PROXY #define NB_EXTRA (sizeof(mark_t)+sizeof(netbuf_t)) static inline void @@ -274,12 +110,11 @@ ppp_nb_alloc(unsigned int size) size+=NB_EXTRA; nb=nb_alloc(size); if(nb) { - NB_SHRINK_TOP(nb,NB_EXTRA); + nb_shrink_top(nb,NB_EXTRA); NB_SET_NEXT(nb,NULL); NB_SET_MARK(nb,0); } return nb; } -#endif /* NETBUF_PROXY */ #endif /* __NBQ_H__ */ diff --git a/NeXT/ppp_tty.c b/NeXT/ppp_tty.c index 18286a3..ea27799 100644 --- a/NeXT/ppp_tty.c +++ b/NeXT/ppp_tty.c @@ -91,7 +91,18 @@ #define KERNEL_FEATURES 1 #define INET 1 +#if NS_TARGET >= 40 +#if NS_TARGET >= 41 +#include +#else +#include +#endif /* NS_TARGET */ +#endif /* NS_TARGET */ + #include +#if NS_TARGET >= 41 +typedef simple_lock_data_t lock_data_t; /* XXX */ +#endif /* NS_TARGET */ #include #include #include "netbuf.h" @@ -103,8 +114,10 @@ #include #include #include +#if !(NS_TARGET >= 40) +/* XXX what happened to this header file? */ #include - +#endif #include /* NeXT broke spl.h in 3.2/m68k. Thanks EPS! */ @@ -675,12 +688,6 @@ pppstart(tp) *cp++ = (sc->sc_outfcs >> 8) & 0xFF; } -#ifdef NETBUF_PROXY - m->pktinfo.fourth.tv_sec = time.tv_sec; - m->pktinfo.fourth.tv_usec = time.tv_usec; -#endif - - start = mtod(m, u_char *); len = NB_SIZE(m); stop = start + len; @@ -727,9 +734,6 @@ pppstart(tp) sc->sc_bytessent += 2; start++; len--; -#ifdef NETBUF_PROXY - ++(m->pktinfo.async_esc); -#endif } } /* @@ -754,31 +758,6 @@ pppstart(tp) sc->sc_bytessent++; -#ifdef NETBUF_PROXY - m->pktinfo.fifth.tv_sec = time.tv_sec; - m->pktinfo.fifth.tv_usec = time.tv_usec; -#endif - - -#if defined(NBPFILTER) && defined(NETBUF_PROXY) - - /* - * See if bpf wants to look at the packet. Gotta be careful - * here because BPF want the uncompressed packet. For now we - * stash a copy that we hand off. In the future, we may try - * to modify BPF to handle compressed packets instead. - * - * The BPF process point will not work for - * non-NETBUF_PROXY points. In this case, we hand the packet - * to BPF earlier in the process (see if_ppp.c). - * - */ - - if (sc->sc_bpf) - bpf_tap(sc->sc_bpf, m, 0); - -#endif - /* Finished with this netbuf; free it and move on. */ NB_FREE(m); m = NULL; @@ -800,7 +779,11 @@ pppstart(tp) * drained the t_outq. */ if (!idle && (sc->sc_flags & SC_TIMEOUT) == 0) { +#if NS_TARGET >= 40 + timeout(ppp_timeout, (void *) sc, 1); +#else ns_timeout(ppp_timeout, (void *) sc, 1 * (1000000000L / HZ), CALLOUT_PRI_SOFTINT0); +#endif /*NS_TARGET */ sc->sc_flags |= SC_TIMEOUT; } @@ -1038,12 +1021,6 @@ pppinput(c, tp) return; } -#ifdef NETBUF_PROXY - sc->sc_m->pktinfo.second.tv_sec = time.tv_sec; - sc->sc_m->pktinfo.second.tv_usec = time.tv_usec; - sc->sc_m->pktinfo.size1 = ilen; -#endif - /* * Remove FCS trailer. Set packet length... */ @@ -1085,9 +1062,6 @@ pppinput(c, tp) c ^= PPP_TRANS; } else if (c == PPP_ESCAPE) { sc->sc_flags |= SC_ESCAPED; -#ifdef NETBUF_PROXY - ++(sc->sc_m->pktinfo.async_esc); -#endif return; } @@ -1119,11 +1093,6 @@ pppinput(c, tp) sc->sc_mp = mtod(m, char *); sc->sc_fcs = PPP_INITFCS; -#ifdef NETBUF_PROXY - m->pktinfo.first.tv_sec = time.tv_sec; - m->pktinfo.first.tv_usec = time.tv_usec; - m->pktinfo.flags |= NBFLAG_INCOMING; -#endif if (c != PPP_ALLSTATIONS) { if (sc->sc_flags & SC_REJ_COMP_AC) { IOLogDbg("ppp%d: garbage received: 0x%02x (need 0x%02x)\n", @@ -1133,9 +1102,6 @@ pppinput(c, tp) *sc->sc_mp++ = PPP_ALLSTATIONS; *sc->sc_mp++ = PPP_UI; sc->sc_ilen += 2; -#ifdef NETBUF_PROXY - m->pktinfo.flags |= NBFLAG_AC; -#endif } } @@ -1150,9 +1116,6 @@ pppinput(c, tp) /* a compressed protocol */ *sc->sc_mp++ = 0; sc->sc_ilen++; -#ifdef NETBUF_PROXY - m->pktinfo.flags |= NBFLAG_PC; -#endif } if (sc->sc_ilen == 3 && (c & 1) == 0) { diff --git a/NeXT/random.c b/NeXT/random.c deleted file mode 100644 index 1c44fa1..0000000 --- a/NeXT/random.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Because the standard library random number - * functions are not availble at the kernel level - * I wrote this simple random number generator. - * - * It uses the multiplicative congruential method. - * See pg 263 of Banks and Carson "Discrete-Event - * System Simulation". - * - */ - -#include "random.h" - -static unsigned x0=123457; /* seed */ -static unsigned a=16807; /* constant multiplier */ -static unsigned c=0; /* increment */ -static unsigned m=2147483647; /* modulus */ - -/* - * Set the seed to the argument. - */ - -void srand(unsigned i) -{ - x0 = i; -} - - -/* - * Use Linear Congruential Method to Generate - * sequence. Return either int or float... - */ - -unsigned rand(void) -{ - unsigned tmpseed; - - tmpseed = (a*x0+c) % m; - x0 = tmpseed; - return (unsigned) x0; -} - - - -float frand(void) -{ - unsigned tmpseed; - - tmpseed = (a*x0+c) % m; - x0 = tmpseed; - return (x0/(float)m); -} diff --git a/NeXT/random.h b/NeXT/random.h deleted file mode 100644 index 787368d..0000000 --- a/NeXT/random.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Because the standard library random number - * functions are not availble at the kernel level - * I wrote this simple random number generator. - * - * It uses the multiplicative congruential method. - * See pg 263 of Banks and Carson "Discrete-Event - * System Simulation". - * - */ - -void srand(unsigned i); -unsigned rand(void); -float frand(void); diff --git a/README.NeXT b/README.NeXT index 519f43f..41fb9e1 100644 --- a/README.NeXT +++ b/README.NeXT @@ -1,5 +1,5 @@ # -# $Id: README.NeXT,v 1.3 1997/04/30 05:37:02 paulus Exp $ +# $Id: README.NeXT,v 1.4 1998/03/26 02:54:17 paulus Exp $ # This distribution contains a port of PPP-2.3 for NeXT. The full @@ -11,17 +11,24 @@ the version you presently use. The web site contains a comprehensive NeXT specific FAQ, mailing list information, and a bug submission form. Please see: - http://www.thoughtport.com:8080/PPP/ - -or- - ftp://ftp.thoughtport.com/pub/next/ppp/ + WWW site: http://www.peak.org/next/ppp/ + WWW mirror: http://www.thoughtport.com:8080/PPP/ + + FTP site: ftp://next-ftp.peak.org/pub/next/apps/internet/ppp/dev + FTP Mirror: ftp://ftp.NMR.EMBL-Heidelberg.DE/pub/next/ppp/ If you use this software and are pleased with its performance, you are encouraged to make a donation to support continued development. 50% of all donations go to charity. For more information, please see: - http://www.thoughtport.com:8080/PPP/donations.html - + http://www.thoughtport.com:8080/cgi-bin/PPP/donation -The subdirectory NeXT contains several files of interest: +It is recommended that you use the PPP installer package to install +the latest version of PPP. This installer package has been designed +to make installation of PPP exceedingly easy and includes all the +documentation you need. However, if you want to manually compile and +configure PPP, the subdirectory 'NeXT' contains the documentation and +information you need. You do NOT need to look at these files if you +use the installer package. INSTALL - A file giving specific directions for installing ppp-2.3 on a NeXT computer. @@ -29,18 +36,9 @@ The subdirectory NeXT contains several files of interest: Examples - This directory provides more examples of scripts and other helpful utilities. - MailBug.app - This application is similar to BugNeXT. It will - allow you to submit bugs electronically. - Many thanks to Running-Start, Inc. for this program. - The WWW page also has a bug submission form. - NeXT_Version - This file describes what NeXT specific version of PPP-2.3 you have. - ChangeLog.rtf - A history of development and bug fixes for ppp-2.3. + ChangeLog.rtf - A history of development and bug fixes for ppp-2.3 TODO.NeXT - A wishlist for features. - - - -