| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
For the moment this is just overhead, but it'll be used for INET6
support later.
|
| |
|
| |
|
|
|
|
| |
with no addresses.
|
| |
|
|
|
|
| |
with OpenBSD conventions).
|
|
|
|
| |
Obtained from: OpenBSD
|
| |
|
|
|
|
|
|
|
| |
passed to libalias. If there's not enough space, things like ftp
PORT commands start failing....
Reported by: Gianmarco Giovannelli <gmarco@giovannelli.it>
|
|
|
|
|
|
|
|
| |
4096 - sizeof struct mbuf, and set MAX_MRU and MAX_MTU
back to 2048.
2048 is big enough as an MTU/MRU, but we need to be able
to allocate larger mbufs after reassembling IP fragments.
|
| |
|
|
|
|
| |
Pointed out by: billf
|
|
|
|
|
|
|
| |
twice (once for the arg parsing and once to make it a normal character).
Make the man page example consistent.
Reminded by: Bryan Liesner <bleez@netaxs.com>
|
|
|
|
| |
Submitted by: Rich Neswold <rneswold@MCS.Net>
|
|
|
|
|
|
|
|
| |
set something "xxx yyy # zzz" aaa
shouldn't be interpreted as
set something "xxx yyy" aaa
|
|
|
|
| |
terminate anyway.
|
|
|
|
|
| |
way that a shell does. The previous way ppp did it just didn't
make any sense.
|
|
|
|
| |
is actually a new label with a comment at the end of the line.
|
|
|
|
| |
ExpandString() has a chance to do its own substitutions.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
The entire command is ignored if the syntax is invalid...
|
|
|
|
|
|
|
| |
different sized mbufs, and mallocing them in chunks of 20 mbufs
at a time.
This improves back-to-back throughput by between 7 and 8%
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
a running timer. This fixes a problem where a dial is manually
aborted, the hangup script kicks in and the chat timer ends up
on the timer queue twice (tick tick tick tick *boom*)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
method avoided all race conditions, but suffered from
sometimes running out of buffer space if enough clients
were piled up at the same time.
Now, the client pushes the link descriptor, one end of a
socketpair() and the ppp version via sendmsg() at the
server. The server replies with a pid. The client then
transfers any link lock with uu_lock_txfr() and writev()s
the actual link contents. The socketpair is now the only
place we need to have large socket buffers and the bind()ed
socket can keep the default 4k buffer while still handling
around 90 racing clients.
|
| |
|
|
|
|
| |
numbers set.
|
|
|
|
| |
``set mode foreground'' etc.
|
|
|
|
|
|
|
|
| |
length field rather than the one byte message length field embedded
in the packet. This steps slightly outside of the protocol boundaries,
but should not cause any problems.
Limitation noted by: Simon Winwood <simon@winwood.org>
|
|
|
|
|
| |
default is still 1 second for ttys, but is now 6 seconds for i4b (ISDN)
devices and 5 seconds for ethernet (PPPoE) devices.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, ppp attempted to bind() to a local domain tcp socket
based on the peer authname & enddisc. If it succeeded, it listen()ed
and became MP server. If it failed, it connect()ed and became MP
client. The server then select()ed on the descriptor, accept()ed
it and wrote its pid to it then read the link data & link file descriptor,
and finally sent an ack (``!''). The client would read() the server
pid, transfer the link lock to that pid, send the link data & descriptor
and read the ack. It would then close the descriptor and clean up.
There was a race between the bind() and listen() where someone could
attempt to connect() and fail.
This change removes the race. Now ppp makes the RCVBUF big enough on a
socket descriptor and attempts to bind() to a local domain *udp* socket
(same name as before). If it succeeds, it becomes MP server. If it
fails, it sets the SNDBUF and connect()s, becoming MP client. The server
select()s on the descriptor and recvmsg()s the message, insisting on at
least two descriptors (plus the link data). It uses the second descriptor
to write() its pid then read()s an ack (``!''). The client creates a
socketpair() and sendmsg()s the link data, link descriptor and one of
the socketpair descriptors. It then read()s the server pid from the
other socketpair descriptor, transfers any locks and write()s an ack.
Now, there can be no race, and a connect() failure indicates a stale
socket file.
This also fixes MP ppp over ethernet, where the struct msghdr was being
misconstructed when transferring the control socket descriptor.
Also, if we fail to send the link, don't hang around in a ``session
owner'' state, just do the setsid() and fork() if it's required to
disown a tty.
UDP idea suggested by: Chris Bennet from Mindspring at FreeBSDCon
|
| |
|
|
|
|
| |
Forgotten by: julian
|
| |
|
|
|
|
|
|
|
|
|
| |
inserting a new item. Without this, it's possible to
mis-insert quite badly... but only by as much as the load of
the first item, which is almost always 1 second.
Initialise the timerservice with `restart' set if we're inserting
at the start of the list.
|
| |
|
|
|
|
|
| |
O_NONBLOCK. The select() is the best best as I don't want to muck
about with the send/receive thresholds.
|
|
|
|
| |
Submitted mostly by: green
|
|
|
|
| |
Pointed out by: joerg
|
| |
|
| |
|
|
|
|
| |
don't go and set it to CARRIER_LOST !
|
|
|
|
|
|
|
|
|
|
|
| |
doing a HangupDone(). The HangupDone() may fuel
bundle_CleanDatalinks(), and if so, the bogus
UpdateSet() ends up select()ing on a closed
descriptor.....
Change the main `do/while' loop to a `for' loop so
that any `continue's do the bundle_CleanDatalinks()
& bundle_IsDead() bit.
|