mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-06 09:17:02 +08:00
DatagramSocket.java, [...]: Use gnu.java.net.Plain*SocketImpl instead of java.net.PlainSocketImpl.
2003-09-10 Michael Koch <konqueror@gmx.de> * java/net/DatagramSocket.java, java/net/MulticastSocket.java, java/net/ServerSocket.java, java/net/Socket.java: Use gnu.java.net.Plain*SocketImpl instead of java.net.PlainSocketImpl. * java/net/PlainDatagramSocketImpl.java, java/net/PlainSocketImpl.java, java/net/SocketInputStream.java, java/net/SocketOutputStream.java, java/net/natPlainDatagramSocketImplNoNet.cc, java/net/natPlainDatagramSocketImplPosix.cc, java/net/natPlainDatagramSocketImplWin32.cc, java/net/natPlainSocketImplNoNet.cc, java/net/natPlainSocketImplPosix.cc, java/net/natPlainSocketImplWin32.cc: Removed. * gnu/java/net/PlainDatagramSocketImpl.java, gnu/java/net/PlainSocketImpl.java, gnu/java/net/SocketInputStream.java, gnu/java/net/SocketOutputStream.java, gnu/java/net/natPlainDatagramSocketImplNoNet.cc, gnu/java/net/natPlainDatagramSocketImplPosix.cc, gnu/java/net/natPlainDatagramSocketImplWin32.cc, gnu/java/net/natPlainSocketImplNoNet.cc, gnu/java/net/natPlainSocketImplPosix.cc, gnu/java/net/natPlainSocketImplWin32.cc: New files (moved from java/net). * configure.in: Create links for gnu/java/net/natPlain*SocketImpl.cc instead of java/net/natPlain*SocketImpl.cc. * configure: Regenerated. * Makefile.am: Moved files from java/net to gnu/java/net. * Makefile.in: Regenerated. From-SVN: r71274
This commit is contained in:
parent
520abf6930
commit
4a503716e0
@ -1,3 +1,39 @@
|
||||
2003-09-10 Michael Koch <konqueror@gmx.de>
|
||||
|
||||
* java/net/DatagramSocket.java,
|
||||
java/net/MulticastSocket.java,
|
||||
java/net/ServerSocket.java,
|
||||
java/net/Socket.java:
|
||||
Use gnu.java.net.Plain*SocketImpl instead of
|
||||
java.net.PlainSocketImpl.
|
||||
* java/net/PlainDatagramSocketImpl.java,
|
||||
java/net/PlainSocketImpl.java,
|
||||
java/net/SocketInputStream.java,
|
||||
java/net/SocketOutputStream.java,
|
||||
java/net/natPlainDatagramSocketImplNoNet.cc,
|
||||
java/net/natPlainDatagramSocketImplPosix.cc,
|
||||
java/net/natPlainDatagramSocketImplWin32.cc,
|
||||
java/net/natPlainSocketImplNoNet.cc,
|
||||
java/net/natPlainSocketImplPosix.cc,
|
||||
java/net/natPlainSocketImplWin32.cc:
|
||||
Removed.
|
||||
* gnu/java/net/PlainDatagramSocketImpl.java,
|
||||
gnu/java/net/PlainSocketImpl.java,
|
||||
gnu/java/net/SocketInputStream.java,
|
||||
gnu/java/net/SocketOutputStream.java,
|
||||
gnu/java/net/natPlainDatagramSocketImplNoNet.cc,
|
||||
gnu/java/net/natPlainDatagramSocketImplPosix.cc,
|
||||
gnu/java/net/natPlainDatagramSocketImplWin32.cc,
|
||||
gnu/java/net/natPlainSocketImplNoNet.cc,
|
||||
gnu/java/net/natPlainSocketImplPosix.cc,
|
||||
gnu/java/net/natPlainSocketImplWin32.cc:
|
||||
New files (moved from java/net).
|
||||
* configure.in: Create links for gnu/java/net/natPlain*SocketImpl.cc
|
||||
instead of java/net/natPlain*SocketImpl.cc.
|
||||
* configure: Regenerated.
|
||||
* Makefile.am: Moved files from java/net to gnu/java/net.
|
||||
* Makefile.in: Regenerated.
|
||||
|
||||
2003-09-09 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* configure: Regenerate.
|
||||
|
@ -2136,6 +2136,8 @@ gnu/java/locale/LocaleInformation_zh_HK.java \
|
||||
gnu/java/locale/LocaleInformation_zh_SG.java \
|
||||
gnu/java/locale/LocaleInformation_zh_TW.java \
|
||||
gnu/java/math/MPN.java \
|
||||
gnu/java/net/PlainDatagramSocketImpl.java \
|
||||
gnu/java/net/PlainSocketImpl.java \
|
||||
gnu/java/nio/DatagramChannelImpl.java \
|
||||
gnu/java/nio/FileLockImpl.java \
|
||||
gnu/java/nio/PipeImpl.java \
|
||||
@ -2232,8 +2234,6 @@ java/net/NetPermission.java \
|
||||
java/net/NetworkInterface.java \
|
||||
java/net/NoRouteToHostException.java \
|
||||
java/net/PasswordAuthentication.java \
|
||||
java/net/PlainDatagramSocketImpl.java \
|
||||
java/net/PlainSocketImpl.java \
|
||||
java/net/PortUnreachableException.java \
|
||||
java/net/ProtocolException.java \
|
||||
java/net/ServerSocket.java \
|
||||
@ -2604,6 +2604,8 @@ gnu/gcj/runtime/natStackTrace.cc \
|
||||
gnu/gcj/runtime/natStringBuffer.cc \
|
||||
gnu/gcj/runtime/natVMClassLoader.cc \
|
||||
gnu/java/awt/natEmbeddedWindow.cc \
|
||||
gnu/java/net/natPlainDatagramSocketImpl.cc \
|
||||
gnu/java/net/natPlainSocketImpl.cc \
|
||||
gnu/java/nio/natFileLockImpl.cc \
|
||||
gnu/java/nio/natSelectorImpl.cc \
|
||||
java/io/natFile.cc \
|
||||
@ -2632,8 +2634,6 @@ java/lang/reflect/natMethod.cc \
|
||||
java/lang/reflect/natProxy.cc \
|
||||
java/net/natNetworkInterface.cc \
|
||||
java/net/natInetAddress.cc \
|
||||
java/net/natPlainDatagramSocketImpl.cc \
|
||||
java/net/natPlainSocketImpl.cc \
|
||||
java/nio/natDirectByteBufferImpl.cc \
|
||||
java/nio/channels/natFileChannelImpl.cc \
|
||||
java/text/natCollator.cc \
|
||||
|
@ -1891,6 +1891,8 @@ gnu/java/locale/LocaleInformation_zh_HK.java \
|
||||
gnu/java/locale/LocaleInformation_zh_SG.java \
|
||||
gnu/java/locale/LocaleInformation_zh_TW.java \
|
||||
gnu/java/math/MPN.java \
|
||||
gnu/java/net/PlainDatagramSocketImpl.java \
|
||||
gnu/java/net/PlainSocketImpl.java \
|
||||
gnu/java/nio/DatagramChannelImpl.java \
|
||||
gnu/java/nio/FileLockImpl.java \
|
||||
gnu/java/nio/PipeImpl.java \
|
||||
@ -1987,8 +1989,6 @@ java/net/NetPermission.java \
|
||||
java/net/NetworkInterface.java \
|
||||
java/net/NoRouteToHostException.java \
|
||||
java/net/PasswordAuthentication.java \
|
||||
java/net/PlainDatagramSocketImpl.java \
|
||||
java/net/PlainSocketImpl.java \
|
||||
java/net/PortUnreachableException.java \
|
||||
java/net/ProtocolException.java \
|
||||
java/net/ServerSocket.java \
|
||||
@ -2358,6 +2358,8 @@ gnu/gcj/runtime/natStackTrace.cc \
|
||||
gnu/gcj/runtime/natStringBuffer.cc \
|
||||
gnu/gcj/runtime/natVMClassLoader.cc \
|
||||
gnu/java/awt/natEmbeddedWindow.cc \
|
||||
gnu/java/net/natPlainDatagramSocketImpl.cc \
|
||||
gnu/java/net/natPlainSocketImpl.cc \
|
||||
gnu/java/nio/natFileLockImpl.cc \
|
||||
gnu/java/nio/natSelectorImpl.cc \
|
||||
java/io/natFile.cc \
|
||||
@ -2386,8 +2388,6 @@ java/lang/reflect/natMethod.cc \
|
||||
java/lang/reflect/natProxy.cc \
|
||||
java/net/natNetworkInterface.cc \
|
||||
java/net/natInetAddress.cc \
|
||||
java/net/natPlainDatagramSocketImpl.cc \
|
||||
java/net/natPlainSocketImpl.cc \
|
||||
java/nio/natDirectByteBufferImpl.cc \
|
||||
java/nio/channels/natFileChannelImpl.cc \
|
||||
java/text/natCollator.cc \
|
||||
@ -2535,20 +2535,21 @@ gnu/gcj/runtime/natFinalizerThread.lo gnu/gcj/runtime/natFirstThread.lo \
|
||||
gnu/gcj/runtime/natNameFinder.lo gnu/gcj/runtime/natSharedLibLoader.lo \
|
||||
gnu/gcj/runtime/natStackTrace.lo gnu/gcj/runtime/natStringBuffer.lo \
|
||||
gnu/gcj/runtime/natVMClassLoader.lo gnu/java/awt/natEmbeddedWindow.lo \
|
||||
gnu/java/nio/natFileLockImpl.lo gnu/java/nio/natSelectorImpl.lo \
|
||||
java/io/natFile.lo java/io/natFileDescriptor.lo \
|
||||
java/io/natObjectInputStream.lo java/io/natVMObjectStreamClass.lo \
|
||||
java/lang/natCharacter.lo java/lang/natClass.lo \
|
||||
java/lang/natClassLoader.lo java/lang/natConcreteProcess.lo \
|
||||
java/lang/natDouble.lo java/lang/natFloat.lo java/lang/natMath.lo \
|
||||
java/lang/natObject.lo java/lang/natRuntime.lo java/lang/natString.lo \
|
||||
gnu/java/net/natPlainDatagramSocketImpl.lo \
|
||||
gnu/java/net/natPlainSocketImpl.lo gnu/java/nio/natFileLockImpl.lo \
|
||||
gnu/java/nio/natSelectorImpl.lo java/io/natFile.lo \
|
||||
java/io/natFileDescriptor.lo java/io/natObjectInputStream.lo \
|
||||
java/io/natVMObjectStreamClass.lo java/lang/natCharacter.lo \
|
||||
java/lang/natClass.lo java/lang/natClassLoader.lo \
|
||||
java/lang/natConcreteProcess.lo java/lang/natDouble.lo \
|
||||
java/lang/natFloat.lo java/lang/natMath.lo java/lang/natObject.lo \
|
||||
java/lang/natRuntime.lo java/lang/natString.lo \
|
||||
java/lang/natStringBuffer.lo java/lang/natSystem.lo \
|
||||
java/lang/natThread.lo java/lang/natVMSecurityManager.lo \
|
||||
java/lang/ref/natReference.lo java/lang/reflect/natArray.lo \
|
||||
java/lang/reflect/natConstructor.lo java/lang/reflect/natField.lo \
|
||||
java/lang/reflect/natMethod.lo java/lang/reflect/natProxy.lo \
|
||||
java/net/natNetworkInterface.lo java/net/natInetAddress.lo \
|
||||
java/net/natPlainDatagramSocketImpl.lo java/net/natPlainSocketImpl.lo \
|
||||
java/nio/natDirectByteBufferImpl.lo \
|
||||
java/nio/channels/natFileChannelImpl.lo java/text/natCollator.lo \
|
||||
java/util/natResourceBundle.lo java/util/natTimeZone.lo \
|
||||
@ -3008,7 +3009,11 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
|
||||
.deps/gnu/java/locale/LocaleInformation_zh_HK.P \
|
||||
.deps/gnu/java/locale/LocaleInformation_zh_SG.P \
|
||||
.deps/gnu/java/locale/LocaleInformation_zh_TW.P \
|
||||
.deps/gnu/java/math/MPN.P .deps/gnu/java/nio/DatagramChannelImpl.P \
|
||||
.deps/gnu/java/math/MPN.P .deps/gnu/java/net/PlainDatagramSocketImpl.P \
|
||||
.deps/gnu/java/net/PlainSocketImpl.P \
|
||||
.deps/gnu/java/net/natPlainDatagramSocketImpl.P \
|
||||
.deps/gnu/java/net/natPlainSocketImpl.P \
|
||||
.deps/gnu/java/nio/DatagramChannelImpl.P \
|
||||
.deps/gnu/java/nio/FileLockImpl.P .deps/gnu/java/nio/PipeImpl.P \
|
||||
.deps/gnu/java/nio/SelectionKeyImpl.P .deps/gnu/java/nio/SelectorImpl.P \
|
||||
.deps/gnu/java/nio/SelectorProviderImpl.P \
|
||||
@ -3508,8 +3513,6 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
|
||||
.deps/java/net/NetPermission.P .deps/java/net/NetworkInterface.P \
|
||||
.deps/java/net/NoRouteToHostException.P \
|
||||
.deps/java/net/PasswordAuthentication.P \
|
||||
.deps/java/net/PlainDatagramSocketImpl.P \
|
||||
.deps/java/net/PlainSocketImpl.P \
|
||||
.deps/java/net/PortUnreachableException.P \
|
||||
.deps/java/net/ProtocolException.P .deps/java/net/ServerSocket.P \
|
||||
.deps/java/net/Socket.P .deps/java/net/SocketAddress.P \
|
||||
@ -3525,9 +3528,7 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
|
||||
.deps/java/net/UnknownHostException.P \
|
||||
.deps/java/net/UnknownServiceException.P \
|
||||
.deps/java/net/natInetAddress.P .deps/java/net/natNetworkInterface.P \
|
||||
.deps/java/net/natPlainDatagramSocketImpl.P \
|
||||
.deps/java/net/natPlainSocketImpl.P .deps/java/nio/Buffer.P \
|
||||
.deps/java/nio/BufferOverflowException.P \
|
||||
.deps/java/nio/Buffer.P .deps/java/nio/BufferOverflowException.P \
|
||||
.deps/java/nio/BufferUnderflowException.P .deps/java/nio/ByteBuffer.P \
|
||||
.deps/java/nio/ByteBufferImpl.P .deps/java/nio/ByteOrder.P \
|
||||
.deps/java/nio/CharBuffer.P .deps/java/nio/CharBufferImpl.P \
|
||||
|
545
libjava/configure
vendored
545
libjava/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -272,13 +272,16 @@ test -d java/lang || mkdir java/lang
|
||||
AC_LINK_FILES(java/lang/${PLATFORM}Process.java, java/lang/ConcreteProcess.java)
|
||||
AC_LINK_FILES(java/lang/nat${PLATFORM}Process.cc, java/lang/natConcreteProcess.cc)
|
||||
|
||||
dnl Likewise for natInetAddress.cc, natNetworkInterface.cc, natPlainSocketImpl.cc
|
||||
dnl and natPlainDatagramSocketImpl.cc
|
||||
dnl Likewise for natInetAddress.cc and natNetworkInterface.cc.
|
||||
test -d java/net || mkdir java/net
|
||||
AC_LINK_FILES(java/net/natInetAddress${PLATFORMNET}.cc, java/net/natInetAddress.cc)
|
||||
AC_LINK_FILES(java/net/natNetworkInterface${PLATFORMNET}.cc, java/net/natNetworkInterface.cc)
|
||||
AC_LINK_FILES(java/net/natPlainSocketImpl${PLATFORMNET}.cc, java/net/natPlainSocketImpl.cc)
|
||||
AC_LINK_FILES(java/net/natPlainDatagramSocketImpl${PLATFORMNET}.cc, java/net/natPlainDatagramSocketImpl.cc)
|
||||
|
||||
dnl Likewise for natPlainSocketImpl.cc and natPlainDatagramSocketImpl.ca.c
|
||||
test -d gnu/java || mkdir gnu/java
|
||||
test -d gnu/java/net || mkdir gnu/java/net
|
||||
AC_LINK_FILES(gnu/java/net/natPlainSocketImpl${PLATFORMNET}.cc, gnu/java/net/natPlainSocketImpl.cc)
|
||||
AC_LINK_FILES(gnu/java/net/natPlainDatagramSocketImpl${PLATFORMNET}.cc, gnu/java/net/natPlainDatagramSocketImpl.cc)
|
||||
|
||||
case "${host}" in
|
||||
*mingw*)
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* PlainDatagramSocketImpl.java -- Default DatagramSocket implementation
|
||||
Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2001, 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -36,9 +36,17 @@ obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.net;
|
||||
package gnu.java.net;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.DatagramPacket;
|
||||
import java.net.DatagramSocketImpl;
|
||||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.NetworkInterface;
|
||||
import java.net.SocketAddress;
|
||||
import java.net.SocketOptions;
|
||||
import java.net.SocketException;
|
||||
import gnu.classpath.Configuration;
|
||||
|
||||
/**
|
||||
@ -55,7 +63,7 @@ import gnu.classpath.Configuration;
|
||||
* @author Aaron M. Renn <arenn@urbanophile.com>
|
||||
* @author Warren Levy <warrenl@cygnus.com>
|
||||
*/
|
||||
class PlainDatagramSocketImpl extends DatagramSocketImpl
|
||||
public final class PlainDatagramSocketImpl extends DatagramSocketImpl
|
||||
{
|
||||
// Static initializer to load native library
|
||||
static
|
@ -1,5 +1,5 @@
|
||||
/* PlainSocketImpl.java -- Default socket implementation
|
||||
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -36,11 +36,17 @@ obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.net;
|
||||
package gnu.java.net;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.SocketAddress;
|
||||
import java.net.SocketException;
|
||||
import java.net.SocketImpl;
|
||||
import java.net.SocketOptions;
|
||||
import gnu.classpath.Configuration;
|
||||
|
||||
/**
|
||||
@ -59,7 +65,7 @@ import gnu.classpath.Configuration;
|
||||
* @author Nic Ferrier <nferrier@tapsellferrier.co.uk>
|
||||
* @author Aaron M. Renn <arenn@urbanophile.com>
|
||||
*/
|
||||
class PlainSocketImpl extends SocketImpl
|
||||
public final class PlainSocketImpl extends SocketImpl
|
||||
{
|
||||
// Static initializer to load native library.
|
||||
static
|
@ -36,7 +36,7 @@ obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.net;
|
||||
package gnu.java.net;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.io.IOException;
|
@ -35,7 +35,8 @@ this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
package java.net;
|
||||
|
||||
package gnu.java.net;
|
||||
|
||||
import java.io.OutputStream;
|
||||
import java.io.IOException;
|
119
libjava/gnu/java/net/natPlainDatagramSocketImplNoNet.cc
Normal file
119
libjava/gnu/java/net/natPlainDatagramSocketImplNoNet.cc
Normal file
@ -0,0 +1,119 @@
|
||||
/* Copyright (C) 2003 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
#include <config.h>
|
||||
#include <platform.h>
|
||||
|
||||
#include <gnu/java/net/PlainDatagramSocketImpl.h>
|
||||
#include <java/io/IOException.h>
|
||||
#include <java/lang/Object.h>
|
||||
#include <java/net/BindException.h>
|
||||
#include <java/net/DatagramPacket.h>
|
||||
#include <java/net/InetAddress.h>
|
||||
#include <java/net/NetworkInterface.h>
|
||||
#include <java/net/SocketException.h>
|
||||
|
||||
void
|
||||
gnu::java::net::PlainDatagramSocketImpl::create ()
|
||||
{
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.create: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainDatagramSocketImpl::bind (jint, ::java::net::InetAddress *)
|
||||
{
|
||||
throw new ::java::net::BindException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.bind: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainDatagramSocketImpl::connect (::java::net::InetAddress *, jint)
|
||||
{
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.connect: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainDatagramSocketImpl::disconnect ()
|
||||
{
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.disconnect: unimplemented"));
|
||||
}
|
||||
|
||||
jint
|
||||
gnu::java::net::PlainDatagramSocketImpl::peek (::java::net::InetAddress *)
|
||||
{
|
||||
throw new ::java::io::IOException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.peek: unimplemented"));
|
||||
}
|
||||
|
||||
jint
|
||||
gnu::java::net::PlainDatagramSocketImpl::peekData (::java::net::DatagramPacket *)
|
||||
{
|
||||
throw new ::java::io::IOException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.peekData: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainDatagramSocketImpl::close ()
|
||||
{
|
||||
throw new ::java::io::IOException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.close: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainDatagramSocketImpl::send (::java::net::DatagramPacket *)
|
||||
{
|
||||
throw new ::java::io::IOException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.send: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainDatagramSocketImpl::receive (::java::net::DatagramPacket *)
|
||||
{
|
||||
throw new ::java::io::IOException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.receive: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainDatagramSocketImpl::setTimeToLive (jint)
|
||||
{
|
||||
throw new ::java::io::IOException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.setTimeToLive: unimplemented"));
|
||||
}
|
||||
|
||||
jint
|
||||
gnu::java::net::PlainDatagramSocketImpl::getTimeToLive ()
|
||||
{
|
||||
throw new ::java::io::IOException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.getTimeToLive: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainDatagramSocketImpl::mcastGrp (::java::net::InetAddress *,
|
||||
::java::net::NetworkInterface *,
|
||||
jboolean)
|
||||
{
|
||||
throw new ::java::io::IOException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.mcastGrp: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainDatagramSocketImpl::setOption (jint, ::java::lang::Object *)
|
||||
{
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.setOption: unimplemented"));
|
||||
}
|
||||
|
||||
::java::lang::Object *
|
||||
gnu::java::net::PlainDatagramSocketImpl::getOption (jint)
|
||||
{
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.getOption: unimplemented"));
|
||||
}
|
@ -24,11 +24,11 @@ details. */
|
||||
#endif
|
||||
|
||||
#include <gcj/cni.h>
|
||||
#include <gnu/java/net/PlainDatagramSocketImpl.h>
|
||||
#include <java/io/IOException.h>
|
||||
#include <java/io/InterruptedIOException.h>
|
||||
#include <java/net/BindException.h>
|
||||
#include <java/net/SocketException.h>
|
||||
#include <java/net/PlainDatagramSocketImpl.h>
|
||||
#include <java/net/InetAddress.h>
|
||||
#include <java/net/NetworkInterface.h>
|
||||
#include <java/net/DatagramPacket.h>
|
||||
@ -69,14 +69,14 @@ union InAddr
|
||||
// NoRouteToHostException; also consider UnknownHostException, ConnectException.
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::create ()
|
||||
gnu::java::net::PlainDatagramSocketImpl::create ()
|
||||
{
|
||||
int sock = _Jv_socket (AF_INET, SOCK_DGRAM, 0);
|
||||
|
||||
if (sock < 0)
|
||||
{
|
||||
char* strerr = strerror (errno);
|
||||
throw new java::net::SocketException (JvNewStringUTF (strerr));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF (strerr));
|
||||
}
|
||||
|
||||
_Jv_platform_close_on_exec (sock);
|
||||
@ -87,8 +87,8 @@ java::net::PlainDatagramSocketImpl::create ()
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::bind (jint lport,
|
||||
java::net::InetAddress *host)
|
||||
gnu::java::net::PlainDatagramSocketImpl::bind (jint lport,
|
||||
::java::net::InetAddress *host)
|
||||
{
|
||||
union SockAddr u;
|
||||
struct sockaddr *ptr = (struct sockaddr *) &u.address;
|
||||
@ -119,7 +119,7 @@ java::net::PlainDatagramSocketImpl::bind (jint lport,
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
|
||||
if (_Jv_bind (fnum, ptr, len) == 0)
|
||||
{
|
||||
@ -143,25 +143,25 @@ java::net::PlainDatagramSocketImpl::bind (jint lport,
|
||||
|
||||
error:
|
||||
char* strerr = strerror (errno);
|
||||
throw new java::net::BindException (JvNewStringUTF (strerr));
|
||||
throw new ::java::net::BindException (JvNewStringUTF (strerr));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::connect (java::net::InetAddress *, jint)
|
||||
gnu::java::net::PlainDatagramSocketImpl::connect (::java::net::InetAddress *, jint)
|
||||
{
|
||||
throw new ::java::lang::InternalError (JvNewStringLatin1 (
|
||||
"PlainDatagramSocketImpl::connect: not implemented yet"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::disconnect ()
|
||||
gnu::java::net::PlainDatagramSocketImpl::disconnect ()
|
||||
{
|
||||
throw new ::java::lang::InternalError (JvNewStringLatin1 (
|
||||
"PlainDatagramSocketImpl::disconnect: not implemented yet"));
|
||||
}
|
||||
|
||||
jint
|
||||
java::net::PlainDatagramSocketImpl::peek (java::net::InetAddress *i)
|
||||
gnu::java::net::PlainDatagramSocketImpl::peek (::java::net::InetAddress *i)
|
||||
{
|
||||
// FIXME: Deal with Multicast and if the socket is connected.
|
||||
union SockAddr u;
|
||||
@ -189,7 +189,7 @@ java::net::PlainDatagramSocketImpl::peek (java::net::InetAddress *i)
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid family"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid family"));
|
||||
|
||||
i->addr = raddr;
|
||||
return rport;
|
||||
@ -197,13 +197,13 @@ java::net::PlainDatagramSocketImpl::peek (java::net::InetAddress *i)
|
||||
char* strerr = strerror (errno);
|
||||
|
||||
if (errno == ECONNREFUSED)
|
||||
throw new PortUnreachableException (JvNewStringUTF (strerr));
|
||||
throw new ::java::net::PortUnreachableException (JvNewStringUTF (strerr));
|
||||
|
||||
throw new java::io::IOException (JvNewStringUTF (strerr));
|
||||
throw new ::java::io::IOException (JvNewStringUTF (strerr));
|
||||
}
|
||||
|
||||
jint
|
||||
java::net::PlainDatagramSocketImpl::peekData(java::net::DatagramPacket *p)
|
||||
gnu::java::net::PlainDatagramSocketImpl::peekData (::java::net::DatagramPacket *p)
|
||||
{
|
||||
// FIXME: Deal with Multicast and if the socket is connected.
|
||||
union SockAddr u;
|
||||
@ -224,7 +224,7 @@ java::net::PlainDatagramSocketImpl::peekData(java::net::DatagramPacket *p)
|
||||
if ((retval = _Jv_select (fnum + 1, &rset, NULL, NULL, &tv)) < 0)
|
||||
goto error;
|
||||
else if (retval == 0)
|
||||
throw new java::io::InterruptedIOException ();
|
||||
throw new ::java::io::InterruptedIOException ();
|
||||
}
|
||||
|
||||
retlen =
|
||||
@ -250,9 +250,9 @@ java::net::PlainDatagramSocketImpl::peekData(java::net::DatagramPacket *p)
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid family"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid family"));
|
||||
|
||||
p->setAddress (new InetAddress (raddr, NULL));
|
||||
p->setAddress (new ::java::net::InetAddress (raddr, NULL));
|
||||
p->setPort (rport);
|
||||
p->setLength ((jint) retlen);
|
||||
return rport;
|
||||
@ -261,14 +261,14 @@ java::net::PlainDatagramSocketImpl::peekData(java::net::DatagramPacket *p)
|
||||
char* strerr = strerror (errno);
|
||||
|
||||
if (errno == ECONNREFUSED)
|
||||
throw new PortUnreachableException (JvNewStringUTF (strerr));
|
||||
throw new ::java::net::PortUnreachableException (JvNewStringUTF (strerr));
|
||||
|
||||
throw new java::io::IOException (JvNewStringUTF (strerr));
|
||||
throw new ::java::io::IOException (JvNewStringUTF (strerr));
|
||||
}
|
||||
|
||||
// Close(shutdown) the socket.
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::close ()
|
||||
gnu::java::net::PlainDatagramSocketImpl::close ()
|
||||
{
|
||||
// Avoid races from asynchronous finalization.
|
||||
JvSynchronize sync (this);
|
||||
@ -281,7 +281,7 @@ java::net::PlainDatagramSocketImpl::close ()
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::send (java::net::DatagramPacket *p)
|
||||
gnu::java::net::PlainDatagramSocketImpl::send (::java::net::DatagramPacket *p)
|
||||
{
|
||||
// FIXME: Deal with Multicast and if the socket is connected.
|
||||
jint rport = p->getPort();
|
||||
@ -308,7 +308,7 @@ java::net::PlainDatagramSocketImpl::send (java::net::DatagramPacket *p)
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
|
||||
if (::sendto (fnum, (char *) dbytes, p->getLength(), 0, ptr, len) >= 0)
|
||||
return;
|
||||
@ -316,13 +316,13 @@ java::net::PlainDatagramSocketImpl::send (java::net::DatagramPacket *p)
|
||||
char* strerr = strerror (errno);
|
||||
|
||||
if (errno == ECONNREFUSED)
|
||||
throw new PortUnreachableException (JvNewStringUTF (strerr));
|
||||
throw new ::java::net::PortUnreachableException (JvNewStringUTF (strerr));
|
||||
|
||||
throw new java::io::IOException (JvNewStringUTF (strerr));
|
||||
throw new ::java::io::IOException (JvNewStringUTF (strerr));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::receive (java::net::DatagramPacket *p)
|
||||
gnu::java::net::PlainDatagramSocketImpl::receive (::java::net::DatagramPacket *p)
|
||||
{
|
||||
// FIXME: Deal with Multicast and if the socket is connected.
|
||||
union SockAddr u;
|
||||
@ -343,7 +343,7 @@ java::net::PlainDatagramSocketImpl::receive (java::net::DatagramPacket *p)
|
||||
if ((retval = _Jv_select (fnum + 1, &rset, NULL, NULL, &tv)) < 0)
|
||||
goto error;
|
||||
else if (retval == 0)
|
||||
throw new java::io::InterruptedIOException ();
|
||||
throw new ::java::io::InterruptedIOException ();
|
||||
}
|
||||
|
||||
retlen =
|
||||
@ -369,9 +369,9 @@ java::net::PlainDatagramSocketImpl::receive (java::net::DatagramPacket *p)
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid family"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid family"));
|
||||
|
||||
p->setAddress (new InetAddress (raddr, NULL));
|
||||
p->setAddress (new ::java::net::InetAddress (raddr, NULL));
|
||||
p->setPort (rport);
|
||||
p->setLength ((jint) retlen);
|
||||
return;
|
||||
@ -380,13 +380,13 @@ java::net::PlainDatagramSocketImpl::receive (java::net::DatagramPacket *p)
|
||||
char* strerr = strerror (errno);
|
||||
|
||||
if (errno == ECONNREFUSED)
|
||||
throw new PortUnreachableException (JvNewStringUTF (strerr));
|
||||
throw new ::java::net::PortUnreachableException (JvNewStringUTF (strerr));
|
||||
|
||||
throw new java::io::IOException (JvNewStringUTF (strerr));
|
||||
throw new ::java::io::IOException (JvNewStringUTF (strerr));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::setTimeToLive (jint ttl)
|
||||
gnu::java::net::PlainDatagramSocketImpl::setTimeToLive (jint ttl)
|
||||
{
|
||||
// Assumes IPPROTO_IP rather than IPPROTO_IPV6 since socket created is IPv4.
|
||||
char val = (char) ttl;
|
||||
@ -396,11 +396,11 @@ java::net::PlainDatagramSocketImpl::setTimeToLive (jint ttl)
|
||||
return;
|
||||
|
||||
char* strerr = strerror (errno);
|
||||
throw new java::io::IOException (JvNewStringUTF (strerr));
|
||||
throw new ::java::io::IOException (JvNewStringUTF (strerr));
|
||||
}
|
||||
|
||||
jint
|
||||
java::net::PlainDatagramSocketImpl::getTimeToLive ()
|
||||
gnu::java::net::PlainDatagramSocketImpl::getTimeToLive ()
|
||||
{
|
||||
// Assumes IPPROTO_IP rather than IPPROTO_IPV6 since socket created is IPv4.
|
||||
char val;
|
||||
@ -410,13 +410,13 @@ java::net::PlainDatagramSocketImpl::getTimeToLive ()
|
||||
return ((int) val) & 0xFF;
|
||||
|
||||
char* strerr = strerror (errno);
|
||||
throw new java::io::IOException (JvNewStringUTF (strerr));
|
||||
throw new ::java::io::IOException (JvNewStringUTF (strerr));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::mcastGrp (java::net::InetAddress *inetaddr,
|
||||
java::net::NetworkInterface *,
|
||||
jboolean join)
|
||||
gnu::java::net::PlainDatagramSocketImpl::mcastGrp (::java::net::InetAddress *inetaddr,
|
||||
::java::net::NetworkInterface *,
|
||||
jboolean join)
|
||||
{
|
||||
// FIXME: implement use of NetworkInterface
|
||||
|
||||
@ -464,35 +464,35 @@ java::net::PlainDatagramSocketImpl::mcastGrp (java::net::InetAddress *inetaddr,
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
|
||||
if (::setsockopt (fnum, level, opname, ptr, len) == 0)
|
||||
return;
|
||||
|
||||
char* strerr = strerror (errno);
|
||||
throw new java::io::IOException (JvNewStringUTF (strerr));
|
||||
throw new ::java::io::IOException (JvNewStringUTF (strerr));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
java::lang::Object *value)
|
||||
gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
::java::lang::Object *value)
|
||||
{
|
||||
int val;
|
||||
socklen_t val_len = sizeof (val);
|
||||
|
||||
if (fnum < 0)
|
||||
throw new java::net::SocketException (JvNewStringUTF ("Socket closed"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("Socket closed"));
|
||||
|
||||
if (_Jv_IsInstanceOf (value, &java::lang::Boolean::class$))
|
||||
if (_Jv_IsInstanceOf (value, &::java::lang::Boolean::class$))
|
||||
{
|
||||
java::lang::Boolean *boolobj =
|
||||
static_cast<java::lang::Boolean *> (value);
|
||||
::java::lang::Boolean *boolobj =
|
||||
static_cast< ::java::lang::Boolean *> (value);
|
||||
val = boolobj->booleanValue() ? 1 : 0;
|
||||
}
|
||||
else if (_Jv_IsInstanceOf (value, &java::lang::Integer::class$))
|
||||
else if (_Jv_IsInstanceOf (value, &::java::lang::Integer::class$))
|
||||
{
|
||||
java::lang::Integer *intobj =
|
||||
static_cast<java::lang::Integer *> (value);
|
||||
::java::lang::Integer *intobj =
|
||||
static_cast< ::java::lang::Integer *> (value);
|
||||
val = (int) intobj->intValue();
|
||||
}
|
||||
// Else assume value to be an InetAddress for use with IP_MULTICAST_IF.
|
||||
@ -500,15 +500,15 @@ java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
switch (optID)
|
||||
{
|
||||
case _Jv_TCP_NODELAY_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("TCP_NODELAY not valid for UDP"));
|
||||
return;
|
||||
case _Jv_SO_LINGER_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_LINGER not valid for UDP"));
|
||||
return;
|
||||
case _Jv_SO_KEEPALIVE_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_KEEPALIVE not valid for UDP"));
|
||||
return;
|
||||
|
||||
@ -519,7 +519,7 @@ java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
break;
|
||||
|
||||
case _Jv_SO_OOBINLINE_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_OOBINLINE: not valid for UDP"));
|
||||
break;
|
||||
|
||||
@ -531,7 +531,7 @@ java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
if (::setsockopt (fnum, SOL_SOCKET, opt, (char *) &val, val_len) != 0)
|
||||
goto error;
|
||||
#else
|
||||
throw new java::lang::InternalError (
|
||||
throw new ::java::lang::InternalError (
|
||||
JvNewStringUTF ("SO_RCVBUF/SO_SNDBUF not supported"));
|
||||
#endif
|
||||
return;
|
||||
@ -541,12 +541,12 @@ java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
val_len) != 0)
|
||||
goto error;
|
||||
#else
|
||||
throw new java::lang::InternalError (
|
||||
throw new ::java::lang::InternalError (
|
||||
JvNewStringUTF ("SO_REUSEADDR not supported"));
|
||||
#endif
|
||||
return;
|
||||
case _Jv_SO_BINDADDR_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_BINDADDR: read only option"));
|
||||
return;
|
||||
case _Jv_IP_MULTICAST_IF_ :
|
||||
@ -557,7 +557,7 @@ java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
int level, opname;
|
||||
const char *ptr;
|
||||
|
||||
haddress = ((java::net::InetAddress *) value)->addr;
|
||||
haddress = ((::java::net::InetAddress *) value)->addr;
|
||||
bytes = elements (haddress);
|
||||
len = haddress->length;
|
||||
if (len == 4)
|
||||
@ -581,19 +581,19 @@ java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
#endif
|
||||
else
|
||||
throw
|
||||
new java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
|
||||
if (::setsockopt (fnum, level, opname, ptr, len) != 0)
|
||||
goto error;
|
||||
return;
|
||||
|
||||
case _Jv_IP_MULTICAST_IF2_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("IP_MULTICAST_IF2: not yet implemented"));
|
||||
break;
|
||||
|
||||
case _Jv_IP_MULTICAST_LOOP_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("IP_MULTICAST_LOOP: not yet implemented"));
|
||||
break;
|
||||
|
||||
@ -612,11 +612,11 @@ java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
|
||||
error:
|
||||
char* strerr = strerror (errno);
|
||||
throw new java::net::SocketException (JvNewStringUTF (strerr));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF (strerr));
|
||||
}
|
||||
|
||||
java::lang::Object *
|
||||
java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
::java::lang::Object *
|
||||
gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
{
|
||||
int val;
|
||||
socklen_t val_len = sizeof(val);
|
||||
@ -626,15 +626,15 @@ java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
switch (optID)
|
||||
{
|
||||
case _Jv_TCP_NODELAY_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("TCP_NODELAY not valid for UDP"));
|
||||
break;
|
||||
case _Jv_SO_LINGER_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_LINGER not valid for UDP"));
|
||||
break;
|
||||
case _Jv_SO_KEEPALIVE_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_KEEPALIVE not valid for UDP"));
|
||||
break;
|
||||
|
||||
@ -642,10 +642,10 @@ java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
if (::getsockopt (fnum, SOL_SOCKET, SO_BROADCAST, (char *) &val,
|
||||
&val_len) != 0)
|
||||
goto error;
|
||||
return new java::lang::Boolean (val != 0);
|
||||
return new ::java::lang::Boolean (val != 0);
|
||||
|
||||
case _Jv_SO_OOBINLINE_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_OOBINLINE not valid for UDP"));
|
||||
break;
|
||||
|
||||
@ -657,9 +657,9 @@ java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
if (::getsockopt (fnum, SOL_SOCKET, opt, (char *) &val, &val_len) != 0)
|
||||
goto error;
|
||||
else
|
||||
return new java::lang::Integer (val);
|
||||
return new ::java::lang::Integer (val);
|
||||
#else
|
||||
throw new java::lang::InternalError (
|
||||
throw new ::java::lang::InternalError (
|
||||
JvNewStringUTF ("SO_RCVBUF/SO_SNDBUF not supported"));
|
||||
#endif
|
||||
break;
|
||||
@ -683,9 +683,9 @@ java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("invalid family"));
|
||||
localAddress = new java::net::InetAddress (laddr, NULL);
|
||||
localAddress = new ::java::net::InetAddress (laddr, NULL);
|
||||
}
|
||||
return localAddress;
|
||||
break;
|
||||
@ -694,9 +694,9 @@ java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
if (::getsockopt (fnum, SOL_SOCKET, SO_REUSEADDR, (char *) &val,
|
||||
&val_len) != 0)
|
||||
goto error;
|
||||
return new java::lang::Boolean (val != 0);
|
||||
return new ::java::lang::Boolean (val != 0);
|
||||
#else
|
||||
throw new java::lang::InternalError (
|
||||
throw new ::java::lang::InternalError (
|
||||
JvNewStringUTF ("SO_REUSEADDR not supported"));
|
||||
#endif
|
||||
break;
|
||||
@ -713,18 +713,18 @@ java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
|
||||
bytes = inet_ntoa (inaddr);
|
||||
|
||||
return java::net::InetAddress::getByName (JvNewStringLatin1 (bytes));
|
||||
return ::java::net::InetAddress::getByName (JvNewStringLatin1 (bytes));
|
||||
#else
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("IP_MULTICAST_IF: not available - no inet_ntoa()"));
|
||||
#endif
|
||||
break;
|
||||
case _Jv_SO_TIMEOUT_ :
|
||||
return new java::lang::Integer (timeout);
|
||||
return new ::java::lang::Integer (timeout);
|
||||
break;
|
||||
|
||||
case _Jv_IP_MULTICAST_IF2_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("IP_MULTICAST_IF2: not yet implemented"));
|
||||
break;
|
||||
|
||||
@ -732,13 +732,13 @@ java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
if (::getsockopt (fnum, SOL_SOCKET, IP_MULTICAST_LOOP, (char *) &val,
|
||||
&val_len) != 0)
|
||||
goto error;
|
||||
return new java::lang::Boolean (val != 0);
|
||||
return new ::java::lang::Boolean (val != 0);
|
||||
|
||||
case _Jv_IP_TOS_ :
|
||||
if (::getsockopt (fnum, SOL_SOCKET, IP_TOS, (char *) &val,
|
||||
&val_len) != 0)
|
||||
goto error;
|
||||
return new java::lang::Integer (val);
|
||||
return new ::java::lang::Integer (val);
|
||||
|
||||
default :
|
||||
errno = ENOPROTOOPT;
|
||||
@ -746,5 +746,5 @@ java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
|
||||
error:
|
||||
char* strerr = strerror (errno);
|
||||
throw new java::net::SocketException (JvNewStringUTF (strerr));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF (strerr));
|
||||
}
|
@ -15,11 +15,11 @@ details. */
|
||||
#include <bstring.h>
|
||||
#endif
|
||||
|
||||
#include <gnu/java/net/PlainDatagramSocketImpl.h>
|
||||
#include <java/io/IOException.h>
|
||||
#include <java/io/InterruptedIOException.h>
|
||||
#include <java/net/BindException.h>
|
||||
#include <java/net/SocketException.h>
|
||||
#include <java/net/PlainDatagramSocketImpl.h>
|
||||
#include <java/net/InetAddress.h>
|
||||
#include <java/net/NetworkInterface.h>
|
||||
#include <java/net/DatagramPacket.h>
|
||||
@ -60,7 +60,7 @@ union InAddr
|
||||
// NoRouteToHostException; also consider UnknownHostException, ConnectException.
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::create ()
|
||||
gnu::java::net::PlainDatagramSocketImpl::create ()
|
||||
{
|
||||
SOCKET sock = ::socket (AF_INET, SOCK_DGRAM, 0);
|
||||
|
||||
@ -77,8 +77,8 @@ java::net::PlainDatagramSocketImpl::create ()
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::bind (jint lport,
|
||||
java::net::InetAddress *host)
|
||||
gnu::java::net::PlainDatagramSocketImpl::bind (jint lport,
|
||||
::java::net::InetAddress *host)
|
||||
{
|
||||
union SockAddr u;
|
||||
struct sockaddr *ptr = (struct sockaddr *) &u.address;
|
||||
@ -109,7 +109,7 @@ java::net::PlainDatagramSocketImpl::bind (jint lport,
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
|
||||
if (::bind (fnum, ptr, len) == 0)
|
||||
{
|
||||
@ -133,25 +133,25 @@ java::net::PlainDatagramSocketImpl::bind (jint lport,
|
||||
|
||||
error:
|
||||
DWORD dwErrorCode = WSAGetLastError ();
|
||||
throw new java::net::BindException (_Jv_WinStrError (dwErrorCode));
|
||||
throw new ::java::net::BindException (_Jv_WinStrError (dwErrorCode));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::connect (java::net::InetAddress *, jint)
|
||||
{
|
||||
gnu::java::net::PlainDatagramSocketImpl::connect (::java::net::InetAddress *, jint)
|
||||
{
|
||||
throw new ::java::lang::InternalError (JvNewStringLatin1 (
|
||||
"PlainDatagramSocketImpl::connect: not implemented yet"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::disconnect ()
|
||||
gnu::java::net::PlainDatagramSocketImpl::disconnect ()
|
||||
{
|
||||
throw new ::java::lang::InternalError (JvNewStringLatin1 (
|
||||
"PlainDatagramSocketImpl::disconnect: not implemented yet"));
|
||||
}
|
||||
|
||||
jint
|
||||
java::net::PlainDatagramSocketImpl::peek (java::net::InetAddress *i)
|
||||
gnu::java::net::PlainDatagramSocketImpl::peek (::java::net::InetAddress *i)
|
||||
{
|
||||
// FIXME: Deal with Multicast and if the socket is connected.
|
||||
union SockAddr u;
|
||||
@ -179,14 +179,14 @@ java::net::PlainDatagramSocketImpl::peek (java::net::InetAddress *i)
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid family"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid family"));
|
||||
|
||||
i->addr = raddr;
|
||||
return rport;
|
||||
error:
|
||||
DWORD dwErrorCode = WSAGetLastError ();
|
||||
if (dwErrorCode == WSAECONNRESET)
|
||||
throw new PortUnreachableException (_Jv_WinStrError (dwErrorCode));
|
||||
throw new ::java::net::PortUnreachableException (_Jv_WinStrError (dwErrorCode));
|
||||
|
||||
_Jv_ThrowIOException ();
|
||||
return -1;
|
||||
@ -194,7 +194,7 @@ error:
|
||||
}
|
||||
|
||||
jint
|
||||
java::net::PlainDatagramSocketImpl::peekData(java::net::DatagramPacket *p)
|
||||
gnu::java::net::PlainDatagramSocketImpl::peekData(::java::net::DatagramPacket *p)
|
||||
{
|
||||
// FIXME: Deal with Multicast and if the socket is connected.
|
||||
union SockAddr u;
|
||||
@ -233,7 +233,7 @@ java::net::PlainDatagramSocketImpl::peekData(java::net::DatagramPacket *p)
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid family"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid family"));
|
||||
|
||||
p->setAddress (new InetAddress (raddr, NULL));
|
||||
p->setPort (rport);
|
||||
@ -243,9 +243,9 @@ java::net::PlainDatagramSocketImpl::peekData(java::net::DatagramPacket *p)
|
||||
error:
|
||||
DWORD dwErrorCode = WSAGetLastError ();
|
||||
if (dwErrorCode == WSAECONNRESET)
|
||||
throw new PortUnreachableException (_Jv_WinStrError (dwErrorCode));
|
||||
throw new ::java::net::PortUnreachableException (_Jv_WinStrError (dwErrorCode));
|
||||
else if (dwErrorCode == WSAETIMEDOUT)
|
||||
throw new java::net::SocketTimeoutException (_Jv_WinStrError (dwErrorCode));
|
||||
throw new ::java::net::SocketTimeoutException (_Jv_WinStrError (dwErrorCode));
|
||||
else
|
||||
_Jv_ThrowIOException ();
|
||||
|
||||
@ -255,7 +255,7 @@ error:
|
||||
|
||||
// Close(shutdown) the socket.
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::close ()
|
||||
gnu::java::net::PlainDatagramSocketImpl::close ()
|
||||
{
|
||||
// Avoid races from asynchronous finalization.
|
||||
JvSynchronize sync (this);
|
||||
@ -268,7 +268,7 @@ java::net::PlainDatagramSocketImpl::close ()
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::send (java::net::DatagramPacket *p)
|
||||
gnu::java::net::PlainDatagramSocketImpl::send (::java::net::DatagramPacket *p)
|
||||
{
|
||||
// FIXME: Deal with Multicast and if the socket is connected.
|
||||
jint rport = p->getPort();
|
||||
@ -295,20 +295,20 @@ java::net::PlainDatagramSocketImpl::send (java::net::DatagramPacket *p)
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
|
||||
if (::sendto (fnum, (char *) dbytes, p->getLength(), 0, ptr, len) >= 0)
|
||||
return;
|
||||
|
||||
DWORD dwErrorCode = WSAGetLastError ();
|
||||
if (dwErrorCode == WSAECONNRESET)
|
||||
throw new PortUnreachableException (_Jv_WinStrError (dwErrorCode));
|
||||
throw new ::java::net::PortUnreachableException (_Jv_WinStrError (dwErrorCode));
|
||||
|
||||
_Jv_ThrowIOException ();
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::receive (java::net::DatagramPacket *p)
|
||||
gnu::java::net::PlainDatagramSocketImpl::receive (::java::net::DatagramPacket *p)
|
||||
{
|
||||
// FIXME: Deal with Multicast and if the socket is connected.
|
||||
union SockAddr u;
|
||||
@ -350,9 +350,9 @@ java::net::PlainDatagramSocketImpl::receive (java::net::DatagramPacket *p)
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid family"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid family"));
|
||||
|
||||
p->setAddress (new InetAddress (raddr, NULL));
|
||||
p->setAddress (new ::java::net::InetAddress (raddr, NULL));
|
||||
p->setPort (rport);
|
||||
p->setLength ((jint) retlen);
|
||||
return;
|
||||
@ -360,15 +360,15 @@ java::net::PlainDatagramSocketImpl::receive (java::net::DatagramPacket *p)
|
||||
error:
|
||||
DWORD dwErrorCode = WSAGetLastError();
|
||||
if (dwErrorCode == WSAECONNRESET)
|
||||
throw new PortUnreachableException (_Jv_WinStrError (dwErrorCode));
|
||||
throw new ::java::net::PortUnreachableException (_Jv_WinStrError (dwErrorCode));
|
||||
else if (dwErrorCode == WSAETIMEDOUT)
|
||||
throw new java::net::SocketTimeoutException (_Jv_WinStrError (dwErrorCode));
|
||||
throw new ::java::net::SocketTimeoutException (_Jv_WinStrError (dwErrorCode));
|
||||
else
|
||||
throw new java::io::IOException (_Jv_WinStrError (dwErrorCode));
|
||||
throw new ::java::io::IOException (_Jv_WinStrError (dwErrorCode));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::setTimeToLive (jint ttl)
|
||||
gnu::java::net::PlainDatagramSocketImpl::setTimeToLive (jint ttl)
|
||||
{
|
||||
// Assumes IPPROTO_IP rather than IPPROTO_IPV6 since socket created is IPv4.
|
||||
char val = (char) ttl;
|
||||
@ -381,7 +381,7 @@ java::net::PlainDatagramSocketImpl::setTimeToLive (jint ttl)
|
||||
}
|
||||
|
||||
jint
|
||||
java::net::PlainDatagramSocketImpl::getTimeToLive ()
|
||||
gnu::java::net::PlainDatagramSocketImpl::getTimeToLive ()
|
||||
{
|
||||
// Assumes IPPROTO_IP rather than IPPROTO_IPV6 since socket created is IPv4.
|
||||
char val;
|
||||
@ -397,9 +397,9 @@ java::net::PlainDatagramSocketImpl::getTimeToLive ()
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::mcastGrp (java::net::InetAddress *inetaddr,
|
||||
java::net::NetworkInterface *,
|
||||
jboolean)
|
||||
gnu::java::net::PlainDatagramSocketImpl::mcastGrp (::java::net::InetAddress *inetaddr,
|
||||
::java::net::NetworkInterface *,
|
||||
jboolean join)
|
||||
{
|
||||
// FIXME: implement use of NetworkInterface
|
||||
jbyteArray haddress = inetaddr->addr;
|
||||
@ -444,7 +444,7 @@ java::net::PlainDatagramSocketImpl::mcastGrp (java::net::InetAddress *inetaddr,
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
|
||||
if (::setsockopt (fnum, level, opname, ptr, len) == 0)
|
||||
return;
|
||||
@ -453,25 +453,25 @@ java::net::PlainDatagramSocketImpl::mcastGrp (java::net::InetAddress *inetaddr,
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
java::lang::Object *value)
|
||||
gnu::java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
::java::lang::Object *value)
|
||||
{
|
||||
int val;
|
||||
socklen_t val_len = sizeof (val);
|
||||
|
||||
if (fnum < 0)
|
||||
throw new java::net::SocketException (JvNewStringUTF ("Socket closed"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("Socket closed"));
|
||||
|
||||
if (_Jv_IsInstanceOf (value, &java::lang::Boolean::class$))
|
||||
if (_Jv_IsInstanceOf (value, &::java::lang::Boolean::class$))
|
||||
{
|
||||
java::lang::Boolean *boolobj =
|
||||
static_cast<java::lang::Boolean *> (value);
|
||||
::java::lang::Boolean *boolobj =
|
||||
static_cast< ::java::lang::Boolean *> (value);
|
||||
val = boolobj->booleanValue() ? 1 : 0;
|
||||
}
|
||||
else if (_Jv_IsInstanceOf (value, &java::lang::Integer::class$))
|
||||
else if (_Jv_IsInstanceOf (value, &::java::lang::Integer::class$))
|
||||
{
|
||||
java::lang::Integer *intobj =
|
||||
static_cast<java::lang::Integer *> (value);
|
||||
::java::lang::Integer *intobj =
|
||||
static_cast< ::java::lang::Integer *> (value);
|
||||
val = (int) intobj->intValue();
|
||||
}
|
||||
// Else assume value to be an InetAddress for use with IP_MULTICAST_IF.
|
||||
@ -479,15 +479,15 @@ java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
switch (optID)
|
||||
{
|
||||
case _Jv_TCP_NODELAY_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("TCP_NODELAY not valid for UDP"));
|
||||
return;
|
||||
case _Jv_SO_LINGER_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_LINGER not valid for UDP"));
|
||||
return;
|
||||
case _Jv_SO_KEEPALIVE_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_KEEPALIVE not valid for UDP"));
|
||||
return;
|
||||
|
||||
@ -498,7 +498,7 @@ java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
break;
|
||||
|
||||
case _Jv_SO_OOBINLINE_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_OOBINLINE: not valid for UDP"));
|
||||
break;
|
||||
|
||||
@ -515,7 +515,7 @@ java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
goto error;
|
||||
return;
|
||||
case _Jv_SO_BINDADDR_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_BINDADDR: read only option"));
|
||||
return;
|
||||
case _Jv_IP_MULTICAST_IF_ :
|
||||
@ -526,7 +526,7 @@ java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
int level, opname;
|
||||
const char *ptr;
|
||||
|
||||
haddress = ((java::net::InetAddress *) value)->addr;
|
||||
haddress = ((::java::net::InetAddress *) value)->addr;
|
||||
bytes = elements (haddress);
|
||||
len = haddress->length;
|
||||
if (len == 4)
|
||||
@ -550,19 +550,19 @@ java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
#endif
|
||||
else
|
||||
throw
|
||||
new java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
|
||||
if (::setsockopt (fnum, level, opname, ptr, len) != 0)
|
||||
goto error;
|
||||
return;
|
||||
|
||||
case _Jv_IP_MULTICAST_IF2_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("IP_MULTICAST_IF2: not yet implemented"));
|
||||
break;
|
||||
|
||||
case _Jv_IP_MULTICAST_LOOP_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("IP_MULTICAST_LOOP: not yet implemented"));
|
||||
break;
|
||||
|
||||
@ -583,8 +583,8 @@ java::net::PlainDatagramSocketImpl::setOption (jint optID,
|
||||
_Jv_ThrowSocketException ();
|
||||
}
|
||||
|
||||
java::lang::Object *
|
||||
java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
::java::lang::Object *
|
||||
gnu::java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
{
|
||||
int val;
|
||||
socklen_t val_len = sizeof(val);
|
||||
@ -594,15 +594,15 @@ java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
switch (optID)
|
||||
{
|
||||
case _Jv_TCP_NODELAY_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("TCP_NODELAY not valid for UDP"));
|
||||
break;
|
||||
case _Jv_SO_LINGER_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_LINGER not valid for UDP"));
|
||||
break;
|
||||
case _Jv_SO_KEEPALIVE_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_KEEPALIVE not valid for UDP"));
|
||||
break;
|
||||
|
||||
@ -610,10 +610,10 @@ java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
if (::getsockopt (fnum, SOL_SOCKET, SO_BROADCAST, (char *) &val,
|
||||
&val_len) != 0)
|
||||
goto error;
|
||||
return new java::lang::Boolean (val != 0);
|
||||
return new ::java::lang::Boolean (val != 0);
|
||||
|
||||
case _Jv_SO_OOBINLINE_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_OOBINLINE not valid for UDP"));
|
||||
break;
|
||||
|
||||
@ -624,7 +624,7 @@ java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
if (::getsockopt (fnum, SOL_SOCKET, opt, (char *) &val, &val_len) != 0)
|
||||
goto error;
|
||||
else
|
||||
return new java::lang::Integer (val);
|
||||
return new ::java::lang::Integer (val);
|
||||
break;
|
||||
case _Jv_SO_BINDADDR_:
|
||||
// cache the local address
|
||||
@ -646,9 +646,9 @@ java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("invalid family"));
|
||||
localAddress = new java::net::InetAddress (laddr, NULL);
|
||||
localAddress = new ::java::net::InetAddress (laddr, NULL);
|
||||
}
|
||||
return localAddress;
|
||||
break;
|
||||
@ -656,7 +656,7 @@ java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
if (::getsockopt (fnum, SOL_SOCKET, SO_REUSEADDR, (char *) &val,
|
||||
&val_len) != 0)
|
||||
goto error;
|
||||
return new java::lang::Boolean (val != 0);
|
||||
return new ::java::lang::Boolean (val != 0);
|
||||
break;
|
||||
case _Jv_IP_MULTICAST_IF_ :
|
||||
struct in_addr inaddr;
|
||||
@ -670,14 +670,14 @@ java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
|
||||
bytes = inet_ntoa (inaddr);
|
||||
|
||||
return java::net::InetAddress::getByName (JvNewStringLatin1 (bytes));
|
||||
return ::java::net::InetAddress::getByName (JvNewStringLatin1 (bytes));
|
||||
break;
|
||||
case _Jv_SO_TIMEOUT_ :
|
||||
return new java::lang::Integer (timeout);
|
||||
break;
|
||||
|
||||
return new ::java::lang::Integer (timeout);
|
||||
break;
|
||||
|
||||
case _Jv_IP_MULTICAST_IF2_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("IP_MULTICAST_IF2: not yet implemented"));
|
||||
break;
|
||||
|
||||
@ -685,14 +685,14 @@ java::net::PlainDatagramSocketImpl::getOption (jint optID)
|
||||
if (::getsockopt (fnum, SOL_SOCKET, IP_MULTICAST_LOOP, (char *) &val,
|
||||
&val_len) != 0)
|
||||
goto error;
|
||||
return new java::lang::Boolean (val != 0);
|
||||
return new ::java::lang::Boolean (val != 0);
|
||||
|
||||
case _Jv_IP_TOS_ :
|
||||
if (::getsockopt (fnum, SOL_SOCKET, IP_TOS, (char *) &val,
|
||||
&val_len) != 0)
|
||||
goto error;
|
||||
return new java::lang::Integer (val);
|
||||
|
||||
return new ::java::lang::Integer (val);
|
||||
|
||||
default :
|
||||
WSASetLastError (WSAENOPROTOOPT);
|
||||
}
|
128
libjava/gnu/java/net/natPlainSocketImplNoNet.cc
Normal file
128
libjava/gnu/java/net/natPlainSocketImplNoNet.cc
Normal file
@ -0,0 +1,128 @@
|
||||
/* Copyright (C) 2003 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
#include <config.h>
|
||||
#include <platform.h>
|
||||
|
||||
#include <gnu/java/net/PlainSocketImpl.h>
|
||||
#include <java/io/IOException.h>
|
||||
#include <java/net/BindException.h>
|
||||
#include <java/net/ConnectException.h>
|
||||
#include <java/net/SocketException.h>
|
||||
|
||||
void
|
||||
gnu::java::net::PlainSocketImpl::create (jboolean)
|
||||
{
|
||||
throw new ::java::io::IOException (
|
||||
JvNewStringLatin1 ("SocketImpl.create: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainSocketImpl::bind (::java::net::InetAddress *, jint)
|
||||
{
|
||||
throw new ::java::net::BindException (
|
||||
JvNewStringLatin1 ("SocketImpl.bind: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *, jint)
|
||||
{
|
||||
throw new ::java::net::ConnectException (
|
||||
JvNewStringLatin1 ("SocketImpl.connect: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainSocketImpl::listen (jint)
|
||||
{
|
||||
throw new ::java::io::IOException (
|
||||
JvNewStringLatin1 ("SocketImpl.listen: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *)
|
||||
{
|
||||
throw new ::java::io::IOException (
|
||||
JvNewStringLatin1 ("SocketImpl.accept: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainSocketImpl::setOption (jint, ::java::lang::Object *)
|
||||
{
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.setOption: unimplemented"));
|
||||
}
|
||||
|
||||
::java::lang::Object *
|
||||
gnu::java::net::PlainSocketImpl::getOption (jint)
|
||||
{
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.getOption: unimplemented"));
|
||||
}
|
||||
|
||||
jint
|
||||
gnu::java::net::PlainSocketImpl::read(void)
|
||||
{
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.read: unimplemented"));
|
||||
}
|
||||
|
||||
jint
|
||||
gnu::java::net::PlainSocketImpl::read(jbyteArray buffer, jint offset, jint count)
|
||||
{
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.read: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainSocketImpl::write(jint b)
|
||||
{
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.write: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainSocketImpl::write(jbyteArray b, jint offset, jint len)
|
||||
{
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.write: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainSocketImpl::sendUrgentData(jint data)
|
||||
{
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.sendUrgentData: unimplemented"));
|
||||
}
|
||||
|
||||
jint
|
||||
gnu::java::net::PlainSocketImpl::available(void)
|
||||
{
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.available: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainSocketImpl::close(void)
|
||||
{
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.close: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainSocketImpl::shutdownInput (void)
|
||||
{
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.shutdownInput: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
gnu::java::net::PlainSocketImpl::shutdownOutput (void)
|
||||
{
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.shutdownOutput: unimplemented"));
|
||||
}
|
@ -31,11 +31,11 @@ details. */
|
||||
|
||||
#include <gcj/cni.h>
|
||||
#include <gcj/javaprims.h>
|
||||
#include <gnu/java/net/PlainSocketImpl.h>
|
||||
#include <java/io/IOException.h>
|
||||
#include <java/io/InterruptedIOException.h>
|
||||
#include <java/net/BindException.h>
|
||||
#include <java/net/ConnectException.h>
|
||||
#include <java/net/PlainSocketImpl.h>
|
||||
#include <java/net/InetAddress.h>
|
||||
#include <java/net/InetSocketAddress.h>
|
||||
#include <java/net/SocketException.h>
|
||||
@ -59,14 +59,14 @@ union SockAddr
|
||||
};
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::create (jboolean stream)
|
||||
gnu::java::net::PlainSocketImpl::create (jboolean stream)
|
||||
{
|
||||
int sock = _Jv_socket (AF_INET, stream ? SOCK_STREAM : SOCK_DGRAM, 0);
|
||||
|
||||
if (sock < 0)
|
||||
{
|
||||
char* strerr = strerror (errno);
|
||||
throw new java::io::IOException (JvNewStringUTF (strerr));
|
||||
throw new ::java::io::IOException (JvNewStringUTF (strerr));
|
||||
}
|
||||
|
||||
_Jv_platform_close_on_exec (sock);
|
||||
@ -77,7 +77,7 @@ java::net::PlainSocketImpl::create (jboolean stream)
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::bind (java::net::InetAddress *host, jint lport)
|
||||
gnu::java::net::PlainSocketImpl::bind (::java::net::InetAddress *host, jint lport)
|
||||
{
|
||||
union SockAddr u;
|
||||
struct sockaddr *ptr = (struct sockaddr *) &u.address;
|
||||
@ -108,7 +108,7 @@ java::net::PlainSocketImpl::bind (java::net::InetAddress *host, jint lport)
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
|
||||
// Enable SO_REUSEADDR, so that servers can reuse ports left in TIME_WAIT.
|
||||
::setsockopt(fnum, SOL_SOCKET, SO_REUSEADDR, (char *) &i, sizeof(i));
|
||||
@ -130,15 +130,15 @@ java::net::PlainSocketImpl::bind (java::net::InetAddress *host, jint lport)
|
||||
|
||||
error:
|
||||
char* strerr = strerror (errno);
|
||||
throw new java::net::BindException (JvNewStringUTF (strerr));
|
||||
throw new ::java::net::BindException (JvNewStringUTF (strerr));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::connect (java::net::SocketAddress *addr,
|
||||
gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
|
||||
jint timeout)
|
||||
{
|
||||
java::net::InetSocketAddress *tmp = (java::net::InetSocketAddress*) addr;
|
||||
java::net::InetAddress *host = tmp->getAddress();
|
||||
::java::net::InetSocketAddress *tmp = (::java::net::InetSocketAddress*) addr;
|
||||
::java::net::InetAddress *host = tmp->getAddress();
|
||||
jint rport = tmp->getPort();
|
||||
|
||||
union SockAddr u;
|
||||
@ -164,7 +164,7 @@ java::net::PlainSocketImpl::connect (java::net::SocketAddress *addr,
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
|
||||
if (timeout > 0)
|
||||
{
|
||||
@ -185,7 +185,7 @@ java::net::PlainSocketImpl::connect (java::net::SocketAddress *addr,
|
||||
if ((retval = _Jv_select (fnum + 1, &fset, &fset, NULL, &tv)) < 0)
|
||||
goto error;
|
||||
else if (retval == 0)
|
||||
throw new java::net::SocketTimeoutException
|
||||
throw new ::java::net::SocketTimeoutException
|
||||
(JvNewStringUTF ("Connect timed out"));
|
||||
// Set the socket back into a blocking state.
|
||||
::fcntl (fnum, F_SETFL, flags);
|
||||
@ -212,21 +212,21 @@ java::net::PlainSocketImpl::connect (java::net::SocketAddress *addr,
|
||||
|
||||
error:
|
||||
char* strerr = strerror (errno);
|
||||
throw new java::net::ConnectException (JvNewStringUTF (strerr));
|
||||
throw new ::java::net::ConnectException (JvNewStringUTF (strerr));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::listen (jint backlog)
|
||||
gnu::java::net::PlainSocketImpl::listen (jint backlog)
|
||||
{
|
||||
if (::listen (fnum, backlog) != 0)
|
||||
{
|
||||
char* strerr = strerror (errno);
|
||||
throw new java::io::IOException (JvNewStringUTF (strerr));
|
||||
throw new ::java::io::IOException (JvNewStringUTF (strerr));
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::accept (java::net::PlainSocketImpl *s)
|
||||
gnu::java::net::PlainSocketImpl::accept (gnu::java::net::PlainSocketImpl *s)
|
||||
{
|
||||
union SockAddr u;
|
||||
socklen_t addrlen = sizeof(u);
|
||||
@ -245,7 +245,7 @@ java::net::PlainSocketImpl::accept (java::net::PlainSocketImpl *s)
|
||||
if ((retval = _Jv_select (fnum + 1, &fset, &fset, NULL, &tv)) < 0)
|
||||
goto error;
|
||||
else if (retval == 0)
|
||||
throw new java::net::SocketTimeoutException (
|
||||
throw new ::java::net::SocketTimeoutException (
|
||||
JvNewStringUTF("Accept timed out"));
|
||||
}
|
||||
|
||||
@ -273,22 +273,22 @@ java::net::PlainSocketImpl::accept (java::net::PlainSocketImpl *s)
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid family"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid family"));
|
||||
|
||||
s->fnum = new_socket;
|
||||
s->localport = localport;
|
||||
s->address = new InetAddress (raddr, NULL);
|
||||
s->address = new ::java::net::InetAddress (raddr, NULL);
|
||||
s->port = rport;
|
||||
return;
|
||||
|
||||
error:
|
||||
char* strerr = strerror (errno);
|
||||
throw new java::io::IOException (JvNewStringUTF (strerr));
|
||||
throw new ::java::io::IOException (JvNewStringUTF (strerr));
|
||||
}
|
||||
|
||||
// Close(shutdown) the socket.
|
||||
void
|
||||
java::net::PlainSocketImpl::close()
|
||||
gnu::java::net::PlainSocketImpl::close()
|
||||
{
|
||||
// Avoid races from asynchronous finalization.
|
||||
JvSynchronize sync (this);
|
||||
@ -301,7 +301,7 @@ java::net::PlainSocketImpl::close()
|
||||
// These three errors are not errors according to tests performed
|
||||
// on the reference implementation.
|
||||
if (errno != ENOTCONN && errno != ECONNRESET && errno != EBADF)
|
||||
throw new java::io::IOException (JvNewStringUTF (strerror (errno)));
|
||||
throw new ::java::io::IOException (JvNewStringUTF (strerror (errno)));
|
||||
}
|
||||
// Safe place to reset the file pointer.
|
||||
fnum = -1;
|
||||
@ -310,7 +310,7 @@ java::net::PlainSocketImpl::close()
|
||||
|
||||
// Write a byte to the socket.
|
||||
void
|
||||
java::net::PlainSocketImpl::write(jint b)
|
||||
gnu::java::net::PlainSocketImpl::write(jint b)
|
||||
{
|
||||
jbyte d =(jbyte) b;
|
||||
int r = 0;
|
||||
@ -320,17 +320,17 @@ java::net::PlainSocketImpl::write(jint b)
|
||||
r = _Jv_write (fnum, &d, 1);
|
||||
if (r == -1)
|
||||
{
|
||||
if (java::lang::Thread::interrupted())
|
||||
if (::java::lang::Thread::interrupted())
|
||||
{
|
||||
java::io::InterruptedIOException *iioe
|
||||
= new java::io::InterruptedIOException
|
||||
::java::io::InterruptedIOException *iioe
|
||||
= new ::java::io::InterruptedIOException
|
||||
(JvNewStringLatin1 (strerror (errno)));
|
||||
iioe->bytesTransferred = 0;
|
||||
throw iioe;
|
||||
}
|
||||
// Some errors should not cause exceptions.
|
||||
if (errno != ENOTCONN && errno != ECONNRESET && errno != EBADF)
|
||||
throw new java::io::IOException (JvNewStringUTF (strerror (errno)));
|
||||
throw new ::java::io::IOException (JvNewStringUTF (strerror (errno)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -338,12 +338,12 @@ java::net::PlainSocketImpl::write(jint b)
|
||||
|
||||
// Write some bytes to the socket.
|
||||
void
|
||||
java::net::PlainSocketImpl::write(jbyteArray b, jint offset, jint len)
|
||||
gnu::java::net::PlainSocketImpl::write(jbyteArray b, jint offset, jint len)
|
||||
{
|
||||
if (! b)
|
||||
throw new java::lang::NullPointerException;
|
||||
throw new ::java::lang::NullPointerException;
|
||||
if (offset < 0 || len < 0 || offset + len > JvGetArrayLength (b))
|
||||
throw new java::lang::ArrayIndexOutOfBoundsException;
|
||||
throw new ::java::lang::ArrayIndexOutOfBoundsException;
|
||||
|
||||
jbyte *bytes = elements (b) + offset;
|
||||
int written = 0;
|
||||
@ -354,17 +354,17 @@ java::net::PlainSocketImpl::write(jbyteArray b, jint offset, jint len)
|
||||
|
||||
if (r == -1)
|
||||
{
|
||||
if (java::lang::Thread::interrupted())
|
||||
if (::java::lang::Thread::interrupted())
|
||||
{
|
||||
java::io::InterruptedIOException *iioe
|
||||
= new java::io::InterruptedIOException
|
||||
::java::io::InterruptedIOException *iioe
|
||||
= new ::java::io::InterruptedIOException
|
||||
(JvNewStringLatin1 (strerror (errno)));
|
||||
iioe->bytesTransferred = written;
|
||||
throw iioe;
|
||||
}
|
||||
// Some errors should not cause exceptions.
|
||||
if (errno != ENOTCONN && errno != ECONNRESET && errno != EBADF)
|
||||
throw new java::io::IOException (JvNewStringUTF (strerror (errno)));
|
||||
throw new ::java::io::IOException (JvNewStringUTF (strerror (errno)));
|
||||
break;
|
||||
}
|
||||
|
||||
@ -375,15 +375,15 @@ java::net::PlainSocketImpl::write(jbyteArray b, jint offset, jint len)
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::sendUrgentData (jint)
|
||||
gnu::java::net::PlainSocketImpl::sendUrgentData (jint)
|
||||
{
|
||||
throw new SocketException (JvNewStringLatin1 (
|
||||
throw new ::java::net::SocketException (JvNewStringLatin1 (
|
||||
"PlainSocketImpl: sending of urgent data not supported by this socket"));
|
||||
}
|
||||
|
||||
// Read a single byte from the socket.
|
||||
jint
|
||||
java::net::PlainSocketImpl::read(void)
|
||||
gnu::java::net::PlainSocketImpl::read(void)
|
||||
{
|
||||
jbyte b;
|
||||
|
||||
@ -404,7 +404,7 @@ java::net::PlainSocketImpl::read(void)
|
||||
// If select returns 0 we've waited without getting data...
|
||||
// that means we've timed out.
|
||||
if (sel_retval == 0)
|
||||
throw new java::net::SocketTimeoutException
|
||||
throw new ::java::net::SocketTimeoutException
|
||||
(JvNewStringUTF ("read timed out") );
|
||||
// If select returns ok we know we either got signalled or read some data...
|
||||
// either way we need to try to read.
|
||||
@ -415,10 +415,10 @@ java::net::PlainSocketImpl::read(void)
|
||||
if (r == 0)
|
||||
return -1;
|
||||
|
||||
if (java::lang::Thread::interrupted())
|
||||
if (::java::lang::Thread::interrupted())
|
||||
{
|
||||
java::io::InterruptedIOException *iioe =
|
||||
new java::io::InterruptedIOException
|
||||
::java::io::InterruptedIOException *iioe =
|
||||
new ::java::io::InterruptedIOException
|
||||
(JvNewStringUTF("read interrupted"));
|
||||
iioe->bytesTransferred = r == -1 ? 0 : r;
|
||||
throw iioe;
|
||||
@ -430,7 +430,7 @@ java::net::PlainSocketImpl::read(void)
|
||||
return -1;
|
||||
|
||||
// Other errors need to be signalled.
|
||||
throw new java::io::IOException (JvNewStringUTF (strerror (errno)));
|
||||
throw new ::java::io::IOException (JvNewStringUTF (strerror (errno)));
|
||||
}
|
||||
|
||||
return b & 0xFF;
|
||||
@ -438,15 +438,15 @@ java::net::PlainSocketImpl::read(void)
|
||||
|
||||
// Read count bytes into the buffer, starting at offset.
|
||||
jint
|
||||
java::net::PlainSocketImpl::read(jbyteArray buffer, jint offset, jint count)
|
||||
gnu::java::net::PlainSocketImpl::read(jbyteArray buffer, jint offset, jint count)
|
||||
{
|
||||
if (! buffer)
|
||||
throw new java::lang::NullPointerException;
|
||||
throw new ::java::lang::NullPointerException;
|
||||
|
||||
jsize bsize = JvGetArrayLength (buffer);
|
||||
|
||||
if (offset < 0 || count < 0 || offset + count > bsize)
|
||||
throw new java::lang::ArrayIndexOutOfBoundsException;
|
||||
throw new ::java::lang::ArrayIndexOutOfBoundsException;
|
||||
|
||||
jbyte *bytes = elements (buffer) + offset;
|
||||
|
||||
@ -469,10 +469,10 @@ java::net::PlainSocketImpl::read(jbyteArray buffer, jint offset, jint count)
|
||||
// the socket to see what happened.
|
||||
if (sel_retval == 0)
|
||||
{
|
||||
java::net::SocketTimeoutException *timeoutException =
|
||||
new java::net::SocketTimeoutException
|
||||
::java::net::SocketTimeoutException *timeoutException =
|
||||
new ::java::net::SocketTimeoutException
|
||||
(JvNewStringUTF ("read timed out"));
|
||||
throw timeoutException;
|
||||
throw timeoutException;
|
||||
}
|
||||
}
|
||||
|
||||
@ -482,10 +482,10 @@ java::net::PlainSocketImpl::read(jbyteArray buffer, jint offset, jint count)
|
||||
if (r == 0)
|
||||
return -1;
|
||||
|
||||
if (java::lang::Thread::interrupted())
|
||||
if (::java::lang::Thread::interrupted())
|
||||
{
|
||||
java::io::InterruptedIOException *iioe =
|
||||
new java::io::InterruptedIOException
|
||||
::java::io::InterruptedIOException *iioe =
|
||||
new ::java::io::InterruptedIOException
|
||||
(JvNewStringUTF ("read interrupted"));
|
||||
iioe->bytesTransferred = r == -1 ? 0 : r;
|
||||
throw iioe;
|
||||
@ -497,7 +497,7 @@ java::net::PlainSocketImpl::read(jbyteArray buffer, jint offset, jint count)
|
||||
return -1;
|
||||
|
||||
// Other errors need to be signalled.
|
||||
throw new java::io::IOException (JvNewStringUTF (strerror (errno)));
|
||||
throw new ::java::io::IOException (JvNewStringUTF (strerror (errno)));
|
||||
}
|
||||
|
||||
return r;
|
||||
@ -505,7 +505,7 @@ java::net::PlainSocketImpl::read(jbyteArray buffer, jint offset, jint count)
|
||||
|
||||
// How many bytes are available?
|
||||
jint
|
||||
java::net::PlainSocketImpl::available(void)
|
||||
gnu::java::net::PlainSocketImpl::available(void)
|
||||
{
|
||||
#if defined(FIONREAD) || defined(HAVE_SELECT)
|
||||
long num = 0;
|
||||
@ -534,7 +534,7 @@ java::net::PlainSocketImpl::available(void)
|
||||
if (r == -1)
|
||||
{
|
||||
posix_error:
|
||||
throw new java::io::IOException(JvNewStringUTF(strerror(errno)));
|
||||
throw new ::java::io::IOException(JvNewStringUTF(strerror(errno)));
|
||||
}
|
||||
|
||||
// If we didn't get anything we can use select.
|
||||
@ -558,23 +558,23 @@ java::net::PlainSocketImpl::available(void)
|
||||
|
||||
return (jint) num;
|
||||
#else
|
||||
throw new java::io::IOException (JvNewStringUTF ("unimplemented"));
|
||||
throw new ::java::io::IOException (JvNewStringUTF ("unimplemented"));
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value)
|
||||
gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *value)
|
||||
{
|
||||
int val;
|
||||
socklen_t val_len = sizeof (val);
|
||||
|
||||
if (fnum < 0)
|
||||
throw new java::net::SocketException (JvNewStringUTF ("Socket closed"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("Socket closed"));
|
||||
|
||||
if (_Jv_IsInstanceOf (value, &java::lang::Boolean::class$))
|
||||
if (_Jv_IsInstanceOf (value, &::java::lang::Boolean::class$))
|
||||
{
|
||||
java::lang::Boolean *boolobj =
|
||||
static_cast<java::lang::Boolean *> (value);
|
||||
::java::lang::Boolean *boolobj =
|
||||
static_cast< ::java::lang::Boolean *> (value);
|
||||
if (boolobj->booleanValue())
|
||||
val = 1;
|
||||
else
|
||||
@ -585,15 +585,15 @@ java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value)
|
||||
val = 0;
|
||||
}
|
||||
}
|
||||
else if (_Jv_IsInstanceOf (value, &java::lang::Integer::class$))
|
||||
else if (_Jv_IsInstanceOf (value, &::java::lang::Integer::class$))
|
||||
{
|
||||
java::lang::Integer *intobj =
|
||||
static_cast<java::lang::Integer *> (value);
|
||||
::java::lang::Integer *intobj =
|
||||
static_cast< ::java::lang::Integer *> (value);
|
||||
val = (int) intobj->intValue();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new java::lang::IllegalArgumentException (
|
||||
throw new ::java::lang::IllegalArgumentException (
|
||||
JvNewStringLatin1 ("`value' must be Boolean or Integer"));
|
||||
}
|
||||
|
||||
@ -605,7 +605,7 @@ java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value)
|
||||
val_len) != 0)
|
||||
goto error;
|
||||
#else
|
||||
throw new java::lang::InternalError
|
||||
throw new ::java::lang::InternalError
|
||||
(JvNewStringUTF ("TCP_NODELAY not supported"));
|
||||
#endif /* TCP_NODELAY */
|
||||
return;
|
||||
@ -617,7 +617,7 @@ java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value)
|
||||
break;
|
||||
|
||||
case _Jv_SO_BROADCAST_ :
|
||||
throw new java::net::SocketException
|
||||
throw new ::java::net::SocketException
|
||||
(JvNewStringUTF ("SO_BROADCAST not valid for TCP"));
|
||||
break;
|
||||
|
||||
@ -637,7 +637,7 @@ java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value)
|
||||
sizeof(l_val)) != 0)
|
||||
goto error;
|
||||
#else
|
||||
throw new java::lang::InternalError (
|
||||
throw new ::java::lang::InternalError (
|
||||
JvNewStringUTF ("SO_LINGER not supported"));
|
||||
#endif /* SO_LINGER */
|
||||
return;
|
||||
@ -650,28 +650,28 @@ java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value)
|
||||
if (::setsockopt (fnum, SOL_SOCKET, opt, (char *) &val, val_len) != 0)
|
||||
goto error;
|
||||
#else
|
||||
throw new java::lang::InternalError (
|
||||
throw new ::java::lang::InternalError (
|
||||
JvNewStringUTF ("SO_RCVBUF/SO_SNDBUF not supported"));
|
||||
#endif
|
||||
return;
|
||||
|
||||
case _Jv_SO_BINDADDR_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_BINDADDR: read only option"));
|
||||
return;
|
||||
|
||||
case _Jv_IP_MULTICAST_IF_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("IP_MULTICAST_IF: not valid for TCP"));
|
||||
return;
|
||||
|
||||
case _Jv_IP_MULTICAST_IF2_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("IP_MULTICAST_IF2: not valid for TCP"));
|
||||
break;
|
||||
|
||||
case _Jv_IP_MULTICAST_LOOP_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("IP_MULTICAST_LOOP: not valid for TCP"));
|
||||
break;
|
||||
|
||||
@ -682,7 +682,7 @@ java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value)
|
||||
break;
|
||||
|
||||
case _Jv_SO_REUSEADDR_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_REUSEADDR: not valid for TCP"));
|
||||
return;
|
||||
|
||||
@ -696,11 +696,11 @@ java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value)
|
||||
|
||||
error:
|
||||
char* strerr = strerror (errno);
|
||||
throw new java::net::SocketException (JvNewStringUTF (strerr));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF (strerr));
|
||||
}
|
||||
|
||||
java::lang::Object *
|
||||
java::net::PlainSocketImpl::getOption (jint optID)
|
||||
::java::lang::Object *
|
||||
gnu::java::net::PlainSocketImpl::getOption (jint optID)
|
||||
{
|
||||
int val;
|
||||
socklen_t val_len = sizeof(val);
|
||||
@ -717,9 +717,9 @@ java::net::PlainSocketImpl::getOption (jint optID)
|
||||
&val_len) != 0)
|
||||
goto error;
|
||||
else
|
||||
return new java::lang::Boolean (val != 0);
|
||||
return new ::java::lang::Boolean (val != 0);
|
||||
#else
|
||||
throw new java::lang::InternalError
|
||||
throw new ::java::lang::InternalError
|
||||
(JvNewStringUTF ("TCP_NODELAY not supported"));
|
||||
#endif
|
||||
break;
|
||||
@ -731,11 +731,11 @@ java::net::PlainSocketImpl::getOption (jint optID)
|
||||
goto error;
|
||||
|
||||
if (l_val.l_onoff)
|
||||
return new java::lang::Integer (l_val.l_linger);
|
||||
return new ::java::lang::Integer (l_val.l_linger);
|
||||
else
|
||||
return new java::lang::Boolean ((jboolean)false);
|
||||
return new ::java::lang::Boolean ((jboolean)false);
|
||||
#else
|
||||
throw new java::lang::InternalError
|
||||
throw new ::java::lang::InternalError
|
||||
(JvNewStringUTF ("SO_LINGER not supported"));
|
||||
#endif
|
||||
break;
|
||||
@ -745,19 +745,19 @@ java::net::PlainSocketImpl::getOption (jint optID)
|
||||
&val_len) != 0)
|
||||
goto error;
|
||||
else
|
||||
return new java::lang::Boolean (val != 0);
|
||||
return new ::java::lang::Boolean (val != 0);
|
||||
|
||||
case _Jv_SO_BROADCAST_ :
|
||||
if (::getsockopt (fnum, SOL_SOCKET, SO_BROADCAST, (char *) &val,
|
||||
&val_len) != 0)
|
||||
goto error;
|
||||
return new java::lang::Boolean ((jboolean)val);
|
||||
return new ::java::lang::Boolean ((jboolean)val);
|
||||
|
||||
case _Jv_SO_OOBINLINE_ :
|
||||
if (::getsockopt (fnum, SOL_SOCKET, SO_OOBINLINE, (char *) &val,
|
||||
&val_len) != 0)
|
||||
goto error;
|
||||
return new java::lang::Boolean ((jboolean)val);
|
||||
return new ::java::lang::Boolean ((jboolean)val);
|
||||
|
||||
case _Jv_SO_RCVBUF_ :
|
||||
case _Jv_SO_SNDBUF_ :
|
||||
@ -767,9 +767,9 @@ java::net::PlainSocketImpl::getOption (jint optID)
|
||||
if (::getsockopt (fnum, SOL_SOCKET, opt, (char *) &val, &val_len) != 0)
|
||||
goto error;
|
||||
else
|
||||
return new java::lang::Integer (val);
|
||||
return new ::java::lang::Integer (val);
|
||||
#else
|
||||
throw new java::lang::InternalError
|
||||
throw new ::java::lang::InternalError
|
||||
(JvNewStringUTF ("SO_RCVBUF/SO_SNDBUF not supported"));
|
||||
#endif
|
||||
break;
|
||||
@ -795,25 +795,25 @@ java::net::PlainSocketImpl::getOption (jint optID)
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException
|
||||
throw new ::java::net::SocketException
|
||||
(JvNewStringUTF ("invalid family"));
|
||||
localAddress = new java::net::InetAddress (laddr, NULL);
|
||||
localAddress = new ::java::net::InetAddress (laddr, NULL);
|
||||
}
|
||||
|
||||
return localAddress;
|
||||
break;
|
||||
case _Jv_IP_MULTICAST_IF_ :
|
||||
throw new java::net::SocketException
|
||||
throw new ::java::net::SocketException
|
||||
(JvNewStringUTF ("IP_MULTICAST_IF: not valid for TCP"));
|
||||
break;
|
||||
|
||||
case _Jv_IP_MULTICAST_IF2_ :
|
||||
throw new java::net::SocketException
|
||||
throw new ::java::net::SocketException
|
||||
(JvNewStringUTF ("IP_MULTICAST_IF2: not valid for TCP"));
|
||||
break;
|
||||
|
||||
case _Jv_IP_MULTICAST_LOOP_ :
|
||||
throw new java::net::SocketException
|
||||
throw new ::java::net::SocketException
|
||||
(JvNewStringUTF ("IP_MULTICAST_LOOP: not valid for TCP"));
|
||||
break;
|
||||
|
||||
@ -821,16 +821,16 @@ java::net::PlainSocketImpl::getOption (jint optID)
|
||||
if (::getsockopt (fnum, SOL_SOCKET, IP_TOS, (char *) &val,
|
||||
&val_len) != 0)
|
||||
goto error;
|
||||
return new java::lang::Integer (val);
|
||||
return new ::java::lang::Integer (val);
|
||||
break;
|
||||
|
||||
case _Jv_SO_REUSEADDR_ :
|
||||
throw new java::net::SocketException
|
||||
throw new ::java::net::SocketException
|
||||
(JvNewStringUTF ("SO_REUSEADDR: not valid for TCP"));
|
||||
break;
|
||||
|
||||
case _Jv_SO_TIMEOUT_ :
|
||||
return new java::lang::Integer (timeout);
|
||||
return new ::java::lang::Integer (timeout);
|
||||
break;
|
||||
|
||||
default :
|
||||
@ -839,19 +839,19 @@ java::net::PlainSocketImpl::getOption (jint optID)
|
||||
|
||||
error:
|
||||
char* strerr = strerror (errno);
|
||||
throw new java::net::SocketException (JvNewStringUTF (strerr));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF (strerr));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::shutdownInput (void)
|
||||
gnu::java::net::PlainSocketImpl::shutdownInput (void)
|
||||
{
|
||||
if (::shutdown (fnum, 0))
|
||||
throw new SocketException (JvNewStringUTF (strerror (errno)));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF (strerror (errno)));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::shutdownOutput (void)
|
||||
gnu::java::net::PlainSocketImpl::shutdownOutput (void)
|
||||
{
|
||||
if (::shutdown (fnum, 1))
|
||||
throw new SocketException (JvNewStringUTF (strerror (errno)));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF (strerror (errno)));
|
||||
}
|
@ -13,11 +13,11 @@ details. */
|
||||
#undef MAX_PRIORITY
|
||||
#undef MIN_PRIORITY
|
||||
|
||||
#include <gnu/java/net/PlainSocketImpl.h>
|
||||
#include <java/io/IOException.h>
|
||||
#include <java/io/InterruptedIOException.h>
|
||||
#include <java/net/BindException.h>
|
||||
#include <java/net/ConnectException.h>
|
||||
#include <java/net/PlainSocketImpl.h>
|
||||
#include <java/net/InetAddress.h>
|
||||
#include <java/net/InetSocketAddress.h>
|
||||
#include <java/net/SocketException.h>
|
||||
@ -41,7 +41,7 @@ union SockAddr
|
||||
};
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::create (jboolean stream)
|
||||
gnu::java::net::PlainSocketImpl::create (jboolean stream)
|
||||
{
|
||||
int sock = ::socket (AF_INET, stream ? SOCK_STREAM : SOCK_DGRAM, 0);
|
||||
|
||||
@ -58,7 +58,7 @@ java::net::PlainSocketImpl::create (jboolean stream)
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::bind (java::net::InetAddress *host, jint lport)
|
||||
gnu::java::net::PlainSocketImpl::bind (::java::net::InetAddress *host, jint lport)
|
||||
{
|
||||
union SockAddr u;
|
||||
struct sockaddr *ptr = (struct sockaddr *) &u.address;
|
||||
@ -89,7 +89,7 @@ java::net::PlainSocketImpl::bind (java::net::InetAddress *host, jint lport)
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
|
||||
// Enable SO_REUSEADDR, so that servers can reuse ports left in TIME_WAIT.
|
||||
::setsockopt(fnum, SOL_SOCKET, SO_REUSEADDR, (char *) &i, sizeof(i));
|
||||
@ -111,13 +111,13 @@ java::net::PlainSocketImpl::bind (java::net::InetAddress *host, jint lport)
|
||||
|
||||
error:
|
||||
DWORD dwErrorCode = WSAGetLastError ();
|
||||
throw new java::net::BindException (_Jv_WinStrError (dwErrorCode));
|
||||
throw new ::java::net::BindException (_Jv_WinStrError (dwErrorCode));
|
||||
}
|
||||
|
||||
static void
|
||||
throwConnectException (DWORD dwErrorCode)
|
||||
{
|
||||
throw new java::net::ConnectException (_Jv_WinStrError (dwErrorCode));
|
||||
throw new ::java::net::ConnectException (_Jv_WinStrError (dwErrorCode));
|
||||
}
|
||||
|
||||
static void
|
||||
@ -127,11 +127,11 @@ throwConnectException ()
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::connect (java::net::SocketAddress *addr,
|
||||
gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
|
||||
jint timeout)
|
||||
{
|
||||
java::net::InetSocketAddress *tmp = (java::net::InetSocketAddress*) addr;
|
||||
java::net::InetAddress *host = tmp->getAddress();
|
||||
::java::net::InetSocketAddress *tmp = (::java::net::InetSocketAddress*) addr;
|
||||
::java::net::InetAddress *host = tmp->getAddress();
|
||||
jint rport = tmp->getPort();
|
||||
|
||||
union SockAddr u;
|
||||
@ -158,7 +158,7 @@ java::net::PlainSocketImpl::connect (java::net::SocketAddress *addr,
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
|
||||
|
||||
if (timeout > 0)
|
||||
{
|
||||
@ -180,7 +180,7 @@ java::net::PlainSocketImpl::connect (java::net::SocketAddress *addr,
|
||||
throwConnectException ();
|
||||
|
||||
else if (dwRet == WSA_WAIT_TIMEOUT)
|
||||
throw new java::net::SocketTimeoutException
|
||||
throw new ::java::net::SocketTimeoutException
|
||||
(JvNewStringUTF ("connect timed out"));
|
||||
|
||||
// If we get here, we still need to check whether the actual
|
||||
@ -219,7 +219,7 @@ java::net::PlainSocketImpl::connect (java::net::SocketAddress *addr,
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::listen (jint backlog)
|
||||
gnu::java::net::PlainSocketImpl::listen (jint backlog)
|
||||
{
|
||||
if (::listen (fnum, backlog) == SOCKET_ERROR)
|
||||
{
|
||||
@ -228,7 +228,7 @@ java::net::PlainSocketImpl::listen (jint backlog)
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::accept (java::net::PlainSocketImpl *s)
|
||||
gnu::java::net::PlainSocketImpl::accept (::java::net::PlainSocketImpl *s)
|
||||
{
|
||||
union SockAddr u;
|
||||
socklen_t addrlen = sizeof(u);
|
||||
@ -277,7 +277,7 @@ java::net::PlainSocketImpl::accept (java::net::PlainSocketImpl *s)
|
||||
if (dwRet == WSA_WAIT_FAILED)
|
||||
goto error;
|
||||
else if (dwRet == WSA_WAIT_TIMEOUT)
|
||||
throw new java::net::SocketTimeoutException
|
||||
throw new ::java::net::SocketTimeoutException
|
||||
(JvNewStringUTF ("accept timed out"));
|
||||
}
|
||||
}
|
||||
@ -308,7 +308,7 @@ java::net::PlainSocketImpl::accept (java::net::PlainSocketImpl *s)
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException (JvNewStringUTF ("invalid family"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("invalid family"));
|
||||
|
||||
s->fnum = new_socket;
|
||||
s->localport = localport;
|
||||
@ -322,7 +322,7 @@ java::net::PlainSocketImpl::accept (java::net::PlainSocketImpl *s)
|
||||
|
||||
// Close(shutdown) the socket.
|
||||
void
|
||||
java::net::PlainSocketImpl::close()
|
||||
gnu::java::net::PlainSocketImpl::close()
|
||||
{
|
||||
// Avoid races from asynchronous finalization.
|
||||
JvSynchronize sync (this);
|
||||
@ -346,7 +346,7 @@ java::net::PlainSocketImpl::close()
|
||||
|
||||
// Write a byte to the socket.
|
||||
void
|
||||
java::net::PlainSocketImpl::write(jint b)
|
||||
gnu::java::net::PlainSocketImpl::write(jint b)
|
||||
{
|
||||
jbyte d =(jbyte) b;
|
||||
int r = 0;
|
||||
@ -357,10 +357,10 @@ java::net::PlainSocketImpl::write(jint b)
|
||||
if (r == -1)
|
||||
{
|
||||
DWORD dwErr = WSAGetLastError();
|
||||
if (java::lang::Thread::interrupted())
|
||||
if (::java::lang::Thread::interrupted())
|
||||
{
|
||||
java::io::InterruptedIOException *iioe
|
||||
= new java::io::InterruptedIOException
|
||||
::java::io::InterruptedIOException *iioe
|
||||
= new ::java::io::InterruptedIOException
|
||||
(_Jv_WinStrError (dwErr));
|
||||
iioe->bytesTransferred = 0;
|
||||
throw iioe;
|
||||
@ -376,12 +376,12 @@ java::net::PlainSocketImpl::write(jint b)
|
||||
|
||||
// Write some bytes to the socket.
|
||||
void
|
||||
java::net::PlainSocketImpl::write(jbyteArray b, jint offset, jint len)
|
||||
gnu::java::net::PlainSocketImpl::write(jbyteArray b, jint offset, jint len)
|
||||
{
|
||||
if (! b)
|
||||
throw new java::lang::NullPointerException;
|
||||
throw new ::java::lang::NullPointerException;
|
||||
if (offset < 0 || len < 0 || offset + len > JvGetArrayLength (b))
|
||||
throw new java::lang::ArrayIndexOutOfBoundsException;
|
||||
throw new ::java::lang::ArrayIndexOutOfBoundsException;
|
||||
|
||||
jbyte *bytes = elements (b) + offset;
|
||||
int written = 0;
|
||||
@ -392,10 +392,10 @@ java::net::PlainSocketImpl::write(jbyteArray b, jint offset, jint len)
|
||||
if (r == -1)
|
||||
{
|
||||
DWORD dwErr = WSAGetLastError();
|
||||
if (java::lang::Thread::interrupted())
|
||||
if (::java::lang::Thread::interrupted())
|
||||
{
|
||||
java::io::InterruptedIOException *iioe
|
||||
= new java::io::InterruptedIOException
|
||||
::java::io::InterruptedIOException *iioe
|
||||
= new ::java::io::InterruptedIOException
|
||||
(_Jv_WinStrError (dwErr));
|
||||
iioe->bytesTransferred = written;
|
||||
throw iioe;
|
||||
@ -414,9 +414,9 @@ java::net::PlainSocketImpl::write(jbyteArray b, jint offset, jint len)
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::sendUrgentData (jint)
|
||||
gnu::java::net::PlainSocketImpl::sendUrgentData (jint)
|
||||
{
|
||||
throw new SocketException (JvNewStringLatin1 (
|
||||
throw new ::java::net::SocketException (JvNewStringLatin1 (
|
||||
"PlainSocketImpl: sending of urgent data not supported by this socket"));
|
||||
}
|
||||
|
||||
@ -451,10 +451,10 @@ doRead(int fnum, void* buf, int count, int timeout)
|
||||
dwErrorCode = WSAGetLastError ();
|
||||
// save WSAGetLastError() before calling Thread.interrupted()
|
||||
|
||||
if (java::lang::Thread::interrupted())
|
||||
if (::java::lang::Thread::interrupted())
|
||||
{
|
||||
java::io::InterruptedIOException *iioe =
|
||||
new java::io::InterruptedIOException
|
||||
::java::io::InterruptedIOException *iioe =
|
||||
new ::java::io::InterruptedIOException
|
||||
(JvNewStringUTF("read interrupted"));
|
||||
iioe->bytesTransferred = r == -1 ? 0 : r;
|
||||
throw iioe;
|
||||
@ -468,7 +468,7 @@ error:
|
||||
|
||||
// Other errors need to be signalled.
|
||||
if (dwErrorCode == WSAETIMEDOUT)
|
||||
throw new java::net::SocketTimeoutException
|
||||
throw new ::java::net::SocketTimeoutException
|
||||
(JvNewStringUTF ("read timed out") );
|
||||
else
|
||||
_Jv_ThrowIOException (dwErrorCode);
|
||||
@ -479,7 +479,7 @@ error:
|
||||
|
||||
// Read a single byte from the socket.
|
||||
jint
|
||||
java::net::PlainSocketImpl::read(void)
|
||||
gnu::java::net::PlainSocketImpl::read(void)
|
||||
{
|
||||
jbyte b;
|
||||
doRead(fnum, &b, 1, timeout);
|
||||
@ -488,15 +488,15 @@ java::net::PlainSocketImpl::read(void)
|
||||
|
||||
// Read count bytes into the buffer, starting at offset.
|
||||
jint
|
||||
java::net::PlainSocketImpl::read(jbyteArray buffer, jint offset, jint count)
|
||||
gnu::java::net::PlainSocketImpl::read(jbyteArray buffer, jint offset, jint count)
|
||||
{
|
||||
if (! buffer)
|
||||
throw new java::lang::NullPointerException;
|
||||
throw new ::java::lang::NullPointerException;
|
||||
|
||||
jsize bsize = JvGetArrayLength (buffer);
|
||||
|
||||
if (offset < 0 || count < 0 || offset + count > bsize)
|
||||
throw new java::lang::ArrayIndexOutOfBoundsException;
|
||||
throw new ::java::lang::ArrayIndexOutOfBoundsException;
|
||||
|
||||
jbyte *bytes = elements (buffer) + offset;
|
||||
|
||||
@ -506,7 +506,7 @@ java::net::PlainSocketImpl::read(jbyteArray buffer, jint offset, jint count)
|
||||
|
||||
// How many bytes are available?
|
||||
jint
|
||||
java::net::PlainSocketImpl::available(void)
|
||||
gnu::java::net::PlainSocketImpl::available(void)
|
||||
{
|
||||
unsigned long num = 0;
|
||||
|
||||
@ -517,18 +517,18 @@ java::net::PlainSocketImpl::available(void)
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value)
|
||||
gnu::java::net::PlainSocketImpl::setOption (jint optID, ::java::lang::Object *value)
|
||||
{
|
||||
int val;
|
||||
socklen_t val_len = sizeof (val);
|
||||
|
||||
if (fnum < 0)
|
||||
throw new java::net::SocketException (JvNewStringUTF ("Socket closed"));
|
||||
throw new ::java::net::SocketException (JvNewStringUTF ("Socket closed"));
|
||||
|
||||
if (_Jv_IsInstanceOf (value, &java::lang::Boolean::class$))
|
||||
if (_Jv_IsInstanceOf (value, &::java::lang::Boolean::class$))
|
||||
{
|
||||
java::lang::Boolean *boolobj =
|
||||
static_cast<java::lang::Boolean *> (value);
|
||||
::java::lang::Boolean *boolobj =
|
||||
static_cast< ::java::lang::Boolean *> (value);
|
||||
if (boolobj->booleanValue())
|
||||
val = 1;
|
||||
else
|
||||
@ -539,15 +539,15 @@ java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value)
|
||||
val = 0;
|
||||
}
|
||||
}
|
||||
else if (_Jv_IsInstanceOf (value, &java::lang::Integer::class$))
|
||||
else if (_Jv_IsInstanceOf (value, &::java::lang::Integer::class$))
|
||||
{
|
||||
java::lang::Integer *intobj =
|
||||
static_cast<java::lang::Integer *> (value);
|
||||
::java::lang::Integer *intobj =
|
||||
static_cast< ::java::lang::Integer *> (value);
|
||||
val = (int) intobj->intValue();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new java::lang::IllegalArgumentException (
|
||||
throw new ::java::lang::IllegalArgumentException (
|
||||
JvNewStringLatin1 ("`value' must be Boolean or Integer"));
|
||||
}
|
||||
|
||||
@ -566,7 +566,7 @@ java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value)
|
||||
break;
|
||||
|
||||
case _Jv_SO_BROADCAST_ :
|
||||
throw new java::net::SocketException
|
||||
throw new ::java::net::SocketException
|
||||
(JvNewStringUTF ("SO_BROADCAST not valid for TCP"));
|
||||
break;
|
||||
|
||||
@ -596,22 +596,22 @@ java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value)
|
||||
return;
|
||||
|
||||
case _Jv_SO_BINDADDR_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_BINDADDR: read only option"));
|
||||
return;
|
||||
|
||||
case _Jv_IP_MULTICAST_IF_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("IP_MULTICAST_IF: not valid for TCP"));
|
||||
return;
|
||||
|
||||
case _Jv_IP_MULTICAST_IF2_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("IP_MULTICAST_IF2: not valid for TCP"));
|
||||
break;
|
||||
|
||||
case _Jv_IP_MULTICAST_LOOP_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("IP_MULTICAST_LOOP: not valid for TCP"));
|
||||
break;
|
||||
|
||||
@ -622,7 +622,7 @@ java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value)
|
||||
break;
|
||||
|
||||
case _Jv_SO_REUSEADDR_ :
|
||||
throw new java::net::SocketException (
|
||||
throw new ::java::net::SocketException (
|
||||
JvNewStringUTF ("SO_REUSEADDR: not valid for TCP"));
|
||||
return;
|
||||
|
||||
@ -638,8 +638,8 @@ error:
|
||||
_Jv_ThrowSocketException ();
|
||||
}
|
||||
|
||||
java::lang::Object *
|
||||
java::net::PlainSocketImpl::getOption (jint optID)
|
||||
::java::lang::Object *
|
||||
gnu::java::net::PlainSocketImpl::getOption (jint optID)
|
||||
{
|
||||
int val;
|
||||
socklen_t val_len = sizeof(val);
|
||||
@ -655,7 +655,7 @@ java::net::PlainSocketImpl::getOption (jint optID)
|
||||
&val_len) == SOCKET_ERROR)
|
||||
goto error;
|
||||
else
|
||||
return new java::lang::Boolean (val != 0);
|
||||
return new ::java::lang::Boolean (val != 0);
|
||||
break;
|
||||
|
||||
case _Jv_SO_LINGER_ :
|
||||
@ -664,9 +664,9 @@ java::net::PlainSocketImpl::getOption (jint optID)
|
||||
goto error;
|
||||
|
||||
if (l_val.l_onoff)
|
||||
return new java::lang::Integer (l_val.l_linger);
|
||||
return new ::java::lang::Integer (l_val.l_linger);
|
||||
else
|
||||
return new java::lang::Boolean ((jboolean)false);
|
||||
return new ::java::lang::Boolean ((jboolean)false);
|
||||
break;
|
||||
|
||||
case _Jv_SO_KEEPALIVE_ :
|
||||
@ -674,19 +674,19 @@ java::net::PlainSocketImpl::getOption (jint optID)
|
||||
&val_len) == SOCKET_ERROR)
|
||||
goto error;
|
||||
else
|
||||
return new java::lang::Boolean (val != 0);
|
||||
return new ::java::lang::Boolean (val != 0);
|
||||
|
||||
case _Jv_SO_BROADCAST_ :
|
||||
if (::getsockopt (fnum, SOL_SOCKET, SO_BROADCAST, (char *) &val,
|
||||
&val_len) == SOCKET_ERROR)
|
||||
goto error;
|
||||
return new java::lang::Boolean ((jboolean)val);
|
||||
return new ::java::lang::Boolean ((jboolean)val);
|
||||
|
||||
case _Jv_SO_OOBINLINE_ :
|
||||
if (::getsockopt (fnum, SOL_SOCKET, SO_OOBINLINE, (char *) &val,
|
||||
&val_len) == SOCKET_ERROR)
|
||||
goto error;
|
||||
return new java::lang::Boolean ((jboolean)val);
|
||||
return new ::java::lang::Boolean ((jboolean)val);
|
||||
|
||||
case _Jv_SO_RCVBUF_ :
|
||||
case _Jv_SO_SNDBUF_ :
|
||||
@ -696,7 +696,7 @@ java::net::PlainSocketImpl::getOption (jint optID)
|
||||
&val_len) == SOCKET_ERROR)
|
||||
goto error;
|
||||
else
|
||||
return new java::lang::Integer (val);
|
||||
return new ::java::lang::Integer (val);
|
||||
break;
|
||||
case _Jv_SO_BINDADDR_:
|
||||
// cache the local address
|
||||
@ -721,25 +721,25 @@ java::net::PlainSocketImpl::getOption (jint optID)
|
||||
}
|
||||
#endif
|
||||
else
|
||||
throw new java::net::SocketException
|
||||
throw new ::java::net::SocketException
|
||||
(JvNewStringUTF ("invalid family"));
|
||||
localAddress = new java::net::InetAddress (laddr, NULL);
|
||||
localAddress = new ::java::net::InetAddress (laddr, NULL);
|
||||
}
|
||||
|
||||
return localAddress;
|
||||
break;
|
||||
case _Jv_IP_MULTICAST_IF_ :
|
||||
throw new java::net::SocketException
|
||||
throw new ::java::net::SocketException
|
||||
(JvNewStringUTF ("IP_MULTICAST_IF: not valid for TCP"));
|
||||
break;
|
||||
|
||||
case _Jv_IP_MULTICAST_IF2_ :
|
||||
throw new java::net::SocketException
|
||||
throw new ::java::net::SocketException
|
||||
(JvNewStringUTF ("IP_MULTICAST_IF2: not valid for TCP"));
|
||||
break;
|
||||
|
||||
case _Jv_IP_MULTICAST_LOOP_ :
|
||||
throw new java::net::SocketException
|
||||
throw new ::java::net::SocketException
|
||||
(JvNewStringUTF ("IP_MULTICAST_LOOP: not valid for TCP"));
|
||||
break;
|
||||
|
||||
@ -747,16 +747,16 @@ java::net::PlainSocketImpl::getOption (jint optID)
|
||||
if (::getsockopt (fnum, SOL_SOCKET, IP_TOS, (char *) &val,
|
||||
&val_len) == SOCKET_ERROR)
|
||||
goto error;
|
||||
return new java::lang::Integer (val);
|
||||
return new ::java::lang::Integer (val);
|
||||
break;
|
||||
|
||||
case _Jv_SO_REUSEADDR_ :
|
||||
throw new java::net::SocketException
|
||||
throw new ::java::net::SocketException
|
||||
(JvNewStringUTF ("SO_REUSEADDR: not valid for TCP"));
|
||||
break;
|
||||
|
||||
case _Jv_SO_TIMEOUT_ :
|
||||
return new java::lang::Integer (timeout);
|
||||
return new ::java::lang::Integer (timeout);
|
||||
break;
|
||||
|
||||
default :
|
||||
@ -770,14 +770,14 @@ error:
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::shutdownInput (void)
|
||||
gnu::java::net::PlainSocketImpl::shutdownInput (void)
|
||||
{
|
||||
if (::shutdown (fnum, 0))
|
||||
_Jv_ThrowSocketException ();
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::shutdownOutput (void)
|
||||
gnu::java::net::PlainSocketImpl::shutdownOutput (void)
|
||||
{
|
||||
if (::shutdown (fnum, 1))
|
||||
_Jv_ThrowSocketException ();
|
@ -35,8 +35,10 @@ this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.net;
|
||||
|
||||
import gnu.java.net.PlainDatagramSocketImpl;
|
||||
import java.io.IOException;
|
||||
import java.nio.channels.DatagramChannel;
|
||||
import java.nio.channels.IllegalBlockingModeException;
|
||||
@ -266,38 +268,30 @@ public class DatagramSocket
|
||||
*/
|
||||
public InetAddress getLocalAddress()
|
||||
{
|
||||
// FIXME: JCL p. 510 says this should call checkConnect. But what
|
||||
// string should be used as the hostname? Maybe this is just a side
|
||||
// effect of calling InetAddress.getLocalHost.
|
||||
//
|
||||
// And is getOption with SO_BINDADDR the right way to get the address?
|
||||
// Doesn't seem to be since this method doesn't throw a SocketException
|
||||
// and SO_BINADDR can throw one.
|
||||
//
|
||||
// Also see RETURNS section in JCL p. 510 about returning any local
|
||||
// addr "if the current execution context is not allowed to connect to
|
||||
// the network interface that is actually bound to this datagram socket."
|
||||
// How is that done? via InetAddress.getLocalHost? But that throws
|
||||
// an UnknownHostException and this method doesn't.
|
||||
//
|
||||
// if (s != null)
|
||||
// s.checkConnect("localhost", -1);
|
||||
if (impl == null
|
||||
|| closed)
|
||||
return null;
|
||||
|
||||
InetAddress result;
|
||||
|
||||
try
|
||||
{
|
||||
return (InetAddress)impl.getOption(SocketOptions.SO_BINDADDR);
|
||||
result = (InetAddress) impl.getOption (SocketOptions.SO_BINDADDR);
|
||||
|
||||
SecurityManager s = System.getSecurityManager();
|
||||
if (s != null)
|
||||
s.checkConnect (result.getHostName(), -1);
|
||||
}
|
||||
catch (SocketException ex)
|
||||
catch (SecurityException e)
|
||||
{
|
||||
result = InetAddress.ANY_IF;
|
||||
}
|
||||
catch (SocketException e)
|
||||
{
|
||||
result = InetAddress.ANY_IF;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
return InetAddress.getLocalHost();
|
||||
}
|
||||
catch (UnknownHostException ex)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -36,8 +36,10 @@ this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.net;
|
||||
|
||||
import gnu.java.net.PlainDatagramSocketImpl;
|
||||
import java.io.IOException;
|
||||
import java.util.Enumeration;
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* ServerSocket.java -- Class for implementing server side sockets
|
||||
Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -35,8 +35,10 @@ this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.net;
|
||||
|
||||
import gnu.java.net.PlainSocketImpl;
|
||||
import java.io.IOException;
|
||||
import java.nio.channels.IllegalBlockingModeException;
|
||||
import java.nio.channels.ServerSocketChannel;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Socket.java -- Client socket implementation
|
||||
Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -35,8 +35,10 @@ this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.net;
|
||||
|
||||
import gnu.java.net.PlainSocketImpl;
|
||||
import java.io.InputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
|
@ -1,119 +0,0 @@
|
||||
/* Copyright (C) 2003 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
#include <config.h>
|
||||
#include <platform.h>
|
||||
|
||||
#include <java/io/IOException.h>
|
||||
#include <java/lang/Object.h>
|
||||
#include <java/net/BindException.h>
|
||||
#include <java/net/DatagramPacket.h>
|
||||
#include <java/net/InetAddress.h>
|
||||
#include <java/net/NetworkInterface.h>
|
||||
#include <java/net/PlainDatagramSocketImpl.h>
|
||||
#include <java/net/SocketException.h>
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::create ()
|
||||
{
|
||||
throw new SocketException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.create: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::bind (jint, java::net::InetAddress *)
|
||||
{
|
||||
throw new BindException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.bind: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::connect (java::net::InetAddress *, jint)
|
||||
{
|
||||
throw new SocketException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.connect: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::disconnect ()
|
||||
{
|
||||
throw new SocketException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.disconnect: unimplemented"));
|
||||
}
|
||||
|
||||
jint
|
||||
java::net::PlainDatagramSocketImpl::peek (java::net::InetAddress *)
|
||||
{
|
||||
throw new java::io::IOException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.peek: unimplemented"));
|
||||
}
|
||||
|
||||
jint
|
||||
java::net::PlainDatagramSocketImpl::peekData(java::net::DatagramPacket *)
|
||||
{
|
||||
throw new java::io::IOException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.peekData: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::close ()
|
||||
{
|
||||
throw new java::io::IOException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.close: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::send (java::net::DatagramPacket *)
|
||||
{
|
||||
throw new java::io::IOException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.send: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::receive (java::net::DatagramPacket *)
|
||||
{
|
||||
throw new java::io::IOException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.receive: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::setTimeToLive (jint)
|
||||
{
|
||||
throw new java::io::IOException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.setTimeToLive: unimplemented"));
|
||||
}
|
||||
|
||||
jint
|
||||
java::net::PlainDatagramSocketImpl::getTimeToLive ()
|
||||
{
|
||||
throw new java::io::IOException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.getTimeToLive: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::mcastGrp (java::net::InetAddress *,
|
||||
java::net::NetworkInterface *,
|
||||
jboolean)
|
||||
{
|
||||
throw new java::io::IOException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.mcastGrp: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainDatagramSocketImpl::setOption (jint, java::lang::Object *)
|
||||
{
|
||||
throw new SocketException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.setOption: unimplemented"));
|
||||
}
|
||||
|
||||
java::lang::Object *
|
||||
java::net::PlainDatagramSocketImpl::getOption (jint)
|
||||
{
|
||||
throw new SocketException (
|
||||
JvNewStringLatin1 ("DatagramSocketImpl.getOption: unimplemented"));
|
||||
}
|
@ -1,128 +0,0 @@
|
||||
/* Copyright (C) 2003 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
#include <config.h>
|
||||
#include <platform.h>
|
||||
|
||||
#include <java/io/IOException.h>
|
||||
#include <java/net/BindException.h>
|
||||
#include <java/net/ConnectException.h>
|
||||
#include <java/net/PlainSocketImpl.h>
|
||||
#include <java/net/SocketException.h>
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::create (jboolean)
|
||||
{
|
||||
throw new java::io::IOException (
|
||||
JvNewStringLatin1 ("SocketImpl.create: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::bind (java::net::InetAddress *, jint)
|
||||
{
|
||||
throw new BindException (
|
||||
JvNewStringLatin1 ("SocketImpl.bind: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::connect (java::net::SocketAddress *, jint)
|
||||
{
|
||||
throw new ConnectException (
|
||||
JvNewStringLatin1 ("SocketImpl.connect: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::listen (jint)
|
||||
{
|
||||
throw new java::io::IOException (
|
||||
JvNewStringLatin1 ("SocketImpl.listen: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::accept (java::net::PlainSocketImpl *)
|
||||
{
|
||||
throw new java::io::IOException (
|
||||
JvNewStringLatin1 ("SocketImpl.accept: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::setOption (jint, java::lang::Object *)
|
||||
{
|
||||
throw new SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.setOption: unimplemented"));
|
||||
}
|
||||
|
||||
java::lang::Object *
|
||||
java::net::PlainSocketImpl::getOption (jint)
|
||||
{
|
||||
throw new SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.getOption: unimplemented"));
|
||||
}
|
||||
|
||||
jint
|
||||
java::net::PlainSocketImpl::read(void)
|
||||
{
|
||||
throw new SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.read: unimplemented"));
|
||||
}
|
||||
|
||||
jint
|
||||
java::net::PlainSocketImpl::read(jbyteArray buffer, jint offset, jint count)
|
||||
{
|
||||
throw new SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.read: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::write(jint b)
|
||||
{
|
||||
throw new SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.write: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::write(jbyteArray b, jint offset, jint len)
|
||||
{
|
||||
throw new SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.write: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::sendUrgentData(jint data)
|
||||
{
|
||||
throw new SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.sendUrgentData: unimplemented"));
|
||||
}
|
||||
|
||||
jint
|
||||
java::net::PlainSocketImpl::available(void)
|
||||
{
|
||||
throw new SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.available: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::close(void)
|
||||
{
|
||||
throw new SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.close: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::shutdownInput (void)
|
||||
{
|
||||
throw new SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.shutdownInput: unimplemented"));
|
||||
}
|
||||
|
||||
void
|
||||
java::net::PlainSocketImpl::shutdownOutput (void)
|
||||
{
|
||||
throw new SocketException (
|
||||
JvNewStringLatin1 ("SocketImpl.shutdownOutput: unimplemented"));
|
||||
}
|
Loading…
Reference in New Issue
Block a user