Auth_OpenID_FileStore::storeAssociation PHP Method

storeAssociation() public method

Store an association in the association directory.
public storeAssociation ( $server_url, $association )
    function storeAssociation($server_url, $association)
    {
        if (!$this->active) {
            trigger_error("FileStore no longer active", E_USER_ERROR);
            return false;
        }
        $association_s = $association->serialize();
        $filename = $this->getAssociationFilename($server_url, $association->handle);
        list($tmp_file, $tmp) = $this->_mktemp();
        if (!$tmp_file) {
            trigger_error("_mktemp didn't return a valid file descriptor", E_USER_WARNING);
            return false;
        }
        fwrite($tmp_file, $association_s);
        fflush($tmp_file);
        fclose($tmp_file);
        if (@rename($tmp, $filename)) {
            return true;
        } else {
            // In case we are running on Windows, try unlinking the
            // file in case it exists.
            @unlink($filename);
            // Now the target should not exist. Try renaming again,
            // giving up if it fails.
            if (@rename($tmp, $filename)) {
                return true;
            }
        }
        // If there was an error, don't leave the temporary file
        // around.
        Auth_OpenID_FileStore::_removeIfPresent($tmp);
        return false;
    }