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-8/src/ircd_parser.y (file contents):
Revision 1265 by michael, Tue Jan 17 12:54:17 2012 UTC vs.
Revision 1285 by michael, Sun Feb 5 15:12:59 2012 UTC

# Line 896 | Line 896 | oper_entry: OPERATOR
896      MyFree(class_name);
897      class_name = NULL;
898    }
899 < } oper_name_b '{' oper_items '}' ';'
899 > } '{' oper_items '}' ';'
900   {
901    if (conf_parser_ctx.pass == 2)
902    {
# Line 931 | Line 931 | oper_entry: OPERATOR
931          DupString(new_aconf->host, yy_tmp->host);
932        else
933          DupString(new_aconf->host, "*");
934 +
935 +      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->ipnum,
936 +                                     &new_aconf->bits);
937 +
938        conf_add_class_to_conf(new_conf, class_name);
939        if (yy_aconf->passwd != NULL)
940          DupString(new_aconf->passwd, yy_aconf->passwd);
# Line 977 | Line 981 | oper_entry: OPERATOR
981    }
982   };
983  
980 oper_name_b: | oper_name_t;
984   oper_items:     oper_items oper_item | oper_item;
985   oper_item:      oper_name | oper_user | oper_password |
986                  oper_umodes | oper_class | oper_encrypted |
# Line 995 | Line 998 | oper_name: NAME '=' QSTRING ';'
998    }
999   };
1000  
998 oper_name_t: QSTRING
999 {
1000  if (conf_parser_ctx.pass == 2)
1001  {
1002    if (strlen(yylval.string) > OPERNICKLEN)
1003      yylval.string[OPERNICKLEN] = '\0';
1004
1005    MyFree(yy_conf->name);
1006    DupString(yy_conf->name, yylval.string);
1007  }
1008 };
1009
1001   oper_user: USER '=' QSTRING ';'
1002   {
1003    if (conf_parser_ctx.pass == 2)
# Line 1028 | Line 1019 | oper_user: USER '=' QSTRING ';'
1019      {
1020        DupString(yy_aconf->user, userbuf);
1021        DupString(yy_aconf->host, hostbuf);
1022 +
1023 +      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->ipnum,
1024 +                                    &yy_aconf->bits);
1025      }
1026      else
1027      {
# Line 1292 | Line 1286 | class_entry: CLASS
1286      yy_conf = make_conf_item(CLASS_TYPE);
1287      yy_class = map_to_conf(yy_conf);
1288    }
1289 < } class_name_b '{' class_items '}' ';'
1289 > } '{' class_items '}' ';'
1290   {
1291    if (conf_parser_ctx.pass == 1)
1292    {
# Line 1303 | Line 1297 | class_entry: CLASS
1297        delete_conf_item(yy_conf);
1298      else
1299      {
1300 <      cconf = find_exact_name_conf(CLASS_TYPE, yy_class_name, NULL, NULL);
1300 >      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
1301  
1302        if (cconf != NULL)                /* The class existed already */
1303        {
# Line 1335 | Line 1329 | class_entry: CLASS
1329    }
1330   };
1331  
1338 class_name_b: | class_name_t;
1339
1332   class_items:    class_items class_item | class_item;
1333   class_item:     class_name |
1334                  class_cidr_bitlen_ipv4 | class_cidr_bitlen_ipv6 |
# Line 1361 | Line 1353 | class_name: NAME '=' QSTRING ';'
1353    }
1354   };
1355  
1364 class_name_t: QSTRING
1365 {
1366  if (conf_parser_ctx.pass == 1)
1367  {
1368    MyFree(yy_class_name);
1369    DupString(yy_class_name, yylval.string);
1370  }
1371 };
1372
1356   class_ping_time: PING_TIME '=' timespec ';'
1357   {
1358    if (conf_parser_ctx.pass == 1)
# Line 2054 | Line 2037 | connect_entry: CONNECT
2037      MyFree(class_name);
2038      class_name = NULL;
2039    }
2040 < } connect_name_b '{' connect_items '}' ';'
2040 > } '{' connect_items '}' ';'
2041   {
2042    if (conf_parser_ctx.pass == 2)
2043    {
# Line 2182 | Line 2165 | connect_entry: CONNECT
2165    }
2166   };
2167  
2185 connect_name_b: | connect_name_t;
2168   connect_items:  connect_items connect_item | connect_item;
2169   connect_item:   connect_name | connect_host | connect_vhost |
2170                  connect_send_password | connect_accept_password |
# Line 2196 | Line 2178 | connect_name: NAME '=' QSTRING ';'
2178   {
2179    if (conf_parser_ctx.pass == 2)
2180    {
2199    if (yy_conf->name != NULL)
2200      yyerror("Multiple connect name entry");
2201
2202    MyFree(yy_conf->name);
2203    DupString(yy_conf->name, yylval.string);
2204  }
2205 };
2206
2207 connect_name_t: QSTRING
2208 {
2209  if (conf_parser_ctx.pass == 2)
2210  {
2181      if (yy_conf->name != NULL)
2182        yyerror("Multiple connect name entry");
2183  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines