2003-12-04 Michael Koch <konqueror@gmx.de>
* java/net/DatagramPacket.java (length): Made packge-private to make it accessible via CNI. (maxlen): New field. (DatagramPacket): Cleaned up. (setSocketAddress): Add message to exception. (setData): Call other setData(). (setData): Call setLength(). (setLength): Initialize maxlen too. * gnu/java/net/natPlainDatagramSocketImplPosix.cc (peekData): Get maximal length from maxlen field, set length field directly. (receive): Likewise. * gnu/java/net/natPlainDatagramSocketImplWin32.cc (peekData): Get maximal length from maxlen field, set length field directly. (receive): Likewise. From-SVN: r74278
This commit is contained in:
parent
7f1156ed35
commit
477913522a
@ -1,3 +1,20 @@
|
||||
2003-12-04 Michael Koch <konqueror@gmx.de>
|
||||
|
||||
* java/net/DatagramPacket.java
|
||||
(length): Made packge-private to make it accessible via CNI.
|
||||
(maxlen): New field.
|
||||
(DatagramPacket): Cleaned up.
|
||||
(setSocketAddress): Add message to exception.
|
||||
(setData): Call other setData().
|
||||
(setData): Call setLength().
|
||||
(setLength): Initialize maxlen too.
|
||||
* gnu/java/net/natPlainDatagramSocketImplPosix.cc (peekData):
|
||||
Get maximal length from maxlen field, set length field directly.
|
||||
(receive): Likewise.
|
||||
* gnu/java/net/natPlainDatagramSocketImplWin32.cc (peekData):
|
||||
Get maximal length from maxlen field, set length field directly.
|
||||
(receive): Likewise.
|
||||
|
||||
2003-12-03 Mohan Embar <gnustuff@thisiscool.com>
|
||||
|
||||
* gnu/java/nio/natSelectorImplPosix.cc
|
||||
|
@ -209,7 +209,7 @@ gnu::java::net::PlainDatagramSocketImpl::peekData (::java::net::DatagramPacket *
|
||||
union SockAddr u;
|
||||
socklen_t addrlen = sizeof(u);
|
||||
jbyte *dbytes = elements (p->getData()) + p->getOffset();
|
||||
jint maxlen = p->getData()->length - p->getOffset();
|
||||
jint maxlen = p->maxlen - p->getOffset();
|
||||
ssize_t retlen = 0;
|
||||
|
||||
// Do timeouts via select since SO_RCVTIMEO is not always available.
|
||||
@ -255,7 +255,7 @@ gnu::java::net::PlainDatagramSocketImpl::peekData (::java::net::DatagramPacket *
|
||||
|
||||
p->setAddress (new ::java::net::InetAddress (raddr, NULL));
|
||||
p->setPort (rport);
|
||||
p->setLength ((jint) retlen);
|
||||
p->length = (int) retlen;
|
||||
return rport;
|
||||
|
||||
error:
|
||||
@ -329,7 +329,7 @@ gnu::java::net::PlainDatagramSocketImpl::receive (::java::net::DatagramPacket *p
|
||||
union SockAddr u;
|
||||
socklen_t addrlen = sizeof(u);
|
||||
jbyte *dbytes = elements (p->getData()) + p->getOffset();
|
||||
jint maxlen = p->getData()->length - p->getOffset();
|
||||
jint maxlen = p->maxlen - p->getOffset();
|
||||
ssize_t retlen = 0;
|
||||
|
||||
// Do timeouts via select since SO_RCVTIMEO is not always available.
|
||||
@ -375,7 +375,7 @@ gnu::java::net::PlainDatagramSocketImpl::receive (::java::net::DatagramPacket *p
|
||||
|
||||
p->setAddress (new ::java::net::InetAddress (raddr, NULL));
|
||||
p->setPort (rport);
|
||||
p->setLength ((jint) retlen);
|
||||
p->length = (jint) retlen;
|
||||
return;
|
||||
|
||||
error:
|
||||
|
@ -203,7 +203,7 @@ gnu::java::net::PlainDatagramSocketImpl::peekData(::java::net::DatagramPacket *p
|
||||
union SockAddr u;
|
||||
socklen_t addrlen = sizeof(u);
|
||||
jbyte *dbytes = elements (p->getData()) + p->getOffset();
|
||||
jint maxlen = p->getData()->length - p->getOffset();
|
||||
jint maxlen = p->maxlen - p->getOffset();
|
||||
ssize_t retlen = 0;
|
||||
|
||||
if (timeout > 0)
|
||||
@ -241,7 +241,7 @@ gnu::java::net::PlainDatagramSocketImpl::peekData(::java::net::DatagramPacket *p
|
||||
|
||||
p->setAddress (new ::java::net::InetAddress (raddr, NULL));
|
||||
p->setPort (rport);
|
||||
p->setLength ((jint) retlen);
|
||||
p->length = (jint) retlen;
|
||||
return rport;
|
||||
|
||||
error:
|
||||
@ -318,7 +318,7 @@ gnu::java::net::PlainDatagramSocketImpl::receive (::java::net::DatagramPacket *p
|
||||
union SockAddr u;
|
||||
socklen_t addrlen = sizeof(u);
|
||||
jbyte *dbytes = elements (p->getData()) + p->getOffset();
|
||||
jint maxlen = p->getData()->length - p->getOffset();
|
||||
jint maxlen = p->maxlen - p->getOffset();
|
||||
ssize_t retlen = 0;
|
||||
|
||||
if (timeout > 0)
|
||||
@ -359,7 +359,7 @@ gnu::java::net::PlainDatagramSocketImpl::receive (::java::net::DatagramPacket *p
|
||||
|
||||
p->setAddress (new ::java::net::InetAddress (raddr, NULL));
|
||||
p->setPort (rport);
|
||||
p->setLength ((jint) retlen);
|
||||
p->length = (jint) retlen;
|
||||
return;
|
||||
|
||||
error:
|
||||
|
@ -78,13 +78,18 @@ public final class DatagramPacket
|
||||
private int offset;
|
||||
|
||||
/**
|
||||
* The length of the data buffer to send
|
||||
* The length of the data buffer to send.
|
||||
*/
|
||||
private int length;
|
||||
int length;
|
||||
|
||||
/**
|
||||
* The maximal length of the buffer.
|
||||
*/
|
||||
int maxlen;
|
||||
|
||||
/**
|
||||
* The address to which the packet should be sent or from which it
|
||||
* was received
|
||||
* was received.
|
||||
*/
|
||||
private InetAddress address;
|
||||
|
||||
@ -106,21 +111,9 @@ public final class DatagramPacket
|
||||
*/
|
||||
public DatagramPacket(byte[] buf, int offset, int length)
|
||||
{
|
||||
if (buf == null)
|
||||
throw new NullPointerException("Null buffer");
|
||||
if (offset < 0)
|
||||
throw new IllegalArgumentException("Invalid offset: " + offset);
|
||||
if (length < 0)
|
||||
throw new IllegalArgumentException("Invalid length: " + length);
|
||||
if (offset + length > buf.length)
|
||||
throw new IllegalArgumentException("Potential buffer overflow - offset: "
|
||||
+ offset + " length: " + length);
|
||||
|
||||
buffer = buf;
|
||||
this.offset = offset;
|
||||
this.length = length;
|
||||
this.address = null;
|
||||
this.port = -1;
|
||||
setData(buf, offset, length);
|
||||
address = null;
|
||||
port = -1;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -150,25 +143,9 @@ public final class DatagramPacket
|
||||
public DatagramPacket(byte[] buf, int offset, int length,
|
||||
InetAddress address, int port)
|
||||
{
|
||||
if (buf == null)
|
||||
throw new NullPointerException("Null buffer");
|
||||
if (offset < 0)
|
||||
throw new IllegalArgumentException("Invalid offset: " + offset);
|
||||
if (length < 0)
|
||||
throw new IllegalArgumentException("Invalid length: " + length);
|
||||
if (offset + length > buf.length)
|
||||
throw new IllegalArgumentException("Potential buffer overflow - offset: "
|
||||
+ offset + " length: " + length);
|
||||
if (port < 0 || port > 65535)
|
||||
throw new IllegalArgumentException("Invalid port: " + port);
|
||||
if (address == null)
|
||||
throw new NullPointerException("Null address");
|
||||
|
||||
buffer = buf;
|
||||
this.offset = offset;
|
||||
this.length = length;
|
||||
this.address = address;
|
||||
this.port = port;
|
||||
setData(buf, offset, length);
|
||||
setAddress(address);
|
||||
setPort(port);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -203,8 +180,13 @@ public final class DatagramPacket
|
||||
SocketAddress address)
|
||||
throws SocketException
|
||||
{
|
||||
this(buf, offset, length, ((InetSocketAddress)address).getAddress(),
|
||||
((InetSocketAddress)address).getPort());
|
||||
if (! (address instanceof InetSocketAddress))
|
||||
throw new IllegalArgumentException("unsupported address type");
|
||||
|
||||
InetSocketAddress tmp = (InetSocketAddress) address;
|
||||
setData(buf, offset, length);
|
||||
setAddress(tmp.getAddress());
|
||||
setPort(tmp.getPort());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -223,8 +205,7 @@ public final class DatagramPacket
|
||||
public DatagramPacket(byte[] buf, int length, SocketAddress address)
|
||||
throws SocketException
|
||||
{
|
||||
this(buf, 0, length, ((InetSocketAddress)address).getAddress(),
|
||||
((InetSocketAddress)address).getPort());
|
||||
this(buf, 0, length, address);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -330,9 +311,10 @@ public final class DatagramPacket
|
||||
public void setSocketAddress(SocketAddress address)
|
||||
throws IllegalArgumentException
|
||||
{
|
||||
if (address == null) throw new IllegalArgumentException();
|
||||
if (address == null)
|
||||
throw new IllegalArgumentException("address may not be null");
|
||||
|
||||
InetSocketAddress tmp = (InetSocketAddress)address;
|
||||
InetSocketAddress tmp = (InetSocketAddress) address;
|
||||
this.address = tmp.getAddress();
|
||||
this.port = tmp.getPort();
|
||||
}
|
||||
@ -359,14 +341,9 @@ public final class DatagramPacket
|
||||
*
|
||||
* @since 1.1
|
||||
*/
|
||||
public synchronized void setData(byte[] buf)
|
||||
public void setData(byte[] buf)
|
||||
{
|
||||
// This form of setData requires setLength to be called separately
|
||||
// and subsequently.
|
||||
if (buf == null)
|
||||
throw new NullPointerException("Null buffer");
|
||||
|
||||
buffer = buf;
|
||||
setData(buf, 0, buf.length);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -388,15 +365,10 @@ public final class DatagramPacket
|
||||
throw new NullPointerException("Null buffer");
|
||||
if (offset < 0)
|
||||
throw new IllegalArgumentException("Invalid offset: " + offset);
|
||||
if (length < 0)
|
||||
throw new IllegalArgumentException("Invalid length: " + length);
|
||||
if (offset + length > buf.length)
|
||||
throw new IllegalArgumentException("Potential buffer overflow - offset: "
|
||||
+ offset + " length: " + length);
|
||||
|
||||
buffer = buf;
|
||||
this.offset = offset;
|
||||
this.length = length;
|
||||
setLength(length);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -418,6 +390,6 @@ public final class DatagramPacket
|
||||
+ offset + " length: " + length);
|
||||
|
||||
this.length = length;
|
||||
this.maxlen = length;
|
||||
}
|
||||
} // class DatagramPacket
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user