#
1af29a6e |
| 24-Jun-1998 |
Brian Somers <brian@FreeBSD.org> |
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 o
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.
show more ...
|
#
d93d3a9c |
| 15-Jun-1998 |
Brian Somers <brian@FreeBSD.org> |
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 variabl
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.
show more ...
|
#
1384bd27 |
| 29-May-1998 |
Brian Somers <brian@FreeBSD.org> |
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
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.
show more ...
|
#
0f2f3eb3 |
| 24-May-1998 |
Brian Somers <brian@FreeBSD.org> |
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
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.
show more ...
|
#
d91d2861 |
| 21-May-1998 |
Brian Somers <brian@FreeBSD.org> |
MFMP: Make ppp multilink capable. See the file README.changes, and re-read the man page.
|
#
dd7e2610 |
| 01-May-1998 |
Brian Somers <brian@FreeBSD.org> |
Cosmetic: Make our external function names consistent.
|
#
b762af4f |
| 01-May-1998 |
Brian Somers <brian@FreeBSD.org> |
o Explicitly set the close-on-exec flag of descriptor 3 before exec()ing. Tidy up file dups in general prior to exec(). This prevents our tun device (fd 3) from staying open (and configured) d
o Explicitly set the close-on-exec flag of descriptor 3 before exec()ing. Tidy up file dups in general prior to exec(). This prevents our tun device (fd 3) from staying open (and configured) despite handing off all it's links and exiting (because ``cat'' holds it open). o Don't bother SIG_DFL'ing signals before exec() as they're already trapped with specific handlers and will be handled correctly by the exec. o Use values from paths.h for "/dev/" and "/dev/tty". o Don't assert() in physical.c.
show more ...
|
#
6f384573 |
| 01-May-1998 |
Brian Somers <brian@FreeBSD.org> |
o Create a new ``timer'' log level. This lets us ``set log debug'' without filling our filesystem/screen with junk that we don't really want to see. o change PHYS_STDIN to PHYS_DIRECT - we can h
o Create a new ``timer'' log level. This lets us ``set log debug'' without filling our filesystem/screen with junk that we don't really want to see. o change PHYS_STDIN to PHYS_DIRECT - we can handle incoming connections that aren't on STDIN_FILENO now. o Allow return values from our FSM LayerUp functions. If LayerUp() fails, the FSM does an immediate FsmDown() without calling the fsm_parent's Layer{Up,Down} functions. o Clear the close-on-exec flag of file descriptor 3 when executing chat programs so that our documented ability to communicate with /dev/tty via that descriptor works. Also document it as descriptor 3, not 4 :-O o Allow a ``rm'' command as an alias for ``remove''. o Fix the bind()/connect()/accept() calls made by the MP server. o Create bundle_SendDatalink() and bundle_ReceiveDatalink(). This allows `struct datalink's to flatten themselves, pass through a pipe (read: the eye of a needle !) and come alive at the other end. The donator then fork()s & exec()s pppmpipe, ``passing'' the connection to another ppp instance.
*** PPP NOW TALKS MULTILINK :-))) ***
Our link utilization is hideous, and lots of code needs tidying still. It's also probably riddled with bugs ! It's been tested against itself only, and has hung once, so confidence isn't high....
show more ...
|
#
1fa665f5 |
| 28-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
o Add the link name to modem diagnostics. o Create struct mpserver as part of struct mp. mpserver creates a unix-domain socket based on the peers auth name and endpoint discriminator. If it al
o Add the link name to modem diagnostics. o Create struct mpserver as part of struct mp. mpserver creates a unix-domain socket based on the peers auth name and endpoint discriminator. If it already exists, ppp will ``pass the link'' over to the owner of the socket, joining it into the bundle of another ppp invocation, otherwise ppp waits for other invocations to pass it links through this socket. The final piece of code will be the code that flattens our datalink info and passes it down this channel (not yet implemented).
show more ...
|
#
e3c70ce9 |
| 19-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
Tidy up the use of struct pppTimer.
|
#
39d94652 |
| 19-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
Destroy struct chat when it's finished in struct datalink. Initialise chat timers correctly as they're malloc()ed as part of struct datalink, and initially contain garbage.
|
#
cdbbb6b5 |
| 18-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
Cosmetic: Clean up warnings.
|
#
99294c8b |
| 11-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
o Fix chats expect-send-expect - it shouldn't be expect-send-send ! o Say `disabled' rather than 0s in `show timeout'. o Set all arguments in ``set device'' rather than just the first (read: quot
o Fix chats expect-send-expect - it shouldn't be expect-send-send ! o Say `disabled' rather than 0s in `show timeout'. o Set all arguments in ``set device'' rather than just the first (read: quotes aren't necessary). o Set the device speed correctly (broken in last commit).
show more ...
|
#
2764b86a |
| 07-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
o Move alias function pointers into loadalias.c o Move Var*Version into command.c o Remove struct pppVars (and there was much rejoicing) ! o Forward-decl some structs in .h files to avoid include o
o Move alias function pointers into loadalias.c o Move Var*Version into command.c o Remove struct pppVars (and there was much rejoicing) ! o Forward-decl some structs in .h files to avoid include ordering requirements and remove a few more redundant #includes.
show more ...
|
#
d24f017b |
| 06-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
Remove unused includes.
|
#
92f4ff1c |
| 03-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
Move authname and authkey into struct bundle and only allow their alteration in PHASE_DEAD. Remove redundant pppConfs array element.
|
#
3b0f8d2e |
| 03-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
o Move struct lcp and struct ccp into struct link. o Remove bundle2lcp(), bundle2ccp() and bundle2link(). They're too resource-hungry and we have `owner pointers' to do their job. o Make our FSM
o Move struct lcp and struct ccp into struct link. o Remove bundle2lcp(), bundle2ccp() and bundle2link(). They're too resource-hungry and we have `owner pointers' to do their job. o Make our FSM understand LCPs that are always ST_OPENED (with a minimum code that != 1). o Send FSM code rejects for invalid codes. o Make our bundle fsm_parent deal with multiple links. o Make timer diagnostics pretty and allow access via ~t in `term' mode (not just when logging debug) and `show timers'. Only show timers every second in debug mode, otherwise we get too many diagnostics to be useful (we probably still do). Also, don't restrict ~m in term mode to depend on debug logging. o Rationalise our bundles' phases. o Create struct mp (multilink protocol). This is both an NCP and a type of struct link. It feeds off other NCPs for output, passing fragmented packets into the queues of available datalinks. It also gets PROTO_MP input, reassembles the fragments into ppp frames, and passes them back to the HDLC layer that the fragments were passed from. ** It's not yet possible to enter multilink mode :-( ** o Add `set weight' (requires context) for deciding on a links weighting in multilink mode. Weighting is simplistic (and probably badly implemented) for now. o Remove the function pointers in struct link. They ended up only applying to physical links. o Configure our tun device with an MTU equal to the MRU from struct mp's LCP and a speed equal to the sum of our link speeds. o `show {lcp,ccp,proto}' and `set deflate' now have optional context and use ChooseLink() to decide on which `struct link' to use. This allows behaviour as before when in non-multilink mode, and allows access to the MP logical link in multilink mode. o Ignore reconnect and redial values when in -direct mode and when cleaning up. Always redial when in -ddial or -dedicated mode (unless cleaning up). o Tell our links to `staydown' when we close them due to a signal. o Remove remaining `#ifdef SIGALRM's (ppp doesn't function without alarms). o Don't bother strdup()ing our physical link name. o Various other cosmetic changes.
show more ...
|
Revision tags: release/2.2.6 |
|
#
2f786681 |
| 20-Mar-1998 |
Brian Somers <brian@FreeBSD.org> |
Make struct bundle into a sort of `struct descriptor'. It does the fdsets/reads/writes for each of it's datalinks.
|
#
30c2f2ff |
| 13-Mar-1998 |
Brian Somers <brian@FreeBSD.org> |
Remove more globals
|
#
879ed6fa |
| 13-Mar-1998 |
Brian Somers <brian@FreeBSD.org> |
De-staticise LQR information Increment OutPackets for any packet - not just LQRs
MFC: o Fix a few comment typos. o Fix ``set timeout'' usage message and documentation. o Change ifOutPackets, i
De-staticise LQR information Increment OutPackets for any packet - not just LQRs
MFC: o Fix a few comment typos. o Fix ``set timeout'' usage message and documentation. o Change ifOutPackets, ifOutOctets and ifOutLQRs to `u_int32_t's so that they wrap correctly. o Put the LQR in network byte order using the correct struct size (sizeof u_int32_t, not sizeof u_long). o Wrap LQR ECHO counters correctly. o Don't increment OutLQR count if the last LQR hasn't been replied to. o Initialise last received LQR in StartLqm. o Don't start the LQR timer if we're `disabled' and `accepted'. o Generate LQR responses when both sides are using a timer and we're not going to send our next LQR before the peers max timeout.
show more ...
|
#
d5015272 |
| 09-Mar-1998 |
Brian Somers <brian@FreeBSD.org> |
o Allow "*" in the password field in ppp.secret (forcing a getpwnam() lookup). o Don't use chat_ExpandString on the password field in ppp.secret. It's still possible to quote the string for embed
o Allow "*" in the password field in ppp.secret (forcing a getpwnam() lookup). o Don't use chat_ExpandString on the password field in ppp.secret. It's still possible to quote the string for embedded spaces. o Don't allow multiple entries with the same name in ppp.secret.
show more ...
|
#
f9545805 |
| 09-Mar-1998 |
Brian Somers <brian@FreeBSD.org> |
Move phone numbers into struct datalink. Make "show modem" look a bit prettier.
|
#
486f40c9 |
| 26-Feb-1998 |
Brian Somers <brian@FreeBSD.org> |
Implement ABORT strings.
|
#
f4768038 |
| 23-Feb-1998 |
Brian Somers <brian@FreeBSD.org> |
o Remove the global CcpInfo. It's now part of the datalink. Struct bundle will have its own struct ccp in the future too. o The ``set stopped'' command now requires context and doesn't work on
o Remove the global CcpInfo. It's now part of the datalink. Struct bundle will have its own struct ccp in the future too. o The ``set stopped'' command now requires context and doesn't work on the IPCP FSM. o Check if it's time to break out of our top level loop before doing a select - otherwise, we'll select forever :-( o Remove `struct link'::ccp (a temporary hack). It turns out that IpStartOutput() calls link_Output() and link_Output() incorrectly calls StartOutput() (really modem_StartOutput) requiring the ccp knowledge so that it can call IpStartOutput()... The end result is that the whole IP output queue gets dumped into the modem output queue and a pile of physical writes are done prematurely. This makes the (original) code in main() actually work in that it would not bother selecting() on the tun descriptor when our modem queue length was 20 or greater. Instead, we now make that decision based on the overall queue length.
This will need improvement later.
show more ...
|
#
56c9cf9d |
| 18-Feb-1998 |
Brian Somers <brian@FreeBSD.org> |
Fix empty string skipping when chatting.
|