From 06e93504900b8ffa3ff633f81bc9ac07d4b51b92 Mon Sep 17 00:00:00 2001 From: div0 Date: Fri, 23 May 2008 14:02:54 +0000 Subject: [PATCH] move "timing problems" feature from rbiserver.pl to rcon2irc.pl git-svn-id: svn://svn.icculus.org/nexuiz/trunk@3653 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- Docs/server/rcon2irc/rbiserver.pl | 23 ----------------------- Docs/server/rcon2irc/rcon2irc.pl | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/Docs/server/rcon2irc/rbiserver.pl b/Docs/server/rcon2irc/rbiserver.pl index f8d614960..3c5a5f5f6 100644 --- a/Docs/server/rcon2irc/rbiserver.pl +++ b/Docs/server/rcon2irc/rbiserver.pl @@ -87,26 +87,3 @@ sub markmap($$$$;$) $store{rbi_totalvotes} = $totalvotes; return 0; } ], - -# retrieve system load data -[ dp => q{timing: (([0-9.]*)% CPU, ([0-9.]*)% lost, offset avg ([0-9.]*)ms, max ([0-9.]*)ms, sdev ([0-9.]*)ms)} => sub { - my ($all, $cpu, $lost, $avg, $max, $sdev) = @_; - return 0 # don't complain when just on the voting screen - if !$store{playing}; - return 0 # don't complain if it was less than 0.5% - if $lost < 0.5; - return 0 # don't complain if nobody is looking - if $store{slots_active} == 0; - return 0 # don't complain in the first two minutes - if time() - $store{map_starttime} < 120; - return 0 # don't complain if it was already at least half as bad in this round - if $store{map_starttime} == $store{timingerror_map_starttime} and $lost <= 2 * $store{timingerror_lost}; - $store{timingerror_map_starttime} = $store{map_starttime}; - $store{timingerror_lost} = $lost; - out dp => 0, 'rcon2irc_say_as server "There are currently some severe system load problems. A log file has been written."'; - #my $subj = "slow $lost% on $store{slots_active}p $store{map} @{[int(time() - $store{map_starttime})]}s on $config{dp_server}"; - #system "{ echo '$subj'; echo '$cpu% CPU, $lost% lost, offset ms: $avg max $max sdev $sdev'; top -b -n 1; } | mail -s 'Nexuiz: $subj' divVerent\@alientrap.org"; - out irc => 1, "PRIVMSG $config{irc_channel} :\001ACTION has big trouble on $store{map} after @{[int(time() - $store{map_starttime})]}s: $all\001"; - out irc => 1, "PRIVMSG OpBaI :\001ACTION has big trouble on $store{map} after @{[int(time() - $store{map_starttime})]}s: $all\001"; - return 0; -} ], diff --git a/Docs/server/rcon2irc/rcon2irc.pl b/Docs/server/rcon2irc/rcon2irc.pl index 7f93cb610..d71bde401 100755 --- a/Docs/server/rcon2irc/rcon2irc.pl +++ b/Docs/server/rcon2irc/rcon2irc.pl @@ -1115,6 +1115,27 @@ sub irc_joinstage($) out irc => 0, "PRIVMSG $config{irc_channel} :\001ACTION would have LIKED to put the scores here, but they wouldn't fit :(\001"; return 0; } ], + + # complain when system load gets too high + [ dp => q{timing: (([0-9.]*)% CPU, ([0-9.]*)% lost, offset avg ([0-9.]*)ms, max ([0-9.]*)ms, sdev ([0-9.]*)ms)} => sub { + my ($all, $cpu, $lost, $avg, $max, $sdev) = @_; + return 0 # don't complain when just on the voting screen + if !$store{playing}; + return 0 # don't complain if it was less than 0.5% + if $lost < 0.5; + return 0 # don't complain if nobody is looking + if $store{slots_active} == 0; + return 0 # don't complain in the first two minutes + if time() - $store{map_starttime} < 120; + return 0 # don't complain if it was already at least half as bad in this round + if $store{map_starttime} == $store{timingerror_map_starttime} and $lost <= 2 * $store{timingerror_lost}; + $store{timingerror_map_starttime} = $store{map_starttime}; + $store{timingerror_lost} = $lost; + out dp => 0, 'rcon2irc_say_as server "There are currently some severe system load problems. The admins have been notified."'; + out irc => 1, "PRIVMSG $config{irc_channel} :\001ACTION has big trouble on $store{map} after @{[int(time() - $store{map_starttime})]}s: $all\001"; + #out irc => 1, "PRIVMSG OpBaI :\001ACTION has big trouble on $store{map} after @{[int(time() - $store{map_starttime})]}s: $all\001"; + return 0; + } ], ); -- 2.39.2