diff options
| author | Gavrilenkov A <sasha-dag@yandex.ru> | 2019-09-04 08:42:22 +0300 |
|---|---|---|
| committer | Dmitry Kozlov <xeb@mail.ru> | 2019-09-04 08:42:22 +0300 |
| commit | 02008c74a19c538ff7d9ce643c8cd4c738886196 (patch) | |
| tree | 632352175cf57ff07add3b0a72159f75ccbe16e8 /accel-pppd/ctrl/pptp | |
| parent | 7027bbc6fc59734beacd32e18d843beb882a8d0d (diff) | |
| download | accel-ppp-02008c74a19c538ff7d9ce643c8cd4c738886196.tar.gz accel-ppp-02008c74a19c538ff7d9ce643c8cd4c738886196.zip | |
ipoe,pptp: introduced max-starting option (limit number of starting sessions)
Diffstat (limited to 'accel-pppd/ctrl/pptp')
| -rw-r--r-- | accel-pppd/ctrl/pptp/pptp.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/accel-pppd/ctrl/pptp/pptp.c b/accel-pppd/ctrl/pptp/pptp.c index 7ca4b77a..081e9216 100644 --- a/accel-pppd/ctrl/pptp/pptp.c +++ b/accel-pppd/ctrl/pptp/pptp.c @@ -55,6 +55,7 @@ struct pptp_conn_t struct ppp_t ppp; }; +static int conf_max_starting; static int conf_ppp_max_mtu = PPTP_MAX_MTU; static int conf_timeout = 5; static int conf_echo_interval = 0; @@ -653,6 +654,11 @@ static int pptp_connect(struct triton_md_handler_t *h) close(sock); continue; } + if (conf_max_starting > 0 && stat_starting >= conf_max_starting) { + close(sock); + log_warn("pptp: Count of starting sessions > conf_max_starting, droping connection...\n"); + continue; + } if (triton_module_loaded("connlimit") && connlimit_check(cl_key_from_ipv4(addr.sin_addr.s_addr))) { close(sock); @@ -777,6 +783,11 @@ static void load_config(void) else conf_ppp_max_mtu = PPTP_MAX_MTU; + opt = conf_get_opt("pptp", "max-starting"); + if (opt) + conf_max_starting = atoi(opt); + else + conf_max_starting = 0; conf_mppe = MPPE_UNSET; opt = conf_get_opt("pptp", "mppe"); if (opt) { |
