Merge branch 'unreal60_dev' of https://github.com/unrealircd/unrealircd into piss60

piss60
alice 9 months ago
commit 1ae54bcd37

@ -0,0 +1,607 @@
/* Archivo de configuración para UnrealIRCd 6
*
* Simplemente copie este archivo a su directorio conf/, llámelo
* 'unrealircd.conf' y revíselo línea por línea (¡edítelo!)
*
* Importante: Todas las líneas, excepto { y } terminan con ;
* Esto es muy importante, si pierde un ; en algún lugar entonces el
* el analizador del archivo de configuración se quejará y el archivo no
* ser procesado correctamente!
* Si esta es tu primera experiencia con una configuración de UnrealIRCd
* entonces te recomendamos que leas un poco sobre la sintaxis,
* esto solo toma unos minutos y te ayudará mucho:
* https://www.unrealircd.org/docs/Configuration#Configuration_file_syntax
*
* Documentación de UnrealIRCd 6 (¡muy extensa!):
* https://www.unrealircd.org/docs/UnrealIRCd_6_documentation
*
* Preguntas frecuentes:
* https://www.unrealircd.org/docs/FAQ
*
*/
/* Esto es un comentario, todo el texto aquí es ignorado (tipo de comentario #1) */
// Esto también es un comentario, esta línea se ignora (tipo de comentario #2)
# Esto también es un comentario, nuevamente esta línea se ignora (tipo de comentario #3)
/* UnrealIRCd hace un uso intensivo de los módulos. Los módulos le permiten completamente
* personaliza el conjunto de características que deseas habilitar en UnrealIRCd.
* Ver: https://www.unrealircd.org/docs/Modules
*
* Al usar el incluir a continuación, le indicamos al IRCd que lea el archivo
* 'modules.default.conf' que cargará más de 150 módulos
* enviado con UnrealIRCd. En otras palabras: esto simplemente cargará
* todas las funciones disponibles en UnrealIRCd.
* Si está configurando UnrealIRCd por primera vez, le sugerimos
* utilizar esta. Luego, cuando todo esté funcionando, puedes venir
* volver más tarde para personalizar la lista (si lo desea).
*/
include "modules.default.conf";
/* Ahora incluyamos algunos otros archivos también:
* - help/help.conf para nuestro sistema on-IRC /HELPOP
* - badwords.conf para canal y modo de usuario +G
* - spamfilter.conf como ejemplo para el uso de spamfilter
* (Comentado)
* - operclass.default.conf contiene algunas buenas operclasses que
* puedes usar en tus bloques operativos.
*/
include "help/help.conf";
include "badwords.conf";
//include "spamfilter.conf";
include "operclass.default.conf";
include "snomasks.default.conf";
/* Cargar el módulo de encubrimiento predeterminado (2021 en adelante): */
loadmodule "cloak_sha256";
/* O cargue el módulo antiguo de UnrealIRCd 3.2/4/5 en su lugar: */
//loadmodule "cloak_md5";
/* Este es el bloque yo { } que básicamente dice quiénes somos.
* Define el nombre de nuestro servidor, alguna línea de información y un "sid" único.
* La identificación del servidor (sid) debe comenzar con un dígito seguido de dos dígitos o
* cartas. El sid debe ser único para su red IRC (cada servidor debe
* tener su propio sid).
*/
me {
name "irc.example.org";
info "ExampleNET Server";
sid "001";
}
/* El bloque admin { } define lo que verán los usuarios si escriben /ADMIN.
* Normalmente contiene información sobre cómo contactar con el administrador.
*/
admin {
"Bob Smith";
"bob";
"email@example.org";
}
/* Los clientes y servidores se colocan en bloques de clase { }, los definimos aquí.
* Los bloques de clase constan de los siguientes elementos:
* - pingfreq: con qué frecuencia hacer ping a un usuario/servidor (en segundos)
* - connfreq: con qué frecuencia intentamos conectarnos a este servidor (en segundos)
* - sendq: el tamaño máximo de cola para una conexión
* - recvq: máxima cola de recepción de una conexión (control de inundación)
*/
/* Clase de cliente con buenos valores predeterminados */
class clients
{
pingfreq 90;
maxclients 1000;
sendq 200k;
recvq 8000;
}
/* Clase especial para IRCOps con límites más altos */
class opers
{
pingfreq 90;
maxclients 50;
sendq 1M;
recvq 8000;
}
/* Clase de servidor con buenos valores predeterminados */
class servers
{
pingfreq 60;
connfreq 15; /* intenta conectarte cada 15 segundos */
maxclients 10; /* maximo de servidores */
sendq 20M;
}
/* Permitir que los bloques definan qué clientes pueden conectarse a este servidor.
* Esto le permite agregar una contraseña de servidor o restringir el servidor a
* IP específicas solamente. También configuras las conexiones máximas
* permitido por IP aquí.
* Ver también: https://www.unrealircd.org/docs/Allow_block
*/
/* Permitir el ingreso de todos, pero solo 3 conexiones por IP */
allow {
mask *;
class clients;
maxperip 3;
}
/* Los bloques Oper definen sus operadores IRC.
* Los operadores de IRC son personas que tienen "derechos adicionales" en comparación con otros,
* por ejemplo, pueden /MATAR a otras personas, iniciar la vinculación del servidor,
* /ÚNETE a los canales aunque estén prohibidos, etc.
*
* Para obtener más información sobre cómo convertirse en un IRCOp y cómo ser administrador
* tareas, ver: https://www.unrealircd.org/docs/IRCOp_guide
*
* Para obtener detalles sobre el propio bloque oper { }, consulte
* https://www.unrealircd.org/docs/Oper_block
*/
/* Aquí hay un bloque de operación de ejemplo para 'bobsmith' con la contraseña 'test'.
* ¡DEBES cambiar esto!
*/
oper bobsmith {
class opers;
mask *@*;
password "test";
/* Los permisos de operación se definen en un bloque 'operclass'.
* Ver https://www.unrealircd.org/docs/Operclass_block
* UnrealIRCd se envía con una serie de bloques predeterminados, consulte
* el artículo para una lista completa. Elegimos 'netadmin' aquí.
*/
operclass netadmin;
swhois "is a Network Administrator";
vhost netadmin.example.org;
}
/* Los bloques de escucha definen los puertos donde el servidor debe escuchar.
* En otras palabras: los puertos que los clientes y servidores pueden usar para
* conectarse a este servidor.
*
* Sintaxis:
* listen {
* {
* ip <ip>;
* port <port>;
* options {
* <options....>;
* }
* }
*/
/* Puerto IRC estándar 6667 */
listen {
ip *;
port 6667;
}
/* Puerto IRC estándar 6697 */
listen {
ip *;
port 6697;
options { tls; }
}
/* Puerto especial solo para servidores SSL/TLS para vincular */
listen {
ip *;
port 6900;
options { tls; serversonly; }
}
/* NOTA: Si está en una shell IRCd con múltiples IP y usa
* los bloques de escucha anteriores { } entonces probablemente obtendrás un
* Error 'Dirección ya en uso' y el ircd no se iniciará.
* Esto significa que DEBE vincularse a una IP específica en lugar de '*' como:
* escucha { ip 1.2.3.4; puerto 6667; }
* Por supuesto, reemplaza la IP con la IP que te fue asignada.
*/
/*
* Los bloques de enlace le permiten vincular varios servidores para formar una red.
* Ver https://www.unrealircd.org/docs/Tutorial:_Linking_servers
*/
link hub.ejemplo.org
{
incoming {
mask *@algo;
}
outgoing {
bind-ip *; /* o explícitamente una IP */
hostname hub.ejemplo.org;
port 6900;
options { tls; }
}
/* Usamos la huella digital SPKI del otro servidor para la autenticación.
* Ejecute './unrealircd spkifp' en el otro lado del linkeo para obtenerlo.
*/
password "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUV=" { spkifp; }
class servers;
}
/* El bloque de enlace para servicios suele ser mucho más simple.
* Para más información sobre qué son los Servicios,
* ver https://www.unrealircd.org/docs/Services
*/
link services.ejemplo.org
{
incoming {
mask 127.0.0.1;
}
password "cambiameporfavor";
class servers;
}
/* Las líneas U dan a otros servidores (incluso) más poder/comandos.
* Si usas servicios debes agregarlos aquí.
* ¡NUNCA pongas el nombre de un servidor UnrealIRCd aquí!
*/
ulines {
services.ejemnplo.org;
}
/* Aquí puede agregar una contraseña para los comandos /DIE y /RESTART exclusivos de IRCOp.
* Esto está destinado principalmente a proporcionar un poco de protección contra accidentes
* reinicios y muertes del servidor.
*/
drpass {
restart "restart";
die "die";
}
/* El bloque de registro define qué debe registrarse y en qué archivo.
* Ver también https://www.unrealircd.org/docs/Log_block
*/
/* Este es un buen valor predeterminado, registra todo excepto
* cosas de depuración y unión/parte/kick.
*/
log {
source {
all;
!debug;
!join.LOCAL_CLIENT_JOIN;
!join.REMOTE_CLIENT_JOIN;
!part.LOCAL_CLIENT_PART;
!part.REMOTE_CLIENT_PART;
!kick.LOCAL_CLIENT_KICK;
!kick.REMOTE_CLIENT_KICK;
}
destination {
file "ircd.log" { maxsize 100M; }
}
}
/* Con "aliases" puedes crear un alias como /ALGO para enviar un mensaje a
* algún usuario o bot. Suelen utilizarse para servicios.
*
* Tenemos una cantidad de archivos de alias preestablecidos, consulte el directorio alias/.
* A modo de ejemplo, aquí incluimos todos los alias utilizados para los servicios de anope.
*/
include "aliases/anope.conf";
/* Prohibir los apodos para que no puedan ser utilizados por usuarios regulares */
ban nick {
mask "*C*h*a*n*S*e*r*v*";
reason "Reservado para Servicios";
}
/* Baneo por ip.
* Tenga en cuenta que normalmente usa /KLINE, /GLINE y /ZLINE para esto.
*/
ban ip {
mask 195.86.232.81;
reason "Te odio";
}
/* Baneo del servidor: si vemos que este servidor está vinculado a alguien, lo desvinculamos */
ban server {
mask eris.berkeley.edu;
reason "Sal de aquí.";
}
/* Baneo de usuario: solo como ejemplo, normalmente usa /KLINE o /GLINE para esto */
ban user {
mask *tirc@*.saturn.bbn.com;
reason "Idiot";
}
/* Baneo del nombre real le permite prohibir clientes en función de su 'nombre real'
* o campo 'gecos'.
*/
ban realname {
mask "Equipo Swat";
reason "mIRKFORCE";
}
ban realname {
mask "sub7server";
reason "sub7";
}
/* Excepciones de baneo y TKL. Le permite eximir a los usuarios/máquinas de
* KLINE, GLINE, etc.
* Si es un IRCOp con una IP estática (y no hay personas que no sean de confianza en esa IP)
* entonces te sugerimos que te añadas aquí. Así siempre puedes entrar
* incluso si accidentalmente colocas una prohibición de *LINE en ti mismo.
*/
/* excepto que el baneo te proteja de KLINE y ZLINE */
except ban {
mask *@192.0.2.1;
// puede agregar más entradas de máscara aquí..
}
/* excepto el baneo con el tipo 'todos' (all) te proteja de GLINE, GZLINE, QLINE, SHUN */
except ban {
mask *@192.0.2.1;
type all;
}
/* Con los bloques de denegación de DCC puede prohibir los nombres de archivo para DCC */
deny dcc {
filename "*sub7*";
reason "Posible Sub7 Virus";
}
/* denegar canal le permite prohibir un canal (máscara) por completo */
deny channel {
channel "*warez*";
reason "Warez es ilegal";
class "clients";
}
/* Los VHosts (hosts virtuales) permiten a los usuarios adquirir un host diferente.
* Ver https://www.unrealircd.org/docs/Vhost_block
*/
/* Ejemplo de vhost que puede usar. En el tipo de IRC: prueba de prueba /VHOST
* NOTA: solo las personas con un host 'unrealircd.com' pueden usarlo para
* asegúrese de cambiar el vhost::mask antes de probar.
*/
vhost {
vhost odio.microsefrs.com;
mask *@unrealircd.com;
login "test";
password "test";
}
/* Los bloques de la lista negra consultarán un servicio de lista negra de DNS externo
* cada vez que un usuario se conecta, para ver si se conoce la dirección IP
* para causar ataques de drones, es una máquina pirateada conocida, etc.
* Documentación: https://www.unrealircd.org/docs/Blacklist_block
* O simplemente eche un vistazo a los bloques a continuación.
*/
/* DroneBL, probablemente la lista negra más popular utilizada por los servidores IRC.
* Ver https://dronebl.org/ para su documentación y el
* significado de los tipos de respuesta. Al momento de escribir usamos tipos:
* 3: IRC Drone, 5: Embotellador, 6: Spambot o drone desconocido,
* 7: Drone DDoS, 8: Proxy SOCKS, 9: Proxy HTTP, 10: ProxyChain,
* 11: Proxy de página web, 12: Open DNS Resolver, 13: Atacantes de fuerza bruta,
* 14: Proxy Wingate abierto, 15: Enrutador / puerta de enlace comprometidos,
* 16: Gusanos autoenraizadores.
*/
blacklist dronebl {
dns {
name dnsbl.dronebl.org;
type record;
reply { 3; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; }
}
action gline;
ban-time 24h;
reason "Proxy/Drone Detectado. Chequea https://dronebl.org/lookup?ip=$ip para más detalles.";
}
/* EFnetRBL, consulte https://rbl.efnetrbl.org/ para obtener la documentación
* y el significado de los tipos de respuesta.
* Al momento de escribir: 1 es proxy abierto, 4 es TOR, 5 es drones/inundaciones.
*
* NOTA: Si desea permitir proxies TOR en su servidor, entonces
* necesita eliminar el '4;' abajo en la sección de respuesta.
*/
blacklist efnetrbl {
dns {
name rbl.efnetrbl.org;
type record;
reply { 1; 4; 5; }
}
action gline;
ban-time 24h;
reason "Proxy/Drone/TOR detected. Check https://rbl.efnetrbl.org/?i=$ip for details.";
}
/* Puede incluir otros archivos de configuración */
/* include "klines.conf"; */
/* Configuración de la red */
set {
network-name "EjemploNET";
default-server "irc.ejemplo.org";
services-server "services.ejemplo.org";
stats-server "stats.ejemplo.org";
help-channel "#Ayuda";
cloak-prefix "Clk";
prefix-quit "Quit";
/* Las claves de ocultación deben ser las mismas en todos los servidores de la red.
* Se utilizan para generar hosts enmascarados y deben mantenerse en secreto.
* Las claves deben ser 3 cadenas aleatorias de 80 caracteres cada una (o más).
* y debe constar de minúsculas (a-z), mayúsculas (A-Z) y dígitos (0-9).
* SUGERENCIA: En *NIX, puede ejecutar './unrealircd gencloak' en su shell para dejar
* UnrealIRCd genera 3 cadenas aleatorias para ti.
*/
cloak-keys {
"Oozahho1raezoh0iMee4ohvegaifahv5xaepeitaich9tahdiquaid0geecipahdauVaij3zieph4ahi";
"y otra llave";
"y otra llave";
}
}
/* Configuración específica del servidor */
set {
kline-address 'agrega.una.dirección.de.correo-electrónico'; /* correo electrónico o URL que se muestra cuando un usuario está baneado */
modes-on-connect "+ixw"; /* cuando los usuarios se conecten, obtendrán estos modos de usuario */
modes-on-oper "+xws"; /* cuando alguien se convierte en IRCOp obtendrá estos modos */
modes-on-join "+nt"; /* modos de canal predeterminados cuando se crea un nuevo canal */
oper-auto-join "#opers"; / * Los IRCOps se unen automáticamente a este canal * /
options {
hide-ulines; /* ocultar líneas U en /MAP y /LINKS */
show-connect-info; /* mostrar mensajes de "buscando su nombre de host" al conectarse */
}
maxchannelsperuser 10; /* número máximo de canales que un usuario puede /JOIN */
/* El tiempo mínimo que un usuario debe estar conectado antes de que se le permita
* use un mensaje SALIR. Con suerte, esto ayudará a detener el spam.
*/
anti-spam-quit-message-time 10s;
/* O simplemente establezca una salida estática, lo que significa que se ignora cualquier razón /QUIT */
/* static-quit "Salida del cliente"; */
/* static-part hace lo mismo para /PART */
/* static-part yes; */
/* Protección contra inundaciones:
* Hay muchas configuraciones para esto y la mayoría tiene buenos valores predeterminados.
* Ver https://www.unrealircd.org/docs/Set_block#set::anti-flood
*/
anti-flood {
}
/* Configuración del filtro de spam */
spamfilter {
ban-time 1d; /* duración predeterminada de una prohibición de *LINE establecida por spamfilter */
ban-reason "Spam/Publicidad"; /* razón por defecto */
virus-help-channel "#Ayuda"; /* canal a usar para la acción 'viruschan' */
/* except "#Ayuda"; canal para eximir de Spamfilter */
}
/* Restringir ciertos comandos.
* Ver https://www.unrealircd.org/docs/Set_block#set::restrict-commands
*/
restrict-commands {
list {
connect-delay 60;
exempt-identified yes;
exempt-reputation-score 24;
}
invite {
connect-delay 120;
exempt-identified yes;
exempt-reputation-score 24;
}
/* Además de la capacidad de restringir cualquier comando,
* como se muestra arriba. También hay 4 tipos especiales.
* que puedes restringir. Estos son "mensajes privados",
* "aviso privado", "mensaje de canal" y "aviso de canal".
* Están comentados (deshabilitados) en este ejemplo:
*/
//private-message {
// connect-delay 10;
//}
//private-notice {
// connect-delay 10;
//}
}
}
/*
* Lo siguiente configurará la limitación de conexión de "usuarios desconocidos".
*
* Cuando UnrealIRCd detecta una gran cantidad de usuarios que se conectan desde direcciones IP
* que no se han visto antes, entonces se rechazan las conexiones de nuevas IP
* por encima de la tarifa establecida. Por ejemplo a las 10:60 solo se pueden conectar 10 usuarios por minuto
* que no se han visto antes. Las direcciones IP conocidas siempre pueden entrar,
* independientemente de la tarifa establecida. Lo mismo para los usuarios que inician sesión con SASL.
*
* Ver también https://www.unrealircd.org/docs/Connthrottle para más detalles.
* O simplemente siga leyendo los ajustes de configuración predeterminados a continuación:
*/
set {
connthrottle {
/* Primero debemos configurar lo que llamamos "usuarios conocidos".
* De forma predeterminada, estos son usuarios en direcciones IP que tienen
* una puntuación de 24 o superior. Una puntuación de 24 significa que el
* La IP estuvo conectada a esta red durante al menos 2 horas
* en el último mes (o mínimo 1 hora si está registrado).
* La opción sasl-bypass es otra configuración. Significa
* que los usuarios que se autentican en los servicios a través de SASL
* también se consideran usuarios conocidos.
* Usuarios en el grupo de "usuarios conocidos" (ya sea por reputación
* o por SASL) siempre están permitidas en este módulo.
*/
known-users {
minimum-reputation-score 24;
sasl-bypass yes;
}
/* Los nuevos usuarios son todos los usuarios que no pertenecen al
* grupo de usuarios conocidos. Se consideran "nuevos" y en
* caso de un alto número de tales nuevos usuarios que se conectan
* están sujetos a limitación de velocidad de conexión.
* Por defecto la tarifa es de 20 nuevos usuarios locales por minuto
* y 30 nuevos usuarios globales por minuto.
*/
new-users {
local-throttle 20:60;
global-throttle 30:60;
}
/* Esto configura cuando este módulo NO estará activo.
* La configuración predeterminada deshabilitará el módulo cuando:
* - El módulo de reputación se ha estado ejecutando durante menos de
* una semana. Si se ejecuta menos de 1 semana, entonces hay
* datos insuficientes para considerar quién es un "usuario conocido".
* - El servidor acaba de iniciarse (primeros 3 minutos).
*/
disabled-when {
reputation-gathering 1w;
start-delay 3m;
}
}
}
/* Finalmente, es posible que desee tener un MOTD (Mensaje del día), esto puede ser
* se hace creando un archivo de texto 'ircd.motd' en su directorio conf/.
* Este archivo se mostrará a sus usuarios al conectarse.
* Para obtener más información, consulte https://www.unrealircd.org/docs/MOTD_and_Rules
*/
/*
* Problemas o necesita más ayuda?
* 1) https://www.unrealircd.org/docs/UnrealIRCd_4_documentation
* 2) https://www.unrealircd.org/docs/Main_Page/es <- ¡responde el 80% de tus preguntas!
* 3) Si aún tiene problemas, puede obtener soporte:
* - Foros: https://forums.unrealircd.org/
* - IRC: irc.unrealircd.org (SSL en el puerto 6697) / #unreal-support
* ¡Tenga en cuenta que primero le pedimos que lea la documentación y las preguntas frecuentes!
*/

