[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-API] RE: [PATCH] CA-38567: Fail Unixext calls with a proper Unix_error
Hi Daniel, I didn't realize there was a dependency here... I'll work on this one next. After our recent nasty C binding experience I wanted to double- and triple- check it was ok before pushing :) Cheers, Dave > -----Original Message----- > From: Daniel Stodden > Sent: 08 March 2010 19:21 > To: Dave Scott > Cc: Xen API > Subject: Re: [PATCH] CA-38567: Fail Unixext calls with a proper > Unix_error > > > Hi Dave. > > Thanks for accepting these patches. Is the one below still in your > queue? Looks like it got dropped. Without it, the ones discussed won't > be able to translate to said Api_error. > > Cheers, > Daniel > > On Fri, 2010-03-05 at 18:22 -0500, Daniel Stodden wrote: > > # 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |