- 03 11月, 2018 1 次提交
-
-
由 Guillaume Nault 提交于
Allow triton_context_wakeup() to run before triton_context_schedule(). When that happens, triton_context_schedule() now lets the context running instead of putting it in sleep mode. Note that, even though triton now allows triton_context_wakeup() to happen before triton_context_schedule(), these two functions still need to be paired and not nested. That is, in a sequence like the following, triton_context_wakeup() triton_context_wakeup() triton_context_schedule() triton_context_schedule() the second triton_context_schedule() would put the context in sleep mode. No matter how many triton_context_wakeup() have been called, the first triton_context_schedule() "consumes" them all. Being immune to schedule/wakeup inversion allows to fix the pppd_compat module. This module needs to fork() to execute external programs. The parent then waits for completion of its child using triton_context_schedule(). When child terminates, the sigchld module runs a callback that has to call triton_context_wakeup() to resume execution of the parent. The problem is that there is no synchronisation between the parent and its child. When under stress, the child may execute faster than its parent and the sigchld callback might run triton_context_wakeup() before the parent had time to call triton_context_schedule(). Then accel-ppp might crash because the triton thread might have reset ctx->thread to NULL, making triton_context_wakeup() write to invalid memory when trying to insert the context in ctx->thread->wakeup_list[]. Synchronising the parent and its child completion's callback would require cooperation from triton_context_schedule(). Otherwise we would still have a time frame between the moment we let the callback waking up the context and the moment we put the context in sleep mode. Allowing schedule/wakeup call inversion in triton looks simpler since it avoids modifying the current API. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
- 29 10月, 2018 1 次提交
-
-
由 xebd 提交于
sstp: fix build w/o openssl & with 1.1.0-1.1.0g
-
- 26 10月, 2018 21 次提交
-
-
由 Vladislav Grishenko 提交于
-
由 Vladislav Grishenko 提交于
-
-
由 Guillaume Nault 提交于
list.h is an accel-ppp internal file. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
We need to include <stdint.h> to define 'uint16_t'. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
If MEMDEBUG is defined, then we need to include "memdebug.h" to define 'md_free'. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
We need to include "list.h" to define 'struct list_head' and <netinet/in.h> for 'in_addr_t' and 'struct in6_addr'. Also, let's include "ap_session.h" so that we don't need a forward declaration for 'struct ap_session'. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
We need to include <stdint.h> to define 'uint16_t' and "triton.h" for 'struct triton_timer_t'. Also, let's include "ppp.h" so that we don't need a forward declaration for 'struct ppp_t'. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
We need to include <stdint.h> to define 'uint8_t' and "ppp.h" for 'struct ppp_t'. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
We need to include "ppp.h" to define 'struct ppp_layer_data_t' and 'struct ppp_handler_t'. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
We need to include <stdio.h> to define 'asprintf', <stdlib.h> for 'malloc', 'realloc' and 'free' and <string.h> for 'strdup' and 'strndup'. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
We need to include "ap_session.h" to define 'struct ap_session'. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
We need to include <sys/types.h> to define 'pid_t'. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
We need to include <netinet/in.h> to define 'in_addr_t'. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
We need to include <stdint.h> to define 'uint32_t' and <netinet/in.h> for 'in_addr_t' and 'struct in6_addr'. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
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: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
We need to include <stdint.h> to define 'uint*_t' and <string.h> for 'memcpy'. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
We need to include <sys/types.h> to define 'size_t'. Also, let's include "ap_session.h" so that we don't need a forward declaration for 'struct ap_session'. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
We need to include <netinet/in.h> to define 'struct in6_addr' and <stdint.h> for 'uint8_t'. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 xebd 提交于
fix gateway address setup fail due memory corruption
-
由 xebd 提交于
sstp updates
-
- 25 10月, 2018 3 次提交
-
-
由 Vladislav Grishenko 提交于
log: libnetlink: RTNETLINK answers: Invalid argument ppp0: f7bb00a79ef667d2: failed to set IPv4 address: Invalid argument ipaddr_add_peer() called only with mask equeal 0 or 32, but w/o zero-allocated structs it contans garbage in some cases. so, instead ipaddr_add() was called with wrong mask value. also, init chap-secrets mask for the same reason.
-
由 Vladislav Grishenko 提交于
-
由 Vladislav Grishenko 提交于
-
- 23 10月, 2018 2 次提交
-
-
由 Guillaume Nault 提交于
Define a new column, called "netns", that prints the network namespace in which sessions are set. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
Several modules assume that if ses->ipv6 is set, then ses->ipv6->addr_list contains at least one element. But this is not true if ipv6 was allocated by the pseudo ipdb backend of ipv6cp (ipv6cp_opt_intfid.c). That is, if the PPP session only has an automatic link-local address. This leads modules like pppd-compat and dhcpv6 to access invalid memory when trying to retrieve the IPv6 address of a PPP session. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
- 24 8月, 2018 1 次提交
-
-
由 Dmitry Kozlov 提交于
-
- 31 7月, 2018 2 次提交
-
-
-
由 Dmitry Kozlov 提交于
-
- 25 6月, 2018 3 次提交
-
-
由 Guillaume Nault 提交于
Missing tab was misleading. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
If the PPP device is set up into a specific network namespace, all the configuration that goes with it belongs to this same netns. Therefore, we need to run the up/down scripts in that namespace too. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
由 Guillaume Nault 提交于
The first argument passed to the ip-pre-up script, was mistakenly set to the value of ip-up. Signed-off-by: NGuillaume Nault <g.nault@alphalink.fr>
-
- 08 6月, 2018 2 次提交
-
-
-
由 Dmitry Kozlov 提交于
-
- 07 6月, 2018 1 次提交
-
-
由 xebd 提交于
sstp: add ECDSA certs support and DH/ECDH config options
-
- 06 6月, 2018 2 次提交
-
-
由 Vladislav Grishenko 提交于
-
由 Vladislav Grishenko 提交于
-
- 05 6月, 2018 1 次提交
-
-
由 xebd 提交于
sstp: fix station_ids, add stat/snmp support & full crypto binding validation
-