roundcubemail/program/lib/Roundcube/rcube_session.php
public function reload()
    {
        // collect updated data from previous appends
        $merge_data = array();
        foreach ((array)$this->appends as $var) {
            $path = explode('.', $var);
            $value = $this->get_node($path, $_SESSION);
            $k = array_pop($path);
            $node = &$this->get_node($path, $merge_data);
            $node[$k] = $value;
        }

        if ($this->key) {
            $data = $this->read($this->key);
        }

        if ($data) {
            session_decode($data);

            // apply appends and unsets to reloaded data
            $_SESSION = array_merge_recursive($_SESSION, $merge_data);

            foreach ((array)$this->unsets as $var) {
                if (isset($_SESSION[$var])) {
                    unset($_SESSION[$var]);
                }
                else {
                    $path = explode('.', $var);
                    $k = array_pop($path);
                    $node = &$this->get_node($path, $_SESSION);
                    unset($node[$k]);
                }
            }
        }
    }
public function reload()
    {
        // collect updated data from previous appends
        $merge_data = array();
        foreach ((array)$this->appends as $var) {
            $path = explode('.', $var);
            $value = $this->get_node($path, $_SESSION);
            $k = array_pop($path);
            $node = &$this->get_node($path, $merge_data);
            $node[$k] = $value;
        }

        if ($this->key) {
            $data = $this->read($this->key);
        }

        if ($data) {
            session_decode($data);

            // apply appends and unsets to reloaded data
            $_SESSION = array_merge_recursive($_SESSION, $merge_data);

            foreach ((array)$this->unsets as $var) {
                if (isset($_SESSION[$var])) {
                    unset($_SESSION[$var]);
                }
                else {
                    $path = explode('.', $var);
                    $k = array_pop($path);
                    $node = &$this->get_node($path, $_SESSION);
                    unset($node[$k]);
                }
            }
        }
    }
public function reload ( ) { // collect updated data from previous appends $ merge_data = array ( ) ; foreach ( ( array ) $ this -> appends as $ var ) { $ path = explode ( '.' , $ var ) ; $ value = $ this -> get_node ( $ path , $ _SESSION ) ; $ k = array_pop ( $ path ) ; $ node = & $ this -> get_node ( $ path , $ merge_data ) ; $ node [ $ k ] = $ value ; } if ( $ this -> key ) { $ data = $ this -> read ( $ this -> key ) ; } if ( $ data ) { session_decode ( $ data ) ; // apply appends and unsets to reloaded data $ _SESSION = array_merge_recursive ( $ _SESSION , $ merge_data ) ; foreach ( ( array ) $ this -> unsets as $ var ) { if ( isset ( $ _SESSION [ $ var ] ) ) { unset ( $ _SESSION [ $ var ] ) ; } else { $ path = explode ( '.' , $ var ) ; $ k = array_pop ( $ path ) ; $ node = & $ this -> get_node ( $ path , $ _SESSION ) ; unset ( $ node [ $ k ] ) ; } } } }
Re-read session data from storage backend
Re - read session data from storage backend