Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
16f02abb
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
16f02abb
编写于
7月 29, 2008
作者:
W
wetmore
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
ad0ee1da
cd00ca2a
变更
32
隐藏空白更改
内联
并排
Showing
32 changed file
with
359 addition
and
160 deletion
+359
-160
src/share/classes/java/net/Inet6Address.java
src/share/classes/java/net/Inet6Address.java
+36
-24
src/share/classes/sun/net/ftp/FtpClient.java
src/share/classes/sun/net/ftp/FtpClient.java
+7
-2
src/share/classes/sun/net/httpserver/ServerImpl.java
src/share/classes/sun/net/httpserver/ServerImpl.java
+4
-12
src/share/classes/sun/security/tools/KeyTool.java
src/share/classes/sun/security/tools/KeyTool.java
+104
-33
src/share/classes/sun/security/util/Resources.java
src/share/classes/sun/security/util/Resources.java
+6
-4
src/solaris/native/java/net/Inet4AddressImpl.c
src/solaris/native/java/net/Inet4AddressImpl.c
+0
-1
src/solaris/native/java/net/Inet6AddressImpl.c
src/solaris/native/java/net/Inet6AddressImpl.c
+2
-8
src/solaris/native/java/net/NetworkInterface.c
src/solaris/native/java/net/NetworkInterface.c
+1
-6
src/solaris/native/java/net/PlainDatagramSocketImpl.c
src/solaris/native/java/net/PlainDatagramSocketImpl.c
+1
-11
src/solaris/native/java/net/PlainSocketImpl.c
src/solaris/native/java/net/PlainSocketImpl.c
+0
-7
src/solaris/native/java/net/SocketInputStream.c
src/solaris/native/java/net/SocketInputStream.c
+0
-1
src/solaris/native/java/net/SocketOutputStream.c
src/solaris/native/java/net/SocketOutputStream.c
+0
-1
src/solaris/native/java/net/linux_close.c
src/solaris/native/java/net/linux_close.c
+7
-3
src/solaris/native/java/net/net_util_md.c
src/solaris/native/java/net/net_util_md.c
+12
-4
src/windows/native/java/net/Inet4AddressImpl.c
src/windows/native/java/net/Inet4AddressImpl.c
+2
-2
src/windows/native/java/net/Inet6AddressImpl.c
src/windows/native/java/net/Inet6AddressImpl.c
+3
-6
src/windows/native/java/net/NetworkInterface.c
src/windows/native/java/net/NetworkInterface.c
+0
-2
src/windows/native/java/net/NetworkInterface.h
src/windows/native/java/net/NetworkInterface.h
+13
-1
src/windows/native/java/net/NetworkInterface_win9x.c
src/windows/native/java/net/NetworkInterface_win9x.c
+5
-6
src/windows/native/java/net/NetworkInterface_winXP.c
src/windows/native/java/net/NetworkInterface_winXP.c
+5
-5
src/windows/native/java/net/SocketOutputStream.c
src/windows/native/java/net/SocketOutputStream.c
+0
-1
src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c
...indows/native/java/net/TwoStacksPlainDatagramSocketImpl.c
+4
-8
src/windows/native/java/net/TwoStacksPlainSocketImpl.c
src/windows/native/java/net/TwoStacksPlainSocketImpl.c
+2
-1
src/windows/native/java/net/net_util_md.c
src/windows/native/java/net/net_util_md.c
+1
-1
src/windows/native/java/net/net_util_md.h
src/windows/native/java/net/net_util_md.h
+9
-0
src/windows/native/sun/net/dns/ResolverConfigurationImpl.c
src/windows/native/sun/net/dns/ResolverConfigurationImpl.c
+1
-2
src/windows/native/sun/net/www/protocol/http/NTLMAuthSequence.c
...ndows/native/sun/net/www/protocol/http/NTLMAuthSequence.c
+0
-1
test/java/net/Inet6Address/serialize/Readme.txt
test/java/net/Inet6Address/serialize/Readme.txt
+6
-0
test/java/net/Inet6Address/serialize/Serialize.java
test/java/net/Inet6Address/serialize/Serialize.java
+15
-7
test/java/net/Inet6Address/serialize/serial-bge0.ser
test/java/net/Inet6Address/serialize/serial-bge0.ser
+0
-0
test/sun/security/tools/keytool/PrintSSL.java
test/sun/security/tools/keytool/PrintSSL.java
+55
-0
test/sun/security/tools/keytool/printssl.sh
test/sun/security/tools/keytool/printssl.sh
+58
-0
未找到文件。
src/share/classes/java/net/Inet6Address.java
浏览文件 @
16f02abb
...
...
@@ -25,12 +25,9 @@
package
java.net
;
import
java.security.AccessController
;
import
java.io.ObjectInputStream
;
import
java.io.IOException
;
import
java.io.ObjectStreamException
;
import
java.io.InvalidObjectException
;
import
sun.security.action.*
;
import
java.util.Enumeration
;
/**
...
...
@@ -358,13 +355,13 @@ class Inet6Address extends InetAddress {
}
private
int
deriveNumericScope
(
NetworkInterface
ifc
)
throws
UnknownHostException
{
Enumeration
addresses
=
ifc
.
getInetAddresses
();
Enumeration
<
InetAddress
>
addresses
=
ifc
.
getInetAddresses
();
while
(
addresses
.
hasMoreElements
())
{
InetAddress
addr
ess
=
(
InetAddress
)
addresses
.
nextElement
();
if
(!(
addr
ess
instanceof
Inet6Address
))
{
InetAddress
addr
=
addresses
.
nextElement
();
if
(!(
addr
instanceof
Inet6Address
))
{
continue
;
}
Inet6Address
ia6_addr
=
(
Inet6Address
)
addr
ess
;
Inet6Address
ia6_addr
=
(
Inet6Address
)
addr
;
/* check if site or link local prefixes match */
if
(!
differentLocalAddressTypes
(
ia6_addr
)){
/* type not the same, so carry on searching */
...
...
@@ -377,22 +374,22 @@ class Inet6Address extends InetAddress {
}
private
int
deriveNumericScope
(
String
ifname
)
throws
UnknownHostException
{
Enumeration
en
;
Enumeration
<
NetworkInterface
>
en
;
try
{
en
=
NetworkInterface
.
getNetworkInterfaces
();
}
catch
(
SocketException
e
)
{
throw
new
UnknownHostException
(
"could not enumerate local network interfaces"
);
}
while
(
en
.
hasMoreElements
())
{
NetworkInterface
ifc
=
(
NetworkInterface
)
en
.
nextElement
();
NetworkInterface
ifc
=
en
.
nextElement
();
if
(
ifc
.
getName
().
equals
(
ifname
))
{
Enumeration
addresses
=
ifc
.
getInetAddresses
();
while
(
addresses
.
hasMoreElements
())
{
InetAddress
addr
ess
=
(
InetAddress
)
addresses
.
nextElement
();
if
(!(
addr
ess
instanceof
Inet6Address
))
{
InetAddress
addr
=
(
InetAddress
)
addresses
.
nextElement
();
if
(!(
addr
instanceof
Inet6Address
))
{
continue
;
}
Inet6Address
ia6_addr
=
(
Inet6Address
)
addr
ess
;
Inet6Address
ia6_addr
=
(
Inet6Address
)
addr
;
/* check if site or link local prefixes match */
if
(!
differentLocalAddressTypes
(
ia6_addr
)){
/* type not the same, so carry on searching */
...
...
@@ -420,21 +417,22 @@ class Inet6Address extends InetAddress {
if
(
ifname
!=
null
&&
!
""
.
equals
(
ifname
))
{
try
{
scope_ifname
=
NetworkInterface
.
getByName
(
ifname
);
try
{
scope_id
=
deriveNumericScope
(
scope_ifname
);
}
catch
(
UnknownHostException
e
)
{
// should not happen
assert
false
;
if
(
scope_ifname
==
null
)
{
/* the interface does not exist on this system, so we clear
* the scope information completely */
scope_id_set
=
false
;
scope_ifname_set
=
false
;
scope_id
=
0
;
}
else
{
try
{
scope_id
=
deriveNumericScope
(
scope_ifname
);
}
catch
(
UnknownHostException
e
)
{
// should not happen
assert
false
;
}
}
}
catch
(
SocketException
e
)
{}
if
(
scope_ifname
==
null
)
{
/* the interface does not exist on this system, so we clear
* the scope information completely */
scope_id_set
=
false
;
scope_ifname_set
=
false
;
scope_id
=
0
;
}
}
/* if ifname was not supplied, then the numeric info is used */
...
...
@@ -460,6 +458,7 @@ class Inet6Address extends InetAddress {
* an IP multicast address
* @since JDK1.1
*/
@Override
public
boolean
isMulticastAddress
()
{
return
((
ipaddress
[
0
]
&
0xff
)
==
0xff
);
}
...
...
@@ -470,6 +469,7 @@ class Inet6Address extends InetAddress {
* a wildcard address.
* @since 1.4
*/
@Override
public
boolean
isAnyLocalAddress
()
{
byte
test
=
0x00
;
for
(
int
i
=
0
;
i
<
INADDRSZ
;
i
++)
{
...
...
@@ -485,6 +485,7 @@ class Inet6Address extends InetAddress {
* a loopback address; or false otherwise.
* @since 1.4
*/
@Override
public
boolean
isLoopbackAddress
()
{
byte
test
=
0x00
;
for
(
int
i
=
0
;
i
<
15
;
i
++)
{
...
...
@@ -500,6 +501,7 @@ class Inet6Address extends InetAddress {
* a link local address; or false if address is not a link local unicast address.
* @since 1.4
*/
@Override
public
boolean
isLinkLocalAddress
()
{
return
((
ipaddress
[
0
]
&
0xff
)
==
0xfe
&&
(
ipaddress
[
1
]
&
0xc0
)
==
0x80
);
...
...
@@ -512,6 +514,7 @@ class Inet6Address extends InetAddress {
* a site local address; or false if address is not a site local unicast address.
* @since 1.4
*/
@Override
public
boolean
isSiteLocalAddress
()
{
return
((
ipaddress
[
0
]
&
0xff
)
==
0xfe
&&
(
ipaddress
[
1
]
&
0xc0
)
==
0xc0
);
...
...
@@ -525,6 +528,7 @@ class Inet6Address extends InetAddress {
* of global scope or it is not a multicast address
* @since 1.4
*/
@Override
public
boolean
isMCGlobal
()
{
return
((
ipaddress
[
0
]
&
0xff
)
==
0xff
&&
(
ipaddress
[
1
]
&
0x0f
)
==
0x0e
);
...
...
@@ -538,6 +542,7 @@ class Inet6Address extends InetAddress {
* of node-local scope or it is not a multicast address
* @since 1.4
*/
@Override
public
boolean
isMCNodeLocal
()
{
return
((
ipaddress
[
0
]
&
0xff
)
==
0xff
&&
(
ipaddress
[
1
]
&
0x0f
)
==
0x01
);
...
...
@@ -551,6 +556,7 @@ class Inet6Address extends InetAddress {
* of link-local scope or it is not a multicast address
* @since 1.4
*/
@Override
public
boolean
isMCLinkLocal
()
{
return
((
ipaddress
[
0
]
&
0xff
)
==
0xff
&&
(
ipaddress
[
1
]
&
0x0f
)
==
0x02
);
...
...
@@ -564,6 +570,7 @@ class Inet6Address extends InetAddress {
* of site-local scope or it is not a multicast address
* @since 1.4
*/
@Override
public
boolean
isMCSiteLocal
()
{
return
((
ipaddress
[
0
]
&
0xff
)
==
0xff
&&
(
ipaddress
[
1
]
&
0x0f
)
==
0x05
);
...
...
@@ -578,6 +585,7 @@ class Inet6Address extends InetAddress {
* or it is not a multicast address
* @since 1.4
*/
@Override
public
boolean
isMCOrgLocal
()
{
return
((
ipaddress
[
0
]
&
0xff
)
==
0xff
&&
(
ipaddress
[
1
]
&
0x0f
)
==
0x08
);
...
...
@@ -590,6 +598,7 @@ class Inet6Address extends InetAddress {
*
* @return the raw IP address of this object.
*/
@Override
public
byte
[]
getAddress
()
{
return
ipaddress
.
clone
();
}
...
...
@@ -624,6 +633,7 @@ class Inet6Address extends InetAddress {
*
* @return the raw IP address in a string format.
*/
@Override
public
String
getHostAddress
()
{
String
s
=
numericToTextFormat
(
ipaddress
);
if
(
scope_ifname_set
)
{
/* must check this first */
...
...
@@ -639,6 +649,7 @@ class Inet6Address extends InetAddress {
*
* @return a hash code value for this IP address.
*/
@Override
public
int
hashCode
()
{
if
(
ipaddress
!=
null
)
{
...
...
@@ -677,6 +688,7 @@ class Inet6Address extends InetAddress {
* <code>false</code> otherwise.
* @see java.net.InetAddress#getAddress()
*/
@Override
public
boolean
equals
(
Object
obj
)
{
if
(
obj
==
null
||
!(
obj
instanceof
Inet6Address
))
...
...
src/share/classes/sun/net/ftp/FtpClient.java
浏览文件 @
16f02abb
...
...
@@ -352,6 +352,9 @@ public class FtpClient extends TransferProtocolClient {
s
=
new
Socket
(
Proxy
.
NO_PROXY
);
}
else
s
=
new
Socket
();
// Bind the socket to the same address as the control channel. This
// is needed in case of multi-homed systems.
s
.
bind
(
new
InetSocketAddress
(
serverSocket
.
getLocalAddress
(),
0
));
if
(
connectTimeout
>=
0
)
{
s
.
connect
(
dest
,
connectTimeout
);
}
else
{
...
...
@@ -417,8 +420,10 @@ public class FtpClient extends TransferProtocolClient {
// since we can't accept a connection through SOCKS (yet)
// throw an exception
throw
new
FtpProtocolException
(
"Passive mode failed"
);
}
else
portSocket
=
new
ServerSocket
(
0
,
1
);
}
// Bind the ServerSocket to the same address as the control channel
// This is needed for multi-homed systems
portSocket
=
new
ServerSocket
(
0
,
1
,
serverSocket
.
getLocalAddress
());
try
{
myAddress
=
portSocket
.
getInetAddress
();
if
(
myAddress
.
isAnyLocalAddress
())
...
...
src/share/classes/sun/net/httpserver/ServerImpl.java
浏览文件 @
16f02abb
...
...
@@ -120,14 +120,8 @@ class ServerImpl implements TimeSource {
if
(
executor
==
null
)
{
executor
=
new
DefaultExecutor
();
}
Thread
t
=
new
Thread
(
dispatcher
);
started
=
true
;
final
Dispatcher
d
=
dispatcher
;
Thread
t
=
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
Thread
>()
{
public
Thread
run
()
{
Thread
t
=
new
Thread
(
d
);
return
t
;
}
});
t
.
start
();
}
...
...
@@ -355,10 +349,8 @@ class ServerImpl implements TimeSource {
}
}
}
}
catch
(
CancelledKeyException
e
)
{
}
catch
(
Exception
e
)
{
logger
.
log
(
Level
.
FINER
,
"Dispatcher (3)"
,
e
);
}
catch
(
IOException
e
)
{
logger
.
log
(
Level
.
FINER
,
"Dispatcher (4)"
,
e
);
}
}
}
...
...
@@ -370,10 +362,10 @@ class ServerImpl implements TimeSource {
Exchange
t
=
new
Exchange
(
chan
,
protocol
,
conn
);
executor
.
execute
(
t
);
}
catch
(
HttpError
e1
)
{
logger
.
log
(
Level
.
FINER
,
"Dispatcher (
5
)"
,
e1
);
logger
.
log
(
Level
.
FINER
,
"Dispatcher (
4
)"
,
e1
);
conn
.
close
();
}
catch
(
IOException
e
)
{
logger
.
log
(
Level
.
FINER
,
"Dispatcher (
6
)"
,
e
);
logger
.
log
(
Level
.
FINER
,
"Dispatcher (
5
)"
,
e
);
conn
.
close
();
}
}
...
...
src/share/classes/sun/security/tools/KeyTool.java
浏览文件 @
16f02abb
/*
* Copyright 1997-200
6
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-200
8
Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -26,35 +26,23 @@
package
sun.security.tools
;
import
java.io.*
;
import
java.math.BigInteger
;
import
java.security.GeneralSecurityException
;
import
java.security.InvalidParameterException
;
import
java.security.KeyStore
;
import
java.security.KeyStoreException
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.Key
;
import
java.security.PublicKey
;
import
java.security.PrivateKey
;
import
java.security.Security
;
import
java.security.Signature
;
import
java.security.SignatureException
;
import
java.security.UnrecoverableEntryException
;
import
java.security.UnrecoverableKeyException
;
import
java.security.Principal
;
import
java.security.Provider
;
import
java.security.Identity
;
import
java.security.Signer
;
import
java.security.cert.Certificate
;
import
java.security.cert.CertificateFactory
;
import
java.security.cert.X509Certificate
;
import
java.security.cert.CertificateException
;
import
java.security.interfaces.DSAParams
;
import
java.security.interfaces.DSAPrivateKey
;
import
java.security.interfaces.DSAPublicKey
;
import
java.security.interfaces.RSAPrivateCrtKey
;
import
java.security.interfaces.RSAPrivateKey
;
import
java.security.interfaces.RSAPublicKey
;
import
java.text.Collator
;
import
java.text.MessageFormat
;
import
java.util.*
;
...
...
@@ -62,7 +50,6 @@ import java.lang.reflect.Constructor;
import
java.net.URL
;
import
java.net.URLClassLoader
;
import
sun.misc.BASE64Decoder
;
import
sun.misc.BASE64Encoder
;
import
sun.security.util.ObjectIdentifier
;
import
sun.security.pkcs.PKCS10
;
...
...
@@ -72,11 +59,16 @@ import sun.security.provider.SystemIdentity;
import
sun.security.provider.X509Factory
;
import
sun.security.util.DerOutputStream
;
import
sun.security.util.Password
;
import
sun.security.util.Resources
;
import
sun.security.util.PathList
;
import
javax.crypto.KeyGenerator
;
import
javax.crypto.SecretKey
;
import
javax.net.ssl.HostnameVerifier
;
import
javax.net.ssl.HttpsURLConnection
;
import
javax.net.ssl.SSLContext
;
import
javax.net.ssl.SSLSession
;
import
javax.net.ssl.TrustManager
;
import
javax.net.ssl.X509TrustManager
;
import
sun.security.x509.*
;
import
static
java
.
security
.
KeyStore
.*;
...
...
@@ -132,6 +124,7 @@ public final class KeyTool {
private
String
ksfname
=
null
;
private
File
ksfile
=
null
;
private
InputStream
ksStream
=
null
;
// keystore stream
private
String
sslserver
=
null
;
private
KeyStore
keyStore
=
null
;
private
boolean
token
=
false
;
private
boolean
nullStream
=
false
;
...
...
@@ -347,6 +340,9 @@ public final class KeyTool {
}
else
if
(
collator
.
compare
(
flags
,
"-file"
)
==
0
)
{
if
(++
i
==
args
.
length
)
errorNeedArgument
(
flags
);
filename
=
args
[
i
];
}
else
if
(
collator
.
compare
(
flags
,
"-sslserver"
)
==
0
)
{
if
(++
i
==
args
.
length
)
errorNeedArgument
(
flags
);
sslserver
=
args
[
i
];
}
else
if
(
collator
.
compare
(
flags
,
"-srckeystore"
)
==
0
)
{
if
(++
i
==
args
.
length
)
errorNeedArgument
(
flags
);
srcksfname
=
args
[
i
];
...
...
@@ -924,17 +920,7 @@ public final class KeyTool {
doPrintEntries
(
out
);
}
}
else
if
(
command
==
PRINTCERT
)
{
InputStream
inStream
=
System
.
in
;
if
(
filename
!=
null
)
{
inStream
=
new
FileInputStream
(
filename
);
}
try
{
doPrintCert
(
inStream
,
out
);
}
finally
{
if
(
inStream
!=
System
.
in
)
{
inStream
.
close
();
}
}
doPrintCert
(
out
);
}
else
if
(
command
==
SELFCERT
)
{
doSelfCert
(
alias
,
dname
,
sigAlgName
);
kssave
=
true
;
...
...
@@ -1468,8 +1454,8 @@ public final class KeyTool {
}
else
{
// Print the digest of the user cert only
out
.
println
(
rb
.
getString
(
"Certificate fingerprint (
MD5
): "
)
+
getCertFingerPrint
(
"
MD5
"
,
chain
[
0
]));
(
rb
.
getString
(
"Certificate fingerprint (
SHA1
): "
)
+
getCertFingerPrint
(
"
SHA1
"
,
chain
[
0
]));
}
}
}
else
if
(
keyStore
.
entryInstanceOf
(
alias
,
...
...
@@ -1486,8 +1472,8 @@ public final class KeyTool {
out
.
println
(
cert
.
toString
());
}
else
{
out
.
println
(
rb
.
getString
(
"trustedCertEntry,"
));
out
.
println
(
rb
.
getString
(
"Certificate fingerprint (
MD5
): "
)
+
getCertFingerPrint
(
"
MD5
"
,
cert
));
out
.
println
(
rb
.
getString
(
"Certificate fingerprint (
SHA1
): "
)
+
getCertFingerPrint
(
"
SHA1
"
,
cert
));
}
}
else
{
out
.
println
(
rb
.
getString
(
"Unknown Entry Type"
));
...
...
@@ -1744,7 +1730,7 @@ public final class KeyTool {
* Reads a certificate (or certificate chain) and prints its contents in
* a human readbable format.
*/
private
void
doPrintCert
(
InputStream
in
,
PrintStream
out
)
private
void
printCertFromStream
(
InputStream
in
,
PrintStream
out
)
throws
Exception
{
Collection
<?
extends
Certificate
>
c
=
null
;
...
...
@@ -1770,13 +1756,98 @@ public final class KeyTool {
Object
[]
source
=
{
new
Integer
(
i
+
1
)};
out
.
println
(
form
.
format
(
source
));
}
printX509Cert
(
x509Cert
,
out
);
if
(
rfc
)
dumpCert
(
x509Cert
,
out
);
else
printX509Cert
(
x509Cert
,
out
);
if
(
i
<
(
certs
.
length
-
1
))
{
out
.
println
();
}
}
}
private
void
doPrintCert
(
final
PrintStream
out
)
throws
Exception
{
if
(
sslserver
!=
null
)
{
SSLContext
sc
=
SSLContext
.
getInstance
(
"SSL"
);
final
boolean
[]
certPrinted
=
new
boolean
[
1
];
sc
.
init
(
null
,
new
TrustManager
[]
{
new
X509TrustManager
()
{
public
java
.
security
.
cert
.
X509Certificate
[]
getAcceptedIssuers
()
{
return
null
;
}
public
void
checkClientTrusted
(
java
.
security
.
cert
.
X509Certificate
[]
certs
,
String
authType
)
{
}
public
void
checkServerTrusted
(
java
.
security
.
cert
.
X509Certificate
[]
certs
,
String
authType
)
{
for
(
int
i
=
0
;
i
<
certs
.
length
;
i
++)
{
X509Certificate
cert
=
certs
[
i
];
try
{
if
(
rfc
)
{
dumpCert
(
cert
,
out
);
}
else
{
out
.
println
(
"Certificate #"
+
i
);
out
.
println
(
"===================================="
);
printX509Cert
(
cert
,
out
);
out
.
println
();
}
}
catch
(
Exception
e
)
{
if
(
debug
)
{
e
.
printStackTrace
();
}
}
}
// Set to true where there's something to print
if
(
certs
.
length
>
0
)
{
certPrinted
[
0
]
=
true
;
}
}
}
},
null
);
HttpsURLConnection
.
setDefaultSSLSocketFactory
(
sc
.
getSocketFactory
());
HttpsURLConnection
.
setDefaultHostnameVerifier
(
new
HostnameVerifier
()
{
public
boolean
verify
(
String
hostname
,
SSLSession
session
)
{
return
true
;
}
});
// HTTPS instead of raw SSL, so that -Dhttps.proxyHost and
// -Dhttps.proxyPort can be used. Since we only go through
// the handshake process, an HTTPS server is not needed.
// This program should be able to deal with any SSL-based
// network service.
Exception
ex
=
null
;
try
{
new
URL
(
"https://"
+
sslserver
).
openConnection
().
connect
();
}
catch
(
Exception
e
)
{
ex
=
e
;
}
// If the certs are not printed out, we consider it an error even
// if the URL connection is successful.
if
(!
certPrinted
[
0
])
{
Exception
e
=
new
Exception
(
rb
.
getString
(
"No certificate from the SSL server"
));
if
(
ex
!=
null
)
{
e
.
initCause
(
ex
);
}
throw
e
;
}
}
else
{
InputStream
inStream
=
System
.
in
;
if
(
filename
!=
null
)
{
inStream
=
new
FileInputStream
(
filename
);
}
try
{
printCertFromStream
(
inStream
,
out
);
}
finally
{
if
(
inStream
!=
System
.
in
)
{
inStream
.
close
();
}
}
}
}
/**
* Creates a self-signed certificate, and stores it as a single-element
* certificate chain.
...
...
@@ -3127,7 +3198,7 @@ public final class KeyTool {
System
.
err
.
println
();
System
.
err
.
println
(
rb
.
getString
(
"-printcert [-v] [-
file <cert_file
>]"
));
(
"-printcert [-v] [-
rfc] [-file <cert_file> | -sslserver <host[:port]
>]"
));
System
.
err
.
println
();
System
.
err
.
println
(
rb
.
getString
...
...
src/share/classes/sun/security/util/Resources.java
浏览文件 @
16f02abb
/*
* Copyright 2000-200
5
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2000-200
8
Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -171,7 +171,7 @@ public class Resources extends java.util.ListResourceBundle {
{
"Entry type: <type>"
,
"Entry type: {0}"
},
{
"Certificate chain length: "
,
"Certificate chain length: "
},
{
"Certificate[(i + 1)]:"
,
"Certificate[{0,number,integer}]:"
},
{
"Certificate fingerprint (
MD5): "
,
"Certificate fingerprint (MD5
): "
},
{
"Certificate fingerprint (
SHA1): "
,
"Certificate fingerprint (SHA1
): "
},
{
"Entry type: trustedCertEntry\n"
,
"Entry type: trustedCertEntry\n"
},
{
"trustedCertEntry,"
,
"trustedCertEntry,"
},
{
"Keystore type: "
,
"Keystore type: "
},
...
...
@@ -386,8 +386,10 @@ public class Resources extends java.util.ListResourceBundle {
{
"\t [-alias <alias>]"
,
"\t [-alias <alias>]"
},
/** rest is same as -certreq starting from -keystore **/
{
"-printcert [-v] [-file <cert_file>]"
,
"-printcert [-v] [-file <cert_file>]"
},
{
"-printcert [-v] [-rfc] [-file <cert_file> | -sslserver <host[:port]>]"
,
"-printcert [-v] [-rfc] [-file <cert_file> | -sslserver <host[:port]>]"
},
{
"No certificate from the SSL server"
,
"No certificate from the SSL server"
},
//{"-selfcert [-v] [-protected]",
// "-selfcert [-v] [-protected]"},
...
...
src/solaris/native/java/net/Inet4AddressImpl.c
浏览文件 @
16f02abb
...
...
@@ -201,7 +201,6 @@ Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
}
if
(
hp
!=
NULL
)
{
struct
in_addr
**
addrp
=
(
struct
in_addr
**
)
hp
->
h_addr_list
;
int
len
=
sizeof
(
struct
in_addr
);
int
i
=
0
;
while
(
*
addrp
!=
(
struct
in_addr
*
)
0
)
{
...
...
src/solaris/native/java/net/Inet6AddressImpl.c
浏览文件 @
16f02abb
...
...
@@ -143,7 +143,6 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
const
char
*
hostname
;
jobjectArray
ret
=
0
;
int
retLen
=
0
;
jclass
byteArrayCls
;
jboolean
preferIPv6Address
;
int
error
=
0
;
...
...
@@ -219,7 +218,7 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
}
else
{
int
i
=
0
;
int
inetCount
=
0
,
inet6Count
=
0
,
inetIndex
,
inet6Index
;
struct
addrinfo
*
itr
,
*
last
,
*
iterator
=
res
;
struct
addrinfo
*
itr
,
*
last
=
NULL
,
*
iterator
=
res
;
while
(
iterator
!=
NULL
)
{
int
skip
=
0
;
itr
=
resNew
;
...
...
@@ -393,10 +392,7 @@ Java_java_net_Inet6AddressImpl_getHostByAddr(JNIEnv *env, jobject this,
#ifdef AF_INET6
char
host
[
NI_MAXHOST
+
1
];
jfieldID
fid
;
int
error
=
0
;
jint
family
;
struct
sockaddr
*
him
;
int
len
=
0
;
jbyte
caddr
[
16
];
...
...
@@ -459,11 +455,10 @@ static jboolean
ping6
(
JNIEnv
*
env
,
jint
fd
,
struct
sockaddr_in6
*
him
,
jint
timeout
,
struct
sockaddr_in6
*
netif
,
jint
ttl
)
{
jint
size
;
jint
n
,
len
,
hlen1
,
icmplen
;
jint
n
,
len
;
char
sendbuf
[
1500
];
unsigned
char
recvbuf
[
1500
];
struct
icmp6_hdr
*
icmp6
;
struct
ip6_hdr
*
ip6
;
struct
sockaddr_in6
sa_recv
;
jbyte
*
caddr
,
*
recv_caddr
;
jchar
pid
;
...
...
@@ -561,7 +556,6 @@ Java_java_net_Inet6AddressImpl_isReachable0(JNIEnv *env, jobject this,
jbyteArray
ifArray
,
jint
ttl
,
jint
if_scope
)
{
#ifdef AF_INET6
jint
addr
;
jbyte
caddr
[
16
];
jint
fd
,
sz
;
struct
sockaddr_in6
him6
;
...
...
src/solaris/native/java/net/NetworkInterface.c
浏览文件 @
16f02abb
...
...
@@ -398,7 +398,6 @@ jobject createNetworkInterface(JNIEnv *env, netif *ifs)
jobjectArray
addrArr
;
jobjectArray
bindArr
;
jobjectArray
childArr
;
netaddr
*
addrs
;
jint
addr_index
,
addr_count
,
bind_index
;
jint
child_count
,
child_index
;
netaddr
*
addrP
;
...
...
@@ -815,8 +814,6 @@ static netif *enumIPv6Interfaces(JNIEnv *env, netif *ifs) {
addr6p
[
0
],
addr6p
[
1
],
addr6p
[
2
],
addr6p
[
3
],
addr6p
[
4
],
addr6p
[
5
],
addr6p
[
6
],
addr6p
[
7
],
&
if_idx
,
&
plen
,
&
scope
,
&
dad_status
,
devname
)
!=
EOF
)
{
struct
netif
*
ifs_ptr
=
NULL
;
struct
netif
*
last_ptr
=
NULL
;
struct
sockaddr_in6
addr
;
sprintf
(
addr6
,
"%s:%s:%s:%s:%s:%s:%s:%s"
,
...
...
@@ -852,7 +849,6 @@ static netif *enumIPv6Interfaces(JNIEnv *env, netif *ifs) {
*/
void
freeif
(
netif
*
ifs
)
{
netif
*
currif
=
ifs
;
netif
*
child
=
NULL
;
while
(
currif
!=
NULL
)
{
netaddr
*
addrP
=
currif
->
addr
;
...
...
@@ -1158,10 +1154,9 @@ static short getFlags(JNIEnv *env, jstring name) {
*/
static
struct
sockaddr
*
getBroadcast
(
JNIEnv
*
env
,
const
char
*
ifname
)
{
int
sock
;
unsigned
int
mask
;
struct
sockaddr
*
ret
=
NULL
;
struct
ifreq
if2
;
short
flag
;
short
flag
=
0
;
sock
=
JVM_Socket
(
AF_INET
,
SOCK_DGRAM
,
0
);
if
(
sock
<
0
)
{
...
...
src/solaris/native/java/net/PlainDatagramSocketImpl.c
浏览文件 @
16f02abb
...
...
@@ -89,7 +89,6 @@ static jfieldID pdsi_ttlID;
static
jobject
createInteger
(
JNIEnv
*
env
,
int
i
)
{
static
jclass
i_class
;
static
jmethodID
i_ctrID
;
static
jfieldID
i_valueID
;
if
(
i_class
==
NULL
)
{
jclass
c
=
(
*
env
)
->
FindClass
(
env
,
"java/lang/Integer"
);
...
...
@@ -109,7 +108,6 @@ static jobject createInteger(JNIEnv *env, int i) {
static
jobject
createBoolean
(
JNIEnv
*
env
,
int
b
)
{
static
jclass
b_class
;
static
jmethodID
b_ctrID
;
static
jfieldID
b_valueID
;
if
(
b_class
==
NULL
)
{
jclass
c
=
(
*
env
)
->
FindClass
(
env
,
"java/lang/Boolean"
);
...
...
@@ -148,8 +146,6 @@ Java_java_net_PlainDatagramSocketImpl_init(JNIEnv *env, jclass cls) {
#ifdef __linux__
struct
utsname
sysinfo
;
#endif
char
*
s
;
pdsi_fdID
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"fd"
,
"Ljava/io/FileDescriptor;"
);
CHECK_NULL
(
pdsi_fdID
);
...
...
@@ -373,7 +369,7 @@ Java_java_net_PlainDatagramSocketImpl_disconnect0(JNIEnv *env, jobject this, jin
if
(
JVM_GetSockName
(
fd
,
(
struct
sockaddr
*
)
&
addr
,
&
len
)
==
-
1
)
{
return
;
}
localPort
=
NET_GetPortFromSockaddr
(
&
addr
);
localPort
=
NET_GetPortFromSockaddr
(
(
struct
sockaddr
*
)
&
addr
);
if
(
localPort
==
0
)
{
localPort
=
(
*
env
)
->
GetIntField
(
env
,
this
,
pdsi_localPortID
);
#ifdef AF_INET6
...
...
@@ -416,7 +412,6 @@ Java_java_net_PlainDatagramSocketImpl_send(JNIEnv *env, jobject this,
/* The fdObj'fd */
jint
fd
;
ssize_t
n
=
-
1
;
SOCKADDR
rmtaddr
,
*
rmtaddrP
=&
rmtaddr
;
int
len
;
...
...
@@ -633,9 +628,7 @@ Java_java_net_PlainDatagramSocketImpl_peekData(JNIEnv *env, jobject this,
jint
packetBufferOffset
,
packetBufferLen
;
int
fd
;
jbyteArray
data
;
int
datalen
;
int
n
;
SOCKADDR
remote_addr
;
int
len
;
...
...
@@ -812,9 +805,7 @@ Java_java_net_PlainDatagramSocketImpl_receive0(JNIEnv *env, jobject this,
jint
packetBufferOffset
,
packetBufferLen
;
int
fd
;
jbyteArray
data
;
int
datalen
;
int
n
;
SOCKADDR
remote_addr
;
int
len
;
...
...
@@ -1059,7 +1050,6 @@ Java_java_net_PlainDatagramSocketImpl_datagramSocketCreate(JNIEnv *env,
jobject
fdObj
=
(
*
env
)
->
GetObjectField
(
env
,
this
,
pdsi_fdID
);
int
fd
;
int
arg
=
-
1
;
int
t
=
1
;
if
(
IS_NULL
(
fdObj
))
{
...
...
src/solaris/native/java/net/PlainSocketImpl.c
浏览文件 @
16f02abb
...
...
@@ -136,8 +136,6 @@ static int getFD(JNIEnv *env, jobject this) {
*/
JNIEXPORT
void
JNICALL
Java_java_net_PlainSocketImpl_initProto
(
JNIEnv
*
env
,
jclass
cls
)
{
char
*
s
;
psi_fdID
=
(
*
env
)
->
GetFieldID
(
env
,
cls
,
"fd"
,
"Ljava/io/FileDescriptor;"
);
CHECK_NULL
(
psi_fdID
);
...
...
@@ -183,7 +181,6 @@ Java_java_net_PlainSocketImpl_socketCreate(JNIEnv *env, jobject this,
jboolean
stream
)
{
jobject
fdObj
,
ssObj
;
int
fd
;
int
arg
=
-
1
;
if
(
socketExceptionCls
==
NULL
)
{
jclass
c
=
(
*
env
)
->
FindClass
(
env
,
"java/net/SocketException"
);
...
...
@@ -290,7 +287,6 @@ Java_java_net_PlainSocketImpl_socketConnect(JNIEnv *env, jobject this,
while
(
1
)
{
#ifndef USE_SELECT
{
fprintf
(
stdout
,
"
\n
NATIVE: fd = %d] "
,
fd
);
struct
pollfd
pfd
;
pfd
.
fd
=
fd
;
pfd
.
events
=
POLLOUT
;
...
...
@@ -673,8 +669,6 @@ Java_java_net_PlainSocketImpl_socketAccept(JNIEnv *env, jobject this,
/* accepted fd */
jint
newfd
;
jthrowable
error
;
SOCKADDR
him
;
int
len
;
...
...
@@ -1087,7 +1081,6 @@ Java_java_net_PlainSocketImpl_socketGetOption(JNIEnv *env, jobject this,
JNIEXPORT
void
JNICALL
Java_java_net_PlainSocketImpl_socketSendUrgentData
(
JNIEnv
*
env
,
jobject
this
,
jint
data
)
{
char
*
buf
;
/* The fd field */
jobject
fdObj
=
(
*
env
)
->
GetObjectField
(
env
,
this
,
psi_fdID
);
int
n
,
fd
;
...
...
src/solaris/native/java/net/SocketInputStream.c
浏览文件 @
16f02abb
...
...
@@ -65,7 +65,6 @@ Java_java_net_SocketInputStream_socketRead0(JNIEnv *env, jobject this,
char
BUF
[
MAX_BUFFER_LEN
];
char
*
bufP
;
jint
fd
,
nread
;
jint
n
;
if
(
IS_NULL
(
fdObj
))
{
/* should't this be a NullPointerException? -br */
...
...
src/solaris/native/java/net/SocketOutputStream.c
浏览文件 @
16f02abb
...
...
@@ -67,7 +67,6 @@ Java_java_net_SocketOutputStream_socketWrite0(JNIEnv *env, jobject this,
char
BUF
[
MAX_BUFFER_LEN
];
int
buflen
;
int
fd
;
jint
n
=
0
;
if
(
IS_NULL
(
fdObj
))
{
JNU_ThrowByName
(
env
,
"java/net/SocketException"
,
"Socket closed"
);
...
...
src/solaris/native/java/net/linux_close.c
浏览文件 @
16f02abb
...
...
@@ -281,7 +281,9 @@ int NET_ReadV(int s, const struct iovec * vector, int count) {
int
NET_RecvFrom
(
int
s
,
void
*
buf
,
int
len
,
unsigned
int
flags
,
struct
sockaddr
*
from
,
int
*
fromlen
)
{
BLOCKING_IO_RETURN_INT
(
s
,
recvfrom
(
s
,
buf
,
len
,
flags
,
from
,
fromlen
)
);
socklen_t
socklen
=
*
fromlen
;
BLOCKING_IO_RETURN_INT
(
s
,
recvfrom
(
s
,
buf
,
len
,
flags
,
from
,
&
socklen
)
);
*
fromlen
=
socklen
;
}
int
NET_Send
(
int
s
,
void
*
msg
,
int
len
,
unsigned
int
flags
)
{
...
...
@@ -298,7 +300,9 @@ int NET_SendTo(int s, const void *msg, int len, unsigned int
}
int
NET_Accept
(
int
s
,
struct
sockaddr
*
addr
,
int
*
addrlen
)
{
BLOCKING_IO_RETURN_INT
(
s
,
accept
(
s
,
addr
,
addrlen
)
);
socklen_t
socklen
=
*
addrlen
;
BLOCKING_IO_RETURN_INT
(
s
,
accept
(
s
,
addr
,
&
socklen
)
);
*
addrlen
=
socklen
;
}
int
NET_Connect
(
int
s
,
struct
sockaddr
*
addr
,
int
addrlen
)
{
...
...
@@ -323,7 +327,7 @@ int NET_Select(int s, fd_set *readfds, fd_set *writefds,
* signal other than our wakeup signal.
*/
int
NET_Timeout
(
int
s
,
long
timeout
)
{
long
prevtime
,
newtime
;
long
prevtime
=
0
,
newtime
;
struct
timeval
t
;
fdEntry_t
*
fdEntry
=
getFdEntry
(
s
);
...
...
src/solaris/native/java/net/net_util_md.c
浏览文件 @
16f02abb
...
...
@@ -229,7 +229,7 @@ jint IPv6_supported()
int
fd
;
void
*
ipv6_fn
;
SOCKADDR
sa
;
in
t
sa_len
=
sizeof
(
sa
);
socklen_
t
sa_len
=
sizeof
(
sa
);
fd
=
JVM_Socket
(
AF_INET6
,
SOCK_STREAM
,
0
)
;
if
(
fd
<
0
)
{
...
...
@@ -447,7 +447,6 @@ static void initLoopbackRoutes() {
char
dest_str
[
40
];
struct
in6_addr
dest_addr
;
char
device
[
16
];
jboolean
match
=
JNI_FALSE
;
if
(
loRoutes
!=
0
)
{
free
(
loRoutes
);
...
...
@@ -525,7 +524,7 @@ static void initLoopbackRoutes() {
{
/* now find the scope_id for "lo" */
char
addr6
[
40
],
devname
[
20
];
char
devname
[
20
];
char
addr6p
[
8
][
5
];
int
plen
,
scope
,
dad_status
,
if_idx
;
...
...
@@ -1019,7 +1018,7 @@ int getDefaultIPv6Interface(struct in6_addr *target_addr) {
* index.
*/
if
(
match
)
{
char
addr6
[
40
],
devname
[
20
];
char
devname
[
20
];
char
addr6p
[
8
][
5
];
int
plen
,
scope
,
dad_status
,
if_idx
;
...
...
@@ -1086,7 +1085,16 @@ NET_GetSockOpt(int fd, int level, int opt, void *result,
}
#endif
#ifdef __solaris__
rv
=
getsockopt
(
fd
,
level
,
opt
,
result
,
len
);
#else
{
socklen_t
socklen
=
*
len
;
rv
=
getsockopt
(
fd
,
level
,
opt
,
result
,
&
socklen
);
*
len
=
socklen
;
}
#endif
if
(
rv
<
0
)
{
return
rv
;
}
...
...
src/windows/native/java/net/Inet4AddressImpl.c
浏览文件 @
16f02abb
...
...
@@ -30,6 +30,7 @@
#include <stdlib.h>
#include <malloc.h>
#include <sys/types.h>
#include <process.h>
#include "java_net_InetAddress.h"
#include "java_net_Inet4AddressImpl.h"
...
...
@@ -141,7 +142,6 @@ Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
unsigned
int
addr
[
4
];
jobjectArray
ret
=
NULL
;
jclass
byteArrayCls
;
if
(
!
initialized
)
{
ni_iacls
=
(
*
env
)
->
FindClass
(
env
,
"java/net/InetAddress"
);
...
...
@@ -315,7 +315,7 @@ ping4(JNIEnv *env, jint fd, struct sockaddr_in* him, jint timeout,
seq
=
((
unsigned
short
)
rand
())
>>
1
;
/* icmp_id is a 16 bit data type, therefore down cast the pid */
pid
=
(
u_short
)
getpid
();
pid
=
(
u_short
)
_
getpid
();
size
=
60
*
1024
;
setsockopt
(
fd
,
SOL_SOCKET
,
SO_RCVBUF
,
(
const
char
*
)
&
size
,
sizeof
(
size
));
/**
...
...
src/windows/native/java/net/Inet6AddressImpl.c
浏览文件 @
16f02abb
...
...
@@ -30,6 +30,7 @@
#include <stdlib.h>
#include <malloc.h>
#include <sys/types.h>
#include <process.h>
#include "java_net_InetAddress.h"
#include "java_net_Inet4AddressImpl.h"
...
...
@@ -307,10 +308,7 @@ Java_java_net_Inet6AddressImpl_getHostByAddr(JNIEnv *env, jobject this,
jstring
ret
=
NULL
;
char
host
[
NI_MAXHOST
+
1
];
jfieldID
fid
;
int
error
=
0
;
jint
family
;
struct
sockaddr
*
him
;
int
len
=
0
;
jbyte
caddr
[
16
];
...
...
@@ -374,7 +372,7 @@ static jboolean
ping6
(
JNIEnv
*
env
,
jint
fd
,
struct
SOCKADDR_IN6
*
him
,
jint
timeout
,
struct
SOCKADDR_IN6
*
netif
,
jint
ttl
)
{
jint
size
;
jint
n
,
len
,
hlen1
,
icmplen
,
i
;
jint
n
,
len
,
i
;
char
sendbuf
[
1500
];
char
auxbuf
[
1500
];
unsigned
char
recvbuf
[
1500
];
...
...
@@ -392,7 +390,7 @@ ping6(JNIEnv *env, jint fd, struct SOCKADDR_IN6* him, jint timeout,
seq
=
((
unsigned
short
)
rand
())
>>
1
;
/* icmp_id is a 16 bit data type, therefore down cast the pid */
pid
=
(
unsigned
short
)
getpid
();
pid
=
(
unsigned
short
)
_
getpid
();
size
=
60
*
1024
;
setsockopt
(
fd
,
SOL_SOCKET
,
SO_RCVBUF
,
(
const
char
*
)
&
size
,
sizeof
(
size
));
...
...
@@ -520,7 +518,6 @@ Java_java_net_Inet6AddressImpl_isReachable0(JNIEnv *env, jobject this,
jbyteArray
ifArray
,
jint
ttl
,
jint
if_scope
)
{
#ifdef AF_INET6
jint
addr
;
jbyte
caddr
[
16
];
jint
fd
,
sz
;
struct
sockaddr_in6
him6
;
...
...
src/windows/native/java/net/NetworkInterface.c
浏览文件 @
16f02abb
...
...
@@ -75,7 +75,6 @@ extern int enumInterfaces_win9x(JNIEnv *, netif **);
extern
int
enumAddresses_win9x
(
JNIEnv
*
,
netif
*
,
netaddr
**
);
extern
int
init_win9x
(
void
);
#endif
extern
int
enumInterfaces_win
(
JNIEnv
*
env
,
netif
**
netifPP
);
/* Windows 95/98/ME running */
...
...
@@ -209,7 +208,6 @@ int enumInterfaces_win(JNIEnv *env, netif **netifPP)
int
count
;
netif
*
netifP
;
DWORD
i
;
wchar_t
wName
[
128
];
int
lo
=
0
,
eth
=
0
,
tr
=
0
,
fddi
=
0
,
ppp
=
0
,
sl
=
0
,
net
=
0
;
/*
...
...
src/windows/native/java/net/NetworkInterface.h
浏览文件 @
16f02abb
...
...
@@ -26,6 +26,7 @@
#ifndef NETWORK_INTERFACE_H
#define NETWORK_INTERFACE_H
#include <iphlpapi.h>
#include "net_util.h"
/*
...
...
@@ -86,6 +87,14 @@ extern jfieldID ni_ibaddressID; /* InterfaceAddress.address */
extern
jfieldID
ni_ibbroadcastID
;
/* InterfaceAddress.broadcast */
extern
jfieldID
ni_ibmaskID
;
/* InterfaceAddress.maskLength */
int
enumInterfaces_win
(
JNIEnv
*
env
,
netif
**
netifPP
);
/* We have included iphlpapi.h which includes iptypes.h which has the definition
* for MAX_ADAPTER_DESCRIPTION_LENGTH (along with the other definitions in this
* ifndef block). Therefore if MAX_ADAPTER_DESCRIPTION_LENGTH is defined we can
* be sure that the other definitions are also defined */
#ifndef MAX_ADAPTER_DESCRIPTION_LENGTH
/*
* Following includes come from iptypes.h
*/
...
...
@@ -373,6 +382,10 @@ typedef struct {
UINT
EnableDns
;
}
FIXED_INFO
,
*
PFIXED_INFO
;
#pragma warning(pop)
#endif
/*!MAX_ADAPTER_DESCRIPTION_LENGTH*/
#ifndef IP_INTERFACE_NAME_INFO_DEFINED
#define IP_INTERFACE_NAME_INFO_DEFINED
...
...
@@ -389,7 +402,6 @@ typedef struct ip_interface_name_info {
#endif
#pragma warning(pop)
/* from ipifcons.h */
...
...
src/windows/native/java/net/NetworkInterface_win9x.c
浏览文件 @
16f02abb
...
...
@@ -417,8 +417,8 @@ static int getAdapters(JNIEnv *env, adapter **adapterPP)
return
-
1
;
}
curr
->
index
=
++
adapterCount
;
curr
->
name
=
strdup
(
"lo"
);
curr
->
displayName
=
strdup
(
"TCP Loopback interface"
);
curr
->
name
=
_
strdup
(
"lo"
);
curr
->
displayName
=
_
strdup
(
"TCP Loopback interface"
);
curr
->
next
=
adapterP
;
*
adapterPP
=
curr
;
...
...
@@ -513,12 +513,11 @@ static int getStaticAddresses(JNIEnv *env, char *reg_key, netaddr **netaddrPP)
HKEY
enumKey
,
bindingKey
;
DWORD
dwLen
;
ULONG
ulType
;
TCHAR
driver
[
MAX_STR_LEN
];
char
addresses
[
MAX_STR_LEN
];
unsigned
long
addr
;
/* IPv4 address */
unsigned
char
byte
;
netaddr
*
netaddrP
,
*
curr
;
int
i
,
addrCount
,
if_count
;
int
i
,
addrCount
;
/*
* Open the HKEY_LOCAL_MACHINE\Enum\%s\%s\%s key
...
...
@@ -1055,8 +1054,8 @@ int enumInterfaces_win9x(JNIEnv *env, netif **netifPP) {
return
-
1
;
}
ifs
->
name
=
strdup
(
adapterP
->
name
);
ifs
->
displayName
=
strdup
(
adapterP
->
displayName
);
ifs
->
name
=
_
strdup
(
adapterP
->
name
);
ifs
->
displayName
=
_
strdup
(
adapterP
->
displayName
);
ifs
->
dwIndex
=
adapterP
->
index
;
ifs
->
index
=
adapterP
->
index
;
ifs
->
next
=
netifP
;
...
...
src/windows/native/java/net/NetworkInterface_winXP.c
浏览文件 @
16f02abb
...
...
@@ -41,6 +41,7 @@
*/
extern
int
enumAddresses_win
(
JNIEnv
*
env
,
netif
*
netifP
,
netaddr
**
netaddrPP
);
int
getAddrsFromAdapter
(
IP_ADAPTER_ADDRESSES
*
ptr
,
netaddr
**
netaddrPP
);
/* IP helper library routines */
int
(
PASCAL
FAR
*
GetIpAddrTable_fn
)();
...
...
@@ -168,11 +169,10 @@ static int ipinflen = 2048;
*/
int
getAllInterfacesAndAddresses
(
JNIEnv
*
env
,
netif
**
netifPP
)
{
DWORD
ret
,
numInterfaces
;
IP_ADAPTER_ADDRESSES
*
ptr
,
*
ptr1
,
*
adapters
=
0
;
DWORD
ret
;
IP_ADAPTER_ADDRESSES
*
ptr
,
*
adapters
=
0
;
ULONG
len
=
ipinflen
,
count
=
0
;
netif
*
nif
=
0
,
*
dup_nif
,
*
last
=
0
,
*
loopif
=
0
;
netaddr
*
addr
,
*
addr1
;
int
tun
=
0
,
net
=
0
;
*
netifPP
=
0
;
...
...
@@ -330,7 +330,7 @@ err:
static
int
getAddrsFromAdapter
(
IP_ADAPTER_ADDRESSES
*
ptr
,
netaddr
**
netaddrPP
)
{
LPSOCKADDR
sock
;
int
ret
,
count
=
0
;
int
count
=
0
;
netaddr
*
curr
,
*
start
=
0
,
*
prev
=
0
;
PIP_ADAPTER_UNICAST_ADDRESS
uni_addr
;
PIP_ADAPTER_ANYCAST_ADDRESS
any_addr
;
...
...
@@ -364,7 +364,7 @@ static int getAddrsFromAdapter(IP_ADAPTER_ADDRESSES *ptr, netaddr **netaddrPP) {
sock
=
uni_addr
->
Address
.
lpSockaddr
;
SOCKETADDRESS_COPY
(
&
curr
->
addr
,
sock
);
if
(
prefix
!=
NULL
)
{
curr
->
mask
=
prefix
->
PrefixLength
;
curr
->
mask
=
(
short
)
prefix
->
PrefixLength
;
if
(
sock
->
sa_family
==
AF_INET
)
{
sock
=
prefix
->
Address
.
lpSockaddr
;
SOCKETADDRESS_COPY
(
&
curr
->
brdcast
,
sock
);
...
...
src/windows/native/java/net/SocketOutputStream.c
浏览文件 @
16f02abb
...
...
@@ -64,7 +64,6 @@ Java_java_net_SocketOutputStream_socketWrite0(JNIEnv *env, jobject this,
char
BUF
[
MAX_BUFFER_LEN
];
int
buflen
;
int
fd
;
jint
n
;
if
(
IS_NULL
(
fdObj
))
{
JNU_ThrowByName
(
env
,
JNU_JAVANETPKG
"SocketException"
,
"Socket closed"
);
...
...
src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c
浏览文件 @
16f02abb
...
...
@@ -651,7 +651,6 @@ Java_java_net_TwoStacksPlainDatagramSocketImpl_send(JNIEnv *env, jobject this,
SOCKETADDRESS
rmtaddr
;
SOCKETADDRESS
*
addrp
=
&
rmtaddr
;
int
addrlen
;
int
x
;
/* DELETE ME */
if
(
IS_NULL
(
packet
))
{
...
...
@@ -883,7 +882,7 @@ Java_java_net_TwoStacksPlainDatagramSocketImpl_peek(JNIEnv *env, jobject this,
*/
if
(
timeout
)
{
jlong
newTime
=
JVM_CurrentTimeMillis
(
env
,
0
);
timeout
-=
(
newTime
-
prevTime
);
timeout
-=
(
jint
)(
newTime
-
prevTime
);
if
(
timeout
<=
0
)
{
JNU_ThrowByName
(
env
,
JNU_JAVANETPKG
"SocketTimeoutException"
,
"Receive timed out"
);
...
...
@@ -929,9 +928,8 @@ Java_java_net_TwoStacksPlainDatagramSocketImpl_peekData(JNIEnv *env, jobject thi
int
fd
,
fd1
,
fduse
,
nsockets
=
0
,
errorCode
;
int
port
;
jbyteArray
data
;
int
checkBoth
=
0
,
datalen
;
int
checkBoth
=
0
;
int
n
;
SOCKETADDRESS
remote_addr
;
jint
remote_addrsize
=
sizeof
(
remote_addr
);
...
...
@@ -1101,7 +1099,7 @@ Java_java_net_TwoStacksPlainDatagramSocketImpl_peekData(JNIEnv *env, jobject thi
*/
if
(
timeout
)
{
jlong
newTime
=
JVM_CurrentTimeMillis
(
env
,
0
);
timeout
-=
(
newTime
-
prevTime
);
timeout
-=
(
jint
)(
newTime
-
prevTime
);
if
(
timeout
<=
0
)
{
JNU_ThrowByName
(
env
,
JNU_JAVANETPKG
"SocketTimeoutException"
,
"Receive timed out"
);
...
...
@@ -1203,9 +1201,7 @@ Java_java_net_TwoStacksPlainDatagramSocketImpl_receive0(JNIEnv *env, jobject thi
* must be called prior to receive() so that fduse can be set.
*/
int
fd
,
fd1
,
fduse
,
errorCode
;
jbyteArray
data
;
int
datalen
;
int
n
,
nsockets
=
0
;
SOCKETADDRESS
remote_addr
;
jint
remote_addrsize
=
sizeof
(
remote_addr
);
...
...
@@ -1376,7 +1372,7 @@ Java_java_net_TwoStacksPlainDatagramSocketImpl_receive0(JNIEnv *env, jobject thi
if
(
timeout
)
{
int
ret
;
jlong
newTime
=
JVM_CurrentTimeMillis
(
env
,
0
);
timeout
-=
(
newTime
-
prevTime
);
timeout
-=
(
jint
)(
newTime
-
prevTime
);
prevTime
=
newTime
;
if
(
timeout
<=
0
)
{
...
...
src/windows/native/java/net/TwoStacksPlainSocketImpl.c
浏览文件 @
16f02abb
...
...
@@ -966,7 +966,8 @@ Java_java_net_TwoStacksPlainSocketImpl_socketSetOption(JNIEnv *env, jobject this
if
(
on
)
{
optval
.
ling
.
l_onoff
=
1
;
optval
.
ling
.
l_linger
=
(
*
env
)
->
GetIntField
(
env
,
value
,
fid
);
optval
.
ling
.
l_linger
=
(
unsigned
short
)(
*
env
)
->
GetIntField
(
env
,
value
,
fid
);
}
else
{
optval
.
ling
.
l_onoff
=
0
;
optval
.
ling
.
l_linger
=
0
;
...
...
src/windows/native/java/net/net_util_md.c
浏览文件 @
16f02abb
...
...
@@ -985,7 +985,7 @@ NET_Wait(JNIEnv *env, jint fd, jint flags, jint timeout)
read_rv
=
select
(
fd
+
1
,
&
rd
,
&
wr
,
&
ex
,
&
t
);
newTime
=
JVM_CurrentTimeMillis
(
env
,
0
);
timeout
-=
(
newTime
-
prevTime
);
timeout
-=
(
jint
)(
newTime
-
prevTime
);
if
(
timeout
<=
0
)
{
return
read_rv
>
0
?
0
:
-
1
;
}
...
...
src/windows/native/java/net/net_util_md.h
浏览文件 @
16f02abb
...
...
@@ -294,6 +294,15 @@ JNIEXPORT int JNICALL NET_SocketClose(int fd);
JNIEXPORT
int
JNICALL
NET_Timeout
(
int
fd
,
long
timeout
);
int
NET_Socket
(
int
domain
,
int
type
,
int
protocol
);
void
NET_ThrowByNameWithLastError
(
JNIEnv
*
env
,
const
char
*
name
,
const
char
*
defaultDetail
);
void
NET_ThrowSocketException
(
JNIEnv
*
env
,
char
*
msg
);
jboolean
NET_addrtransAvailable
();
/*
* differs from NET_Timeout() as follows:
*
...
...
src/windows/native/sun/net/dns/ResolverConfigurationImpl.c
浏览文件 @
16f02abb
...
...
@@ -159,7 +159,6 @@ static int loadStaticConfig9x(char *sl, char *ns) {
DWORD
dwLen
;
ULONG
ulType
;
char
result
[
MAX_STR_LEN
];
int
index
;
int
sts
=
STS_NO_CONFIG
;
ret
=
RegOpenKeyEx
(
HKEY_LOCAL_MACHINE
,
...
...
@@ -275,7 +274,7 @@ static int loadConfig95(char *sl, char *ns) {
* the DHCP packet - see RFC 2132).
*/
if
(
ret
==
ERROR_SUCCESS
)
{
int
pos
=
0
;
unsigned
int
pos
=
0
;
while
(
pos
<
dwLen
)
{
int
code
,
len
;
...
...
src/windows/native/sun/net/www/protocol/http/NTLMAuthSequence.c
浏览文件 @
16f02abb
...
...
@@ -40,7 +40,6 @@
#define SECURITY_WIN32
#include "sspi.h"
#include "issperr.h"
/*
...
...
test/java/net/Inet6Address/serialize/Readme.txt
0 → 100644
浏览文件 @
16f02abb
This test uses 2 binary data files that were each created by serializing an Inet6Address instance.
In both cases this has to do with the tricky issue of scopes in serialized addresses.
serial1.4.2.ser: Was created by serializing an Inet6Address (::1) with J2SE 1.4.2 and is used to check for backward compatibility.
serial-bge0.ser: Was created on a Sparc workstation because it has an uncommon interface name ('bge0') which is useful for the test.
test/java/net/Inet6Address/serialize/Serialize.java
浏览文件 @
16f02abb
...
...
@@ -24,7 +24,9 @@
/**
* @test
* @bug 4921029
* @bug 6656849
* @summary java.net.Inet6Address fails to be serialized with IPv6 support
* @summary NullPointerException thrown while de-serializing IPV6 Address.
*/
import
java.net.*
;
...
...
@@ -76,11 +78,20 @@ public class Serialize {
System
.
out
.
println
(
nobj
);
// create an address with an unlikely numeric scope_id
if
(!
test
((
Inet6Address
)
InetAddress
.
getByName
(
"fe80::1%99"
)))
{
throw
new
RuntimeException
(
"test failed on fe80::1%99"
);
}
// create an address with an unlikely numeric scope_id
if
(!
test
((
Inet6Address
)
InetAddress
.
getByName
(
"fe80::1%99"
)))
{
throw
new
RuntimeException
(
"test failed on fe80::1%99"
);
}
// Deserialize an Inet6 address with a named interface
file
=
new
File
(
System
.
getProperty
(
"test.src"
),
"serial-bge0.ser"
);
ois
=
new
ObjectInputStream
(
new
FileInputStream
(
file
));
try
{
nobj
=
(
Inet6Address
)
ois
.
readObject
();
}
catch
(
NullPointerException
e
)
{
throw
new
RuntimeException
(
"6656849 Not fixed: NullPointer when deserializing"
);
}
System
.
out
.
println
(
nobj
);
System
.
out
.
println
(
"All tests passed"
);
}
...
...
@@ -97,8 +108,5 @@ public class Serialize {
}
else
{
return
false
;
}
}
}
test/java/net/Inet6Address/serialize/serial-bge0.ser
0 → 100644
浏览文件 @
16f02abb
文件已添加
test/sun/security/tools/keytool/PrintSSL.java
0 → 100644
浏览文件 @
16f02abb
/*
* Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
// Read printssl.sh, this Java program starts an SSL server
import
java.net.ServerSocket
;
import
javax.net.ssl.SSLServerSocketFactory
;
import
javax.net.ssl.SSLSocket
;
public
class
PrintSSL
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
System
.
setProperty
(
"javax.net.ssl.keyStorePassword"
,
"passphrase"
);
System
.
setProperty
(
"javax.net.ssl.keyStore"
,
System
.
getProperty
(
"test.src"
,
"./"
)
+
"/../../ssl/etc/keystore"
);
SSLServerSocketFactory
sslssf
=
(
SSLServerSocketFactory
)
SSLServerSocketFactory
.
getDefault
();
final
ServerSocket
server
=
sslssf
.
createServerSocket
(
0
);
System
.
out
.
println
(
server
.
getLocalPort
());
System
.
out
.
flush
();
Thread
t
=
new
Thread
()
{
public
void
run
()
{
try
{
Thread
.
sleep
(
30000
);
server
.
close
();
}
catch
(
Exception
e
)
{
;
}
throw
new
RuntimeException
(
"Timeout"
);
}
};
t
.
setDaemon
(
true
);
t
.
start
();
((
SSLSocket
)
server
.
accept
()).
startHandshake
();
}
}
test/sun/security/tools/keytool/printssl.sh
0 → 100644
浏览文件 @
16f02abb
#
# Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
# @test
# @bug 6480981
# @summary keytool should be able to import certificates from remote SSL servers
if
[
"
${
TESTSRC
}
"
=
""
]
;
then
TESTSRC
=
"."
fi
if
[
"
${
TESTJAVA
}
"
=
""
]
;
then
echo
"TESTJAVA not set. Test cannot execute."
echo
"FAILED!!!"
exit
1
fi
# set platform-dependent variables
OS
=
`
uname
-s
`
case
"
$OS
"
in
SunOS
|
Linux
)
FS
=
"/"
;;
Windows_
*
)
FS
=
"
\\
"
;;
*
)
echo
"Unrecognized operating system!"
exit
1
;
;;
esac
${
TESTJAVA
}${
FS
}
bin
${
FS
}
javac
-d
.
${
TESTSRC
}${
FS
}
PrintSSL.java
||
exit
10
${
TESTJAVA
}${
FS
}
bin
${
FS
}
java
-Dtest
.src
=
$TESTSRC
PrintSSL |
(
read
PORT
;
${
TESTJAVA
}${
FS
}
bin
${
FS
}
keytool
-printcert
-sslserver
localhost:
$PORT
)
status
=
$?
rm
PrintSSL
*
.class
exit
$status
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录