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 |
|
{ |
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); |
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 | |
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) |
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 |
|
{ |
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 |
|
{ |
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 |
|
{ |
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 | |
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) |
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 |
|
{ |
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 | |
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 |
|
|