Commit Graph

783 Commits

Author SHA1 Message Date
Brian Somers
9773f8c0c8 Consolidate the two malloc()s that are done when allocating
an mbuf.
1998-08-21 18:10:15 +00:00
Brian Somers
3f37462e61 Make ``show mem'' display the number of packets allocated as well as the
number of octets.
1998-08-21 18:09:57 +00:00
Brian Somers
b6f5f44231 Destroy any existing chat timeouts in datalink_ComeDown()
If we're told to close/down while in DIAL or LOGIN state,
we don't want to keep our timeout running :-/
1998-08-18 00:53:48 +00:00
Brian Somers
fc254be9bd Don't lose an allocated pointer if realloc() fails.
Free it instead.
Pointed out by: Theo de Raadt
1998-08-17 06:42:40 +00:00
Brian Somers
f841c4e56e Be careful about using ``.Bd -literal'' as groff sometimes keeps
the `-literal' after the closing .Ed.
Where this happens, use ``.Bd -unfilled'' with ``.It Li'' to dodge
the problem - it looks better too.
Problem reported by: Dom Mitchell <dom@phmit.demon.co.uk>
1998-08-11 18:59:36 +00:00
Brian Somers
7955cdca14 `dns' option defaults to disabled, not enabled. 1998-08-09 23:40:31 +00:00
Brian Somers
0f5ecc8b46 Add missing .El 1998-08-09 17:17:23 +00:00
Brian Somers
74e4a8dab7 /var/run/tunX.pid is created regardless of ppps mode.
Spotted by: Alex <garbanzo@hooked.net>
1998-08-09 17:17:10 +00:00
Brian Somers
44cae95d95 Use IFT_PPP from net/if_types.h rather than hard-coding it. 1998-08-09 16:41:01 +00:00
Brian Somers
bf1d3ff614 When entering ``term'' mode, don't output any messages until
the device is successfully opened.  If we fail to open it,
mention the fact.
Also go back into command mode as soon as the device is closed
rather than waiting for the user to type something before noticing.
1998-08-09 15:34:11 +00:00
Brian Somers
2a63083586 Don't forget to call PacketAliasInit().
PR:	7515
1998-08-09 09:13:54 +00:00
Brian Somers
0581dfeff0 Missed these... 1998-08-07 18:44:16 +00:00
Brian Somers
92b0955883 o Support callback types NONE, E.164, AUTH and CBCP.
(see the new ``set callback'' and ``set cbcp'' commands)
o Add a ``cbcp'' log level and mbuf type.
o Don't dump core when \T is given in ``set login'' or
  ``set hangup''.
o Allow ``*'' and blanks as placeholders in ppp.secret and
  allow a fifth field for specifying auth/cbcp dialback
  parameters.
o Remove a few extraneous #includes
o Define the default number of REQs (restart counter) in defs.h
  rather than hardcoding ``5'' all over the place.
o Fix a few man page inconsistencies.
1998-08-07 18:42:51 +00:00
Brian Somers
0bdcbcbe9b PR: 7469
Be careful that the current or next prompt in the list
that we're iterating through doesn't get changed by
descriptor_Read().
1998-08-02 13:01:16 +00:00
Brian Somers
94245ac66c On receipt of a sig 15, do a full bundle_Close() even if
our current phase is PHASE_DEAD as it's possible that there
are links stuck in OPENING waiting for a redial timer.
1998-08-02 06:56:40 +00:00
Brian Somers
68a0e17122 When we receive an LCP config REQ in Opened state,
do TLD *before* processing the config request as
TLD initialises the peers LCP values.

It's strange that an IRC isn't required here - but
I'll bow to the wisdom of the rfc.
1998-08-01 01:02:41 +00:00
Brian Somers
cff2b1c9b4 Cosmetic: Diagnostic wording (Unknown -> Unexpected) 1998-08-01 01:02:12 +00:00
Brian Somers
c31ac0b396 Always dial immediately on `open'', dial'' and `call''.
We don't need a ``!''.
1998-07-31 19:50:24 +00:00
Brian Somers
ba23f3976a Allow an optional ``!'' in the open, dial & call commands.
When used, the redial timer is ignored and the modem is
opened immediately.
1998-07-29 18:21:17 +00:00
Brian Somers
50fa554e42 Use tcsetattr TCSANOW instead of TCSADRAIN so that dedicated mode doesn't
end up blocking indefinitely when there's no carrier.
1998-07-29 18:20:53 +00:00
Brian Somers
2062443fd7 Silence ``Network unreachable'' warnings when using
``add .... HISADDR''.  The network will never be
reachable at this point unless we're in -auto or reading
the command from ppp.linkup.

