Bivio::Ext::HTTPCookies
# Copyright (c) 2000-2008 bivio Software, Inc. All rights reserved. # $Id$ package Bivio::Ext::HTTPCookies; use strict; use base 'HTTP::Cookies'; my($_F) = Bivio::UNIVERSAL->use('IO.File'); my($_D) = Bivio::UNIVERSAL->use('Bivio.Die'); sub clone { my($self) = @_; my($tmp) = $_F->temp_file; my($clone); my($die) = $_D->catch( sub { $self->save($tmp); delete($self->{file}); $clone = ref($self)->new( map( ($_ => $self->{$_}), grep($_ ne 'COOKIES', keys(%$self)), ), ); $clone->load($tmp); delete($clone->{file}); return; }, ); unlink($tmp); $die->throw if $die; return $clone; } sub new { my($self) = shift->SUPER::new(@_); $self->{hide_cookie2} = 1; $self->{ignore_discard} = 1; return $self; } 1;