@ -128,32 +128,36 @@ help Umodes {
};
help Snomasks {
" Snomask significa 'Service NOtice MASK', controla (principalmente) qué";
"Snomask significa 'Service NOTice MASK', controla cuál";
" avisos del servidor que recibirá.";
" Use: /MODE nick +s <snomask>";
" Ej: /MODE blah +s +cF-j";
" El parámetro especifica qué snomasks quieres (o no quieres).";
" También puede eliminar todos los snomasks simplemente haciendo /MODE nick -s.";
" Uso: /MODE nick +s <snomask>";
"Ej: /MODE blah +s +cC-j";
" El parámetro especifica qué snomasks quiere (o no quiere).";
" También puedes eliminar todos los snomasks simplemente haciendo /MODE nick -s.";
"-";
" A continuación se muestra una lista de posibles snomasks:";
" ==-------------------------oOo-----------------------==";
" b = Ver resultados de blacklist";
" c = Ver conexiones/desconexiones en el servidor local";
" e = Ver mensajes del servidor 'Eyes' (OperOverride, /CHG* and /SET* usage, ..)";
" f = Ver alertas de inundación";
" F = Ver conexiones/desconexiones en servidores remotos (excepto U-Lines)";
" G = Ver avisos TKL (Gline, GZline, Shun, etc)";
" j = Ver avisos Junk (no recomendado para uso normal)";
" k = Ver avisos de KILL";
" n = Ver cambios de nick en el servidor local";
" N = Ver cambios de nick en servidores remotos";
" o = Ver avisos de oper-up";
" q = Ver cambios de nick rechazados debido a Q-Lines";
" s = Ver avisos generales";
" S = Ver coincidencias de spamfilter";
" v = Ver el uso del comando /VHOST";
" ==-------------------------oOo------------------------==";
};
" ==--------------------------oOo--------------------- --==";
"b = bloqueos de servidores (KLINE, GLINE, SHUN, etc.)";
"B = Mensajes del módulo DNS Blacklist";
"c = El cliente local se conecta";
"C = El cliente remoto se conecta (en otros servidores, excepto servicios/líneas u)";
"d = DCC rechazados debido a bloques Deny dcc";
"D = Depuración / basura (NO recomendado, cosas posiblemente inofensivas, ¡ruidoso!)";
"f = avisos de inundación (recomendado)";
"j = une, parte y patea";
"k = avisos de eliminación (uso de /KILL)";
"n = Cambios de nick locales";
"N = Avisos de cambio de nick remoto";
"q = Denegar avisos de rechazo de nick (QLINE)";
"s = Avisos del servidor: todos los demás avisos que no encajan en los otros snomasks";
" (incluye mensajes muy importantes, muy recomendable)";
"S = Aciertos del filtro de spam";
"o = anulación de IRCOp en canales (OperOverride)";
"O = IRCOp cambiando propiedades de usuario (/CHGNAME, /CHGIDENT, /CHGHOST, ..)";
" u obligar a un usuario a hacer cosas (/SAJOIN, /SAPART)";
"v = uso de VHOST";
" ==--------------------------oOo--------------------- ---==";
}
help Chmodes {
" Esta sección enumera todos los modos de canal posibles que pueden usarse con /MODE";

@ -57,7 +57,7 @@ EVENT(garbage_collect)
if (loop.do_garbage_collect == 1) {
loop.do_garbage_collect = 0;
unreal_log(ULOG_INFO, "main", "GARBAGE_COLLECT_STARTED", NULL, "Cleaned up $count garbage blocks",
(ii - freelinks));
log_data_integer("count", (ii - freelinks)));
}
}
if (loop.do_garbage_collect == 1)
@ -83,7 +83,7 @@ int match_tkls(Client *client)
{
unreal_log(ULOG_INFO, "tkl", "BAN_REALNAME", client,
"Banned client $client.details due to realname ban: $reason",
bconf->reason ? bconf->reason : "no reason");
log_data_string("reason", bconf->reason ? bconf->reason : "no reason"));
if (bconf->reason) {
if (IsUser(client))

@ -3,7 +3,7 @@
* (C) 2021 Bram Matthys (Syzop) and the UnrealIRCd Team
*
* See file AUTHORS in IRC package for additional names of
* the programmers.
* the programmers.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -886,6 +886,7 @@ LogData *log_data_link_block(ConfigItem_link *link)
json_object_set_new(j, "hostname", json_string_unreal(link->outgoing.hostname));
json_object_set_new(j, "ip", json_string_unreal(link->connect_ip));
json_object_set_new(j, "port", json_integer(link->outgoing.port));
json_object_set_new(j, "class", json_string_unreal(link->class->name));
if (!link->outgoing.bind_ip && iConf.link_bindip)
bind_ip = iConf.link_bindip;

@ -459,7 +459,7 @@ CMD_OVERRIDE_FUNC(override_links)
sendnumeric(client, RPL_LINKS, acptr->name, me.name,
1, (acptr->info[0] ? acptr->info : "(Unknown Location)"));
else
sendnumeric(client, RPL_LINKS, acptr->name, acptr->uplink->name,
sendnumeric(client, RPL_LINKS, acptr->name, acptr->uplink ? acptr->uplink->name : me.name,
acptr->hopcount, (acptr->info[0] ? acptr->info : "(Unknown Location)"));
}

@ -472,8 +472,8 @@ MultiLineMode *make_mode_str(Client *client, Channel *channel, Cmode_t oldem, in
if (curr == MAXMULTILINEMODES)
{
/* Should be impossible.. */
unreal_log(ULOG_ERROR, "mode", "MODE_MULTINE_EXCEEDED", client,
"A mode string caused an avalanche effect of more than $max_multiline modes "
unreal_log(ULOG_ERROR, "mode", "MODE_MULTILINE_EXCEEDED", client,
"A mode string caused an avalanche effect of more than $max_multiline_modes modes "
"in channel $channel. Caused by client $client. Expect a desync.",
log_data_integer("max_multiline_modes", MAXMULTILINEMODES),
log_data_channel("channel", channel));
@ -807,6 +807,7 @@ void do_mode_char_member_mode_new(Channel *channel, Cmode *handler, const char *
"[BUG] Client $target.details on channel $channel: "
"found via find_membership_link() but NOT found via find_member_link(). "
"This should never happen! Please report on https://bugs.unrealircd.org/",
log_data_client("target", target),
log_data_channel("channel", channel));
return;
}

@ -204,7 +204,7 @@ CMD_FUNC(cmd_protoctl)
if ((aclient = hash_find_id(sid, NULL)) != NULL)
{
unreal_log(ULOG_ERROR, "link", "LINK_DENIED_SID_COLLISION", client,
"Server link $client rejected. Server with SID $sid already exist via uplink $exiting_client.server.uplink.",
"Server link $client rejected. Server with SID $sid already exist via uplink $existing_client.server.uplink.",
log_data_string("sid", sid),
log_data_client("existing_client", aclient));
exit_client(client, NULL, "SID collision");

@ -1200,6 +1200,7 @@ CMD_FUNC(cmd_sid)
unreal_log(ULOG_ERROR, "link", "REMOTE_LINK_DENIED_SERVER_BAN", client,
"Denied remote server $servername which was introduced by $client: "
"Server is banned ($ban_reason)",
log_data_string("servername", servername),
log_data_string("ban_reason", bconf->reason));
/* Before UnrealIRCd 6 this would SQUIT the server who introduced
* this server. That seems a bit of an overreaction, so we now

@ -3706,7 +3706,7 @@ void tkl_sync_send_entry(int add, Client *sender, Client *to, TKL *tkl)
} else
{
unreal_log(ULOG_FATAL, "tkl", "BUG_TKL_SYNC_SEND_ENTRY", NULL,
"[BUG] tkl_sync_send_entry() called for '%s' but unknown type: $tkl.type_string ($tkl_type_int)",
"[BUG] tkl_sync_send_entry() called, but unknown type: $tkl.type_string ($tkl_type_int)",
log_data_tkl("tkl", tkl),
log_data_integer("tkl_type_int", typ));
abort();
@ -4123,7 +4123,7 @@ CMD_FUNC(cmd_tkl_add)
{
unreal_log(ULOG_WARNING, "tkl", "TKL_ADD_INVALID", client,
"Invalid TKL entry from $client: "
"Spamfilter '$spamfilter_string' has unkown match-type '$spamfilter_type'",
"Spamfilter '$spamfilter_string' has unknown match-type '$spamfilter_type'",
log_data_string("spamfilter_string", match_string),
log_data_string("spamfilter_type", parv[10]));
return;
@ -4133,7 +4133,7 @@ CMD_FUNC(cmd_tkl_add)
{
unreal_log(ULOG_WARNING, "tkl", "TKL_ADD_INVALID", client,
"Invalid TKL entry from $client: "
"Spamfilter '$spamfilter_string' has unkown targets '$spamfilter_targets'",
"Spamfilter '$spamfilter_string' has unknown targets '$spamfilter_targets'",
log_data_string("spamfilter_string", match_string),
log_data_string("spamfilter_targets", parv[3]));
return;
@ -4143,7 +4143,7 @@ CMD_FUNC(cmd_tkl_add)
{
unreal_log(ULOG_WARNING, "tkl", "TKL_ADD_INVALID", client,
"Invalid TKL entry from $client: "
"Spamfilter '$spamfilter_string' has unkown action '$spamfilter_action'",
"Spamfilter '$spamfilter_string' has unknown action '$spamfilter_action'",
log_data_string("spamfilter_string", match_string),
log_data_string("spamfilter_action", parv[4]));
return;
@ -4312,7 +4312,7 @@ CMD_FUNC(cmd_tkl_del)
{
unreal_log(ULOG_WARNING, "tkl", "TKL_DEL_INVALID", client,
"Invalid TKL deletion request from $client: "
"Spamfilter '$spamfilter_string' has unkown targets '$spamfilter_targets'",
"Spamfilter '$spamfilter_string' has unknown targets '$spamfilter_targets'",
log_data_string("spamfilter_string", match_string),
log_data_string("spamfilter_targets", parv[3]));
return;
@ -4322,7 +4322,7 @@ CMD_FUNC(cmd_tkl_del)
{
unreal_log(ULOG_WARNING, "tkl", "TKL_DEL_INVALID", client,
"Invalid TKL deletion request from $client: "
"Spamfilter '$spamfilter_string' has unkown action '$spamfilter_action'",
"Spamfilter '$spamfilter_string' has unknown action '$spamfilter_action'",
log_data_string("spamfilter_string", match_string),
log_data_string("spamfilter_action", parv[4]));
return;

@ -354,7 +354,7 @@ SSL_CTX *init_ctx(TLSOptions *tlsoptions, int server)
if (SSL_CTX_set_ciphersuites(ctx, tlsoptions->ciphersuites) == 0)
{
unreal_log(ULOG_ERROR, "config", "TLS_INVALID_CIPHERSUITES_LIST", NULL,
"Failed to set TLS ciphersuites list '$tls_ciphers_list'\n$tls_error.all",
"Failed to set TLS ciphersuites list '$tls_ciphersuites_list'\n$tls_error.all",
log_data_string("tls_ciphersuites_list", tlsoptions->ciphersuites),
log_data_tls_error());
goto fail;

Loading…
Cancel
Save