roundcubemail/program/lib/Roundcube/rcube_session.php
function check_auth()
    {
        $this->cookie = $_COOKIE[$this->cookiename];
        $result = $this->ip_check ? rcube_utils::remote_addr() == $this->ip : true;

        if (!$result) {
            $this->log("IP check failed for " . $this->key . "; expected " . $this->ip . "; got " . rcube_utils::remote_addr());
        }

        if ($result && $this->_mkcookie($this->now) != $this->cookie) {
            $this->log("Session auth check failed for " . $this->key . "; timeslot = " . date('Y-m-d H:i:s', $this->now));
            $result = false;

            // Check if using id from a previous time slot
            for ($i = 1; $i <= 2; $i++) {
                $prev = $this->now - ($this->lifetime / 2) * $i;
                if ($this->_mkcookie($prev) == $this->cookie) {
                    $this->log("Send new auth cookie for " . $this->key . ": " . $this->cookie);
                    $this->set_auth_cookie();
                    $result = true;
                }
            }
        }

        if (!$result) {
            $this->log("Session authentication failed for " . $this->key
                . "; invalid auth cookie sent; timeslot = " . date('Y-m-d H:i:s', $prev));
        }

        return $result;
    }
function check_auth()
    {
        $this->cookie = $_COOKIE[$this->cookiename];
        $result = $this->ip_check ? rcube_utils::remote_addr() == $this->ip : true;

        if (!$result) {
            $this->log("IP check failed for " . $this->key . "; expected " . $this->ip . "; got " . rcube_utils::remote_addr());
        }

        if ($result && $this->_mkcookie($this->now) != $this->cookie) {
            $this->log("Session auth check failed for " . $this->key . "; timeslot = " . date('Y-m-d H:i:s', $this->now));
            $result = false;

            // Check if using id from a previous time slot
            for ($i = 1; $i <= 2; $i++) {
                $prev = $this->now - ($this->lifetime / 2) * $i;
                if ($this->_mkcookie($prev) == $this->cookie) {
                    $this->log("Send new auth cookie for " . $this->key . ": " . $this->cookie);
                    $this->set_auth_cookie();
                    $result = true;
                }
            }
        }

        if (!$result) {
            $this->log("Session authentication failed for " . $this->key
                . "; invalid auth cookie sent; timeslot = " . date('Y-m-d H:i:s', $prev));
        }

        return $result;
    }
function check_auth ( ) { $ this -> cookie = $ _COOKIE [ $ this -> cookiename ] ; $ result = $ this -> ip_check ? rcube_utils :: remote_addr ( ) == $ this -> ip : true ; if ( ! $ result ) { $ this -> log ( "IP check failed for " . $ this -> key . "; expected " . $ this -> ip . "; got " . rcube_utils :: remote_addr ( ) ) ; } if ( $ result && $ this -> _mkcookie ( $ this -> now ) != $ this -> cookie ) { $ this -> log ( "Session auth check failed for " . $ this -> key . "; timeslot = " . date ( 'Y-m-d H:i:s' , $ this -> now ) ) ; $ result = false ; // Check if using id from a previous time slot for ( $ i = 1 ; $ i <= 2 ; $ i ++ ) { $ prev = $ this -> now - ( $ this -> lifetime / 2 ) * $ i ; if ( $ this -> _mkcookie ( $ prev ) == $ this -> cookie ) { $ this -> log ( "Send new auth cookie for " . $ this -> key . ": " . $ this -> cookie ) ; $ this -> set_auth_cookie ( ) ; $ result = true ; } } } if ( ! $ result ) { $ this -> log ( "Session authentication failed for " . $ this -> key . "; invalid auth cookie sent; timeslot = " . date ( 'Y-m-d H:i:s' , $ prev ) ) ; } return $ result ; }
Check session authentication cookie

@return boolean True if valid, False if not
Check session authentication cookie