2003.08.15 (金) 04:10:25 <Heracules> 凡ミス2連です、ごめんなさい。
shuusei211141:指定申告ポートブロックでポート0を誤ってブロックするバグ&リダイレクトの動作バグを修正(21179, 211132参照, source by Heracules)

diff --dos -urN 211140/settings.pas 211141/settings.pas
--- 211140/settings.pas	Fri Aug 15 04:06:20 2003
+++ 211141/settings.pas	Fri Aug 15 03:58:06 2003
@@ -1987,7 +1987,10 @@
        force_enter_channel[i]:=Copy(str,1,j-1);
        str:=Copy(str,j+1,Length(str)-j);
      end else
+     begin
        force_enter_channel[i]:=str;
+       str:='';
+     end;
    end;
    old_force_enter:=cb_channels_old_forceenter.Checked;
    force_enter_furiwake:=cb_force_enter_furiwake.Checked;
@@ -2038,10 +2041,10 @@
      j:=AnsiPos(' ',str);
      if j>0 then
      begin
-       block_port[i]:=StrToIntDef(Copy(str,1,j-1),0);
+       block_port[i]:=StrToIntDef(Copy(str,1,j-1),-1);
        str:=Copy(str,j+1,Length(str)-j);
      end else
-       block_port[i]:=StrToIntDef(str,0);
+       block_port[i]:=StrToIntDef(str,-1);
    end;
    local2global_level:=cb_l2b_level.Checked;
    enable_rating:=cb_enable_rating.Checked;
diff --dos -urN 211140/mainform.pas 211141/mainform.pas
--- 211140/mainform.pas	Fri Aug 15 04:06:20 2003
+++ 211141/mainform.pas	Fri Aug 15 04:16:24 2003
@@ -1582,7 +1582,7 @@
   str:=ini.ReadString('Other','LoginBlockPortNumber','6699 7743');
   SplitString(str,list);
   for i:=0 to list.Count-1 do
-    block_port[i]:=StrToIntDef(list.Strings[i],0);
+    block_port[i]:=StrToIntDef(list.Strings[i],-1);
   str:=ini.ReadString('Channels','ForceEnterChannel','#Alternative');
   SplitString(str,list);
   for i:=0 to list.Count-1 do]
diff --dos -urN 211140/thread.pas 211141/thread.pas
--- 211140/thread.pas	Thu Aug 14 22:01:32 2003
+++ 211141/thread.pas	Fri Aug 15 04:49:54 2003
@@ -882,7 +882,7 @@
 var
  h: TSocket;
  j,k: Integer;
- user_percentage: Integer;
+ diff: Single;
  str: String;
  srv: TServer;
  sin: TSockAddrIn;
@@ -899,17 +899,21 @@
   j:=4;
   sin:=TCPSocket_GetLocalSin(h);
   j:=5;
-  user_percentage:=0;
+  if (max_users>local_users) then
+  begin
+    str:=servername_t+':'+IntToStr(napigator_myport)+#13;
+    diff:=local_users / max_users;
+  end;
   for k:=0 to db_servers.Count-1 do
   begin
     srv:=db_servers.Items[k];
-    if (srv.max_users>9) or (not new_report_hide_hub) then
     if srv.logged then
-      if (srv.max_users div srv.num_users)>user_percentage then
+      if (srv.max_users>srv.num_users) and ((srv.num_users / srv.max_users) < diff) then
+      begin
         str:=srv.host+':'+IntToStr(srv.port)+#13;
+        diff:=srv.num_users / srv.max_users;
+      end;
   end;
-  if (max_users div local_users)>user_percentage then
-    str:=servername_t+':'+IntToStr(napigator_myport)+#13;
   j:=6;
   synsock.Send(h,str[1],Length(str),0);
   j:=7;