summaryrefslogtreecommitdiffstats
path: root/gluster/gfapi.py
diff options
context:
space:
mode:
Diffstat (limited to 'gluster/gfapi.py')
-rw-r--r--gluster/gfapi.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/gluster/gfapi.py b/gluster/gfapi.py
index 7d09102..b1f14d2 100644
--- a/gluster/gfapi.py
+++ b/gluster/gfapi.py
@@ -101,15 +101,21 @@ class File(object):
rbuf = ctypes.create_string_buffer(buflen)
ret = api.glfs_read(self.fd, rbuf, buflen, flags)
if ret > 0:
- return rbuf.value[:ret]
+ return rbuf
elif ret < 0:
err = ctypes.get_errno()
raise OSError(err, os.strerror(err))
else:
return ret
- def write(self, data, flags=0):
- ret = api.glfs_write(self.fd, data, len(data), flags)
+ def write(self, data):
+ # creating a ctypes.c_ubyte buffer to handle converting bytearray
+ # to the required C data type
+ if type(data) is bytearray:
+ buf = (ctypes.c_ubyte * len(data)).from_buffer(data)
+ else:
+ buf = data
+ ret = api.glfs_write(self.fd, buf, len(buf))
if ret < 0:
err = ctypes.get_errno()
raise OSError(err, os.strerror(err))