Age | Commit message (Collapse) | Author |
|
3.3.2.1 Negotiation Timer
When establishing the SSTP connection, the SSTP server starts the negotiation timer.
2. After sending the Call Connect Acknowledge message, if the server does not receive a Call
Connected message before the Negotiation timer expires then it MUST send a Call Abort message
and start the process of bringing down (disconnecting) the connection. The server MAY implement
different timer values for the Call Connected message and the Call Connect Request message.
3.3.7.1 Server-Side Interface with PPP
When the server receives a PPP data frame from the PPP layer, the server MUST perform the
following steps:
* If CurrentState is set to Server_Call_Connected: Generate an SSTP data
packet (section 2.2.3) with the PPP frame as the higher-layer payload and send the packet to
the HTTPS layer.
* Else, drop the PPP frame.
sstp-client is known to be broken, it doesn't send SSTP_MSG_CALL_CONNECTED with
PAP and CHAP-MD5 auth, no network data flow and disconnect by negotiation timer
is expected.
|
|
The index of a given interface is an operation that highly depends on
the network namespace we're in. This patch simply cuts out a function to
get the index for a given interface name from the session initialization
code, and expose it in the ap_net structure.
This function can then be used to refresh the index when moving
interfaces around.
Signed-off-by: Simon Chopin <s.chopin@alphalink.fr>
|
|
usually there's no need to have per-proto limitation, since the need
of max starting limitation affects the whole server, not particular
protocol only.
|
|
also, disable ipv6 pools via chap-secrets, need to find another
syntax for it, may be with comments.
|
|
default stateful ipv6 address & prefix radius attrs are per-rfc6911:
171 Delegated-IPv6-Prefix-Pool
172 Stateful-IPv6-Address-Pool
the single pool name from chap-secret file pool is shared for
ipv4/ipv6/ipv6 dp, new config syntax TBD.
per-proto pool names are still for ipv4 only, new config syntax TBD.
|
|
We need to include <stdint.h> to define 'uint16_t'.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
We need to include <sys/socket.h> to define 'socklen_t', <sys/types.h>
for 'ssize_t' and "list.h" for 'struct list_head'.
Also, let's include "libnetlink.h" so that we don't need a forward
declaration for 'struct rtnl_handle'.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
We need to include <stdint.h> to define 'uint*_t' and <string.h> for
'memcpy'.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
We need to include <netinet/in.h> to define 'struct in6_addr' and
<stdint.h> for 'uint8_t'.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
to get radius object use session:module("radius") function
radius object provides flollowing functions:
radius:attrs() - returns array of attributes {"name" = NAME, "vendor" = VENDOR|nil}
radius:attr(name[,vendor]) - returns value of attribute (may return multiple results)
Example:
function ip_up(ses)
rad = ses:module("radius")
attrs = rad:attrs()
if attrs then
print("attrs:")
for _,a in pairs(attrs) do
io.write("\t")
if a.vendor then io.write(a.vendor..":") end
io.write(a.name.."=")
print(rad:attr(a.name, a.vendor))
end
end
end
|
|
to lua scripts
session object consists of following functions:
ifname() - interface name
ifindex() - interface ifindex
sid() - Acct-Session-ID
uptime() - session uptime in seconds
username()
ctrl_type() - type of session (pppt/pppoe/l2tp/ipoe)
calling_sid() - Calling-Station-ID
called_sid() - Called-Station-ID
ipv4() - retuns pair (peer address, local address)
ipv6() - ipv6 address or nil
rx_bytes()
tx_bytes()
|
|
Implemented support for lua 5.2/5.3.
To build accel-ppp with exact lua version pass it in -DLUA=x.y, for example -DLUA=5.2 (cmake 3.0 is required for this).
Old style -DLUA=TRUE supports only 5.1 and does not require cmake 3.0.
Also extra lua modules (lua_lpack, lua_bit) took out into separated library luasupp.
|
|
new config option:
[common]
max-sessions=N
If set then accel-pppd stops reply to new connection requests if total number of sessions (active and starting) is reached specified limit.
|
|
This reverts commit 88a908974b0b2e9c7eee8ad9a8b0b4432e95d167.
|
|
new config option:
[common]
max-sessions=N
If set then accel-pppd stops reply to new connection requests if total number of sessions (active and starting) is reached specified limit.
|
|
This reverts commit 9ea88bac7d5bf8fc5cf2d5f7d0a734ec7a9e6df6.
|
|
new config option:
[common]
max-sessions=N
If set then accel-pppd stops reply to new connection requests if total number of sessions (active and starting) is reached specified limit.
|
|
This is done using radius attribute NAS-Port-Id. The new format of this attribute is NAS-Port-Id=[ns/][name].
Namespaces must be created malually by "ip netns add ..." command
|
|
include/ppp_auth.h used to be a symlink to ppp/ppp_auth.h, until it was
made a copy by ebbd6f580322 ("fix typo (successed -> succeeded)").
Therefore, changes to ppp/ppp_auth.h aren't visible to files including
ppp_auth.h anymore. These files have already diverged (just a
whitespace fix for now), so let's restore the original symlink before
more changes occur.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
|
|
|
|
This reverts commit fc098b3062badfd802f91241533069cad4886b6f.
|
|
|
|
|
|
|
|
on same interfaces (started by vlan_mon)
|
|
calling radius)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
introduced new module "vlan-mon"
|
|
|
|
|
|
|
|
|
|
|
|
This patch gets rid of synchronuos style of authentication/accounting.
Synchronous style of authentication/accounting produced sleeping threads
which becomes a problem when lots of sessions started/stopped and all they want authorization/accounting.
|
|
|
|
First try to rename interface immediately and if it fails then do second try later just before bring interface up.
In case single-session=replace first try to rename interface may fail because first session may be active
|
|
Wait for previous session completely terminated before continuing authorization new session.
|
|
|
|
|
|
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>
|
|
|
|
This reverts commit 9f4f36169f03857b6910402028717210270a0339.
|