1 |
|
/* |
2 |
|
* ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) |
3 |
|
* |
4 |
< |
* Copyright (c) 1997-2016 ircd-hybrid development team |
4 |
> |
* Copyright (c) 1997-2018 ircd-hybrid development team |
5 |
|
* |
6 |
|
* This program is free software; you can redistribute it and/or modify |
7 |
|
* it under the terms of the GNU General Public License as published by |
35 |
|
#include "conf.h" |
36 |
|
#include "parse.h" |
37 |
|
#include "modules.h" |
38 |
+ |
#include "tls.h" |
39 |
|
|
40 |
|
|
41 |
|
/* Types for output_type in InfoStruct */ |
149 |
|
"Maximum topic length" |
150 |
|
}, |
151 |
|
{ |
151 |
– |
"libgeoip_ipv4_database_file", |
152 |
– |
OUTPUT_DECIMAL, |
153 |
– |
&ConfigServerInfo.libgeoip_ipv4_database_file, |
154 |
– |
"Path to the libGeoIP IPv4 database file" |
155 |
– |
}, |
156 |
– |
{ |
157 |
– |
"libgeoip_ipv6_database_file", |
158 |
– |
OUTPUT_DECIMAL, |
159 |
– |
&ConfigServerInfo.libgeoip_ipv6_database_file, |
160 |
– |
"Path to the libGeoIP IPv6 database file" |
161 |
– |
}, |
162 |
– |
{ |
152 |
|
"use_logging", |
153 |
|
OUTPUT_BOOLEAN_YN, |
154 |
|
&ConfigLog.use_logging, |
172 |
|
&ConfigChannel.invite_client_time, |
173 |
|
"How many invite_client_count invites are allowed in this time" |
174 |
|
}, |
186 |
– |
|
175 |
|
{ |
176 |
|
"invite_delay_channel", |
177 |
|
OUTPUT_DECIMAL, |
179 |
|
"Delay between INVITE attempts to a channel" |
180 |
|
}, |
181 |
|
{ |
182 |
+ |
"invite_expire_time", |
183 |
+ |
OUTPUT_DECIMAL, |
184 |
+ |
&ConfigChannel.invite_expire_time, |
185 |
+ |
"Amount of time an INVITE will be active until it expires" |
186 |
+ |
}, |
187 |
+ |
{ |
188 |
|
"knock_client_count", |
189 |
|
OUTPUT_DECIMAL, |
190 |
|
&ConfigChannel.knock_client_count, |
209 |
|
"Maximum number of channels a user can join" |
210 |
|
}, |
211 |
|
{ |
212 |
+ |
"max_invites", |
213 |
+ |
OUTPUT_DECIMAL, |
214 |
+ |
&ConfigChannel.max_invites, |
215 |
+ |
"Maximum number of channels a user can be invited to" |
216 |
+ |
}, |
217 |
+ |
{ |
218 |
|
"max_bans", |
219 |
|
OUTPUT_DECIMAL, |
220 |
|
&ConfigChannel.max_bans, |
221 |
|
"Total +b/e/I modes allowed in a channel" |
222 |
|
}, |
223 |
|
{ |
224 |
+ |
"max_bans_large", |
225 |
+ |
OUTPUT_DECIMAL, |
226 |
+ |
&ConfigChannel.max_bans_large, |
227 |
+ |
"Total +b/e/I modes allowed in a +L channel" |
228 |
+ |
}, |
229 |
+ |
{ |
230 |
|
"flatten_links", |
231 |
|
OUTPUT_BOOLEAN_YN, |
232 |
|
&ConfigServerHide.flatten_links, |
359 |
|
"Startup value of FLOODCOUNT" |
360 |
|
}, |
361 |
|
{ |
362 |
+ |
"default_floodtime", |
363 |
+ |
OUTPUT_DECIMAL, |
364 |
+ |
&ConfigGeneral.default_floodtime, |
365 |
+ |
"Startup value of FLOODTIME" |
366 |
+ |
}, |
367 |
+ |
{ |
368 |
|
"failed_oper_notice", |
369 |
|
OUTPUT_BOOLEAN_YN, |
370 |
|
&ConfigGeneral.failed_oper_notice, |
371 |
< |
"Inform opers if someone tries to /oper with the wrong password" |
371 |
> |
"Inform opers if someone tries to /oper with the wrong credentials" |
372 |
|
}, |
373 |
|
{ |
374 |
|
"dots_in_ident", |
401 |
|
"Maximum nicknames on accept list" |
402 |
|
}, |
403 |
|
{ |
404 |
+ |
"whowas_history_length", |
405 |
+ |
OUTPUT_DECIMAL, |
406 |
+ |
&ConfigGeneral.whowas_history_length, |
407 |
+ |
"Length of the WHOWAS nick name history list" |
408 |
+ |
}, |
409 |
+ |
{ |
410 |
|
"anti_nick_flood", |
411 |
|
OUTPUT_BOOLEAN_YN, |
412 |
|
&ConfigGeneral.anti_nick_flood, |
691 |
|
} |
692 |
|
|
693 |
|
if (HasUMode(source_p, UMODE_OPER)) |
694 |
+ |
{ |
695 |
|
send_conf_options(source_p); |
696 |
|
|
697 |
+ |
if (tls_is_initialized()) |
698 |
+ |
sendto_one_numeric(source_p, &me, RPL_INFO, tls_get_version()); |
699 |
+ |
} |
700 |
+ |
|
701 |
|
send_birthdate_online_time(source_p); |
702 |
|
|
703 |
|
sendto_one_numeric(source_p, &me, RPL_ENDOFINFO); |
717 |
|
static int |
718 |
|
m_info(struct Client *source_p, int parc, char *parv[]) |
719 |
|
{ |
720 |
< |
static time_t last_used = 0; |
720 |
> |
static uintmax_t last_used = 0; |
721 |
|
|
722 |
|
if ((last_used + ConfigGeneral.pace_wait) > CurrentTime) |
723 |
|
{ |
727 |
|
|
728 |
|
last_used = CurrentTime; |
729 |
|
|
730 |
< |
if (!ConfigServerHide.disable_remote_commands) |
731 |
< |
if (hunt_server(source_p, ":%s INFO :%s", 1, parc, parv) != HUNTED_ISME) |
730 |
> |
if (ConfigServerHide.disable_remote_commands == 0) |
731 |
> |
if (server_hunt(source_p, ":%s INFO :%s", 1, parc, parv)->ret != HUNTED_ISME) |
732 |
|
return 0; |
733 |
|
|
734 |
|
send_info_text(source_p); |
749 |
|
static int |
750 |
|
ms_info(struct Client *source_p, int parc, char *parv[]) |
751 |
|
{ |
752 |
< |
if (hunt_server(source_p, ":%s INFO :%s", 1, parc, parv) != HUNTED_ISME) |
752 |
> |
if (server_hunt(source_p, ":%s INFO :%s", 1, parc, parv)->ret != HUNTED_ISME) |
753 |
|
return 0; |
754 |
|
|
755 |
|
send_info_text(source_p); |