diff options
| author | michael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2010-08-06 09:06:44 +0000 |
|---|---|---|
| committer | michael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2010-08-06 09:06:44 +0000 |
| commit | 83be0adcbfbfff6d8ca2dc5eabb15025c72e274e (patch) | |
| tree | c0f6c24e841275ed63ccd66ceac8d67357878c16 /packages/fcl-web/src | |
| parent | 5bde1e5a459806cb9b234692af10bc12edefc22a (diff) | |
| download | fpc-83be0adcbfbfff6d8ca2dc5eabb15025c72e274e.tar.gz | |
* Correct check for Session in checksession, and do not create same session cookie twice
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15720 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-web/src')
| -rw-r--r-- | packages/fcl-web/src/base/websession.pp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/packages/fcl-web/src/base/websession.pp b/packages/fcl-web/src/base/websession.pp index 99d1f00d2d..d5dab8da0b 100644 --- a/packages/fcl-web/src/base/websession.pp +++ b/packages/fcl-web/src/base/websession.pp @@ -14,7 +14,7 @@ unit websession; {$mode objfpc}{$H+} -{ $define cgidebug} +{$define cgidebug} interface uses @@ -283,8 +283,12 @@ begin If FSessionStarted then begin {$ifdef cgidebug}SendDebug('Session started');{$endif} - C:=AResponse.Cookies.Add; - C.Name:=SessionCookie; + C:=AResponse.Cookies.FindCookie(SessionCookie); + If (C=Nil) then + begin + C:=AResponse.Cookies.Add; + C.Name:=SessionCookie; + end; C.Value:=SID; C.Path:=FSessionCookiePath; end @@ -350,8 +354,8 @@ begin begin If (FSession=Nil) then FSession:=GetDefaultSession; - if Assigned(Session) then - Session.InitSession(ARequest,FOnNewSession,FOnSessionExpired); + if Assigned(FSession) then + FSession.InitSession(ARequest,FOnNewSession,FOnSessionExpired); end; {$ifdef cgidebug}SendMethodExit('SessionHTTPModule('+Name+').CheckSession');{$endif} end; |