We can now run the following lines and get the expected
results:

  set ifaddr 1.2.3.4/0 5.6.7.8/0
  add default HISADDR

where a route is added immediately in auto mode and the
whole thing is delayed 'till the IP numbers have been
agreed in other modes.

Essentially, ppp.linkup is no longer required.
1998-07-28 21:54:54 +00:00
Brian Somers
93280d730e o Tidy up PAP and CHAP diagnostics. They're now all logged as PHASE
diagnostics (which are on by default).
o Deal correctly with both sides wanting CHAP.
o Output a warning if we're using an empty ``authname''.  This is
  *not* what we want to do.
1998-07-28 21:54:30 +00:00
Brian Somers
501f548011 Add missing braces - without them, the IP & label were mis-selected
from ppp.secret.
Problem reported by: Dom Mitchell <dom@phmit.demon.co.uk>
1998-07-19 21:07:24 +00:00
Brian Somers
3b09372a14 Correct enable/disable handling (broken when ironing out
32/64 bit issues recently).
1998-07-12 00:30:18 +00:00
Brian Somers
7d797fa780 Check the ``alive'' filter for a packet *before* the
mbuf is deallocated by vj_SendFrame().
1998-07-11 19:05:24 +00:00
Brian Somers
14593dfd98 Change MIN_LQRPERIOD from 5 to 2. 1998-07-11 02:48:36 +00:00
Brian Somers
9dae3e8d4b Don't disable ^D in interactive mode.
Wished for by: pkh
1998-07-04 22:04:12 +00:00
Brian Somers
0dcb215a89 Don't require context when there's only one link
for ``open lcp''
1998-07-04 22:03:56 +00:00
Brian Somers
274211d743 Version 2.0-beta becomes 2.0 :-) 1998-07-04 10:24:49 +00:00
Brian Somers
d4af231c81 Only start checking carrier when the datalink state machine
exceeds DATALINK_READY.  When we go back to READY or less
(eg. ``close lcp''), switch the carrier-checking-timer off again.

This fixes the callback example in ppp.conf.sample.
Noted as broken by: Damian Kuczynski <damian@best.pw.edu.pl>
1998-07-03 17:24:38 +00:00
Brian Somers
06337856e1 The CCP layer now behaves as follows:
o If we've denied and disabled all compression protocols, stay
  in ST_INITIAL and do an LCP protocol reject if we receive any
  CCP packets.
o If we've disabled all compression protocols, go to ST_STOPPED
  and wait for the other side to ask for something.
o If we've got anything enabled, start REQing as soon as the auth
  layer is up.
o If we're in multilink mode, than the link level CCP goes
  straight to ST_STOPPED irrespective of what's configured so that
  we never try to compress compressed stuff by default.
1998-06-30 23:04:17 +00:00
Brian Somers
3a2e4f621c o Fix remaining sizeof problems for 64 bit machines.
o Allow ``set ....'' when we have multiple links but aren't in
  multilink mode.
o Do a TLS when we receive a ``Open'' event in ``Closed'' state,
  despite the rfc state transition table.  This is clearly an
  error in the RFC as TLS cannot have yet been called (without
  TLF) in the ``Closed'' state.
  I've posted a message to comp.protocols.ppp for confirmation.
1998-06-27 23:48:54 +00:00
Brian Somers
2d42ffabf1 More u_long -> u_int32_t 1998-06-27 16:24:52 +00:00
Brian Somers
6163841150 I find it *really* irritating that you can't ``cvs rm''
things without removing them first.
1998-06-27 15:33:17 +00:00
Brian Somers
10a9be1e88 Remove redundant includes 1998-06-27 14:18:15 +00:00
Brian Somers
615ad4f957 Don't dlopen()/dlsym() libalias, use it in the same way
as the rest of the world uses libraries.
1998-06-27 14:17:28 +00:00
Brian Somers
3f06c5995f Don't assume ``sizeof(u_long) == 4''
Submitted by: Theo
1998-06-27 12:03:50 +00:00
Brian Somers
7d81ddf5bd Cast void * to char * for log_Printf(). 1998-06-27 12:03:46 +00:00
Brian Somers
032d427689 ``struct tunnel_header'' -> u_int32_t in OpenBSD.
struct tunnel_header is going soon.

