[ruby-libvirt] Don't make volume upload zero bytes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The virStreamSourceFunc internal_sendall currently returns the first
value passed in from the block, which according the ruby-libvirt docs
should be zero:

  The send block should return an array of 2 elements; the first element
  should be the return code from the block (-1 for error, 0 otherwise)

But according to the libvirt docs of virStreamSourceFunc this indicates
EOF:

  Returns:  the number of bytes filled, 0 upon end of file, or -1 upon error

So return the size of the buffer to unbreak volume uploads.
---
 ext/libvirt/stream.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ext/libvirt/stream.c b/ext/libvirt/stream.c
index 1353dc9..c171535 100644
--- a/ext/libvirt/stream.c
+++ b/ext/libvirt/stream.c
@@ -131,7 +131,7 @@ static int internal_sendall(virStreamPtr RUBY_LIBVIRT_UNUSED(st), char *data,
 
     memcpy(data, RSTRING_PTR(buffer), RSTRING_LEN(buffer));
 
-    return NUM2INT(retcode);
+    return RSTRING_LEN(buffer);
 }
 
 /*
-- 
2.8.1

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]