Author: mturk
Date: Sun Jul 17 14:05:25 2011
New Revision: 1147619
URL: http://svn.apache.org/viewvc?rev=1147619&view=rev
Log:
Move those lenghty configure code to a separate files inside build directory
Modified:
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalServerEndpoint.java
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/SocketServerEndpoint.java
commons/sandbox/runtime/trunk/src/main/native/os/unix/inetsock.c
Modified:
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalServerEndpoint.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalServerEndpoint.java?rev=1147619&r1=1147618&r2=1147619&view=diff
==============================================================================
---
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalServerEndpoint.java
(original)
+++
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalServerEndpoint.java
Sun Jul 17 14:05:25 2011
@@ -172,7 +172,11 @@ public class LocalServerEndpoint extends
backlog = LISTEN_BACKLOG;
int rc = bind0(sd.fd(), endpoint.sockaddr(), backlog);
if (rc != 0) {
- sd.close();
+ try {
+ sd.close();
+ } catch (Exception u) {
+ // Ingnore close Exceptions.
+ }
throw new IOException(Status.describe(rc));
}
bound = true;
Modified:
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/SocketServerEndpoint.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/SocketServerEndpoint.java?rev=1147619&r1=1147618&r2=1147619&view=diff
==============================================================================
---
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/SocketServerEndpoint.java
(original)
+++
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/SocketServerEndpoint.java
Sun Jul 17 14:05:25 2011
@@ -168,7 +168,11 @@ public class SocketServerEndpoint extend
backlog = LISTEN_BACKLOG;
int rc = bind0(sd.fd(), sa.sockaddr(), backlog);
if (rc != 0) {
- sd.close();
+ try {
+ sd.close();
+ } catch (Exception u) {
+ // Ingnore close Exceptions.
+ }
throw new IOException(Status.describe(rc));
}
bound = true;
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=1147619&r1=1147618&r2=1147619&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 Sun Jul 17
14:05:25 2011
@@ -274,28 +274,34 @@ ACR_NET_EXPORT(jint, SocketServerEndpoin
{
static char any[16] = { 0 }; /* big enough for IPv4 or IPv6 */
int rc = 0;
+ int on = 1;
acr_sockaddr_t *aa = SOCKADDR_CAST(ba);
acr_sd_t *fd = J2P(fp, acr_sd_t *);
+ if (setsockopt(fd->s, SOL_SOCKET, SO_REUSEADDR, (void *)&on, SSIZEOF(int))
!= 0) {
+ rc = ACR_GET_NETOS_ERROR();
+ goto finally;
+ }
if (bind(fd->s, (const struct sockaddr *)&aa->sa, aa->salen) == -1) {
/* bind failed.
*/
rc = ACR_GET_NETOS_ERROR();
+ goto finally;
}
- else {
- /* Check for ephemeral port and "any" address.
- * The provided byte array is duplicate of the original
- * so it can be modified.
- */
- if (aa->port == 0 || memcmp(&aa->sa.sin.sin_addr, any, aa->iplen) ==
0) {
- /* Get the real address for the bound socket.
- */
- rc = AcrGetLocalAddr(fd, aa);
- }
+ /* Check for ephemeral port and "any" address.
+ * The provided byte array is duplicate of the original
+ * so it can be modified.
+ */
+ if (aa->port == 0 || memcmp(&aa->sa.sin.sin_addr, any, aa->iplen) == 0) {
+ /* Get the real address for the bound socket.
+ */
+ if ((rc = AcrGetLocalAddr(fd, aa)) != 0)
+ goto finally;
}
- SOCKADDR_RELEASE(ba, aa);
- if (rc == 0 && listen(fd->s, backlog) == -1)
+ if (listen(fd->s, backlog) == -1)
rc = ACR_GET_NETOS_ERROR();
+finally:
+ SOCKADDR_RELEASE(ba, aa);
return rc;
}