提交 078c4975 编写于 作者: X xuelei

6941936: Broken pipe error of test case DNSIdentities.java

Reviewed-by: chegar
上级 0bf32aa9
...@@ -623,6 +623,11 @@ public class DNSIdentities { ...@@ -623,6 +623,11 @@ public class DNSIdentities {
*/ */
volatile static boolean serverReady = false; volatile static boolean serverReady = false;
/*
* Is the connection ready to close?
*/
volatile static boolean closeReady = false;
/* /*
* Turn on SSL debugging? * Turn on SSL debugging?
*/ */
...@@ -670,11 +675,14 @@ public class DNSIdentities { ...@@ -670,11 +675,14 @@ public class DNSIdentities {
out.print("Testing\r\n"); out.print("Testing\r\n");
out.flush(); out.flush();
} finally { } finally {
// close the socket // close the socket
Thread.sleep(2000); while (!closeReady) {
System.out.println("Server closing socket"); Thread.sleep(50);
sslSocket.close(); }
serverReady = false;
System.out.println("Server closing socket");
sslSocket.close();
serverReady = false;
} }
} }
...@@ -704,12 +712,17 @@ public class DNSIdentities { ...@@ -704,12 +712,17 @@ public class DNSIdentities {
URL url = new URL("https://localhost:" + serverPort+"/"); URL url = new URL("https://localhost:" + serverPort+"/");
System.out.println("url is "+url.toString()); System.out.println("url is "+url.toString());
http = (HttpsURLConnection)url.openConnection(); try {
http = (HttpsURLConnection)url.openConnection();
int respCode = http.getResponseCode();
System.out.println("respCode = "+respCode);
http.disconnect(); int respCode = http.getResponseCode();
System.out.println("respCode = "+respCode);
} finally {
if (http != null) {
http.disconnect();
}
closeReady = true;
}
} }
/* /*
......
...@@ -60,6 +60,11 @@ public class HttpsPost { ...@@ -60,6 +60,11 @@ public class HttpsPost {
*/ */
volatile static boolean serverReady = false; volatile static boolean serverReady = false;
/*
* Is the connection ready to close?
*/
volatile static boolean closeReady = false;
/* /*
* Turn on SSL debugging? * Turn on SSL debugging?
*/ */
...@@ -98,25 +103,34 @@ public class HttpsPost { ...@@ -98,25 +103,34 @@ public class HttpsPost {
serverReady = true; serverReady = true;
SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept(); SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
InputStream sslIS = sslSocket.getInputStream(); try {
OutputStream sslOS = sslSocket.getOutputStream(); InputStream sslIS = sslSocket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(sslIS)); OutputStream sslOS = sslSocket.getOutputStream();
PrintStream ps = new PrintStream(sslOS); BufferedReader br =
// process HTTP POST request from client new BufferedReader(new InputStreamReader(sslIS));
System.out.println("status line: "+br.readLine()); PrintStream ps = new PrintStream(sslOS);
String msg = null;
while ((msg = br.readLine()) != null && msg.length() > 0); // process HTTP POST request from client
System.out.println("status line: "+br.readLine());
msg = br.readLine(); String msg = null;
if (msg.equals(postMsg)) { while ((msg = br.readLine()) != null && msg.length() > 0);
ps.println("HTTP/1.1 200 OK\n\n");
} else { msg = br.readLine();
ps.println("HTTP/1.1 500 Not OK\n\n"); if (msg.equals(postMsg)) {
ps.println("HTTP/1.1 200 OK\n\n");
} else {
ps.println("HTTP/1.1 500 Not OK\n\n");
}
ps.flush();
// close the socket
while (!closeReady) {
Thread.sleep(50);
}
} finally {
sslSocket.close();
sslServerSocket.close();
} }
ps.flush();
Thread.sleep(2000);
sslSocket.close();
sslServerSocket.close();
} }
/* /*
...@@ -144,12 +158,17 @@ public class HttpsPost { ...@@ -144,12 +158,17 @@ public class HttpsPost {
http.setRequestMethod("POST"); http.setRequestMethod("POST");
PrintStream ps = new PrintStream(http.getOutputStream()); PrintStream ps = new PrintStream(http.getOutputStream());
ps.println(postMsg); try {
ps.flush(); ps.println(postMsg);
if (http.getResponseCode() != 200) { ps.flush();
throw new RuntimeException("test Failed"); if (http.getResponseCode() != 200) {
throw new RuntimeException("test Failed");
}
} finally {
ps.close();
http.disconnect();
closeReady = true;
} }
ps.close();
} }
static class NameVerifier implements HostnameVerifier { static class NameVerifier implements HostnameVerifier {
......
...@@ -623,6 +623,11 @@ public class IPAddressDNSIdentities { ...@@ -623,6 +623,11 @@ public class IPAddressDNSIdentities {
*/ */
volatile static boolean serverReady = false; volatile static boolean serverReady = false;
/*
* Is the connection ready to close?
*/
volatile static boolean closeReady = false;
/* /*
* Turn on SSL debugging? * Turn on SSL debugging?
*/ */
...@@ -670,11 +675,14 @@ public class IPAddressDNSIdentities { ...@@ -670,11 +675,14 @@ public class IPAddressDNSIdentities {
out.print("Testing\r\n"); out.print("Testing\r\n");
out.flush(); out.flush();
} finally { } finally {
// close the socket // close the socket
Thread.sleep(2000); while (!closeReady) {
System.out.println("Server closing socket"); Thread.sleep(50);
sslSocket.close(); }
serverReady = false;
System.out.println("Server closing socket");
sslSocket.close();
serverReady = false;
} }
} }
...@@ -716,7 +724,10 @@ public class IPAddressDNSIdentities { ...@@ -716,7 +724,10 @@ public class IPAddressDNSIdentities {
// no subject alternative names matching IP address 127.0.0.1 found // no subject alternative names matching IP address 127.0.0.1 found
// that's the expected exception, ignore it. // that's the expected exception, ignore it.
} finally { } finally {
http.disconnect(); if (http != null) {
http.disconnect();
}
closeReady = true;
} }
} }
......
...@@ -624,6 +624,11 @@ public class IPAddressIPIdentities { ...@@ -624,6 +624,11 @@ public class IPAddressIPIdentities {
*/ */
volatile static boolean serverReady = false; volatile static boolean serverReady = false;
/*
* Is the connection ready to close?
*/
volatile static boolean closeReady = false;
/* /*
* Turn on SSL debugging? * Turn on SSL debugging?
*/ */
...@@ -672,7 +677,10 @@ public class IPAddressIPIdentities { ...@@ -672,7 +677,10 @@ public class IPAddressIPIdentities {
out.flush(); out.flush();
} finally { } finally {
// close the socket // close the socket
Thread.sleep(2000); while (!closeReady) {
Thread.sleep(50);
}
System.out.println("Server closing socket"); System.out.println("Server closing socket");
sslSocket.close(); sslSocket.close();
serverReady = false; serverReady = false;
...@@ -705,12 +713,17 @@ public class IPAddressIPIdentities { ...@@ -705,12 +713,17 @@ public class IPAddressIPIdentities {
URL url = new URL("https://127.0.0.1:" + serverPort+"/"); URL url = new URL("https://127.0.0.1:" + serverPort+"/");
System.out.println("url is "+url.toString()); System.out.println("url is "+url.toString());
http = (HttpsURLConnection)url.openConnection(); try {
http = (HttpsURLConnection)url.openConnection();
int respCode = http.getResponseCode();
System.out.println("respCode = "+respCode);
http.disconnect(); int respCode = http.getResponseCode();
System.out.println("respCode = "+respCode);
} finally {
if (http != null) {
http.disconnect();
}
closeReady = true;
}
} }
/* /*
......
...@@ -624,6 +624,11 @@ public class IPIdentities { ...@@ -624,6 +624,11 @@ public class IPIdentities {
*/ */
volatile static boolean serverReady = false; volatile static boolean serverReady = false;
/*
* Is the connection ready to close?
*/
volatile static boolean closeReady = false;
/* /*
* Turn on SSL debugging? * Turn on SSL debugging?
*/ */
...@@ -672,7 +677,10 @@ public class IPIdentities { ...@@ -672,7 +677,10 @@ public class IPIdentities {
out.flush(); out.flush();
} finally { } finally {
// close the socket // close the socket
Thread.sleep(2000); while (!closeReady) {
Thread.sleep(50);
}
System.out.println("Server closing socket"); System.out.println("Server closing socket");
sslSocket.close(); sslSocket.close();
serverReady = false; serverReady = false;
...@@ -705,12 +713,17 @@ public class IPIdentities { ...@@ -705,12 +713,17 @@ public class IPIdentities {
URL url = new URL("https://localhost:" + serverPort+"/"); URL url = new URL("https://localhost:" + serverPort+"/");
System.out.println("url is "+url.toString()); System.out.println("url is "+url.toString());
http = (HttpsURLConnection)url.openConnection(); try {
http = (HttpsURLConnection)url.openConnection();
int respCode = http.getResponseCode();
System.out.println("respCode = "+respCode);
http.disconnect(); int respCode = http.getResponseCode();
System.out.println("respCode = "+respCode);
} finally {
if (http != null) {
http.disconnect();
}
closeReady = true;
}
} }
/* /*
......
...@@ -623,6 +623,11 @@ public class Identities { ...@@ -623,6 +623,11 @@ public class Identities {
*/ */
volatile static boolean serverReady = false; volatile static boolean serverReady = false;
/*
* Is the connection ready to close?
*/
volatile static boolean closeReady = false;
/* /*
* Turn on SSL debugging? * Turn on SSL debugging?
*/ */
...@@ -671,7 +676,10 @@ public class Identities { ...@@ -671,7 +676,10 @@ public class Identities {
out.flush(); out.flush();
} finally { } finally {
// close the socket // close the socket
Thread.sleep(2000); while (!closeReady) {
Thread.sleep(50);
}
System.out.println("Server closing socket"); System.out.println("Server closing socket");
sslSocket.close(); sslSocket.close();
serverReady = false; serverReady = false;
...@@ -704,12 +712,17 @@ public class Identities { ...@@ -704,12 +712,17 @@ public class Identities {
URL url = new URL("https://localhost:" + serverPort+"/"); URL url = new URL("https://localhost:" + serverPort+"/");
System.out.println("url is "+url.toString()); System.out.println("url is "+url.toString());
http = (HttpsURLConnection)url.openConnection(); try {
http = (HttpsURLConnection)url.openConnection();
int respCode = http.getResponseCode();
System.out.println("respCode = "+respCode);
http.disconnect(); int respCode = http.getResponseCode();
System.out.println("respCode = "+respCode);
} finally {
if (http != null) {
http.disconnect();
}
closeReady = true;
}
} }
/* /*
......
...@@ -60,6 +60,11 @@ public class Redirect { ...@@ -60,6 +60,11 @@ public class Redirect {
*/ */
volatile static boolean serverReady = false; volatile static boolean serverReady = false;
/*
* Is the connection ready to close?
*/
volatile static boolean closeReady = false;
/* /*
* Turn on SSL debugging? * Turn on SSL debugging?
*/ */
...@@ -98,24 +103,33 @@ public class Redirect { ...@@ -98,24 +103,33 @@ public class Redirect {
serverReady = true; serverReady = true;
SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept(); SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
InputStream sslIS = sslSocket.getInputStream(); try {
OutputStream sslOS = sslSocket.getOutputStream(); InputStream sslIS = sslSocket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(sslIS)); OutputStream sslOS = sslSocket.getOutputStream();
PrintStream ps = new PrintStream(sslOS); BufferedReader br =
// process HTTP POST request from client new BufferedReader(new InputStreamReader(sslIS));
System.out.println("status line: "+br.readLine()); PrintStream ps = new PrintStream(sslOS);
ps.println("HTTP/1.1 307 Redirect"); // process HTTP POST request from client
ps.println("Location: https://localhost:"+serverPort+"/index.html\n\n"); System.out.println("status line: "+br.readLine());
ps.flush();
sslSocket = (SSLSocket) sslServerSocket.accept(); ps.println("HTTP/1.1 307 Redirect");
sslOS = sslSocket.getOutputStream(); ps.println("Location: https://localhost:" + serverPort +
ps = new PrintStream(sslOS); "/index.html\n\n");
ps.println("HTTP/1.1 200 Redirect succeeded\n\n"); ps.flush();
ps.flush(); sslSocket = (SSLSocket) sslServerSocket.accept();
Thread.sleep(2000); sslOS = sslSocket.getOutputStream();
sslSocket.close(); ps = new PrintStream(sslOS);
sslServerSocket.close(); ps.println("HTTP/1.1 200 Redirect succeeded\n\n");
ps.flush();
} finally {
// close the socket
while (!closeReady) {
Thread.sleep(50);
}
sslSocket.close();
sslServerSocket.close();
}
} }
/* /*
...@@ -139,10 +153,14 @@ public class Redirect { ...@@ -139,10 +153,14 @@ public class Redirect {
HttpsURLConnection.setDefaultHostnameVerifier( HttpsURLConnection.setDefaultHostnameVerifier(
new NameVerifier()); new NameVerifier());
HttpsURLConnection http = (HttpsURLConnection)url.openConnection(); HttpsURLConnection http = (HttpsURLConnection)url.openConnection();
try {
System.out.println("response header: "+http.getHeaderField(0)); System.out.println("response header: "+http.getHeaderField(0));
if (http.getResponseCode() != 200) { if (http.getResponseCode() != 200) {
throw new RuntimeException("test Failed"); throw new RuntimeException("test Failed");
}
} finally {
http.disconnect();
closeReady = true;
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册