Suggested by: Theo
1998-06-27 12:03:43 +00:00
Brian Somers
d9823e8a6d Don't depend on sizeof(u_long) == 4. 1998-06-26 19:02:40 +00:00
Brian Somers
3132bc1efe DISTRIBUTION=des 1998-06-26 18:50:29 +00:00
Brian Somers
897f9429f9 Add `ipcp'' as an optional argument to `open'', and make
open capable of re-negotiatiating the various layers.

It is now possible to change various link options and then
re-open the relevant layer, making the changes effective -
for example, switching off VJ compression or starting ECHO
LQRs on-the-fly.
1998-06-25 22:33:31 +00:00
Brian Somers
141b3b7817 Oops - forgot these with the last commit. 1998-06-24 19:36:37 +00:00
Brian Somers
1af29a6e96 o If we come out of select() with only write descriptors that
end up writing zero bytes, sleep for 1/10 of a second so that
  we don't end up using up too much cpu.
  This should only ever happen on systems that wrongly report a
  descriptor as writable despite the tty buffer being full.
  Discussed with: Jeff Evarts

o Do an initial run-time check to see if select() alters the passed
  timeval.  This knowledge isn't yet used, but will be soon.
1998-06-24 19:33:36 +00:00
Brian Somers
8901e74902 Suggest the use of `accept dns'', not `enable dns'' in
server mode.
1998-06-21 11:14:50 +00:00
Brian Somers
74d14b4cc9 Do an InitRestartCounter when we get a TerminateReq
in Opened state.....  I have no idea why this never
caused problems in the past - maybe the restart
counter was bogusly initialised somewhere else :-/
1998-06-20 01:55:28 +00:00
Brian Somers
d2a69fc3ba Re-initialise our timer service after fork()ing
to lose our terminal session.  Is this a bug in
setitimer() ? - it must be called again in the
child !
1998-06-20 01:36:38 +00:00
Brian Somers
09206a6f2a Create & use fsm2initial(), a function to bring a
state machine back to ST_INITIAL without going
through any unnecessary TLS/TLF pairs.
1998-06-20 00:19:42 +00:00
Brian Somers
ad5b0e8be6 Make sure our recvmsg() is a SCM_RIGHTS message when
we receive a link from another ppp.
1998-06-18 23:38:04 +00:00
Brian Somers
1181eb8216 Don't assume that all ttys support carrier detect. If we're
passing our controlling terminal, always record our pid so
that the receiving ppp knows who to HUP.
1998-06-18 22:43:18 +00:00
Brian Somers
5c6a2cdce8 Mention the ``allow users'' command when describing
how to set things up for incoming connections.
1998-06-18 01:24:29 +00:00
Brian Somers
c12b786782 o Allow `set mrru'' or `set mrru 0'' to disable
multi-link mode.
o Fix a typo in the ``set mrru'' description.
1998-06-16 23:23:57 +00:00
Brian Somers
a33b2ef772 Change some log levels. ALERTs are only logged when
something that can't happen happens or when everyone
needs to know.  ERRORs are only logged when something
unexpected happens.
1998-06-16 19:40:42 +00:00
Brian Somers
899011c4eb Don't bring the modem offline or hangup when ``down lcp''
is done.  Instead, behave like ``close lcp''.
1998-06-16 19:40:28 +00:00
Brian Somers
9ef0938e40 Zero mbuf::pnext when Dequeue()ing. 1998-06-16 19:40:20 +00:00
Brian Somers
7729a18215 Only set the datalink::stayonline flag if we
close/down with CLOSE_LCP when our state is
DATALINK_READY or higher.
1998-06-16 07:15:16 +00:00
Brian Somers
f7704be7d3 o Don't dump core with ~m in term mode.
o Always put a '\r' before a '\n' at the end of a line
  in prompt_vPrintf() in term mode, and make prompt_Printf()
  use prompt_vPrintf().
o Fix ~? message.
1998-06-16 07:15:11 +00:00
Brian Somers
d93d3a9c32 o De-staticise things that don't need to be static.
o Bring the static ``ttystate'' into struct prompt so that
  the tilde context is per prompt and not global.
o Comment the remaining static variables so that it's
  clear why they're static.
