2003.08.14 (木) 01:32:01 <Heracules> 変更点:TLocalUserを使用せずにソケットを直接処理するようにした。
2003.08.14 (木) 01:32:40 <Heracules> Redirectの送信データの最後に#13をつけるように修正(2.4.1のソースを参考にしました)。
2003.08.14 (木) 01:32:57 <Heracules> サーバ側からソケットを閉じるように変更しました。
2003.08.14 (木) 01:33:28 <Heracules> サーバ側でソケットを閉じないと、自然とソケットが閉じられるまでクライアントは待ってるみたいです。
2003.08.14 (木) 03:22:04 <Heracules> これでVBで開発したバージョンと同程度もしくはそれ以上のレスポンスになったはず・・・。
shuusei211133:リダイレクトサーバの高速化(211132参照, source by Heracules)

diff --dos -urN 211132/thread.pas 211133/thread.pas
--- 211132/thread.pas	Wed Aug 13 23:56:56 2003
+++ 211133/thread.pas	Thu Aug 14 01:21:48 2003
@@ -904,10 +904,6 @@
   j:=6;
   sin:=TCPSocket_GetLocalSin(h);
   j:=7;
-  db_local.Add(user);
-  j:=8;
-  user.localstate:=user.localstate+[locWriteOnly];
-  j:=9;
   user_percentage:=0;
   for k:=0 to db_servers.Count-1 do
   begin
@@ -915,12 +911,18 @@
     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
-        str:=srv.host+':'+IntToStr(srv.port);
+        str:=srv.host+':'+IntToStr(srv.port)+#13;
   end;
   if (total_users_limit div total_users)>user_percentage then
-    str:=servername_t+':'+IntToStr(server_port[0]);
+    str:=servername_t+':'+IntToStr(server_port[0])+#13;
+  j:=8;
+  synsock.Send(h,str[1],Length(str),0);
+  j:=9;
+  synsock.shutdown(h,SD_BOTH);
   j:=10;
-  user.WriteData(str);
+  synsock.closesocket(h);
+  j:=11;
+  dec(sockets_count);
  except
   DebugLog('Exception in AcceptRedirect.  j='+IntToStr(j));
  end;