summaryrefslogtreecommitdiffstats
path: root/meta.pl
diff options
context:
space:
mode:
authorLibravatarWilliam Heimbigner <william.heimbigner@gmail.com>2013-03-07 10:35:43 +0000
committerLibravatarWilliam Heimbigner <william.heimbigner@gmail.com>2013-03-07 10:35:43 +0000
commitfdb1d6257cb9871c687e13b1ac1ec038ed2529e4 (patch)
tree94b21da667654e56d20b3ba0e194a6a846226d61 /meta.pl
parent28e8eda8a99d2ea148741b2783b4f6110a8927d8 (diff)
Added logging of kicks/bans/quiets/removes/klines/kills to a special SQL table and corresponding text files
Enabled SQL debugging Bugfix: Only attempt to determine a host's IP if it doesn't contain a '/' Updates to channels.xml and users.xml Adjusted ;userx add and ;userx flags such that A cannot give B a flag that A doesn't already have Tweaked the ;help command Fixed ;mship such that it will respond even if it can't see the nick provided. Tweaked ;status to give output in format like 7d22h18m3s instead of 9814798712 seconds Added a ;teredo helper command to give info on IPv6 teredo-tunneled connections Added a nick blacklist file (to counter bot nicklists). Added a english wordlist file, for "garbage" detection. Added ;investigate and ;investigate2 commands Added a way to not throttle info-risk threats Added special detection for a cycling botnet Added special detection for bots that join, say something, and immediately quit Added detection for ascii art Added detection for "garbage" text Added fuzzy-matching against a set of nicks Added "real IP" to state tracking and logging, which "decrypts" gateway/web and teredo IPs Moved sigalarm code into meta.pl Improved statsp tracking, and logs it to a file Ping-pong every 30 seconds, auto-reconnect on persistent lag. Ensure inspector routine is always called AFTER log-handling routines Fixed a state-tracking bug in topic change handling Fixed a state-tracking bug with nick changes Fixed some state-tracking bugs with mode changes Determine who is impacted when a quiet/ban mask is placed Fixed handling of CTCP SOURCE requests Added feature where it keeps a 30 line "backlog" of each channel in memory. Added the reason for parts and quits to text logging
Diffstat (limited to 'meta.pl')
-rwxr-xr-xmeta.pl31
1 files changed, 27 insertions, 4 deletions
diff --git a/meta.pl b/meta.pl
index 47c9d9b..7586b23 100755
--- a/meta.pl
+++ b/meta.pl
@@ -18,10 +18,13 @@ $Data::Dumper::Useqq=1;
%::eline=();
$::pass = '';
+@::nick_blacklist=();
@::string_blacklist=();
$::netsplit = 0;
$::debug = 0;
$::cset = '';
+$::pacealerts = 1;
+%::wordlist = ();
## debug variables. 0 to turn off debugging, else set it to a Term::ANSIColor constant.
%::debugx = (
@@ -32,14 +35,16 @@ $::cset = '';
"chanstate" => MAGENTA,
"restrictions" => BLUE,
"startup" => YELLOW,
- "mysql" => 0,
+ "mysql" => CYAN,
"inspector" => 0,
"commander" => GREEN,
"msg" => GREEN,
"dcc" => RED,
- "misc" => 0, #RED
+ "misc" => 0, #RED,
"latency" => RED,
- "statsp" => 0 #MAGENTA
+ "statsp" => MAGENTA,
+ "ctcp" => 0, #RED,
+ "logger" => 0
);
%::dsock = ();
%::spy = ();
@@ -54,6 +59,13 @@ $SIG{__WARN__} = sub {
print STDERR strftime("%F %T", gmtime), RED, ' WARNING: ', RESET, $_[0];
};
+sub alarmdeath
+{
+ die "SIG ALARM!!!\n";
+}
+$SIG{ALRM} = \&alarmdeath;
+alarm 300;
+
BEGIN {
my @modules = qw/Util Xml Inspect Event Services Log Command Classes Mysql/;
require 'modules/' . lc $_ . '.pl' foreach @modules;
@@ -75,9 +87,12 @@ sub init {
$host = ${$::settings->{server}}[rand @{$::settings->{server}}];
ASM::Util->dprint( "Connecting to $host", "startup");
$irc->debug($::debug);
- $::db = ASM::DB->new($::mysql->{db}, $::mysql->{host}, $::mysql->{port}, $::mysql->{user}, $::mysql->{pass}, $::mysql->{table}, $::mysql->{dblog});
+ $::db = ASM::DB->new($::mysql->{db}, $::mysql->{host}, $::mysql->{port},
+ $::mysql->{user}, $::mysql->{pass}, $::mysql->{table},
+ $::mysql->{actiontable}, $::mysql->{dblog});
$conn = $irc->newconn( Server => $host,
Port => $::settings->{port} || '6667',
+ SSL => defined($::settings->{ssl}),
Nick => $::settings->{nick},
Ircname => $::settings->{realname},
Username => $::settings->{username},
@@ -97,6 +112,9 @@ sub init {
my @strbl = io('string_blacklist.txt')->getlines;
chomp @strbl;
@::string_blacklist = @strbl;
+ my @nickbl = io('nick_blacklist.txt')->getlines;
+ chomp @nickbl;
+ @::nick_blacklist = @nickbl;
%::proxies = ();
my @proxy = io('proxy.txt')->getlines;
chomp @proxy;
@@ -105,6 +123,11 @@ sub init {
$::proxies{$1} = 1;
}
}
+ my @wl=io('wordlist.txt')->getlines;
+ chomp @wl;
+ foreach my $item (@wl) {
+ $::wordlist{lc $item} = 1;
+ }
$irc->start();
}