o Add some XXX comments suggesting that our interface list
  and our hostname should be re-generated after a signal
  (say SIGUSR1) so that a machine with PCCARDs has a chance.
1998-06-15 19:06:58 +00:00
Brian Somers
c9e11a112d Fix a rather nasty use of `static'. This caused a SEGV
when running ``link * load label'' as we ended up recursing
back into command_Interpret after nuking our command arg list.
1998-06-15 19:06:25 +00:00
Brian Somers
30291ffb15 Give ``load'' optional context. It's now possible to
``link 1,2,3 load label'' for people that want to set
up their links in a more mpd-like manner.
1998-06-15 19:05:51 +00:00
Brian Somers
9c81b87d1e Make `close lcp' just close the LCP layer and not hangup. This is
useful for slirp users that wish to get their shell back after the
ppp session.  `close' with no args still hangs up as expected.
Required by: jmz
1998-06-15 19:05:27 +00:00
Brian Somers
eee772ec70 Deal with PROTO_IGMP and PROTO_IPIP packets correctly.
Submitted by: Mark Tinguely <tinguely@plains.NoDak.edu>
  This change will allow a PPP host enabled with the "-alias" option to
  run mrouted. This does not intend to forward the IGMP nor tunneled packets
  to another host on the far side if the tun0 interface.
1998-06-14 01:21:24 +00:00
Brian Somers
42c57c8682 o Pass our negotiated number of VJ slots into
sl_uncompress_tcp() and drop packets with
  slot numbers that are out of range.
o Drop packets that want to use a slot that still
  has an IP header length of 0 (ie, the requested
  slot number is bogus again).

Without this code, if the other side mis-behaves (and
sends us garbage slot numbers), we happily ``adjust''
a memset(..., '\0', ...) TCP/IP header and promptly
cr*p all over the stack before returning.... quickly
followed by a SIGBUS.

Dodgy ISP used by, and help locating the problem from: jmz
Problem also seen by: Mourad de Riche <omnibus@image.dk>

There's still a link lockup after this happens, but my
bets are on the other side (who has already started sending
rubbish) being to blame.
1998-06-14 00:56:13 +00:00
Brian Somers
41dbe0c7af Add the ``clear'' function.
Mostly submitted by: "Stephane E. Potvin" <sepotvin@videotron.ca>
1998-06-12 20:12:26 +00:00
Brian Somers
f56d7b337d Remove '\n' from `show throughput'. ctime() already does
a linefeed.
1998-06-12 17:45:41 +00:00
Brian Somers
87de006540 Correct arg hack
Submitted by: David Leonard <leonard@csee.uq.edu.au>
1998-06-12 17:45:26 +00:00
Brian Somers
ff0f9439b4 o Maintain a link-type mask for open datalinks as well as
for all datalinks in a bundle.  Ppp now deals correctly
  with link types that are changed while open
o When changing the type of the last AUTO link, only clear
  the interface if we're not in PHASE_NETWORK.  This allows
  us to switch to -ddial mode while we have a connection
  without suddenly unexpectedly throttling ourselves by
  clearing the interface configuration.
  Problem area noted by: Aaron Jeremias Luz <aaron@csh.rit.edu>
1998-06-12 17:45:10 +00:00
Peter Wemm
e4da208bae Use the elf libalias name when compiled under elf. 1998-06-12 15:37:23 +00:00
Brian Somers
5264ca0298 Fix a couple of warnings noted with -Wall on FreeBSD-2.1.5.
Pointed out by: Charlie Sorsby <crs@hgo.net>
1998-06-10 00:16:07 +00:00
Brian Somers
255aa9e373 Show the time that we reached maximum throughput.
Submitted by: "Stephane E. Potvin" <sepotvin@videotron.ca>
1998-06-09 18:49:10 +00:00
Warner Losh
42d494a30b $@ is deprecated, use longer forms of single char macros 1998-06-09 05:36:48 +00:00
Brian Somers
645b7985ea Correct `set server'' usage and add mention that `set ns'' changed
in README.changes.
Suggested by: stuart henderson <stuart@internationalschool.co.uk>
1998-06-08 20:23:44 +00:00
Brian Somers
37a8b7dcb8 Fix previous commit. bit 1 is the execute bit, not the read bit *blush*
ie, BINMODE=4551 -> BINMODE=4554
Pointed out by: Bruce Evans <bde@zeta.org.au>
1998-06-07 17:08:42 +00:00
Brian Somers
c22130cd33 Use a relative libalias.so name (hardcoded at 2.5 - yeuch!). 1998-06-07 03:54:41 +00:00
Brian Somers
a2b023b187 Make ppp world-readable so that root can get at it over
NFS when nobody isn't in group network :-)

