OSDN Git Service

リモートフシアナトラップがONの時にCookie確認があると、送信できない不具合の修正
authorh677 <h677>
Sun, 20 Mar 2005 03:01:32 +0000 (03:01 +0000)
committerh677 <h677>
Sun, 20 Mar 2005 03:01:32 +0000 (03:01 +0000)
Editor.pas

index adb01ab..9ed0a45 100644 (file)
@@ -784,9 +784,10 @@ var
        sysMenu : HMENU;
        //fusianasan\83g\83\89\83b\83v by\92è\8aú\95Ö
        Namae : String;
-        body : TStringList;
-        Remote : String;
-        ABoard : TBoard;
+    tmpSPID, tmpPON : String;  //\83\8a\83\82\81[\83g\83g\83\89\83b\83v\82ªON\82Ì\8e\9e\82ÉCookie\82Ì\88ê\8e\9e\95Û\91\97p
+       body : TStringList;
+       Remote : String;
+       ABoard : TBoard;
 begin
        FAbort := False;
        State := gdsError;
@@ -798,6 +799,8 @@ begin
 
 
        InitIdHTTP(Indy);
+    tmpSPID := '';
+    tmpPON  := '';
        if FThreadItem = nil then begin
                URL := FBoard.GetSendURL;
                RefURL := GikoSys.UrlToServer(FBoard.URL) + 'test/bbs.cgi';
@@ -902,6 +905,10 @@ begin
                                 //Setting.txt\82ª\82È\82©\82Á\82½\82ç\8eæ\93¾
                                 //\8eI\82É\95\89\89×\82ª\82©\82©\82è\82»\82¤\82Å\95|\82¢\81E\81E\81E
                                 if not FileExists(ABoard.GetSETTINGTXTFileName) then begin
+                                        //GetSETTINGTXTAction\82ð\8cÄ\82Ñ\8fo\82·\82ÆIndy\82ª\8f\89\8aú\89»\82³\82ê\82é\82Ì\82Å\81A
+                                        //\82±\82±\82ÅCookie\82ð\95Û\91\82µ\82È\82­\82Ä\82Í\82¢\82¯\82È\82¢
+                                        tmpSPID := GetSPID(Indy.Response.RawHeaders.Values['Set-Cookie']);
+                                        tmpPON  := GetPON(Indy.Response.RawHeaders.Values['Set-Cookie']);
                                         GetSETTINGTXTAction.Execute;
                                         body := TStringList.Create;
                                         try
@@ -947,8 +954,13 @@ begin
                                        '\8fî\95ñ',
                                        MB_YESNO or MB_ICONQUESTION);
                                if MsgResult = IDYES then begin
-                                       Board.SPID := GetSPID(Indy.Response.RawHeaders.Values['Set-Cookie']);
-                                       Board.PON := GetPON(Indy.Response.RawHeaders.Values['Set-Cookie']);
+                    if (GikoSys.Setting.RemoteTrapAtt) and ((tmpSPID <> '') or (tmpPON <> '')) then begin
+                                               Board.SPID := tmpSPID;
+                                               Board.PON := tmpPON;
+                    end else begin
+                                               Board.SPID := GetSPID(Indy.Response.RawHeaders.Values['Set-Cookie']);
+                                               Board.PON := GetPON(Indy.Response.RawHeaders.Values['Set-Cookie']);
+                    end;
                                        if (Board.SPID = '') and (Board.PON = '') then
                                                raise Exception.Create('');
                                        //\82à\82¤\88ê\89ñ\82±\82Ì\83\81\83\\83b\83h
@@ -980,8 +992,13 @@ begin
                                        MB_YESNO or MB_ICONQUESTION);
 
                                if MsgResult = IDYES then begin
-                                       Board.SPID := GetSPID(Indy.Response.RawHeaders.Values['Set-Cookie']);
-                                       Board.PON := GetPON(Indy.Response.RawHeaders.Values['Set-Cookie']);
+                    if (GikoSys.Setting.RemoteTrapAtt) and ((tmpSPID <> '') or (tmpPON <> '')) then begin
+                                               Board.SPID := tmpSPID;
+                                               Board.PON := tmpPON;
+                    end else begin
+                                               Board.SPID := GetSPID(Indy.Response.RawHeaders.Values['Set-Cookie']);
+                                               Board.PON := GetPON(Indy.Response.RawHeaders.Values['Set-Cookie']);
+                    end;
                                        if (Board.SPID = '') and (Board.PON = '') then
                                                raise Exception.Create('');
                                        Send(Board.SPID, Board.PON, False);