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, 24 insertions, 14 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 a42320410527..d6184df8952a 100644 --- a/devel/ORBit/files/patch-src::IIOP::giop-msg-buffer.c +++ b/devel/ORBit/files/patch-src::IIOP::giop-msg-buffer.c @@ -1,24 +1,34 @@ $FreeBSD$ ---- 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 @@ +--- 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 @@ sum); } #endif - res = 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; ++ res = g_writev(fd, curvec, nvecs); 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); + |