Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
The triton_terminate() function works by setting the need_close flag
of each triton context, then queues this context for execution by a
triton thread if not already running. But if the context is already
being run by a triton thread, it may not notice that its need_close
flag has been updated (this flag is only checked at the beginning
of ctx_thread()). So if no other event wakes up that context (i.e.
if ctx_thread() isn't run again), it will never terminate.
This patch moves the need_close flag check at the end of ctx_thread()
so that a triton context can take the need_close flag into account
event if it's updated while running.
The context spinlock is also used to protect the need_close flag as
it is concurrently updated by triton_terminate().
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
When no ipdb backend can assign IPv6 addresses during IPv6CP
negociation, generate an ipv6db item with an empty address list.
This allows IPv6CP negociation to continue and assign a link-local
IPv6 address, without the need for an IPv6 pool or special Radius
configuration.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
As the maximum acceptable MTU for an L2TP link may vary depending on
IP and L2TP packet headers options, it is better to make it
configurable so that an administrator can adapt it to its network
constraints.
Use the original value (1420) as default.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
|
|
|
|
Now that memdebug implements asprintf() we can simplify session's
channel name allocation by replacing the two snprintf() calls.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Define md_asprintf() as an equivalent of the GNU libc's asprintf()
(with buffer allocated by md_malloc).
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Don't fail if string to duplicate is shorter than the size parameter
and handle memory allocation failure.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Don't fail if _md_malloc() returns NULL.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
-Allow reallocation of NULL pointers (equivalent to a malloc() call)
-Allow 'size' to be 0 (equivalent to a free() call)
-Handle case where 'size' is smaller than the original buffer length
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
free(NULL) is a no-op, but beside that it's a valid call which should
be supported.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Report memory allocation failures in md_alloc() by returning a NULL
pointer.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
|
|
|
|
This reverts commit 49b348dd38dcf89a057abebc0ffdf73748effa0a.
|
|
|
|
't' is set using time() but never used afterwards.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
The PPPoL2TP socket created upon tunnel connection is never used
afterwards. It can be closed right after associating (connecting)
the tunnel with the underlying UDP socket (kernel won't cleanup a
tunnel as long as its UDP socket is open).
Signed-off-by: Vladislav Grishenko <themiron@mail.ru>
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Disable use of ephemeral ports by default since it poses problems with
NAT and wasn't used in earlier versions of accel-ppp.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Read the 'mppe' option value in section 'pppoe' instead of 'l2tp'.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Initialise 'key' before calling memcpy() to ensure that all bytes are
set in the return value.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The 'hw' parameter of cl_key_from_mac() is actually a pointer, so
'key.hw' must be used instead to compute the size of the MAC address.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
|
|
ipoe: pass router=siaddr if router was not configured by other way
|
|
|
|
|
|
address and mask if radius can assign only client address
|
|
|
|
|
|
|
|
Fix indentation of sections 'log' and 'ip-pool'.
Remove space before comma in section 'chap-secret/username-hash'.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Add two options to the 'l2tp create tunnel' command:
* 'peer-port' allows to specify the destination port of the
SCCRQ packet (instead of standard port 1701). This allows
to connect to a peer listening on a non standard port.
* 'host-port' allows to specify the source port of the SCCRQ
packet (instead of an arbitrary free port).
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Define option 'use-ephemeral-ports' for accel-ppp.conf. When set
to 0, this option deactivates the use of ephemeral ports. That is,
accel-ppp won't choose an arbitrary source port when replying to a
tunnel establishment request, but will use the SCCRQ's destination
port instead.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Commit 05bb6859 "pptp,l2tp: bind to port options" assigns fixed source
port for every L2TP tunnel. This removes support for ephemeral ports
(as described in RFC 2661 section 8.1) and statically sets the source
port when accel-ppp initiates tunnel connections.
This patch reverts to the previous behaviour (automatic source port
selection) while keeping the ability to listen for incoming
connections on a port different from 1701 (which was the purpose of
commit 05bb6859).
Support for disabling usage of ephemeral ports and for manual port
selection upon tunnel creation will be added later on by means of
configuration options.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
This variable doesn't need to be visible outside of its
compilation unit.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
|
|
|
|
|
|
|
|
|