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 3438 by michael, Thu May 1 13:57:39 2014 UTC vs.
Revision 3439 by michael, Thu May 1 14:32:47 2014 UTC

# Line 65 | Line 65 | int yylex(void);
65  
66   static struct
67   {
68 <  struct {
68 >  struct
69 >  {
70      dlink_list list;
71    } mask,
72      leaf,
73      hub;
74  
75 <  struct {
75 >  struct
76 >  {
77      char buf[IRCD_BUFSIZE];
78    } name,
79      user,
# Line 85 | Line 87 | static struct
87      spass,
88      class;
89  
90 <  struct {
90 >  struct
91 >  {
92      unsigned int value;
93    } flags,
94      modes,
# Line 377 | Line 380 | conf:
380   conf_item:        admin_entry
381                  | logging_entry
382                  | oper_entry
383 <                | channel_entry
383 >                | channel_entry
384                  | class_entry
385                  | listen_entry
386                  | auth_entry
387                  | serverinfo_entry
388 <                | serverhide_entry
388 >                | serverhide_entry
389                  | resv_entry
390                  | service_entry
391                  | shared_entry
392 <                | cluster_entry
392 >                | cluster_entry
393                  | connect_entry
394                  | kill_entry
395                  | deny_entry
396 <                | exempt_entry
397 <                | general_entry
396 >                | exempt_entry
397 >                | general_entry
398                  | gecos_entry
399                  | modules_entry
400                  | motd_entry
# Line 401 | Line 404 | conf_item:        admin_entry
404  
405  
406   timespec_: { $$ = 0; } | timespec;
407 < timespec:       NUMBER timespec_
408 <                {
409 <                        $$ = $1 + $2;
410 <                }
411 <                | NUMBER SECONDS timespec_
412 <                {
413 <                        $$ = $1 + $3;
414 <                }
415 <                | NUMBER MINUTES timespec_
416 <                {
417 <                        $$ = $1 * 60 + $3;
418 <                }
419 <                | NUMBER HOURS timespec_
420 <                {
421 <                        $$ = $1 * 60 * 60 + $3;
422 <                }
420 <                | NUMBER DAYS timespec_
421 <                {
422 <                        $$ = $1 * 60 * 60 * 24 + $3;
423 <                }
424 <                | NUMBER WEEKS timespec_
425 <                {
426 <                        $$ = $1 * 60 * 60 * 24 * 7 + $3;
427 <                }
428 <                | NUMBER MONTHS timespec_
429 <                {
430 <                        $$ = $1 * 60 * 60 * 24 * 7 * 4 + $3;
431 <                }
432 <                | NUMBER YEARS timespec_
433 <                {
434 <                        $$ = $1 * 60 * 60 * 24 * 365 + $3;
435 <                }
436 <                ;
437 <
438 < sizespec_:      { $$ = 0; } | sizespec;
439 < sizespec:       NUMBER sizespec_ { $$ = $1 + $2; }
440 <                | NUMBER BYTES sizespec_ { $$ = $1 + $3; }
441 <                | NUMBER KBYTES sizespec_ { $$ = $1 * 1024 + $3; }
442 <                | NUMBER MBYTES sizespec_ { $$ = $1 * 1024 * 1024 + $3; }
443 <                ;
407 > timespec:  NUMBER timespec_         { $$ = $1 + $2; } |
408 >           NUMBER SECONDS timespec_ { $$ = $1 + $3; } |
409 >           NUMBER MINUTES timespec_ { $$ = $1 * 60 + $3; } |
410 >           NUMBER HOURS timespec_   { $$ = $1 * 60 * 60 + $3; } |
411 >           NUMBER DAYS timespec_    { $$ = $1 * 60 * 60 * 24 + $3; } |
412 >           NUMBER WEEKS timespec_   { $$ = $1 * 60 * 60 * 24 * 7 + $3; } |
413 >           NUMBER MONTHS timespec_  { $$ = $1 * 60 * 60 * 24 * 7 * 4 + $3; } |
414 >           NUMBER YEARS timespec_   { $$ = $1 * 60 * 60 * 24 * 365 + $3; }
415 >           ;
416 >
417 > sizespec_:  { $$ = 0; } | sizespec;
418 > sizespec:   NUMBER sizespec_ { $$ = $1 + $2; } |
419 >            NUMBER BYTES sizespec_ { $$ = $1 + $3; } |
420 >            NUMBER KBYTES sizespec_ { $$ = $1 * 1024 + $3; } |
421 >            NUMBER MBYTES sizespec_ { $$ = $1 * 1024 * 1024 + $3; }
422 >            ;
423  
424  
425   /***************************************************************************
# Line 468 | Line 447 | modules_path: PATH '=' QSTRING ';'
447   serverinfo_entry: SERVERINFO '{' serverinfo_items '}' ';';
448  
449   serverinfo_items:       serverinfo_items serverinfo_item | serverinfo_item ;
450 < serverinfo_item:        serverinfo_name | serverinfo_vhost |
451 <                        serverinfo_hub | serverinfo_description |
452 <                        serverinfo_network_name | serverinfo_network_desc |
453 <                        serverinfo_max_clients | serverinfo_max_nick_length |
454 <                        serverinfo_max_topic_length | serverinfo_ssl_dh_param_file |
455 <                        serverinfo_rsa_private_key_file | serverinfo_vhost6 |
456 <                        serverinfo_sid | serverinfo_ssl_certificate_file |
457 <                        serverinfo_ssl_client_method | serverinfo_ssl_server_method |
450 > serverinfo_item:        serverinfo_name |
451 >                        serverinfo_vhost |
452 >                        serverinfo_hub |
453 >                        serverinfo_description |
454 >                        serverinfo_network_name |
455 >                        serverinfo_network_desc |
456 >                        serverinfo_max_clients |
457 >                        serverinfo_max_nick_length |
458 >                        serverinfo_max_topic_length |
459 >                        serverinfo_ssl_dh_param_file |
460 >                        serverinfo_rsa_private_key_file |
461 >                        serverinfo_vhost6 |
462 >                        serverinfo_sid |
463 >                        serverinfo_ssl_certificate_file |
464 >                        serverinfo_ssl_client_method |
465 >                        serverinfo_ssl_server_method |
466                          serverinfo_ssl_cipher_list |
467 <                        error ';' ;
467 >                        error ';' ;
468  
469  
470   serverinfo_ssl_client_method: T_SSL_CLIENT_METHOD '=' client_method_types ';' ;
# Line 850 | Line 837 | serverinfo_hub: HUB '=' TBOOL ';'
837   admin_entry: ADMIN  '{' admin_items '}' ';' ;
838  
839   admin_items: admin_items admin_item | admin_item;
840 < admin_item:  admin_name | admin_description |
841 <             admin_email | error ';' ;
840 > admin_item:  admin_name |
841 >             admin_description |
842 >             admin_email |
843 >             error ';' ;
844  
845   admin_name: NAME '=' QSTRING ';'
846   {
# Line 922 | Line 911 | motd_file: T_FILE '=' QSTRING ';'
911   logging_entry:          T_LOG  '{' logging_items '}' ';' ;
912   logging_items:          logging_items logging_item | logging_item ;
913  
914 < logging_item:           logging_use_logging | logging_file_entry |
915 <                        error ';' ;
914 > logging_item:           logging_use_logging | logging_file_entry |
915 >                        error ';' ;
916  
917   logging_use_logging: USE_LOGGING '=' TBOOL ';'
918   {
# Line 1097 | Line 1086 | oper_entry: OPERATOR
1086   };
1087  
1088   oper_items:     oper_items oper_item | oper_item;
1089 < oper_item:      oper_name | oper_user | oper_password |
1090 <                oper_umodes | oper_class | oper_encrypted |
1091 <                oper_rsa_public_key_file | oper_ssl_certificate_fingerprint |
1092 <                oper_ssl_connection_required |
1093 <                oper_flags | error ';' ;
1089 > oper_item:      oper_name |
1090 >                oper_user |
1091 >                oper_password |
1092 >                oper_umodes |
1093 >                oper_class |
1094 >                oper_encrypted |
1095 >                oper_rsa_public_key_file |
1096 >                oper_ssl_certificate_fingerprint |
1097 >                oper_ssl_connection_required |
1098 >                oper_flags |
1099 >                error ';' ;
1100  
1101   oper_name: NAME '=' QSTRING ';'
1102   {
# Line 1426 | Line 1421 | class_entry: CLASS
1421  
1422   class_items:    class_items class_item | class_item;
1423   class_item:     class_name |
1424 <                class_cidr_bitlen_ipv4 | class_cidr_bitlen_ipv6 |
1424 >                class_cidr_bitlen_ipv4 |
1425 >                class_cidr_bitlen_ipv6 |
1426                  class_ping_time |
1427 <                class_number_per_cidr |
1427 >                class_number_per_cidr |
1428                  class_number_per_ip |
1429                  class_connectfreq |
1430                  class_max_number |
1431 <                class_max_global |
1432 <                class_max_local |
1433 <                class_max_ident |
1431 >                class_max_global |
1432 >                class_max_local |
1433 >                class_max_ident |
1434                  class_sendq | class_recvq |
1435                  class_min_idle |
1436                  class_max_idle |
1437                  class_flags |
1438 <                error ';' ;
1438 >                error ';' ;
1439  
1440   class_name: NAME '=' QSTRING ';'
1441   {
# Line 1602 | Line 1598 | port_item: NUMBER
1598   #endif
1599        {
1600          conf_error_report("SSL not available - port closed");
1601 <        break;
1601 >        break;
1602        }
1603      add_listener($1, block_state.addr.buf, block_state.flags.value);
1604    }
# Line 1610 | Line 1606 | port_item: NUMBER
1606   {
1607    if (conf_parser_ctx.pass == 2)
1608    {
1613 –    int i;
1614 –
1609      if (block_state.flags.value & LISTENER_SSL)
1610   #ifdef HAVE_LIBCRYPTO
1611        if (!ServerInfo.server_ctx)
1612   #endif
1613        {
1614          conf_error_report("SSL not available - port closed");
1615 <        break;
1615 >        break;
1616        }
1617  
1618 <    for (i = $1; i <= $3; ++i)
1618 >    for (int i = $1; i <= $3; ++i)
1619        add_listener(i, block_state.addr.buf, block_state.flags.value);
1620    }
1621   };
# Line 1684 | Line 1678 | auth_entry: IRCD_AUTH
1678   };
1679  
1680   auth_items:     auth_items auth_item | auth_item;
1681 < auth_item:      auth_user | auth_passwd | auth_class | auth_flags |
1682 <                auth_spoof | auth_redir_serv | auth_redir_port |
1683 <                auth_encrypted | error ';' ;
1681 > auth_item:      auth_user |
1682 >                auth_passwd |
1683 >                auth_class |
1684 >                auth_flags |
1685 >                auth_spoof |
1686 >                auth_redir_serv
1687 >                auth_redir_port |
1688 >                auth_encrypted |
1689 >                error ';' ;
1690  
1691   auth_user: USER '=' QSTRING ';'
1692   {
# Line 1817 | Line 1817 | resv_entry: RESV
1817    create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
1818   };
1819  
1820 < resv_items:     resv_items resv_item | resv_item;
1821 < resv_item:      resv_mask | resv_reason | resv_exempt | error ';' ;
1820 > resv_items:     resv_items resv_item | resv_item;
1821 > resv_item:      resv_mask | resv_reason | resv_exempt | error ';' ;
1822  
1823   resv_mask: MASK '=' QSTRING ';'
1824   {
# Line 1988 | Line 1988 | cluster_entry: T_CLUSTER
1988    conf->name = xstrdup(block_state.name.buf);
1989   };
1990  
1991 < cluster_items:  cluster_items cluster_item | cluster_item;
1992 < cluster_item:   cluster_name | cluster_type | error ';' ;
1991 > cluster_items:  cluster_items cluster_item | cluster_item;
1992 > cluster_item:   cluster_name | cluster_type | error ';' ;
1993  
1994   cluster_name: NAME '=' QSTRING ';'
1995   {
# Line 2003 | Line 2003 | cluster_type: TYPE
2003      block_state.flags.value = 0;
2004   } '=' cluster_types ';' ;
2005  
2006 < cluster_types:  cluster_types ',' cluster_type_item | cluster_type_item;
2006 > cluster_types:  cluster_types ',' cluster_type_item | cluster_type_item;
2007   cluster_type_item: KLINE
2008   {
2009    if (conf_parser_ctx.pass == 2)
# Line 2122 | Line 2122 | connect_entry: CONNECT
2122   };
2123  
2124   connect_items:  connect_items connect_item | connect_item;
2125 < connect_item:   connect_name | connect_host | connect_vhost |
2126 <                connect_send_password | connect_accept_password |
2127 <                connect_ssl_certificate_fingerprint |
2128 <                connect_aftype | connect_port | connect_ssl_cipher_list |
2129 <                connect_flags | connect_hub_mask | connect_leaf_mask |
2130 <                connect_class | connect_encrypted |
2125 > connect_item:   connect_name |
2126 >                connect_host |
2127 >                connect_vhost |
2128 >                connect_send_password |
2129 >                connect_accept_password |
2130 >                connect_ssl_certificate_fingerprint |
2131 >                connect_aftype |
2132 >                connect_port |
2133 >                connect_ssl_cipher_list |
2134 >                connect_flags |
2135 >                connect_hub_mask |
2136 >                connect_leaf_mask |
2137 >                connect_class |
2138 >                connect_encrypted |
2139                  error ';' ;
2140  
2141   connect_name: NAME '=' QSTRING ';'
# Line 2428 | Line 2436 | general_entry: GENERAL
2436    '{' general_items '}' ';';
2437  
2438   general_items:      general_items general_item | general_item;
2439 < general_item:       general_hide_spoof_ips | general_ignore_bogus_ts |
2440 <                    general_failed_oper_notice | general_anti_nick_flood |
2441 <                    general_max_nick_time | general_max_nick_changes |
2442 <                    general_max_accept | general_anti_spam_exit_message_time |
2443 <                    general_ts_warn_delta | general_ts_max_delta |
2439 > general_item:       general_hide_spoof_ips |
2440 >                    general_ignore_bogus_ts |
2441 >                    general_failed_oper_notice |
2442 >                    general_anti_nick_flood |
2443 >                    general_max_nick_time |
2444 >                    general_max_nick_changes |
2445 >                    general_max_accept |
2446 >                    general_anti_spam_exit_message_time |
2447 >                    general_ts_warn_delta |
2448 >                    general_ts_max_delta |
2449                      general_kill_chase_time_limit |
2450                      general_invisible_on_connect |
2451 <                    general_warn_no_nline | general_dots_in_ident |
2452 <                    general_stats_o_oper_only | general_stats_k_oper_only |
2453 <                    general_pace_wait | general_stats_i_oper_only |
2454 <                    general_pace_wait_simple | general_stats_P_oper_only |
2451 >                    general_warn_no_nline |
2452 >                    general_dots_in_ident |
2453 >                    general_stats_o_oper_only |
2454 >                    general_stats_k_oper_only |
2455 >                    general_pace_wait |
2456 >                    general_stats_i_oper_only |
2457 >                    general_pace_wait_simple |
2458 >                    general_stats_P_oper_only |
2459                      general_stats_u_oper_only |
2460 <                    general_short_motd | general_no_oper_flood |
2461 <                    general_true_no_oper_flood | general_oper_pass_resv |
2462 <                    general_oper_only_umodes | general_max_targets |
2463 <                    general_use_egd | general_egdpool_path |
2464 <                    general_oper_umodes | general_caller_id_wait |
2465 <                    general_opers_bypass_callerid | general_default_floodcount |
2466 <                    general_min_nonwildcard | general_min_nonwildcard_simple |
2467 <                    general_throttle_time | general_havent_read_conf |
2460 >                    general_short_motd |
2461 >                    general_no_oper_flood |
2462 >                    general_true_no_oper_flood |
2463 >                    general_oper_pass_resv |
2464 >                    general_oper_only_umodes |
2465 >                    general_max_targets |
2466 >                    general_use_egd |
2467 >                    general_egdpool_path |
2468 >                    general_oper_umodes |
2469 >                    general_caller_id_wait |
2470 >                    general_opers_bypass_callerid |
2471 >                    general_default_floodcount |
2472 >                    general_min_nonwildcard |
2473 >                    general_min_nonwildcard_simple |
2474 >                    general_throttle_time |
2475 >                    general_havent_read_conf |
2476                      general_ping_cookie |
2477                      general_disable_auth |
2478 <                    general_tkline_expire_notices | general_gline_enable |
2479 <                    general_gline_duration | general_gline_request_duration |
2478 >                    general_tkline_expire_notices |
2479 >                    general_gline_enable |
2480 >                    general_gline_duration |
2481 >                    general_gline_request_duration |
2482                      general_gline_min_cidr |
2483                      general_gline_min_cidr6 |
2484 <                    general_stats_e_disabled |
2485 <                    general_max_watch | general_services_name |
2486 <                    general_cycle_on_host_change |
2487 <                    error;
2484 >                    general_stats_e_disabled |
2485 >                    general_max_watch |
2486 >                    general_services_name |
2487 >                    general_cycle_on_host_change |
2488 >                    error;
2489  
2490  
2491   general_max_watch: MAX_WATCH '=' NUMBER ';'
# Line 2781 | Line 2809 | general_oper_only_umodes: OPER_ONLY_UMOD
2809    ConfigFileEntry.oper_only_umodes = 0;
2810   } '='  umode_items ';' ;
2811  
2812 < umode_items:    umode_items ',' umode_item | umode_item;
2813 < umode_item:     T_BOTS
2812 > umode_items:  umode_items ',' umode_item | umode_item;
2813 > umode_item:   T_BOTS
2814   {
2815    ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
2816   } | T_CCONN
# Line 2871 | Line 2899 | channel_entry: CHANNEL
2899  
2900   channel_items:      channel_items channel_item | channel_item;
2901   channel_item:       channel_max_bans |
2902 <                    channel_knock_delay | channel_knock_delay_channel |
2903 <                    channel_max_chans_per_user | channel_max_chans_per_oper |
2902 >                    channel_knock_delay |
2903 >                    channel_knock_delay_channel |
2904 >                    channel_max_chans_per_user |
2905 >                    channel_max_chans_per_oper |
2906                      channel_default_split_user_count |
2907                      channel_default_split_server_count |
2908                      channel_no_create_on_split |
2909                      channel_no_join_on_split |
2910 <                    channel_jflood_count | channel_jflood_time |
2911 <                    channel_disable_fake_channels | error;
2910 >                    channel_jflood_count |
2911 >                    channel_jflood_time |
2912 >                    channel_disable_fake_channels |
2913 >                    error;
2914  
2915   channel_disable_fake_channels: DISABLE_FAKE_CHANNELS '=' TBOOL ';'
2916   {
# Line 2947 | Line 2979 | serverhide_entry: SERVERHIDE
2979    '{' serverhide_items '}' ';';
2980  
2981   serverhide_items:   serverhide_items serverhide_item | serverhide_item;
2982 < serverhide_item:    serverhide_flatten_links | serverhide_disable_remote_commands |
2982 > serverhide_item:    serverhide_flatten_links |
2983 >                    serverhide_disable_remote_commands |
2984                      serverhide_hide_servers |
2985 <                    serverhide_hide_services |
2986 <                    serverhide_links_delay |
2987 <                    serverhide_hidden | serverhide_hidden_name |
2988 <                    serverhide_hide_server_ips |
2985 >                    serverhide_hide_services |
2986 >                    serverhide_links_delay |
2987 >                    serverhide_hidden |
2988 >                    serverhide_hidden_name |
2989 >                    serverhide_hide_server_ips |
2990                      error;
2991  
2992   serverhide_flatten_links: FLATTEN_LINKS '=' TBOOL ';'

Diff Legend

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