• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

ギコナビ


Commit MetaInfo

Revision3c51e182523ceb4f4cce262a5e3fd0776e1dd175 (tree)
Time2008-12-14 12:15:36
Authorh677 <h677>
Commiterh677

Log Message

Cookie確認でIPアドレス(ホスト名)が変わっているときに、
IPアドレス以外のCookieが空になる不具合の修正

Change Summary

Incremental Difference

--- a/Editor.pas
+++ b/Editor.pas
@@ -1882,31 +1882,61 @@ const
18821882 VAL_PON = 'PON=';
18831883 EXPIRES_MARK = 'expires=';
18841884 var
1885-// i: Integer;
1885+ i, pos: Integer;
18861886 tmp : string;
18871887 val : string;
1888+ curCookies : TStringList;
1889+ tmpCookieName : string;
18881890 begin
1891+ // 2008.12.14 –³ðŒƒNƒŠƒA‚µ‚Ä‚Í‚¢‚¯‚È‚¢ by ‚à‚¶‚ã
1892+ curCookies := TStringList.Create;
1893+ curCookies.Delimiter := ';';
1894+ curCookies.DelimitedText := ABoard.Cookie;
18891895 ABoard.Cookie := '';
1890- while (AnsiPos(COOKIE_MARK, Rawtext) > 0 ) do begin
1891- //i := 0;
1892- tmp := Copy(Rawtext, AnsiPos(COOKIE_MARK, Rawtext) + Length(COOKIE_MARK), Length(Rawtext));
1893- Delete(Rawtext, 1, AnsiPos('Set-Cookie', Rawtext)+ Length(COOKIE_MARK));
1894- //Cookie‚ðØ‚èo‚·
1895- val := Trim(GikoSys.GetTokenIndex(tmp, ';', 0));
1896- if( AnsiPos(VAL_SPID, val) > 0 ) then begin
1897- ABoard.SPID := Copy(val, AnsiPos(VAL_SPID, val) + Length(VAL_SPID), Length(val));
1898- end else if( AnsiPos(VAL_PON, val) > 0 ) then begin
1899- ABoard.PON := Copy(val, AnsiPos(VAL_PON, val) + Length(VAL_PON), Length(val));
1900- end else begin
1901- ABoard.Cookie := ABoard.Cookie + val + '; ';
1902- end;
1903- //expires‚ðØ‚èo‚·
1904- val := Trim(GikoSys.GetTokenIndex(tmp, ';', 1));
1905- if( AnsiPos(EXPIRES_MARK, val) > 0) then begin
1906- Delete(val, 1, AnsiPos(EXPIRES_MARK, val) + Length(EXPIRES_MARK) - 1);
1907- ABoard.Expires := GMTToLocalDateTime(val);
1908- end;
1909- end;
1896+ try
1897+ while (AnsiPos(COOKIE_MARK, Rawtext) > 0 ) do begin
1898+ tmp := Copy(Rawtext, AnsiPos(COOKIE_MARK, Rawtext) + Length(COOKIE_MARK), Length(Rawtext));
1899+ Delete(Rawtext, 1, AnsiPos('Set-Cookie', Rawtext)+ Length(COOKIE_MARK));
1900+ //Cookie‚ðØ‚èo‚·
1901+ val := Trim(GikoSys.GetTokenIndex(tmp, ';', 0));
1902+ if( AnsiPos(VAL_SPID, val) > 0 ) then begin
1903+ ABoard.SPID := Copy(val, AnsiPos(VAL_SPID, val) + Length(VAL_SPID), Length(val));
1904+ end else if( AnsiPos(VAL_PON, val) > 0 ) then begin
1905+ ABoard.PON := Copy(val, AnsiPos(VAL_PON, val) + Length(VAL_PON), Length(val));
1906+ end else begin
1907+ // Šù‘¶‚ÌCookie‚̏ꍇ‚Í’l‚¾‚¯•t‚¯‘Ö‚¦‚é
1908+ pos := AnsiPos('=', val);
1909+ if pos > 0 then begin
1910+ tmpCookieName := Copy(val, 0, pos - 1);
1911+ for i := 0 to curCookies.Count - 1 do begin
1912+ if (curCookies.IndexOfName(tmpCookieName) >= 0) then begin
1913+ curCookies.Values[tmpCookieName] := Copy(val, pos + 1, Length(val));
1914+ tmpCookieName := '';
1915+ break;
1916+ end;
1917+ end;
1918+ if (tmpCookieName <> '') then begin
1919+ curCookies.Add(val);
1920+ end;
1921+ end;
1922+ //tmpCookie := tmpCookie + val + '; ';
1923+ end;
1924+ //expires‚ðØ‚èo‚·
1925+ val := Trim(GikoSys.GetTokenIndex(tmp, ';', 1));
1926+ if( AnsiPos(EXPIRES_MARK, val) > 0) then begin
1927+ Delete(val, 1, AnsiPos(EXPIRES_MARK, val) + Length(EXPIRES_MARK) - 1);
1928+ ABoard.Expires := GMTToLocalDateTime(val);
1929+ end;
1930+ end;
1931+ for i := 0 to curCookies.Count - 1 do begin
1932+ if (curCookies.Strings[i] <> '') then begin
1933+ ABoard.Cookie := ABoard.Cookie + curCookies.Strings[i] + '; ';
1934+ end;
1935+ end;
1936+
1937+ finally
1938+ curCookies.Free;
1939+ end;
19101940 end;
19111941 //! hiddenƒf[ƒ^Žæ“¾
19121942 procedure TEditorForm.GetHiddenParameter(Rawtext: String; ABoard: TBoard);