Pointed out by: Bruce Evans <bde@zeta.org.au>
1998-06-07 00:16:57 +00:00
Brian Somers
7155510852 Update the write descriptor selection set for our data links
*after* shuffling fragments from the IP queue into the
individual link queues.

This fixes a latency problem pointed out by: Bruce Evans <bde@zeta.org.au>
1998-06-07 00:16:37 +00:00
Brian Somers
1c16aba2c7 Make ``set ? log'' more verbose.
Suggested by: Paul Dufresne <dufrp@oricom.ca>
1998-06-06 23:00:33 +00:00
Brian Somers
da66dd135a Put the correct pid in /var/run/tunX.pid
Suggested by: many
1998-06-06 20:50:57 +00:00
Brian Somers
8e7b85992b o If there's a session leader left running for a descriptor
that we're now closing, manually HUP that session leader
  so that the tty is fully released.
o Always restart our carrier detect timer in the receiving
  process if it was running in the sending process (as we
  now *always* pass the descriptor).
o Tweak argv when we go into pause() mode to keep our session
  so that ps can see what's going on (without checking for a
  `pause' state in `ps -l').
1998-05-29 18:33:10 +00:00
Brian Somers
05dbe14bd3 Some documentation corrections & typo fixes.... 1998-05-29 18:32:41 +00:00
Brian Somers
81358fa3fc o Make modes consistent throughout ppp. The same strings are used
in `set mode', `allow modes', on the command line and when
  outputting mode names.  The strings are matched so that only
  enough characters to uniquely identify the string are required,
  so you can now

    ppp -a mylabel  (for auto mode)
    ppp -b mylabel  (for background mode)
    ppp -dd mylabel (for direct dial mode)

  etc.
o Make -ddial dial when specified on the command line (oops).
  Pointed out by: Alex <garbanzo@hooked.net>
1998-05-29 18:32:11 +00:00
Brian Somers
1662ac2427 srandomdev() isn't available in all 2.* versions. Only
use it for version 3 (-current) & up.
1998-05-29 00:03:00 +00:00
Brian Somers
1384bd27d8 o #define the name "tun" in defs.h against the future possibility
of supporting architectures with different device names.
o Close /dev/tunX when destroying the bundle.
o Don't forget to close the parent end of the pipe in the child
  process when exec'ing a program from a chat script.
o If we close our controlling terminal, ditch the current session
  with it, allowing getty(8) (or whatever) to regain control.
o After transferring our controlling terminal descriptor to another
  ppp instance, we now fork a new ppp to continue where we left off,
  transferring ownership of all uucp locks and the /var/run/tunX.pid
  file.  Meanwhile the parent closes all file descriptors, defaults
  all signals and does a pause() to wait for a HUP after the
  transferred descriptor is finally closed.
  We don't run /bin/cat any more (again!).

  Suggested by: bde

TODO: It seems clocal devices need their pause()d session leader
      to be given a manual HUP, as closing the last open descriptor
      doesn't do the job.
1998-05-28 23:17:51 +00:00
Brian Somers
85fd273a31 o Don't forget to close our transfer socket if we cannot
generate the data to transfer.
o Transfer uucp lock ownership for the transferred device.
o Don't assume we know the correct values of dev_is_modem and
  mbits after the transfer.
1998-05-28 23:15:40 +00:00
Brian Somers
0f78c7a7ea Don't assume stdout is a tty in interactive mode
Analyzed by: dmaddox@scsn.net (Donald J. Maddox)
1998-05-27 22:43:37 +00:00
Brian Somers
6c92091027 o Only do the /bin/cat bit when we're transferring our ctty. 1998-05-25 10:37:02 +00:00
Brian Somers
54cd8e13c6 o Don't try to transfer tty device descriptors as there's no way of
transferring session rights with them.  Instead, create two
  `/bin/cat' processes.  A new child is spawned and disassociated from
  the terminal and the parent, which continues with the rest of the ppp
  process.  Meanwhile, the parent spawns another child, and both the
  parent and child exec the `/bin/cat' commands with the appropriate
  descriptors.  This way, the session is owned by the parent, and the
  tty is held open.
