we have a script that might cause this problem
RatioChecker.lua
--[[
HSS Check 1.0b LUA 5.1x [Strict] [API 2]
Hub Share Slot Check
By Mutor 12/25/07
Provides limits per profile for:
-Minimum share
-Maximum hubs
-Minimum slot:hub ratio
Option for disconnect,kick or ban
Messages user before removal
Reports to: Nick, Ops or All
Checks for myinfo changes after login
Protect by nick option
Action taken if MyINFO is invalid
+Changes from 1.0 12/27/07
+Added option to use hub/slot ratio or max slot setting
+Added clean hub on script start
~Changed MyINFO checking [checked only after connection]
]]
-- Reporting function
-- 0 = Disabled 1 = SendToNick 2 = SendToOps, 3 = SendToAll
local Report = 3
-- If Report = 0, then set Nick
local OpNick = ""--"Mutor"
-- Name for Bot
local Bot = SetMan.GetString(21)
-- Penalty for offenders 1=Disconnect, 2 = Kick[default tempban], 3 = Ban
local Penalty = 1
-- Set Your Profiles
-- [#] = {MinShare in GB,MaxHubs,*Slot/Hub Ratio OR Max Slots},
local Profiles = {
[-1] = {30960,0,0},
[0] = {0,0,0},
[1] = {0,0,0},
[2] = {0,0,0},
[3] = {0,0,0},
[4] = {0,0,0},
[5] = {512,0,0},
[6] = {1024,0,0},
[7] = {10,0,0},
}
-- *Use slot count as a ratio? [3rd value in the Profiles array] true/false
-- *If set to false slot count is max slot limit set Profiles array accordingly
local Ratio = false
local SafeNicks = {
["[10Mbit]Ben"] = true,
["WebReg"] = true,
["ruler"] = true,
["123Rizzo"] = true,
}
OnStartup = function()
for _,user in ipairs(Core.GetOnlineUsers()) do
CheckUser(user)
end
collectgarbage("collect")
end
UserConnected = function(user)
CheckUser(user)
end
OpConnected,RegConnected = UserConnected,UserConnected
MyINFOArrival = function(user,data)
if Core.GetUserValue(user,9) then
CheckUser(user)
end
end
CheckUser = function(user)
if not SafeNicks[user.sNick] then
local t = {}
for i = 16, 21 do
if i < 18 or i > 20 then
local x = Core.GetUserValue(user,i)
if x then
table.insert(t,tonumber(x))
end
end
end
if #t == 3 then
local tab = Profiles[user.iProfile]
if tab then
local rsn
local p,m,z,x = GetProf(user.iProfile),"",1024^3
if tab[1] > 0 and t[1] < (tab[1]* z) then
rsn = "Under minimum share limit"
m,x = FmtSz((tab[1]* z) - t[1]).."
short of minimum share of "..
FmtSz(tab[1] * z).." for "..p.."s.",true
elseif tab[2] > 0 and t[2] > tab[2] then
rsn = "Over maximum hub limit."
m,x = t[2] - tab[2].." too many hubs
(Max: "..tostring(tab[2])..
" ) for "..p.."s.",true
else
if Ratio then
--if tab[3]> 0 and (t[3]/t[2] <
tab[3]*t[2]) then
if t[2] < 1 and t[3] < 1 or
tab[3]> 0 and (t[3]/t[2] < tab[3]*t[2]) then
rsn = "Under minimum
slot:hub ratio"
local hs,cs =
tab[3]*t[2],math.ceil((tab[3]*t[2]) - t[3])
m,x = tostring(cs).."
too few slots for "..p.."s. "..
"You're logged on to
"..tostring(t[2]).." hubs which requires "..
"you to have
"..tostring(hs).." slots.",true
end
else
if tab[3] > 0 and t[3] > tab[3]
then
rsn = "Over maximum
slot allowance"
local hs,cs =
tab[3],t[3] - tab[3]
m,x = tostring(cs).."
too many slots for "..p.."s. "..
"You are only allowed
"..tostring(hs).." slots.",true
end
end
end
if x then
local nick = user.sNick
Txt = {"disconnected","kicked","banned"}
local umsg = nick..", you will be
"..Txt[Penalty]..
" for the offense: "..m
if DumpUser(user,umsg,rsn) then
m =
m:lower():gsub("you're",nick.." is")
m = m:lower():gsub("you",nick)
Send(nick.." was
"..Txt[Penalty].." for "..m,0)
end
return true
end
end
else
local msg,nick = "Your client is invalid. You may
return with a proper "..
"NMDC protocol compliant client, You will now be
disconencted|",user.sNick
if DumpUser(user,msg) then
Send(nick.." was disconnected for bad client",0)
end
return true
end
end
end
DumpUser = function(user,msg,rsn)
local nick = user.sNick
Core.SendToUser(user,msg)
local Action = {
[1] = function(user) return Core.Disconnect(user) end,
[2] = function(user,msg,rsn) return Core.Kick(user,Bot,rsn) end,
[3] = function(user,msg,rsn) return
BanMan.Ban(user,rsn,Bot,false) end,
}
local x = Action[Penalty](user,msg,rsn)
if x and not Core.GetUser(nick) then
return true
end
end
GetProf = function(i)
local Prof = "Unregistered User"
if i >= 0 then
Prof = ProfMan.GetProfile(i).sProfileName
end
return Prof
end
Send = function(msg,arg)
if not arg then arg = Report end
if arg > 0 then
if arg == 1 then
if OpNick:len() > 0 then
local user = Core.GetUser(OpNick)
if user then
Core.SendToUser(user,"<"..Bot..">
"..msg.."|")
else
Send(msg,1)
end
else
return
end
elseif arg == 2 then
Core.SendToOps("<"..Bot.."> "..msg.."|")
elseif arg == 3 then
Core.SendToAll(msg.."|")
end
end
end
FmtSz = function(int)
local i,u,x = int or 0,{"","K","M","G","T","P"},1
while i > 1024 do i,x = i/1024,x+1 end return string.format("%.2f
%sB.",i,u[x])
end
the rest is most text files like rules
--
You received this bug notification because you are a member of
Dcplusplus-team, which is subscribed to ADCH++.
https://bugs.launchpad.net/bugs/1203313
Title:
Adch++ goes down
Status in ADCH++:
New
Bug description:
Hub goes down sometimes for some reason.why we do not know, it may be that we
have too many users in the Hub we have 600-1100 users.we can not see anything
in the log
any idea why it goes down??
ADCH++ 2.10.1 (r646) Release
Janne
To manage notifications about this bug go to:
https://bugs.launchpad.net/adchpp/+bug/1203313/+subscriptions
_______________________________________________
Mailing list: https://launchpad.net/~linuxdcpp-team
Post to : [email protected]
Unsubscribe : https://launchpad.net/~linuxdcpp-team
More help : https://help.launchpad.net/ListHelp