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

[Xen-API] [PATCH] CA-38567: Fail Unixext calls with a proper Unix_error



# HG changeset patch
# User Daniel Stodden <daniel.stodden@xxxxxxxxxx>
# Date 1267831355 28800
# Node ID ac6d6a74fd33f1a3fb02cc9f3bea4f58ac9713de
# Parent  45b22c29867df47adc2dc21a008c6f6730e6e4fc
CA-38567: Fail Unixext calls with a proper Unix_error.

diff -r 45b22c29867d -r ac6d6a74fd33 stdext/unixext_stubs.c
--- a/stdext/unixext_stubs.c    Wed Feb 17 10:14:40 2010 +0000
+++ b/stdext/unixext_stubs.c    Fri Mar 05 15:22:35 2010 -0800
@@ -30,16 +30,7 @@
 #include <caml/custom.h>
 #include <caml/fail.h>
 #include <caml/callback.h>
-
-static void failwith_errno(void)
-{
-        char buf[256];
-       char buf2[280];
-       memset(buf, '\0', sizeof(buf));
-       strerror_r(errno, buf, sizeof(buf));
-       snprintf(buf2, sizeof(buf2), "errno: %d msg: %s", errno, buf);
-       caml_failwith(buf2);
-}
+#include <caml/unixsupport.h>
 
 /* Set the TCP_NODELAY flag on a Unix.file_descr */
 CAMLprim value stub_unixext_set_tcp_nodelay (value fd, value bool)
@@ -48,7 +39,7 @@
        int c_fd = Int_val(fd);
        int opt = (Bool_val(bool)) ? 1 : 0;
        if (setsockopt(c_fd, IPPROTO_TCP, TCP_NODELAY, (void *)&opt, 
sizeof(opt)) != 0){
-               failwith_errno();
+               uerror("setsockopt", Nothing);
        }
        CAMLreturn(Val_unit);
 }
@@ -57,7 +48,7 @@
 {
        CAMLparam1(fd);
        int c_fd = Int_val(fd);
-       if (fsync(c_fd) != 0) failwith_errno();
+       if (fsync(c_fd) != 0) uerror("fsync", Nothing);
        CAMLreturn(Val_unit);
 }
        
@@ -67,7 +58,7 @@
   uint64_t size;
   int c_fd = Int_val(fd);
   if(ioctl(c_fd,BLKGETSIZE64,&size)) {
-    failwith_errno();
+    uerror("ioctl(BLKGETSIZE64)", Nothing);
   }
   CAMLreturn(caml_copy_int64(size));
 }
# HG changeset patch
# User Daniel Stodden <daniel.stodden@xxxxxxxxxx>
# Date 1267831355 28800
# Node ID ac6d6a74fd33f1a3fb02cc9f3bea4f58ac9713de
# Parent  45b22c29867df47adc2dc21a008c6f6730e6e4fc
CA-38567: Fail Unixext calls with a proper Unix_error.

diff -r 45b22c29867d -r ac6d6a74fd33 stdext/unixext_stubs.c
--- a/stdext/unixext_stubs.c    Wed Feb 17 10:14:40 2010 +0000
+++ b/stdext/unixext_stubs.c    Fri Mar 05 15:22:35 2010 -0800
@@ -30,16 +30,7 @@
 #include <caml/custom.h>
 #include <caml/fail.h>
 #include <caml/callback.h>
-
-static void failwith_errno(void)
-{
-        char buf[256];
-       char buf2[280];
-       memset(buf, '\0', sizeof(buf));
-       strerror_r(errno, buf, sizeof(buf));
-       snprintf(buf2, sizeof(buf2), "errno: %d msg: %s", errno, buf);
-       caml_failwith(buf2);
-}
+#include <caml/unixsupport.h>
 
 /* Set the TCP_NODELAY flag on a Unix.file_descr */
 CAMLprim value stub_unixext_set_tcp_nodelay (value fd, value bool)
@@ -48,7 +39,7 @@
        int c_fd = Int_val(fd);
        int opt = (Bool_val(bool)) ? 1 : 0;
        if (setsockopt(c_fd, IPPROTO_TCP, TCP_NODELAY, (void *)&opt, 
sizeof(opt)) != 0){
-               failwith_errno();
+               uerror("setsockopt", Nothing);
        }
        CAMLreturn(Val_unit);
 }
@@ -57,7 +48,7 @@
 {
        CAMLparam1(fd);
        int c_fd = Int_val(fd);
-       if (fsync(c_fd) != 0) failwith_errno();
+       if (fsync(c_fd) != 0) uerror("fsync", Nothing);
        CAMLreturn(Val_unit);
 }
        
@@ -67,7 +58,7 @@
   uint64_t size;
   int c_fd = Int_val(fd);
   if(ioctl(c_fd,BLKGETSIZE64,&size)) {
-    failwith_errno();
+    uerror("ioctl(BLKGETSIZE64)", Nothing);
   }
   CAMLreturn(caml_copy_int64(size));
 }
_______________________________________________
xen-api mailing list
xen-api@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/mailman/listinfo/xen-api

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.