| 92 |
|
ping_freq, |
| 93 |
|
max_perip, |
| 94 |
|
con_freq, |
| 95 |
+ |
min_idle, |
| 96 |
+ |
max_idle, |
| 97 |
|
max_total, |
| 98 |
|
max_global, |
| 99 |
|
max_local, |
| 225 |
|
%token MESSAGE_LOCALE |
| 226 |
|
%token MIN_NONWILDCARD |
| 227 |
|
%token MIN_NONWILDCARD_SIMPLE |
| 228 |
+ |
%token MIN_IDLE |
| 229 |
+ |
%token MAX_IDLE |
| 230 |
+ |
%token RANDOM_IDLE |
| 231 |
+ |
%token HIDE_IDLE_FROM_OPERS |
| 232 |
|
%token MODULE |
| 233 |
|
%token MODULES |
| 234 |
|
%token NAME |
| 279 |
|
%token T_TLSV1 |
| 280 |
|
%token RESV |
| 281 |
|
%token RESV_EXEMPT |
| 282 |
< |
%token SECONDS MINUTES HOURS DAYS WEEKS |
| 282 |
> |
%token SECONDS MINUTES HOURS DAYS WEEKS MONTHS YEARS |
| 283 |
|
%token SENDQ |
| 284 |
|
%token SEND_PASSWORD |
| 285 |
|
%token SERVERHIDE |
| 416 |
|
{ |
| 417 |
|
$$ = $1 * 60 * 60 * 24 * 7 + $3; |
| 418 |
|
} |
| 419 |
+ |
| NUMBER MONTHS timespec_ |
| 420 |
+ |
{ |
| 421 |
+ |
$$ = $1 * 60 * 60 * 24 * 7 * 4 + $3; |
| 422 |
+ |
} |
| 423 |
+ |
| NUMBER YEARS timespec_ |
| 424 |
+ |
{ |
| 425 |
+ |
$$ = $1 * 60 * 60 * 24 * 365 + $3; |
| 426 |
+ |
} |
| 427 |
|
; |
| 428 |
|
|
| 429 |
|
sizespec_: { $$ = 0; } | sizespec; |
| 1277 |
|
block_state.max_total.value = MAXIMUM_LINKS_DEFAULT; |
| 1278 |
|
block_state.max_sendq.value = DEFAULT_SENDQ; |
| 1279 |
|
block_state.max_recvq.value = DEFAULT_RECVQ; |
| 1266 |
– |
|
| 1280 |
|
} '{' class_items '}' ';' |
| 1281 |
|
{ |
| 1282 |
|
struct ClassItem *class = NULL; |
| 1293 |
|
class->active = 1; |
| 1294 |
|
MyFree(class->name); |
| 1295 |
|
class->name = xstrdup(block_state.class.buf); |
| 1296 |
+ |
class->flags = block_state.flags.value; |
| 1297 |
|
class->ping_freq = block_state.ping_freq.value; |
| 1298 |
|
class->max_perip = block_state.max_perip.value; |
| 1299 |
|
class->con_freq = block_state.con_freq.value; |
| 1300 |
+ |
class->min_idle = block_state.min_idle.value; |
| 1301 |
+ |
class->max_idle = block_state.max_idle.value; |
| 1302 |
|
class->max_total = block_state.max_total.value; |
| 1303 |
|
class->max_global = block_state.max_global.value; |
| 1304 |
|
class->max_local = block_state.max_local.value; |
| 1330 |
|
class_max_local | |
| 1331 |
|
class_max_ident | |
| 1332 |
|
class_sendq | class_recvq | |
| 1333 |
+ |
class_min_idle | |
| 1334 |
+ |
class_max_idle | |
| 1335 |
+ |
class_flags | |
| 1336 |
|
error ';' ; |
| 1337 |
|
|
| 1338 |
|
class_name: NAME '=' QSTRING ';' |
| 1414 |
|
block_state.number_per_cidr.value = $3; |
| 1415 |
|
}; |
| 1416 |
|
|
| 1417 |
+ |
class_min_idle: MIN_IDLE '=' timespec ';' |
| 1418 |
+ |
{ |
| 1419 |
+ |
if (conf_parser_ctx.pass == 1) |
| 1420 |
+ |
block_state.min_idle.value = $3; |
| 1421 |
+ |
}; |
| 1422 |
+ |
|
| 1423 |
+ |
class_max_idle: MAX_IDLE '=' timespec ';' |
| 1424 |
+ |
{ |
| 1425 |
+ |
if (conf_parser_ctx.pass == 1) |
| 1426 |
+ |
block_state.max_idle.value = $3; |
| 1427 |
+ |
}; |
| 1428 |
+ |
|
| 1429 |
+ |
class_flags: IRCD_FLAGS |
| 1430 |
+ |
{ |
| 1431 |
+ |
if (conf_parser_ctx.pass == 1) |
| 1432 |
+ |
block_state.flags.value = 0; |
| 1433 |
+ |
} '=' class_flags_items ';'; |
| 1434 |
+ |
|
| 1435 |
+ |
class_flags_items: class_flags_items ',' class_flags_item | class_flags_item; |
| 1436 |
+ |
class_flags_item: RANDOM_IDLE |
| 1437 |
+ |
{ |
| 1438 |
+ |
if (conf_parser_ctx.pass == 1) |
| 1439 |
+ |
block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE; |
| 1440 |
+ |
} | HIDE_IDLE_FROM_OPERS |
| 1441 |
+ |
{ |
| 1442 |
+ |
if (conf_parser_ctx.pass == 1) |
| 1443 |
+ |
block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS; |
| 1444 |
+ |
}; |
| 1445 |
+ |
|
| 1446 |
+ |
|
| 1447 |
|
/*************************************************************************** |
| 1448 |
|
* section listen |
| 1449 |
|
***************************************************************************/ |