Author: mturk
Date: Fri Jul 15 11:01:51 2011
New Revision: 1147091

URL: http://svn.apache.org/viewvc?rev=1147091&view=rev
Log:
Use macros for flags struct member set/get/check

Modified:
    
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalDescriptor.java
    commons/sandbox/runtime/trunk/src/main/native/include/acr/stddefs.h
    commons/sandbox/runtime/trunk/src/main/native/os/unix/inetsock.c
    commons/sandbox/runtime/trunk/src/main/native/os/unix/localsock.c
    commons/sandbox/runtime/trunk/src/main/native/os/unix/sockstream.c
    commons/sandbox/runtime/trunk/src/main/native/os/win32/localsock.c

Modified: 
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalDescriptor.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalDescriptor.java?rev=1147091&r1=1147090&r2=1147091&view=diff
==============================================================================
--- 
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalDescriptor.java
 (original)
+++ 
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalDescriptor.java
 Fri Jul 15 11:01:51 2011
@@ -43,7 +43,7 @@ final class LocalDescriptor extends Desc
     private static native int     block0(long fd, boolean block);
     private static native int     tmset0(long fd, int timeout);
     private static native int     shutdown0(long fd, int how);
-    private static native boolean isBlocking0(long fd)
+    private static native boolean blocking0(long fd)
         throws IOException;
 
     public LocalDescriptor()
@@ -74,7 +74,7 @@ final class LocalDescriptor extends Desc
     {
         if (closed())
             throw new ClosedDescriptorException();
-        return isBlocking0(fd);
+        return blocking0(fd);
     }
 
     public LocalDescriptor configureBlocking(boolean block)

Modified: commons/sandbox/runtime/trunk/src/main/native/include/acr/stddefs.h
URL: 
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/include/acr/stddefs.h?rev=1147091&r1=1147090&r2=1147091&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/include/acr/stddefs.h 
(original)
+++ commons/sandbox/runtime/trunk/src/main/native/include/acr/stddefs.h Fri Jul 
15 11:01:51 2011
@@ -296,10 +296,14 @@
 
 #define ACR_SET(o, f)           do { (o) |=  (f); } while (0)
 #define ACR_CLR(o, f)           do { (o) &= ~(f); } while (0)
-#define ACR_HAS(o, f)           ((o) & (f))
+#define ACR_HAS(o, f)           (((o) & (f)) != 0)
 #define ACR_NOT(o, f)           (((o) & (f)) == 0)
 #define ACR_ISSET(o, f)         (((o) & (f)) == (f))
 
+#define ACR_SETFLAG(o, f)       do { (o)->flags |=  (f); } while (0)
+#define ACR_CLRFLAG(o, f)       do { (o)->flags &= ~(f); } while (0)
+#define ACR_HASFLAG(o, f)       (((o)->flags & (f)) != 0)
+
 #define UNUSED_SOURCE_FILE(F)   \
 const char __provided_##F [] = "Using system provided " #F "()"
 

Modified: commons/sandbox/runtime/trunk/src/main/native/os/unix/inetsock.c
URL: 
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/unix/inetsock.c?rev=1147091&r1=1147090&r2=1147091&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/unix/inetsock.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/unix/inetsock.c Fri Jul 15 
11:01:51 2011
@@ -108,13 +108,15 @@ ACR_NET_EXPORT(jlong, SocketDescriptor, 
         return 0;
     }
     sp->type    = ACR_DT_SOCKET;
-    sp->timeout = -1;
     sp->refs    = 1;
     sp->s       = sd;
     if (block == JNI_FALSE) {
         sp->flags   = ACR_DT_NONBLOCK;
         sp->timeout = 0;
     }
+    else {
+        sp->timeout = -1;
+    }
     return P2J(sp);
 }
 
@@ -165,8 +167,9 @@ ACR_NET_EXPORT(jint, SocketDescriptor, s
     sd = retain_sd(fd);
     if (shutdown(fd->s, how) == -1)
         rc = ACR_GET_NETOS_ERROR();
-    if (how != 1)
-        fd->flags |= ACR_DT_HITEOF;
+    if (how != 1) {
+        ACR_SETFLAG(fd, ACR_DT_HITEOF);
+    }
     release_sd(fd);
     return rc;
 }
