/* Default snomask configuration.
 *
 * DO NOT EDIT THIS FILE! IT WILL BE OVERWRITTEN DURING NEXT UPGRADE!!
 * If you want to customize it, make a copy of this file
 *  (eg: name it snomasks.custom.conf) and edit it.
 * Then include that file from your unrealircd.conf instead of this one.
 */

/* Server bans snomask - 'b' */
log {
	source {
		tkl.BAN_REALNAME;
		tkl.TKL_ADD;
		tkl.TKL_DEL;
		tkl.TKL_ADD_TEMPSHUN;
		tkl.TKL_DEL_TEMPSHUN;
		tkl.TKL_EXPIRE;
		tkl.RMTKL_COMMAND;
	}
	destination {
		snomask b;
	}
}

/* Blacklist snomask: 'B' */
log {
	source {
		blacklist;
	}
	destination {
		snomask B;
	}
}

/* Local client connects snomask - 'c' */
log {
	source {
		connect.LOCAL_CLIENT_CONNECT;
		connect.LOCAL_CLIENT_DISCONNECT;
	}
	destination {
		snomask c;
	}
}

/* Remote client connects snomask - 'C' */
log {
	source {
		connect.REMOTE_CLIENT_CONNECT;
		connect.REMOTE_CLIENT_DISCONNECT;
	}
	destination {
		snomask C;
	}
}

/* DCC rejections snomask - 'd' */
log {
	source {
		dcc;
	}
	destination {
		snomask d;
	}
}

/* Debug snomask (not recommended) - 'D' */
log {
	source {
		debug;
	}
	destination {
		snomask D;
	}
}

/* Floods snomask - 'f' */
log {
	source {
		flood;
	}
	destination {
		snomask f;
	}
}

/* Join, parts, kicks - 'j' */
log {
	source {
		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 {
		snomask j;
	}
}

/* Kill snomask */
log {
	source {
		kill;
	}
	destination {
		snomask k;
	}
}

/* Local nick changes snomask - 'n' */
log {
	source {
		nick.LOCAL_NICK_CHANGE;
	}
	destination {
		snomask n;
	}
}

/* Remote nick changes snomask - 'N' */
log {
	source {
		nick.REMOTE_NICK_CHANGE;
	}
	destination {
		snomask N;
	}
}

/* Deny nick (QLINE) rejections snomask - 'q' */
log {
	source {
		nick.QLINE_NICK_LOCAL_ATTEMPT;
		nick.QLINE_NICK_REMOTE;
	}
	destination {
		snomask q;
	}
}

/* Spamfilter hits snomask - 'S' */
log {
	source {
		tkl.SPAMFILTER_MATCH;
	}
	destination {
		snomask S;
	}
}

/* IRCOp overriding in channels (OperOverride) - 'o' */
log {
	source {
		operoverride;
	}
	destination {
		snomask o;
	}
}

/* IRCOp changing user properties or forcing users to do things - 'O' */
log {
	source {
		chgcmds;
		sacmds;
	}
	destination {
		snomask O;
	}
}

/* VHOST usage - 'v' */
log {
	source {
		vhost;
	}
	destination {
		snomask v;
	}
}

/* JSON-RPC usage - 'R' */
log {
	source {
		rpc;
	}
	destination {
		snomask R;
	}
}

/* Spam reports - 'r' */
log {
	source {
		spamreport;
	}
	destination {
		snomask r;
	}
}

/* Connection-limit rejections (maxperip / connthrottle) - 'x' */
log {
	source {
		connthrottle.CONNTHROTTLE_IPV6_LIMIT;
		maxperip.MAXPERIP_LIMIT;
	}
	destination {
		snomask x;
	}
}

/* Snomask s (server notices) - the "catch all" snomask for all other things */
log {
	source {
		link;
		oper;
		!debug;
		nomatch;
	}
	destination {
		snomask s;
	}
}

/* These log sources are sent to all servers (globally).
 * These are generally two categories:
 * 1) Things that affect the network as a whole, eg linking
 * 2) Things that otherwise cannot be logged by a remote server
 *    that may interest ircops. Eg: a spamfilter match,
 *    since that would otherwise not be propagated.
 */
log {
	source {
		/* All link messages affect the network so
		 * these should be global. Except for the
		 * link connecting... and timeout while
		 * connecting.. messages, which can be noisy.
		 */
		link;
		!link.LINK_CONNECTING;
		!link.LINK_CONNECT_TIMEOUT;
		!link.SERVER_LINKED_REMOTE;
		!link.SERVER_LINKED;
		/* All oper up/downs */
		oper;
		/* Flood messages, important to keep an eye on, network-wide */
		flood;
		/* TEMPSHUN: these are otherwise missing for snomask 'b' */
		tkl.TKL_ADD_TEMPSHUN;
		tkl.TKL_DEL_TEMPSHUN;
		/* Spamfilter matches: needed for snomask 'S' */
		tkl.SPAMFILTER_MATCH;
		/* Critical issue: */
		tls.TLS_CERT_EXPIRING;
		/* SAMODE: needed for snomask 'o' */
		samode.SAMODE_COMMAND;
		/* Blacklist hits */
		blacklist;
		/* Central blocklist hits and errors */
		central-blocklist;
		/* Never any debug messages */
		!debug;
	}
	destination {
		remote;
	}
}