o Close LCPs that have done a TLF and are now in ST_STOPPED before
  calling Down.  This prevents them from trying to come back up again
  after the peer has shut them down (it seems a bit strange that the
  rfc says that a Down in ST_STOPPED will cause a TLS etc).
o Don't try to set the physical link name pointer when we're receiving
  and renaming a datalink.  The physical hasn't been created yet, and as
  it happens, the garbage physical pointer happens to be the value of another
  physical - so we're pointing that other physical name at ourselves.
  yeuck.
o Re-arrange the order of things in main (DoLoop()).  We now handle
  signals only after the select and not before the UpdateSet.  It's
  possible that either a signal (FSM timeout) or a descriptor_Read()
  brings a link down, after which we'd better tidy up any dead direct
  and 1off descriptors before calling UpdateSet() again.
o Mention when we detect a PPP packet when we see one before the link
  is up (then start LCP as before).
1998-05-25 02:22:38 +00:00
Brian Somers
d4156d002c Show the link mode in `show links'. 1998-05-23 22:28:19 +00:00
Brian Somers
0438ce3a88 Oops - patch failed in last commit ???? 1998-05-23 22:27:53 +00:00
Brian Somers
0f2f3eb395 o Move our prompt descriptor list outside of the bundle.
It's now dealt with by the `server' object.  This simplifies
  things as we only have one list of prompt descriptors and
  the log_ routines check prompt::logactive to determine
  whether it should be used for output.
o Include the MP socket UpdateSet() result in bundle::UpdateSet().
o Don't select on the tun device unless we're in NETWORK
  phase or AUTO mode.
o Stop the idle timer when we go to DEAD phase.  We may
  have transferred a link and not had a chance to kill
  it.
o Don't fail when trying to unlink our transferred datalink
  from our descriptor lists just before the transfer.
o Add our link descriptor to the write set if we got a short
  write the last time (physical::out is set).
o Log the connection source address when a connection is closed.
o Remove descriptor::next field.  Descriptor lists are not required
  any more.
1998-05-23 22:24:50 +00:00
Brian Somers
86b1f0d762 o Make sure we adjust our min seq and process any outstanding queued
incoming fragments when a link goes down.
o Don't use the minimum sequence numbers of links that aren't open.
o Understand sequence number wrapping when determining the minimum
  sequence number.
o Add & adjust a few comments.
1998-05-23 17:05:28 +00:00
Brian Somers
1df0a3b93b o If all CCPs are disabled & denied, don't send a REQ - just enter
STOPPED state waiting for the peer to say something.
1998-05-23 13:38:09 +00:00
Brian Somers
87f6044a4b Don't give .It too many args. 1998-05-21 23:45:10 +00:00
Brian Somers
4dfb0c50d6 Remove -Wpointer-arith 1998-05-21 23:38:08 +00:00
Brian Somers
dadabc45a7 o Add some missing #includes
o Calculate base device name correctly.
1998-05-21 22:55:08 +00:00
Brian Somers
d91d286164 MFMP: Make ppp multilink capable.
See the file README.changes, and re-read the man page.
1998-05-21 21:49:08 +00:00
Brian Somers
641684cdba Don't accept IPCP packets before NETWORK phase.
Pointed out by: Ralf Rutherford <ralf@philips.oz.au>
1998-05-21 01:26:10 +00:00
Brian Somers
04eaa58c59 o Add `set autoload'. You can now set the minimum and maximum
thresholds (in terms of queued packets for a period of time)
  where -auto links will be brought up and down.  By default,
  all auto links come up when we reach NETWORK phase and never
  go down.
o Display current autoload state in `show bundle'.
o Disable the idle timer as soon as it's called.
o Disable the idle and autoload timers when exiting (in case
  we're abending).
1998-05-21 01:13:32 +00:00
Brian Somers
1fa75dc107 o Set utmp::ut_host to getenv("CONNECT"). Mgetty sets
this to the connection speed.
  Submitted by: forgotten (sorry)
o Use all UT_LINESIZE characters rather than leaving the
  last one NUL.
1998-05-21 01:12:20 +00:00
Brian Somers
03704096ad Don't bring the interface down with the last link when we're
in -auto mode (broken a few commits ago).
1998-05-19 23:05:10 +00:00