summaryrefslogtreecommitdiff
path: root/accel-pppd/ctrl/pppoe
diff options
context:
space:
mode:
authorxebd <xeb@mail.ru>2020-03-10 13:35:47 +0300
committerGitHub <noreply@github.com>2020-03-10 13:35:47 +0300
commit7afe0f075676219ab4b9e8dbfed294992e9f360b (patch)
tree4a7349449ac2072e52b441c813df42be4fec0ae1 /accel-pppd/ctrl/pppoe
parent5db4429c75352b636cb8bb441216c4816ee8421f (diff)
parent58b41703427284ca849bed7d11087b76ef16a46f (diff)
downloadaccel-ppp-7afe0f075676219ab4b9e8dbfed294992e9f360b.tar.gz
accel-ppp-7afe0f075676219ab4b9e8dbfed294992e9f360b.zip
Merge pull request #121 from themiron/max-starting-cleanup
Add global [common]max-starting option
Diffstat (limited to 'accel-pppd/ctrl/pppoe')
-rw-r--r--accel-pppd/ctrl/pppoe/pppoe.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/accel-pppd/ctrl/pppoe/pppoe.c b/accel-pppd/ctrl/pppoe/pppoe.c
index 32dee77..718ebc5 100644
--- a/accel-pppd/ctrl/pppoe/pppoe.c
+++ b/accel-pppd/ctrl/pppoe/pppoe.c
@@ -87,7 +87,6 @@ struct iplink_arg {
long *arg1;
};
-static int conf_max_starting;
int conf_verbose;
char *conf_service_name[255];
int conf_accept_any_service;
@@ -967,15 +966,11 @@ static void pppoe_recv_PADI(struct pppoe_serv_t *serv, uint8_t *pack, int size)
if (ap_shutdown || pado_delay == -1)
return;
- if (conf_max_sessions && ap_session_stat.active + ap_session_stat.starting >= conf_max_sessions)
- return;
- if (conf_max_starting > 0 && stat_starting >= conf_max_starting) {
- log_warn("pppoe: Count of starting sessions > conf_max_starting, droping connection...\n");
+ if (conf_max_starting && ap_session_stat.starting >= conf_max_starting)
return;
- }
-
-
+ if (conf_max_sessions && ap_session_stat.active + ap_session_stat.starting >= conf_max_sessions)
+ return;
if (check_padi_limit(serv, ethhdr->h_source)) {
__sync_add_and_fetch(&stat_PADI_drop, 1);
@@ -1101,6 +1096,9 @@ static void pppoe_recv_PADR(struct pppoe_serv_t *serv, uint8_t *pack, int size)
if (ap_shutdown)
return;
+ if (conf_max_starting && ap_session_stat.starting >= conf_max_starting)
+ return;
+
if (conf_max_sessions && ap_session_stat.active + ap_session_stat.starting >= conf_max_sessions)
return;
@@ -1936,12 +1934,6 @@ static void load_config(void)
char *opt;
struct conf_sect_t *s = conf_get_section("pppoe");
- opt = conf_get_opt("pppoe", "max-starting");
- if (opt)
- conf_max_starting = atoi(opt);
- else
- conf_max_starting = 0;
-
opt = conf_get_opt("pppoe", "verbose");
if (opt)
conf_verbose = atoi(opt);