@@ -177,8 +180,7 @@ ACR_NET_EXPORT(jint, SocketDescriptor, b
     acr_sd_t *fd = J2P(fp, acr_sd_t *);
 
     if (on == JNI_TRUE) {
-        if ((fd->flags & ACR_DT_NONBLOCK) != 0 &&
-            (rc = AcrNonblock(fd->s, 0)) == 0) {
+        if (ACR_HASFLAG(fd, ACR_DT_NONBLOCK) && (rc = AcrNonblock(fd->s, 0)) 
== 0) {
             fd->timeout = -1;
 #if HAVE_SO_RCVTIMEO && HAVE_SO_SNDTIMEO
             {
@@ -189,15 +191,14 @@ ACR_NET_EXPORT(jint, SocketDescriptor, b
                            (char *)&zero, (socklen_t)sizeof(zero));
             }
 #endif
-            fd->flags &= ~ACR_DT_NONBLOCK;
+            ACR_CLRFLAG(fd, ACR_DT_NONBLOCK);
         }
     }
     else {
-        if ((fd->flags & ACR_DT_NONBLOCK) == 0 &&
-            (rc = AcrNonblock(fd->s, 1)) == 0) {
+        if (!ACR_HASFLAG(fd, ACR_DT_NONBLOCK) && (rc = AcrNonblock(fd->s, 1)) 
== 0) {
             if (fd->timeout < 0)
                 fd->timeout = 0;
-            fd->flags |= ACR_DT_NONBLOCK;
+            ACR_SETFLAG(fd, ACR_DT_NONBLOCK);
         }
     }
     return rc;
@@ -207,10 +208,10 @@ ACR_NET_EXPORT(jboolean, SocketDescripto
 {
     acr_sd_t *fd = J2P(fp, acr_sd_t *);
 
-    if ((fd->flags & ACR_DT_NONBLOCK) == 0)
-        return JNI_TRUE;
-    else
+    if (ACR_HASFLAG(fd, ACR_DT_NONBLOCK))
         return JNI_FALSE;
+    else
+        return JNI_TRUE;
 }
 
 ACR_NET_EXPORT(jboolean, SocketAddress, haveipv6)(JNI_STDARGS)

Modified: commons/sandbox/runtime/trunk/src/main/native/os/unix/localsock.c
URL: 
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/unix/localsock.c?rev=1147091&r1=1147090&r2=1147091&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/unix/localsock.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/unix/localsock.c Fri Jul 
15 11:01:51 2011
@@ -91,8 +91,9 @@ ACR_NET_EXPORT(jint, LocalDescriptor, sh
     sd = retain_sd(fd);
     if (shutdown(sd, how) == -1)
         rc = ACR_GET_NETOS_ERROR();
-    if (how != 1)
-        fd->flags |= ACR_DT_HITEOF;
+    if (how != 1) {
+        ACR_SETFLAG(fd, ACR_DT_HITEOF);
+    }
     release_sd(fd);
     return rc;
 }
@@ -160,13 +161,15 @@ ACR_NET_EXPORT(jlong, LocalDescriptor, s
         return 0;
     }
     sp->type    = ACR_DT_LSOCK;
-    sp->timeout = -1;
     sp->refs    = 1;
     sp->s       = sd;
     if (block == JNI_FALSE) {
         sp->flags   = ACR_DT_NONBLOCK;
         sp->timeout = 0;
     }
+    else {
+        sp->timeout = -1;
+    }
     return P2J(sp);
 }
 
@@ -176,27 +179,23 @@ ACR_NET_EXPORT(jint, LocalDescriptor, bl
     acr_sd_t *fd = J2P(fp, acr_sd_t *);
 
     if (on == JNI_TRUE) {
-        if ((fd->flags & ACR_DT_NONBLOCK) != 0 &&
-            (rc = AcrNonblock(fd->s, 0)) == 0) {
-            fd->timeout = -1;
+        if (ACR_HASFLAG(fd, ACR_DT_NONBLOCK) && (rc = AcrNonblock(fd->s, 0)) 
== 0) {
 #if HAVE_SO_RCVTIMEO && HAVE_SO_SNDTIMEO
-            {
-                int zero = 0;
-                setsockopt(fd->s, SOL_SOCKET, SO_RCVTIMEO,
-                           (char *)&zero, (socklen_t)sizeof(zero));
-                setsockopt(fd->s, SOL_SOCKET, SO_SNDTIMEO,
-                           (char *)&zero, (socklen_t)sizeof(zero));
-            }
+            int zero = 0;
+            setsockopt(fd->s, SOL_SOCKET, SO_RCVTIMEO,
+                        (char *)&zero, (socklen_t)sizeof(zero));
+            setsockopt(fd->s, SOL_SOCKET, SO_SNDTIMEO,
+                        (char *)&zero, (socklen_t)sizeof(zero));
 #endif
-            fd->flags &= ~ACR_DT_NONBLOCK;
+            fd->timeout = -1;
+            ACR_CLRFLAG(fd, ACR_DT_NONBLOCK);
         }
     }
     else {
-        if ((fd->flags & ACR_DT_NONBLOCK) == 0 &&
-            (rc = AcrNonblock(fd->s, 1)) == 0) {
+        if (!ACR_HASFLAG(fd, ACR_DT_NONBLOCK) && (rc = AcrNonblock(fd->s, 1)) 
== 0) {
             if (fd->timeout < 0)
                 fd->timeout = 0;
-            fd->flags |= ACR_DT_NONBLOCK;
+            ACR_SETFLAG(fd, ACR_DT_NONBLOCK);
         }
     }
     return rc;
@@ -208,17 +207,17 @@ ACR_NET_EXPORT(jint, LocalDescriptor, tm
     acr_sd_t *fd = J2P(fp, acr_sd_t *);
 
     if (timeout == 0) {
-        if ((fd->flags & ACR_DT_NONBLOCK) == 0) {
+        if (!ACR_HASFLAG(fd, ACR_DT_NONBLOCK)) {
             if ((rc = AcrNonblock(fd->s, 1)) != 0)
                 return rc;
-            fd->flags |= ACR_DT_NONBLOCK;
+            ACR_SETFLAG(fd, ACR_DT_NONBLOCK);
         }
     }
     else if (timeout > 0) {
-        if ((fd->flags & ACR_DT_NONBLOCK) == 0) {
+        if (!ACR_HASFLAG(fd, ACR_DT_NONBLOCK)) {
             if ((rc = AcrNonblock(fd->s, 1)) != 0)
                 return rc;
-            fd->flags |= ACR_DT_NONBLOCK;
+            ACR_SETFLAG(fd, ACR_DT_NONBLOCK);
         }
 #if HAVE_SO_RCVTIMEO && HAVE_SO_SNDTIMEO
         if (fd->timeout != timeout) {
@@ -230,10 +229,10 @@ ACR_NET_EXPORT(jint, LocalDescriptor, tm
 #endif
     }
     else if (timeout < 0) {
-        if ((fd->flags & ACR_DT_NONBLOCK) != 0) {
+        if (ACR_HASFLAG(fd, ACR_DT_NONBLOCK)) {
             if ((rc = AcrNonblock(fd->s, 0)) != 0)
                 return rc;
-            fd->flags &= ~ACR_DT_NONBLOCK;
+            ACR_CLRFLAG(fd, ACR_DT_NONBLOCK);
         }
 #if HAVE_SO_RCVTIMEO && HAVE_SO_SNDTIMEO
         {
@@ -249,34 +248,14 @@ ACR_NET_EXPORT(jint, LocalDescriptor, tm
     return 0;
 }
 
-ACR_NET_EXPORT(jboolean, LocalDescriptor, isBlocking0)(JNI_STDARGS, jlong fp)
+ACR_NET_EXPORT(jboolean, LocalDescriptor, blocking0)(JNI_STDARGS, jlong fp)
 {
     acr_sd_t *fd = J2P(fp, acr_sd_t *);
 
-    if ((fd->flags & ACR_DT_NONBLOCK) == 0)
-        return JNI_TRUE;
-    else
+    if (ACR_HASFLAG(fd, ACR_DT_NONBLOCK))
         return JNI_FALSE;
-#if 0
-#ifdef O_NONBLOCK
-    /* Use non-blocking I/O
-    */
-    long mode;
-    acr_sd_t *fd = J2P(fp, acr_sd_t *);
-
-    if ((mode = fcntl(fd->s, F_GETFL, 0)) == -1) {
-        ACR_THROW_NET_ERRNO();
+    else
         return JNI_TRUE;
-    }
-    if ((mode & O_NONBLOCK) == O_NONBLOCK)
-        return JNI_FALSE;
-#else
-    /* Non blocking I/O is unsupported.
-    */
-    ACR_THROW_NET_ERROR(ACR_ENOTIMPL);
-#endif
-    return JNI_TRUE;
-#endif
 }
 
 ACR_NET_EXPORT(jint, LocalEndpoint, connect0)(JNI_STDARGS, jlong fp,
@@ -290,7 +269,7 @@ ACR_NET_EXPORT(jint, LocalEndpoint, conn
     sd = retain_sd(fd);
     if (timeout == 0)
         timeout = fd->timeout;
-    if (timeout > 0 && (fd->flags & ACR_DT_NONBLOCK) == 0) {
+    if (timeout > 0 && !ACR_HASFLAG(fd, ACR_DT_NONBLOCK)) {
         /* Turn the socket to non-blocking mode
          */
         if ((rc = AcrNonblock(sd, 1)) != 0)
@@ -319,7 +298,7 @@ ACR_NET_EXPORT(jint, LocalEndpoint, conn
                 }
 #endif
             }
-            if ((fd->type & ACR_DT_NONBLOCK) == 0)
+            if (!ACR_HASFLAG(fd, ACR_DT_NONBLOCK))
                  AcrNonblock(fd->s, 0);
         }
     }
@@ -404,7 +383,7 @@ ACR_NET_EXPORT(jlong, LocalServerEndpoin
     if (block == JNI_FALSE) {
         int rc = 0;
 #if HAVE_NONBLOCK_INHERITED
-        if ((fd->flags & ACR_DT_NONBLOCK) == 0)
+        if (!ACR_HASFLAG(fd, ACR_DT_NONBLOCK))
 #endif
         rc = AcrNonblock(sd, 1);
         if (rc != 0) {
@@ -414,7 +393,7 @@ ACR_NET_EXPORT(jlong, LocalServerEndpoin
         }
     }
 #if HAVE_NONBLOCK_INHERITED
-    else if ((fd->flags & ACR_DT_NONBLOCK) != 0) {
+    else if (ACR_HASFLAG(fd, ACR_DT_NONBLOCK)) {
         /* We have nonblocking acceptor and need
          * blocking socket
          */
@@ -436,14 +415,17 @@ ACR_NET_EXPORT(jlong, LocalServerEndpoin
         return 0;
     }
     sp->type    = ACR_DT_LSOCK;
-    sp->flags   = fd->flags & ~ACR_DT_NONBLOCK;
+    sp->flags   = fd->flags;
     sp->timeout = fd->timeout;
     sp->refs    = 1;
     sp->s       = sd;
     if (block == JNI_FALSE) {
-        sp->flags |= ACR_DT_NONBLOCK;
+        ACR_SETFLAG(sp, ACR_DT_NONBLOCK);
         if (sp->timeout < 0)
             sp->timeout = 0;
     }
+    else {
+        ACR_CLRFLAG(sp, ACR_DT_NONBLOCK);
+    }
     return P2J(sp);
 }

Modified: commons/sandbox/runtime/trunk/src/main/native/os/unix/sockstream.c
URL: 
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/unix/sockstream.c?rev=1147091&r1=1147090&r2=1147091&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/unix/sockstream.c 
(original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/unix/sockstream.c Fri Jul 
15 11:01:51 2011
@@ -40,7 +40,7 @@ typedef struct acr_ss_t {
     acr_sd_t    *fd;
 } acr_ss_t;
 
-ACR_INLINE(int) _retain_sd(acr_ss_t *ss)
+ACR_INLINE(int) retain_sd(acr_ss_t *ss)
 {
     if (ss->fd != 0) {
         AcrAtomic32Inc(&ss->fd->refs);
@@ -50,7 +50,7 @@ ACR_INLINE(int) _retain_sd(acr_ss_t *ss)
         return -1;
 }
 
-ACR_INLINE(void) _release_sd(acr_ss_t *ss)
+ACR_INLINE(int) release_sd(acr_ss_t *ss)
 {
     if (AcrAtomic32Dec(&ss->fd->refs) == 0) {
         /* Socket was closed while we were
@@ -60,7 +60,10 @@ ACR_INLINE(void) _release_sd(acr_ss_t *s
          */
         AcrFree(ss->fd);
         ss->fd = 0;
+        return 0;
     }
+    else
+        return 1;
 }
 
 ACR_NET_EXPORT(jlong, SocketStream, alloc0)(JNI_STDARGS, jlong fp)
@@ -91,12 +94,49 @@ ACR_NET_EXPORT(jint, SocketStream, close
 ACR_NET_EXPORT(jboolean, SocketStream, eof0)(JNI_STDARGS, jlong sp)
 {
     acr_ss_t *ss = J2P(sp, acr_ss_t *);
-    if ((ss->fd->flags & ACR_DT_HITEOF) != 0)
+    if (ACR_HASFLAG(ss->fd, ACR_DT_HITEOF))
         return JNI_TRUE;
     else
         return JNI_FALSE;
 }
 
+ACR_NET_EXPORT(jboolean, SocketStream, eof1)(JNI_STDARGS, jlong sp)
+{
+    int sd,  rc = 0;
+    jboolean rv = JNI_TRUE;
+    acr_ss_t *ss = J2P(sp, acr_ss_t *);
+
+    if ((sd = retain_sd(ss)) == -1) {
+        rc = ACR_EBADF;
+        goto finally;
+    }
+    if (ACR_HASFLAG(ss->fd, ACR_DT_HITEOF))
+        goto finally;
+    rc = AcrWaitIO(sd, 0, POLLIN);
+    if (rc == 0) {
+        char dummy;
+        ssize_t rd = recv(sd, &dummy, 1, MSG_PEEK);
+        if (rd == -1)
+            rc = errno;
+        else if (rd != 0)
+            rv = JNI_FALSE;
+    }
+    else if (rc == ACR_TIMEUP) {
+        rv = JNI_FALSE;
+        rc = 0;
+    }
+    if (rv) {
+        ACR_SETFLAG(ss->fd, ACR_DT_HITEOF);
+    }
+finally:
+    release_sd(ss);
+    if (rc != 0) {
+        ACR_THROW_NET_ERROR(rc);
+    }
+    return rv;
+}
+
+
 ACR_NET_EXPORT(jint, SocketStream, avail0)(JNI_STDARGS, jlong sp)
 {
     int avail;
@@ -121,14 +161,12 @@ ACR_NET_EXPORT(jint, SocketStream, read0
     unsigned char ch;
     acr_ss_t *ss = J2P(sp, acr_ss_t *);
 
-    if ((ss->fd->flags & ACR_DT_HITEOF) != 0) {
-        /* Already hit EOF */
-        return -1;
-    }
-    if ((sd = _retain_sd(ss)) == -1) {
+    if ((sd = retain_sd(ss)) == -1) {
         rc = ACR_EBADF;
         goto finally;
     }
+    if (ACR_HASFLAG(ss->fd, ACR_DT_HITEOF))
+        goto finally;
     rd = r_read(sd, &ch, 1);
     if (rd == -1 && (errno == EAGAIN || errno == EWOULDBLOCK) &&
         ss->fd->timeout > 0) {
@@ -144,7 +182,7 @@ ACR_NET_EXPORT(jint, SocketStream, read0
     else
         ss->fd->flags |= ACR_DT_HITEOF;
 finally:
-    _release_sd(ss);
+    release_sd(ss);
     if (rc != 0) {
         ACR_THROW_NET_ERROR(rc);
         return -1;
@@ -165,14 +203,12 @@ ACR_NET_EXPORT(jint, SocketStream, read1
     jbyte   onstack[ACR_PBUFF_SIZ];
     acr_ss_t *ss = J2P(sp, acr_ss_t *);
 
-    if ((ss->fd->flags & ACR_DT_HITEOF) != 0) {
-        /* Already hit EOF */
-        return -1;
-    }
-    if ((sd = _retain_sd(ss)) == -1) {
+    if ((sd = retain_sd(ss)) == -1) {
         rc = ACR_EBADF;
         goto finally;
     }
+    if (ACR_HASFLAG(ss->fd, ACR_DT_HITEOF))
+        goto finally;
     if (len > ACR_PBUFF_SIZ) {
         if (len > ACR_MEGABYTE) {
             if ((bc = (*env)->GetByteArrayElements(env, buf, 0)) != 0)
@@ -201,7 +237,7 @@ ACR_NET_EXPORT(jint, SocketStream, read1
         ss->fd->flags |= ACR_DT_HITEOF;
 
 finally:
-    _release_sd(ss);
+    release_sd(ss);
     if (rc == 0) {
         if (rd > 0) {
             if (bc != 0) {
@@ -238,14 +274,12 @@ ACR_NET_EXPORT(jint, SocketStream, read2
     char     *bb = J2P(pa, char *);
     acr_ss_t *ss = J2P(sp, acr_ss_t *);
 
-    if ((ss->fd->flags & ACR_DT_HITEOF) != 0) {
-        /* Already hit EOF */
-        return -1;
-    }
-    if ((sd = _retain_sd(ss)) == -1) {
+    if ((sd = retain_sd(ss)) == -1) {
         rc = ACR_EBADF;
         goto finally;
     }
+    if (ACR_HASFLAG(ss->fd, ACR_DT_HITEOF))
+        goto finally;
     if (bb == 0) {
         rc = ACR_EINVAL;
         goto finally;
@@ -264,7 +298,7 @@ ACR_NET_EXPORT(jint, SocketStream, read2
         ss->fd->flags |= ACR_DT_HITEOF;
 
 finally:
-    _release_sd(ss);
+    release_sd(ss);
     if (rc != 0) {
         rd = 0;
         /* Throw exception */
@@ -284,14 +318,12 @@ ACR_NET_EXPORT(jint, SocketStream, read3
     char     *bb = 0;
     acr_ss_t *ss = J2P(sp, acr_ss_t *);
 
-    if ((ss->fd->flags & ACR_DT_HITEOF) != 0) {
-        /* Already hit EOF */
-        return -1;
-    }
-    if ((sd = _retain_sd(ss)) == -1) {
+    if ((sd = retain_sd(ss)) == -1) {
         rc = ACR_EBADF;
         goto finally;
     }
+    if (ACR_HASFLAG(ss->fd, ACR_DT_HITEOF))
+        goto finally;
     bb = (char *)(*env)->GetDirectBufferAddress(env, buf);
     if (bb == 0) {
         rc = ACR_EINVAL;
@@ -312,7 +344,7 @@ ACR_NET_EXPORT(jint, SocketStream, read3
         ss->fd->flags |= ACR_DT_HITEOF;
 
 finally:
-    _release_sd(ss);
+    release_sd(ss);
     if (rc != 0) {
         rd = 0;
         /* Throw exception */
@@ -330,7 +362,7 @@ ACR_NET_EXPORT(jint, SocketStream, write
     ssize_t wr = 0;
     acr_ss_t *ss = J2P(sp, acr_ss_t *);
 
-    if ((sd = _retain_sd(ss)) == -1) {
+    if ((sd = retain_sd(ss)) == -1) {
         rc = ACR_EBADF;
         goto finally;
     }
@@ -345,7 +377,7 @@ ACR_NET_EXPORT(jint, SocketStream, write
     if (wr == -1)
         rc = ACR_GET_OS_ERROR();
 finally:
-    _release_sd(ss);
+    release_sd(ss);
     if (rc != 0) {
         wr = -1;
         ACR_THROW_NET_ERROR(rc);
@@ -364,7 +396,7 @@ ACR_NET_EXPORT(jint, SocketStream, write
     ssize_t wr = 0;
     acr_ss_t *ss = J2P(sp, acr_ss_t *);
 
-    if ((sd = _retain_sd(ss)) == -1) {
+    if ((sd = retain_sd(ss)) == -1) {
         rc = ACR_EBADF;
         goto finally;
     }
@@ -384,7 +416,7 @@ ACR_NET_EXPORT(jint, SocketStream, write
     if (wr == -1)
         rc = ACR_GET_OS_ERROR();
 finally:
-    _release_sd(ss);
+    release_sd(ss);
     if (bb != 0)
         (*env)->ReleaseByteArrayElements(env, buf, bb, JNI_ABORT);
     if (rc != 0) {
@@ -406,7 +438,7 @@ ACR_NET_EXPORT(jint, SocketStream, write
     char     *bb = J2P(pa, char *);
     acr_ss_t *ss = J2P(sp, acr_ss_t *);
 
-    if ((sd = _retain_sd(ss)) == -1) {
+    if ((sd = retain_sd(ss)) == -1) {
         rc = ACR_EBADF;
         goto finally;
     }
@@ -425,7 +457,7 @@ ACR_NET_EXPORT(jint, SocketStream, write
     if (wr == -1)
         rc = ACR_GET_OS_ERROR();
 finally:
-    _release_sd(ss);
+    release_sd(ss);
     if (rc != 0) {
         wr = -1;
         ACR_THROW_NET_ERROR(rc);
@@ -444,7 +476,7 @@ ACR_NET_EXPORT(jint, SocketStream, write
     ssize_t wr = 0;
     acr_ss_t *ss = J2P(sp, acr_ss_t *);
 
-    if ((sd = _retain_sd(ss)) == -1) {
+    if ((sd = retain_sd(ss)) == -1) {
         rc = ACR_EBADF;
         goto finally;
     }
@@ -464,7 +496,7 @@ ACR_NET_EXPORT(jint, SocketStream, write
     if (wr == -1)
         rc = ACR_GET_OS_ERROR();
 finally:
-    _release_sd(ss);
+    release_sd(ss);
     if (rc != 0) {
         wr = -1;
         ACR_THROW_NET_ERROR(rc);
@@ -487,7 +519,7 @@ ACR_NET_EXPORT(jlong, SocketStream, writ
     jbyteArray    bastack[ACR_IOVEC_ON_STACK];
     acr_ss_t *ss = J2P(sp, acr_ss_t *);
 
-    if ((sd = _retain_sd(ss)) == -1) {
+    if ((sd = retain_sd(ss)) == -1) {
         rc = ACR_EBADF;
         goto finally;
     }
@@ -540,7 +572,7 @@ ACR_NET_EXPORT(jlong, SocketStream, writ
     if (wr == -1)
         rc = ACR_GET_OS_ERROR();        
 finally:
-    _release_sd(ss);
+    release_sd(ss);
     if (boa != 0) {
         for (i = 0; i < len; i++) {
             if (boa[i] != 0)
@@ -572,7 +604,7 @@ ACR_NET_EXPORT(jlong, SocketStream, writ
     struct iovec  onstack[ACR_IOVEC_ON_STACK];
     acr_ss_t *ss = J2P(sp, acr_ss_t *);
 
-    if ((sd = _retain_sd(ss)) == -1) {
+    if ((sd = retain_sd(ss)) == -1) {
         rc = ACR_EBADF;
         goto finally;
     }
@@ -617,7 +649,7 @@ ACR_NET_EXPORT(jlong, SocketStream, writ
     if (wr == -1)
         rc = ACR_GET_OS_ERROR();
 finally:
-    _release_sd(ss);
+    release_sd(ss);
     if (iov != onstack)
         AcrFree(iov);
     if (rc != 0) {

Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/localsock.c
URL: 
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/localsock.c?rev=1147091&r1=1147090&r2=1147091&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/localsock.c 
(original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/localsock.c Fri Jul 
15 11:01:51 2011
@@ -111,8 +111,9 @@ ACR_NET_EXPORT(jint, LocalDescriptor, sh
     sd = retain_sd(fd);
     if (shutdown(fd->s, how) == SOCKET_ERROR)
         rc = ACR_GET_NETOS_ERROR();
-    if (how != 1)
-        fd->flags |= ACR_DT_HITEOF;
+    if (how != 1) {
+        ACR_SETFLAG(fd, ACR_DT_HITEOF);
+    }
     release_sd(fd);
     return rc;
 }
@@ -167,13 +168,15 @@ ACR_NET_EXPORT(jlong, LocalDescriptor, s
         return 0;
     }
     sp->type    = ACR_DT_LSOCK;
-    sp->timeout = -1;
     sp->refs    = 1;
     sp->s       = sd;
     if (block == JNI_FALSE) {
-        sp->flags  |= ACR_DT_NONBLOCK;
+        ACR_SETFLAG(sp, ACR_DT_NONBLOCK);
         sp->timeout = 0;
     }
+    else {
+        sp->timeout = -1;
+    }
     return P2J(sp);
 }
 
@@ -183,7 +186,7 @@ ACR_NET_EXPORT(jint, LocalDescriptor, bl
     acr_sd_t *fd = J2P(fp, acr_sd_t *);
 
     if (on == JNI_TRUE) {
-        if ((fd->flags & ACR_DT_NONBLOCK) != 0) {
+        if (ACR_HASFLAG(fd, ACR_DT_NONBLOCK)) {
             int zero = 0;
             if ((rc = AcrNonblock(fd->s, 0)) != 0)
                 return rc;
@@ -192,29 +195,29 @@ ACR_NET_EXPORT(jint, LocalDescriptor, bl
             setsockopt(fd->s, SOL_SOCKET, SO_SNDTIMEO,
                         (char *)&zero, (socklen_t)sizeof(zero));
             fd->timeout = -1;
-            fd->flags &= ~ACR_DT_NONBLOCK;
+            ACR_CLRFLAG(fd, ACR_DT_NONBLOCK);
         }
     }
     else {
-        if ((fd->flags & ACR_DT_NONBLOCK) == 0) {
+        if (!ACR_HASFLAG(fd, ACR_DT_NONBLOCK)) {
             if ((rc = AcrNonblock(fd->s, 1)) != 0)
                 return rc;
             if (fd->timeout < 0)
                 fd->timeout = 0;
-            fd->flags |= ACR_DT_NONBLOCK;
+            ACR_SETFLAG(fd, ACR_DT_NONBLOCK);
         }
     }    
     return 0;
 }
 
-ACR_NET_EXPORT(jboolean, LocalDescriptor, isBlocking0)(JNI_STDARGS, jlong fp)
+ACR_NET_EXPORT(jboolean, LocalDescriptor, blocking0)(JNI_STDARGS, jlong fp)
 {
     acr_sd_t *fd = J2P(fp, acr_sd_t *);
 
-    if ((fd->flags & ACR_DT_NONBLOCK) == 0)
-        return JNI_TRUE;
-    else
+    if (ACR_HASFLAG(fd, ACR_DT_NONBLOCK))
         return JNI_FALSE;
+    else
+        return JNI_TRUE;
 }
 
 ACR_NET_EXPORT(jint, LocalDescriptor, tmset0)(JNI_STDARGS, jlong fp, jint 
timeout)
@@ -223,17 +226,17 @@ ACR_NET_EXPORT(jint, LocalDescriptor, tm
     acr_sd_t *fd = J2P(fp, acr_sd_t *);
 
     if (timeout == 0) {
-        if ((fd->flags & ACR_DT_NONBLOCK) == 0) {
+        if (!ACR_HASFLAG(fd, ACR_DT_NONBLOCK)) {
             if ((rc = AcrNonblock(fd->s, 1)) != 0)
                 return rc;
-            fd->flags |= ACR_DT_NONBLOCK;
+            ACR_SETFLAG(fd, ACR_DT_NONBLOCK);
         }
     }
     else if (timeout > 0) {
-        if ((fd->flags & ACR_DT_NONBLOCK) == 0) {
+        if (!ACR_HASFLAG(fd, ACR_DT_NONBLOCK)) {
             if ((rc = AcrNonblock(fd->s, 1)) != 0)
                 return rc;
-            fd->flags |= ACR_DT_NONBLOCK;
+            ACR_SETFLAG(fd, ACR_DT_NONBLOCK);
         }
         if (fd->timeout != timeout) {
             setsockopt(fd->s, SOL_SOCKET, SO_RCVTIMEO,
@@ -244,10 +247,10 @@ ACR_NET_EXPORT(jint, LocalDescriptor, tm
     }
     else if (timeout < 0) {
         int zero = 0;
-        if ((fd->flags & ACR_DT_NONBLOCK) != 0) {
+        if (ACR_HASFLAG(fd, ACR_DT_NONBLOCK)) {
             if ((rc = AcrNonblock(fd->s, 0)) != 0)
                 return rc;
-            fd->flags &= ~ACR_DT_NONBLOCK;
+            ACR_CLRFLAG(fd, ACR_DT_NONBLOCK);
         }
         setsockopt(fd->s, SOL_SOCKET, SO_RCVTIMEO,
                     (char *)&zero, (socklen_t)sizeof(zero));
@@ -301,12 +304,12 @@ ACR_NET_EXPORT(jint, LocalEndpoint, conn
     if (timeout == 0)
         timeout = fd->timeout;
     sd = retain_sd(fd);
-    if (timeout > 0 && (fd->flags & ACR_DT_NONBLOCK) == 0) {
+    if (timeout > 0 && !ACR_HASFLAG(fd, ACR_DT_NONBLOCK)) {
         /* Turn the socket to non-blocking mode
          * for the duration of the connect call.
          */
         if ((rc = AcrNonblock(sd, 1)) != 0)
-            goto finally;;
+            goto finally;
     }
     rc = connect(sd, (SOCKADDR *)&sa, sas);
     if (rc == SOCKET_ERROR)
@@ -324,7 +327,7 @@ ACR_NET_EXPORT(jint, LocalEndpoint, conn
                         rc = err;
                 }
             }
-            if ((fd->type & ACR_DT_NONBLOCK) == 0)
+            if (!ACR_HASFLAG(fd, ACR_DT_NONBLOCK))
                  AcrNonblock(sd, 0);
         }
     }
@@ -435,7 +438,7 @@ ACR_NET_EXPORT(jlong, LocalServerEndpoin
         return 0;
     }
     if (block == JNI_FALSE) {
-        if ((fd->flags & ACR_DT_NONBLOCK) == 0) {
+        if (!ACR_HASFLAG(fd, ACR_DT_NONBLOCK)) {
             int rc = AcrNonblock(sd, 1);
             if (rc != 0) {
                 closesocket(sd);
@@ -444,7 +447,7 @@ ACR_NET_EXPORT(jlong, LocalServerEndpoin
             }
         }
     }
-    else if ((fd->flags & ACR_DT_NONBLOCK) != 0) {
+    else if (ACR_HASFLAG(fd, ACR_DT_NONBLOCK)) {
         int rc = AcrNonblock(sd, 0);
         if (rc != 0) {
             closesocket(sd);
@@ -465,14 +468,17 @@ ACR_NET_EXPORT(jlong, LocalServerEndpoin
     SOCKADDR_RELEASE(ba, aa);
     
     sp->type    = ACR_DT_LSOCK;
-    sp->flags   = fd->flags & ~ACR_DT_NONBLOCK;
+    sp->flags   = fd->flags;
     sp->timeout = fd->timeout;
     sp->refs    = 1;
     sp->s       = sd;
     if (block == JNI_FALSE) {
-        sp->flags |= ACR_DT_NONBLOCK;
+        ACR_SETFLAG(sp, ACR_DT_NONBLOCK);
         if (sp->timeout < 0)
             sp->timeout = 0;
     }
+    else {
+        ACR_CLRFLAG(sp, ACR_DT_NONBLOCK);
+    }
     return P2J(sp);
 }


Reply via email to