Imported Upstream version 3.3.3
[debian/amanda] / perl / Amanda / Changer / multi.pm
index 85de8fd3654b23baa95404d0c0afa65e950dd45b..7a087b5d1af96fcc72b621efdcdd3f1ed2252ba2 100644 (file)
@@ -1,8 +1,9 @@
 # Copyright (c) 2008-2012 Zmanda, Inc.  All Rights Reserved.
 #
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 as published
-# by the Free Software Foundation.
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
@@ -111,6 +112,7 @@ sub new {
     }
 
     my $state_filename = Amanda::Config::config_dir_relative($config->{'changerfile'});
+    my $lock_timeout = $config->{'lock-timeout'};
     Amanda::Debug::debug("Using state file: $state_filename");
 
     my $self = {
@@ -122,6 +124,7 @@ sub new {
        state_filename => $state_filename,
        first_slot => $first_slot,
        last_slot => $last_slot,
+       'lock-timeout' => $lock_timeout,
     };
 
     bless ($self, $class);
@@ -623,7 +626,9 @@ sub _get_current {
     if (defined $state->{current_slot}) {
        my $slot = $self->{number}->{$state->{current_slot}};
        # return the slot if it exist.
-       return $slot if $slot >= $self->{'first_slot'} && $slot < $self->{'last_slot'};
+       return $slot if defined $slot and
+                               $slot >= $self->{'first_slot'} and
+                               $slot < $self->{'last_slot'};
        Amanda::Debug::debug("statefile current_slot is not configured");
     }
     # return the first slot