Changeset 5300
- Timestamp:
- Oct 12, 2005, 12:45:38 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/PS-IPP-PSFTP/lib/PS/IPP/PSFTP.pm (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/PS-IPP-PSFTP/lib/PS/IPP/PSFTP.pm
r5283 r5300 1 1 # Copyright (C) 2005 Joshua Hoblitt 2 2 # 3 # $Id: PSFTP.pm,v 1. 6 2005-10-12 02:58:03jhoblitt Exp $3 # $Id: PSFTP.pm,v 1.7 2005-10-12 22:45:38 jhoblitt Exp $ 4 4 5 5 package PS::IPP::PSFTP; … … 13 13 use Carp qw( carp ); 14 14 use Data::Validate::URI qw( is_uri ); 15 use Digest::MD5::File qw( file_md5_hex ); 16 use File::stat; 15 17 use LWP::UserAgent; 16 18 use Params::Validate qw( validate SCALAR ); 19 use POSIX; 17 20 use PS::IPP::PSFTP::Parser; 18 21 … … 72 75 my %p = validate(@_, 73 76 { 74 id => {77 id => { 75 78 type => SCALAR, 76 79 regex => qr/\S+/, # string with atleast 1 non WS char 77 80 }, 78 discarded => {81 discarded => { 79 82 type => SCALAR, 80 83 callbacks => { … … 103 106 } 104 107 108 sub get_file 109 { 110 my $self = shift; 111 112 my %p = validate(@_, 113 { 114 record => { 115 isa => 'PS::IPP::PSFTP::Record', 116 }, 117 filename => { 118 type => SCALAR, 119 regex => qr/\S+/, # string with atleast 1 non WS char 120 callbacks => { 121 'write access' => sub { 122 POSIX::access($_[0], &POSIX::W_OK); 123 }, 124 }, 125 }, 126 }, 127 ); 128 129 my $ua = LWP::UserAgent->new; 130 my $request = HTTP::Request->new(GET => $p{record}->url); 131 my $response = $ua->request($request, $p{filename}); 132 133 if (! $response->is_success) { 134 carp $response->status_line; 135 return undef; 136 } 137 138 my $size = stat($p{filename})->size; 139 if (! $p{record}->size == $size) { 140 carp "id: ", $p{record}->id, 141 " - expected size: ", $p{record}->size, 142 " got: ", $size; 143 return undef; 144 } 145 146 my $md5 = file_md5_hex($p{filename}); 147 if (! $p{record}->md5 eq $md5) { 148 carp "id: ", $p{record}->id, 149 " - expected md5: ", $p{record}->md5, 150 " got: ", $md5; 151 return undef; 152 } 153 154 return 1; 155 } 156 105 157 1; 106 158
Note:
See TracChangeset
for help on using the changeset viewer.
