Author: mturk
Date: Tue Nov 15 08:31:04 2011
New Revision: 1202088
URL: http://svn.apache.org/viewvc?rev=1202088&view=rev
Log:
Implement SO_BROADCAST in native
Modified:
commons/sandbox/runtime/trunk/src/main/native/os/unix/sockopts.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/sockopts.c
Modified: commons/sandbox/runtime/trunk/src/main/native/os/unix/sockopts.c
URL:
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/unix/sockopts.c?rev=1202088&r1=1202087&r2=1202088&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/unix/sockopts.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/unix/sockopts.c Tue Nov 15
08:31:04 2011
@@ -187,6 +187,17 @@ ACR_NET_EXPORT(jint, SocketDescriptor, o
/* Set numeric values */
switch (opt) {
+ case ACR_OPT_SO_BROADCAST:
+#if defined(SO_BROADCAST)
+ if (on != ACR_HASFLAG(fd, ACR_SO_BROADCAST)) {
+ if (setsockopt(fd->s, SOL_SOCKET, SO_BROADCAST, (void *)&on,
SSIZEOF(int)) != 0)
+ return ACR_GET_NETOS_ERROR();
+ ACR_PUTFLAG(fd, ACR_SO_BROADCAST, on);
+ }
+#else
+ rc = ACR_ENOTIMPL;
+#endif
+ break;
case ACR_OPT_SO_KEEPALIVE:
#if defined(SO_KEEPALIVE)
if (on != ACR_HASFLAG(fd, ACR_SO_KEEPALIVE)) {
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/sockopts.c
URL:
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/sockopts.c?rev=1202088&r1=1202087&r2=1202088&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/sockopts.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/sockopts.c Tue Nov
15 08:31:04 2011
@@ -139,6 +139,17 @@ ACR_NET_EXPORT(jint, SocketDescriptor, o
/* Set numeric values */
switch (opt) {
+ case ACR_OPT_SO_BROADCAST:
+#if defined(SO_BROADCAST)
+ if (on != ACR_HASFLAG(fd, ACR_SO_BROADCAST)) {
+ if (setsockopt(fd->s, SOL_SOCKET, SO_BROADCAST, (void *)&on,
SSIZEOF(int)) != 0)
+ return ACR_GET_NETOS_ERROR();
+ ACR_PUTFLAG(fd, ACR_SO_BROADCAST, on);
+ }
+#else
+ rc = ACR_ENOTIMPL;
+#endif
+ break;
case ACR_OPT_SO_KEEPALIVE:
if (on != ACR_HASFLAG(fd, ACR_SO_KEEPALIVE)) {
if (setsockopt(fd->s, SOL_SOCKET, SO_KEEPALIVE, (char *)&on,
SSIZEOF(int)) != 0)