Index: trunk/DataStore/scripts/dsleech
===================================================================
--- trunk/DataStore/scripts/dsleech	(revision 16582)
+++ trunk/DataStore/scripts/dsleech	(revision 17637)
@@ -1,7 +1,7 @@
 #!/usr/bin/env perl
 
-# Copyright (C) 2006  Joshua Hoblitt
+# Copyright (C) 2006-2008  Joshua Hoblitt
 #
-# $Id: dsleech,v 1.9 2008-02-22 01:50:43 jhoblitt Exp $
+# $Id: dsleech,v 1.10 2008-05-12 22:04:53 jhoblitt Exp $
 
 use strict;
@@ -18,5 +18,5 @@
 use Pod::Usage qw( pod2usage );
 
-my ($dir, $uri, $last_fileset, $overwrite, $recall, $remember, $verbose);
+my ($dir, $uri, $last_fileset, $overwrite, $recall, $remember, $verbose, $timeout);
 
 GetOptions(
@@ -28,4 +28,5 @@
     'remember'          => \$remember,
     'verbose|v'         => \$verbose,
+    'timeout|t'         => \$timeout,
 ) or pod2usage( 2 );
 
@@ -35,4 +36,7 @@
     -exitval => 3,
 ) unless defined $uri;
+
+# default http request timeout is 30s
+$timeout ||= 30;
 
 my %p = (
@@ -59,5 +63,8 @@
 }
 
-my $response = DataStore::Product->new(%p)->request;
+my $response = DataStore::Product->new(%p)->request(
+    ua_args  => { timeout => $timeout },
+);
+
 unless (defined $response->is_success) {
     die "request failed: ", $response->status_line;
@@ -96,5 +103,7 @@
         print "processing fileset: $fileset->fileset $n/@$filesets\n" if $verbose;
 
-        my $response = $fileset->request;
+        my $response = $fileset->request(
+                ua_args  => { timeout => $timeout },
+            );
         unless (defined $response->is_success) {
             warn "request failed: ", $response->status_line;
@@ -155,5 +164,8 @@
         print "fetching ", $file->fileid, "..." if $verbose;
 
-        my $response = $file->request( filename => $filename );
+        my $response = $file->request(
+                filename => $filename,
+                ua_args  => { timeout => $timeout },
+            );
         unless (defined $response->is_success) {
             warn "request failed: ", $response->status_line;
@@ -261,4 +273,11 @@
 This flag is optional.
 
+=item * --timeout|-t
+
+The ammount of time (in seconds) to wait for a response from the DataStore
+after making an HTTP request.  The default is 30s.
+
+Optional.
+
 =back
 
@@ -277,5 +296,5 @@
 =head1 COPYRIGHT
 
-Copyright (C) 2006  Joshua Hoblitt.  All rights reserved.
+Copyright (C) 2006-2008  Joshua Hoblitt.  All rights reserved.
 
 This program is free software; you can redistribute it and/or modify it under
@@ -297,5 +316,5 @@
 =head1 SEE ALSO
 
-L<dsproductls>, L<dsfilesetls>, L<dsget>, L<DataStore>
+L<dsget>, L<dsleech>, L<dsrootls>, L<dsproductls>, L<dsfilesetls>, L<DataStore>
 
 =cut
