X-Git-Url: http://scm.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fcluster.pl;h=1fca891754bed6bf9b5bcf49b072afb7a5610279;hb=b863ad60651637704882305af0f1ff84a1e45a56;hp=46f4818325af00ef5945e48ac2027e58dbef3877;hpb=8081646e932b160975ad061a7a2741418b099761;p=spider.git diff --git a/perl/cluster.pl b/perl/cluster.pl index 46f48183..1fca8917 100755 --- a/perl/cluster.pl +++ b/perl/cluster.pl @@ -187,12 +187,15 @@ sub new_channel # (fairly) politely disconnect people that are connected to too many other places at once my $r = Route::get($call); - if ($r) { + if ($conn->{sort} =~ /^I/ && $r && $user) { my @n = $r->parents; - my $v = $r->isa('Route::Node') ? $maxconnect_node : $maxconnect_user; + my $m = $r->isa('Route::Node') ? $maxconnect_node : $maxconnect_user; + my $c = $user->maxconnect; + my $v; + $v = defined $c ? $c : $m; if ($v && @n >= $v) { my $nodes = join ',', @n; - LogDbg('DXCommand', "$call has too many connections ($v) at $nodes, disconnected"); + LogDbg('DXCommand', "$call has too many connections ($v) at $nodes - disconnected"); already_conn($conn, $call, DXM::msg($lang, 'contomany', $call, $v, $nodes)); return; }