summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-02-06l2tp: Implement outgoing callsGuillaume Nault
Add the "l2tp create session" command to place an outgoing call. For example, "l2tp create session tid 3" will send an OCRQ within tunnel 3. This allows the LNS to request establishment of a new session inside an existing tunnel. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-02-06l2tp: No automatic CDN before cancelling sessionsGuillaume Nault
This patch removes the automatic sending of a CDN message when cancelling creation of new sessions. This is necessary in order to give the possibility for a tunnel to create (and possibly cancel) new sessions on its own (e.g. for placing outgoing calls). In such cases, sending a CDN message would not make sense if the session gets cancelled before any creation message was sent. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-02-06utils: Add function for strict str to int conversionGuillaume Nault
Define the u_readlong() function as a wrapper for strtol(). It performs stricter checks on the input value and let the caller specify an interval of acceptable values. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-02-06build: Set ACCEL_PPP_VERSION in top level cmake fileGuillaume Nault
Move definition of ACCEL_PPP_VERSION from /accel-pppd/CMakeLists.txt to /CMakeLists.txt so that it gets visible by any cmake file. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-02-06Integrate accel-cmd with accel-ppp's build processGuillaume Nault
Create a CMakeLists.txt file for accel-cmd so that it gets compiled and installed like accel-pppd. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-02-06Add manpage for accel-cmdGuillaume Nault
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-02-06New client for the cli module (tcp)Guillaume Nault
accel-cmd is a small program that reads commands from its command line or standard input and sends them to accel-ppp (using the tcp interface of the cli module). It displays accel-ppp's result on standard output. accel-cmd automatically appends the "exit" command to its command list, so that accel-pppd will disconnect after sending its replies. By default accel-cmd connects to localhost:2001. Examples: Send the "show sessions" command to accel-ppp and display the result: $ accel-cmd show sessions Execute commands from file "cmds" and display the results to stdout: $ accel-cmd < cmds Same as above, but use a different host and timeout after 1.5 seconds of inactivity: $ accel-cmd --timeout 1500ms --host accelppp.example.com < cmds Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-02-05ipoe: do not assign ip to interface if shared=0 and ifcfg=0 (ip unnumbered)Kozlov Dmitry
2013-02-01ipoe: update lease time and mask on each relay replyKozlov Dmitry
ipoe: fixed DHCP Discover handling when session is in active state
2013-01-28ipoe: implemented noauth optionKozlov Dmitry
2013-01-28ipoe: changed assignment of Server-ID and Router optionsKozlov Dmitry
2013-01-26ipoe: various fixesKozlov Dmitry
2013-01-26ipoe: insert opt82 to each relay packetKozlov Dmitry
2013-01-26Revert "ipoe: insert opt82 to each relay packet"Kozlov Dmitry
This reverts commit cde7ee4d629b32c810ceac836b70a4289b4f00b3.
2013-01-26ipoe: insert opt82 to each relay packetKozlov Dmitry
2013-01-25ipoe: fix compilation errorKozlov Dmitry
2013-01-25ipoe: always assign IP address in mode=L2Kozlov Dmitry
2013-01-25Revert "ipoe: assign giaddr to interface only if mode=L3"Kozlov Dmitry
This reverts commit 2b9c6812f4558b74843c6e3740ee5319dc1df48d.
2013-01-25ipoe: assign giaddr to interface only if mode=L3Kozlov Dmitry
2013-01-25ipoe: properly insert option 82 before ENDKozlov Dmitry
2013-01-25ipoe: add missing LIB_SUFFIX to install pathKozlov Dmitry
2013-01-25ipoe: insert option 82 to relay requestKozlov Dmitry
2013-01-25fix typo LIB_SIFFIX -> LIB_SUFFIXKozlov Dmitry
2013-01-25cmake: use CMAKE_FIND_ROOT_PATH and LIB_SUFFIXKozlov Dmitry
2013-01-25Proper logging of LCP Magic-NumbersAleksey Zhukov
2013-01-25Do not segfault on RADIUS failures during interimAleksey Zhukov
2013-01-25Fix boolean options parsing in configuration fileGuillaume Nault
Explicitely interpret zero values when parsing boolean options. This allows to unset boolean parameters such as "verbose" when reloading the configuration. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-01-25update debian contribKozlov Dmitry
2013-01-25ipoe: fix giaddr reloadKozlov Dmitry
2013-01-25l2tp: Fix the connect() call when allocating tunnelsGuillaume Nault
Retrieve the socket address size from the address passed to connect(). Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-01-25l2tp: Close tunnel handler's FD if TID assignment failsGuillaume Nault
Use l2tp_tunnel_alloc() cleanup code for handling TID assignment failure. The previous manual cleanup did not close the triton handler file descriptor. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-01-25l2tp: Always acknowledge SCCCN messagesGuillaume Nault
Tunnel establishment may not be immediately followed by the creation of a new session. In this case there is no message to send to the peer after receiving an SCCCN; so it won't be acknowledged and the peer will then have to retransmit it. This patch makes the tunnel always acknowledge SCCCN by replying with a ZLB, thus avoiding useless retransmission from the peer. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-01-25l2tp: Acknowledge CDN messagesGuillaume Nault
Send a ZLB upon reception of a CDN message. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-01-25l2tp: Avoid sending CDN with reserved result valueGuillaume Nault
Update call to l2tp_send_CDN() to avoid using the 0 result code (reserved by RFC 2661). Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-01-25l2tp: Register sessions timers in sessions contextGuillaume Nault
The sessions timeout timers were registered in the triton context of their parent tunnel. This patch uses the session's context instead because the timer's callback function, l2tp_session_timeout(), expects to be called from a session context. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-01-25l2tp: Fix PPP session disconnectionGuillaume Nault
When a PPP session terminates on its own (i.e. not on behalf of a L2TP tunnel/session request), the l2tp_ppp_finished() callback calls the L2TP session disconnection function without updating the session's state. Session disconnection code then works like if the PPP session was still up: it tries to disconnect the PPP by calling ap_session_terminate(). But since the PPP is already terminated, it returns immediately, without calling the l2tp_ppp_finished() callback; so session cleanup won't happen. This patch updates the session's state upon PPP disconnection, so that the session disconnection code won't try to disconnect the PPP in __l2tp_session_free(). The stat_active counter is now updated inside the l2tp_ppp_finished() callback so that it gets called upon any PPP disconnection. Sending of the EV_CTRL_FINISHED event has also been moved. It is now performed in the generic part of __l2tp_session_free() because it has to be done every time the session really terminates. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-01-25l2tp: Perform session disconnection in ppp contextGuillaume Nault
PPP and L2TP session contexts are the same. So since l2tp_ppp_finished() is called within the PPP context, it doesn't need to switch to the session context for calling l2tp_ppp_session_disconnect(). Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-01-25l2tp: Fix race condition when removing sessionsGuillaume Nault
Freeing a session requires four steps: 1-The session asynchronously requests its parent tunnel to remove the session (the tunnel must start the process). 2-The parent tunnel removes its reference to this session, then makes an asynchronous call to the session cleanup function. 3-The session performs its cleanup, frees its memory and asynchronously notifies its parent tunnel. 4-The parent tunnel decrements its sessions counter (so that it knows when it doesn't have any session depending on it). If two requests, A and B, for removing the same session, arrive almost simultaneously, then the following scenario may occur: 1a-The session handles request A and transmits it to its parent tunnel. 2a-The parent tunnel removes its reference to this session and requests the session to perform cleanup. 1b-In the mean time, the session handles request B and transmit it to its parent tunnel. 3a-The session continues to handle request A, cleans up the session and frees memory. 2b-The parent tunnel handles request B: it removes its reference to the session and tells it to perform cleanup. But the session pointer used has just been freed at step 3a. This patch modifies step 1, so that the session transmit the session-id instead of a pointer to the session structure. That way, the tunnel can check if the session has already been deleted (or is pending deletion), without having to manipulate a potentially invalid pointer. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-01-25l2tp: Ensure sessions always have a valid parent tunnelGuillaume Nault
Use a session counter for each tunnel to avoid freeing a tunnel while still having sessions depending on it. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
2013-01-25pppd_compat: fix coa handler's env sizeDmitry Kozlov
2013-01-25session: read final interface statistics on terminationKozlov Dmitry
2013-01-25Revert "session: read final interface statistics on termination"Kozlov Dmitry
This reverts commit 3bff891eac97037c633be960b822c688e8629165.
2013-01-25session: read final interface statistics on terminationKozlov Dmitry
2013-01-25Revert "altered session finishing procedure"Kozlov Dmitry
This reverts commit 9f4f36169f03857b6910402028717210270a0339.
2013-01-25ipool: implemneted net30 allocatorKozlov Dmitry
2013-01-24altered session finishing procedureKozlov Dmitry
2013-01-24backport 1.7Kozlov Dmitry
* l2tp: Fix allocation checking when adding octets AVP * cli, tcp: Fix non-NULL terminated string reception * Fix va_end() missing calls * chap-secrets: implemented encryption * auth_pap: make messages like other auth modules * cli: check xmit_buf is not null at enter to write function * pppoe: implemented regular expression support * chap-secrets: implemented encryption * ippool: fixed initialization order * optional shaper compiling * ppp: dns/wins code cleanup
2013-01-24session: fire EV_PRE_FINISHEDKozlov Dmitry
session: don't accept new sessions in shutdown mode
2013-01-24pppd_compat: pass calling_station_id and called_station_id via envDmitry Kozlov
2013-01-24implemented different sessionid length and urandom sourceDmitry Kozlov