ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.y
(Generate patch)

Comparing ircd-hybrid/trunk/src/conf_parser.y (file contents):
Revision 1782 by michael, Wed Jan 16 19:30:51 2013 UTC vs.
Revision 1783 by michael, Thu Jan 24 19:26:51 2013 UTC

# Line 92 | Line 92 | static struct
92      ping_freq,
93      max_perip,
94      con_freq,
95 +    min_idle,
96 +    max_idle,
97      max_total,
98      max_global,
99      max_local,
# Line 223 | Line 225 | reset_block_state(void)
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
# Line 273 | Line 279 | reset_block_state(void)
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
# Line 410 | Line 416 | timespec:      NUMBER timespec_
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;
# Line 1263 | Line 1277 | class_entry: CLASS
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;
# Line 1280 | Line 1293 | class_entry: CLASS
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;
# Line 1314 | Line 1330 | class_item:     class_name |
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 ';'
# Line 1395 | Line 1414 | class_number_per_cidr: NUMBER_PER_CIDR '
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   ***************************************************************************/

Diff Legend

– Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)