113 |
|
} |
114 |
|
|
115 |
|
%token ACCEPT_PASSWORD |
116 |
– |
%token ACTION |
116 |
|
%token ADMIN |
117 |
|
%token AFTYPE |
119 |
– |
%token T_ALLOW |
118 |
|
%token ANTI_NICK_FLOOD |
119 |
|
%token ANTI_SPAM_EXIT_MESSAGE_TIME |
120 |
|
%token AUTOCONN |
121 |
< |
%token T_BLOCK |
124 |
< |
%token BURST_AWAY |
125 |
< |
%token BYTES KBYTES MBYTES GBYTES TBYTES |
121 |
> |
%token BYTES KBYTES MBYTES |
122 |
|
%token CALLER_ID_WAIT |
123 |
|
%token CAN_FLOOD |
124 |
|
%token CHANNEL |
137 |
|
%token DISABLE_FAKE_CHANNELS |
138 |
|
%token DISABLE_REMOTE_COMMANDS |
139 |
|
%token DOTS_IN_IDENT |
144 |
– |
%token DURATION |
140 |
|
%token EGDPOOL_PATH |
141 |
|
%token EMAIL |
147 |
– |
%token ENABLE |
142 |
|
%token ENCRYPTED |
143 |
|
%token EXCEED_LIMIT |
144 |
|
%token EXEMPT |
151 |
|
%token GLINE_DURATION |
152 |
|
%token GLINE_ENABLE |
153 |
|
%token GLINE_EXEMPT |
160 |
– |
%token GLINE_TIME |
154 |
|
%token GLINE_REQUEST_DURATION |
155 |
|
%token GLINE_MIN_CIDR |
156 |
|
%token GLINE_MIN_CIDR6 |
173 |
|
%token KILL_CHASE_TIME_LIMIT |
174 |
|
%token KLINE |
175 |
|
%token KLINE_EXEMPT |
183 |
– |
%token KLINE_REASON |
184 |
– |
%token KLINE_WITH_REASON |
176 |
|
%token KNOCK_DELAY |
177 |
|
%token KNOCK_DELAY_CHANNEL |
178 |
|
%token LEAF_MASK |
207 |
|
%token NO_OPER_FLOOD |
208 |
|
%token NO_TILDE |
209 |
|
%token NUMBER |
219 |
– |
%token NUMBER_PER_IDENT |
210 |
|
%token NUMBER_PER_CIDR |
211 |
|
%token NUMBER_PER_IP |
222 |
– |
%token NUMBER_PER_IP_GLOBAL |
212 |
|
%token OPERATOR |
213 |
|
%token OPERS_BYPASS_CALLERID |
214 |
|
%token OPER_ONLY_UMODES |
232 |
|
%token REDIRSERV |
233 |
|
%token REGEX_T |
234 |
|
%token REHASH |
246 |
– |
%token TREJECT_HOLD_TIME |
235 |
|
%token REMOTE |
236 |
|
%token REMOTEBAN |
237 |
|
%token RESTRICT_CHANNELS |
250 |
– |
%token RESTRICTED |
238 |
|
%token RSA_PRIVATE_KEY_FILE |
239 |
|
%token RSA_PUBLIC_KEY_FILE |
240 |
|
%token SSL_CERTIFICATE_FILE |
256 |
|
%token T_CLUSTER |
257 |
|
%token TYPE |
258 |
|
%token SHORT_MOTD |
272 |
– |
%token SILENT |
259 |
|
%token SPOOF |
260 |
|
%token SPOOF_NOTICE |
261 |
|
%token STATS_E_DISABLED |
265 |
|
%token STATS_P_OPER_ONLY |
266 |
|
%token TBOOL |
267 |
|
%token TMASKED |
282 |
– |
%token T_REJECT |
268 |
|
%token TS_MAX_DELTA |
269 |
|
%token TS_WARN_DELTA |
270 |
|
%token TWODOTS |
275 |
|
%token T_CCONN |
276 |
|
%token T_CCONN_FULL |
277 |
|
%token T_SSL_CIPHER_LIST |
293 |
– |
%token T_CLIENT_FLOOD |
278 |
|
%token T_DEAF |
279 |
|
%token T_DEBUG |
280 |
|
%token T_DLINE |
297 |
– |
%token T_DRONE |
281 |
|
%token T_EXTERNAL |
282 |
|
%token T_FULL |
283 |
|
%token T_INVISIBLE |
287 |
|
%token T_MAX_CLIENTS |
288 |
|
%token T_NCHANGE |
289 |
|
%token T_OPERWALL |
290 |
+ |
%token T_RECVQ |
291 |
|
%token T_REJ |
292 |
|
%token T_SERVER |
293 |
|
%token T_SERVNOTICE |
307 |
|
%token T_SERVICE |
308 |
|
%token T_SERVICES_NAME |
309 |
|
%token THROTTLE_TIME |
326 |
– |
%token TOPICBURST |
310 |
|
%token TRUE_NO_OPER_FLOOD |
328 |
– |
%token TKLINE |
329 |
– |
%token TXLINE |
330 |
– |
%token TRESV |
311 |
|
%token UNKLINE |
312 |
|
%token USER |
313 |
|
%token USE_EGD |
334 |
– |
%token USE_EXCEPT |
335 |
– |
%token USE_INVEX |
336 |
– |
%token USE_KNOCK |
314 |
|
%token USE_LOGGING |
338 |
– |
%token USE_WHOIS_ACTUALLY |
315 |
|
%token VHOST |
316 |
|
%token VHOST6 |
317 |
|
%token XLINE |
342 |
– |
%token WARN |
318 |
|
%token WARN_NO_NLINE |
319 |
|
%token T_SIZE |
320 |
|
%token T_FILE |
931 |
|
yy_aconf->rsa_public_key_file); |
932 |
|
|
933 |
|
file = BIO_new_file(yy_aconf->rsa_public_key_file, "r"); |
934 |
< |
new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, |
934 |
> |
new_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file, |
935 |
|
NULL, 0, NULL); |
936 |
|
BIO_set_close(file, BIO_CLOSE); |
937 |
|
BIO_free(file); |
1065 |
|
break; |
1066 |
|
} |
1067 |
|
|
1068 |
< |
yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL); |
1068 |
> |
yy_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL); |
1069 |
|
|
1070 |
|
if (yy_aconf->rsa_public_key == NULL) |
1071 |
|
{ |
1328 |
|
class_max_global | |
1329 |
|
class_max_local | |
1330 |
|
class_max_ident | |
1331 |
< |
class_sendq | |
1331 |
> |
class_sendq | class_recvq | |
1332 |
|
error ';' ; |
1333 |
|
|
1334 |
|
class_name: NAME '=' QSTRING ';' |
1394 |
|
yy_class->max_sendq = $3; |
1395 |
|
}; |
1396 |
|
|
1397 |
+ |
class_recvq: T_RECVQ '=' sizespec ';' |
1398 |
+ |
{ |
1399 |
+ |
if (conf_parser_ctx.pass == 1) |
1400 |
+ |
if ($3 >= CLIENT_FLOOD_MIN && $3 <= CLIENT_FLOOD_MAX) |
1401 |
+ |
yy_class->max_recvq = $3; |
1402 |
+ |
}; |
1403 |
+ |
|
1404 |
|
class_cidr_bitlen_ipv4: CIDR_BITLEN_IPV4 '=' NUMBER ';' |
1405 |
|
{ |
1406 |
|
if (conf_parser_ctx.pass == 1) |
1707 |
|
yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD; |
1708 |
|
}; |
1709 |
|
|
1728 |
– |
/* XXX - need check for illegal hostnames here */ |
1710 |
|
auth_spoof: SPOOF '=' QSTRING ';' |
1711 |
|
{ |
1712 |
|
if (conf_parser_ctx.pass == 2) |
1713 |
|
{ |
1714 |
|
MyFree(yy_conf->name); |
1715 |
|
|
1716 |
< |
if (strlen(yylval.string) < HOSTLEN) |
1716 |
> |
if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string)) |
1717 |
|
{ |
1718 |
|
DupString(yy_conf->name, yylval.string); |
1719 |
|
yy_aconf->flags |= CONF_FLAGS_SPOOF_IP; |
1720 |
|
} |
1721 |
|
else |
1722 |
|
{ |
1723 |
< |
ilog(LOG_TYPE_IRCD, "Spoofs must be less than %d..ignoring it", HOSTLEN); |
1723 |
> |
ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it."); |
1724 |
|
yy_conf->name = NULL; |
1725 |
|
} |
1726 |
|
} |
2171 |
|
{ |
2172 |
|
if (conf_parser_ctx.pass == 2) |
2173 |
|
SetConfAllowAutoConn(yy_aconf); |
2193 |
– |
} | BURST_AWAY |
2194 |
– |
{ |
2195 |
– |
if (conf_parser_ctx.pass == 2) |
2196 |
– |
SetConfAwayBurst(yy_aconf); |
2197 |
– |
} | TOPICBURST |
2198 |
– |
{ |
2199 |
– |
if (conf_parser_ctx.pass == 2) |
2200 |
– |
SetConfTopicBurst(yy_aconf); |
2174 |
|
} | T_SSL |
2175 |
|
{ |
2176 |
|
if (conf_parser_ctx.pass == 2) |
2495 |
|
general_max_nick_time | general_max_nick_changes | |
2496 |
|
general_max_accept | general_anti_spam_exit_message_time | |
2497 |
|
general_ts_warn_delta | general_ts_max_delta | |
2498 |
< |
general_kill_chase_time_limit | general_kline_with_reason | |
2499 |
< |
general_kline_reason | general_invisible_on_connect | |
2498 |
> |
general_kill_chase_time_limit | |
2499 |
> |
general_invisible_on_connect | |
2500 |
|
general_warn_no_nline | general_dots_in_ident | |
2501 |
|
general_stats_o_oper_only | general_stats_k_oper_only | |
2502 |
|
general_pace_wait | general_stats_i_oper_only | |
2510 |
|
general_opers_bypass_callerid | general_default_floodcount | |
2511 |
|
general_min_nonwildcard | general_min_nonwildcard_simple | |
2512 |
|
general_disable_remote_commands | |
2540 |
– |
general_client_flood | |
2513 |
|
general_throttle_time | general_havent_read_conf | |
2514 |
|
general_ping_cookie | |
2515 |
|
general_disable_auth | |
2516 |
|
general_tkline_expire_notices | general_gline_enable | |
2517 |
|
general_gline_duration | general_gline_request_duration | |
2518 |
|
general_gline_min_cidr | |
2519 |
< |
general_gline_min_cidr6 | general_use_whois_actually | |
2520 |
< |
general_reject_hold_time | general_stats_e_disabled | |
2519 |
> |
general_gline_min_cidr6 | |
2520 |
> |
general_stats_e_disabled | |
2521 |
|
general_max_watch | general_services_name | |
2522 |
|
error; |
2523 |
|
|
2555 |
|
ConfigFileEntry.gline_min_cidr6 = $3; |
2556 |
|
}; |
2557 |
|
|
2586 |
– |
general_use_whois_actually: USE_WHOIS_ACTUALLY '=' TBOOL ';' |
2587 |
– |
{ |
2588 |
– |
ConfigFileEntry.use_whois_actually = yylval.number; |
2589 |
– |
}; |
2590 |
– |
|
2591 |
– |
general_reject_hold_time: TREJECT_HOLD_TIME '=' timespec ';' |
2592 |
– |
{ |
2593 |
– |
GlobalSetOptions.rejecttime = yylval.number; |
2594 |
– |
}; |
2595 |
– |
|
2558 |
|
general_tkline_expire_notices: TKLINE_EXPIRE_NOTICES '=' TBOOL ';' |
2559 |
|
{ |
2560 |
|
ConfigFileEntry.tkline_expire_notices = yylval.number; |
2632 |
|
} |
2633 |
|
}; |
2634 |
|
|
2673 |
– |
general_kline_with_reason: KLINE_WITH_REASON '=' TBOOL ';' |
2674 |
– |
{ |
2675 |
– |
ConfigFileEntry.kline_with_reason = yylval.number; |
2676 |
– |
}; |
2677 |
– |
|
2678 |
– |
general_kline_reason: KLINE_REASON '=' QSTRING ';' |
2679 |
– |
{ |
2680 |
– |
if (conf_parser_ctx.pass == 2) |
2681 |
– |
{ |
2682 |
– |
MyFree(ConfigFileEntry.kline_reason); |
2683 |
– |
DupString(ConfigFileEntry.kline_reason, yylval.string); |
2684 |
– |
} |
2685 |
– |
}; |
2686 |
– |
|
2635 |
|
general_invisible_on_connect: INVISIBLE_ON_CONNECT '=' TBOOL ';' |
2636 |
|
{ |
2637 |
|
ConfigFileEntry.invisible_on_connect = yylval.number; |
2923 |
|
ConfigFileEntry.default_floodcount = $3; |
2924 |
|
}; |
2925 |
|
|
2978 |
– |
general_client_flood: T_CLIENT_FLOOD '=' sizespec ';' |
2979 |
– |
{ |
2980 |
– |
ConfigFileEntry.client_flood = $3; |
2981 |
– |
}; |
2982 |
– |
|
2926 |
|
|
2927 |
|
/*************************************************************************** |
2928 |
|
* section channel |
2931 |
|
'{' channel_items '}' ';'; |
2932 |
|
|
2933 |
|
channel_items: channel_items channel_item | channel_item; |
2934 |
< |
channel_item: channel_use_except | |
2992 |
< |
channel_use_invex | channel_use_knock | channel_max_bans | |
2934 |
> |
channel_item: channel_max_bans | |
2935 |
|
channel_knock_delay | channel_knock_delay_channel | |
2936 |
|
channel_max_chans_per_user | channel_max_chans_per_oper | |
2937 |
|
channel_quiet_on_ban | channel_default_split_user_count | |
2951 |
|
ConfigChannel.restrict_channels = yylval.number; |
2952 |
|
}; |
2953 |
|
|
3012 |
– |
channel_use_except: USE_EXCEPT '=' TBOOL ';' |
3013 |
– |
{ |
3014 |
– |
ConfigChannel.use_except = yylval.number; |
3015 |
– |
}; |
3016 |
– |
|
3017 |
– |
channel_use_invex: USE_INVEX '=' TBOOL ';' |
3018 |
– |
{ |
3019 |
– |
ConfigChannel.use_invex = yylval.number; |
3020 |
– |
}; |
3021 |
– |
|
3022 |
– |
channel_use_knock: USE_KNOCK '=' TBOOL ';' |
3023 |
– |
{ |
3024 |
– |
ConfigChannel.use_knock = yylval.number; |
3025 |
– |
}; |
3026 |
– |
|
2954 |
|
channel_knock_delay: KNOCK_DELAY '=' timespec ';' |
2955 |
|
{ |
2956 |
|
ConfigChannel.knock_delay = $3; |