]> git.proxmox.com Git - librados2-perl.git/commitdiff
allow to set client_mount_timeout
authorDietmar Maurer <dietmar@proxmox.com>
Thu, 16 Jan 2014 11:45:12 +0000 (12:45 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 16 Jan 2014 11:45:12 +0000 (12:45 +0100)
PVE/RADOS.pm
RADOS.xs

index 18b8a867c3de3321a967d4bdf24d6e6af9a31615..5f6e0f084005d4fa9d17363fa3da3706b2d1490e 100644 (file)
@@ -33,9 +33,19 @@ require XSLoader;
 XSLoader::load('PVE::RADOS', $VERSION);
 
 sub new {
+    my ($class, %params) = @_;
+
     my $conn = pve_rados_create() ||
        die "unable to create RADOS object\n";
 
+    my $timeout = delete $params{timeout} || 5;
+
+    pve_rados_conf_set($conn, 'client_mount_timeout', $timeout);
+
+    foreach my $k (keys %params) {
+       pve_rados_conf_set($conn, $k, $params{$k});
+    }
+
     pve_rados_connect($conn);
 
     my $self = bless { conn =>  $conn };
index 9d3462a4612ac78be3e17aedbe499ffe6052dbcb..e5c4ab4c3b12742cc3d984eeb8410bcf64140e51 100644 (file)
--- a/RADOS.xs
+++ b/RADOS.xs
@@ -8,7 +8,8 @@
 
 MODULE = PVE::RADOS            PACKAGE = PVE::RADOS
 
-rados_t pve_rados_create() 
+rados_t 
+pve_rados_create() 
 PROTOTYPE:
 CODE:
 {      
@@ -24,6 +25,22 @@ CODE:
 }
 OUTPUT: RETVAL
 
+int 
+pve_rados_conf_set(cluster, key, value) 
+rados_t cluster
+char *key
+char *value
+PROTOTYPE: $$$
+CODE:
+{
+    RETVAL = rados_conf_set(cluster, key, value);
+    if (RETVAL < 0) {           
+        die("rados_conf_set failed - %s\n", strerror(-RETVAL));
+    }   
+}
+OUTPUT: RETVAL
+
+
 int pve_rados_connect(cluster) 
 rados_t cluster
 PROTOTYPE: $