diff options
Diffstat (limited to 'devel/ORBit/files/patch-src::IIOP::giop-msg-buffer.c')
-rw-r--r-- | devel/ORBit/files/patch-src::IIOP::giop-msg-buffer.c | 38 |
1 files changed, 14 insertions, 24 deletions
diff --git a/devel/ORBit/files/patch-src::IIOP::giop-msg-buffer.c b/devel/ORBit/files/patch-src::IIOP::giop-msg-buffer.c index d6184df8952a..a42320410527 100644 --- a/devel/ORBit/files/patch-src::IIOP::giop-msg-buffer.c +++ b/devel/ORBit/files/patch-src::IIOP::giop-msg-buffer.c @@ -1,34 +1,24 @@ $FreeBSD$ ---- src/IIOP/giop-msg-buffer.c.orig Wed Oct 3 09:51:21 2001 -+++ src/IIOP/giop-msg-buffer.c Sat Oct 27 15:52:11 2001 -@@ -34,10 +34,6 @@ - #include "IIOP.h" - #include "IIOP-private.h" - --#ifdef HAVE_LIMITED_WRITEV --#define writev g_writev --#endif -- - /* type defs */ - - #ifdef __GNUC__ -@@ -197,7 +193,7 @@ +--- src/IIOP/giop-msg-buffer.c 2001/10/26 12:42:42 1.1 ++++ src/IIOP/giop-msg-buffer.c 2001/10/26 12:42:53 +@@ -197,7 +197,17 @@ sum); } #endif - res = writev(fd, curvec, nvecs); -+ res = g_writev(fd, curvec, nvecs); ++ for(sum = 0, t = 0; t < nvecs; t++) { ++ do { ++ res = write(fd, curvec[t].iov_base, curvec[t].iov_len); ++ } while (res < 0 && errno == EAGAIN); ++ if (res < 0) { ++ break; ++ } else ++ sum += res; ++ } ++ if (res >= 0) ++ res = sum; sum = (GIOP_MESSAGE_BUFFER(send_buffer)->message_header.message_size + sizeof(GIOPMessageHeader)); if(res < sum) { -@@ -227,7 +223,7 @@ - - fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK); - -- t = writev(fd, curvec, nvecs); -+ t = g_writev(fd, curvec, nvecs); - - fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) | O_NONBLOCK); - |