List of usage examples for javax.security.cert X509Certificate checkValidity
public abstract void checkValidity(Date date) throws CertificateExpiredException, CertificateNotYetValidException;
From source file:com.dragonflow.StandardMonitor.URLOriginalMonitor.java
/** * //ww w . ja v a 2s .c om */ private static long[] checkInternalURL(SocketSession socketsession, String s, String s1, String s2, String s3, String s4, String s5, String s6, String s7, Array array, String s8, String s9, String s10, StringBuffer stringbuffer, long l, String s11, int i, long l1, StringBuffer stringbuffer1, StringBuffer stringbuffer2) { String s12 = ""; if (s.lastIndexOf('#') != -1) { s = s.substring(0, s.lastIndexOf('#')); } if ((debugURL & kDebugRequest) != 0) { LogManager.log("RunMonitor", "checking URL... " + s); } int j = 0; if (socketsession.context.getSetting("_keepTryingForGoodStatus").length() > 0) { j = TextUtils.toInt(socketsession.context.getSetting("_keepTryingForGoodStatus")); } long l2 = kURLNoStatusError; long l3 = 0L; long l4 = System.currentTimeMillis(); long l6 = 0L; long l7 = 0L; long l8 = 0L; long l9 = 0L; long l10 = 0L; long l11 = 0L; long l12 = 0L; boolean flag = false; URLInfo urlinfo = new URLInfo(s); String s16 = urlinfo.getProtocol(); String s17 = urlinfo.getHost(); int k = urlinfo.getConnectPort(); boolean flag1 = false; boolean flag2 = false; if (SocketStream.getSSLFactory() != null) { flag1 = true; if (socketsession.context.getSetting("_sslJavaEnabled").length() > 0) { flag1 = true; } else if (socketsession.context.getSetting("_sslJavaDisabled").length() > 0) { flag1 = false; } } boolean flag3 = false; if (s8.startsWith(NT_CHALLENGE_RESPONSE_TAG)) { s8 = s8.substring(NT_CHALLENGE_RESPONSE_TAG.length()); flag3 = true; } boolean flag4 = false; if (socketsession.context.getSetting("_urlMonitorUseApacheHttpClient").length() > 0) { flag4 = true; } SocketStream socketstream = null; String s18 = getUserAgent(array); if (s18.length() == 0) { s18 = socketsession.context.getSetting("_URLUserAgent"); } String s19 = getSslgetOptions(array); if (s19.length() == 0) { s19 = socketsession.context.getSetting("_sslgetOptions"); } String s20 = socketsession.context.getSetting("_URLMonitorProxyExceptions"); String s21 = null; String s22 = ""; String s23 = ""; String s25 = ""; String s26 = getContentType(array); String s27 = encodeParameters(array, s26); socketsession.addCookieParameters(array, s); if (stringbuffer == null) { stringbuffer = new StringBuffer(kURLBufferSize); } boolean flag5 = socketsession.context.getSetting("_concatURLRedirects").length() != 0; if (flag5 && concatBuffer == null) { concatBuffer = new StringBuffer(kURLBufferSize); } if (s8.length() > 0) { Base64Encoder base64encoder = new Base64Encoder(s8 + ":" + s9); s22 = "Authorization: Basic " + base64encoder.processString() + CRLF; } if (s6.length() > 0) { Base64Encoder base64encoder1 = new Base64Encoder(s6 + ":" + s7); String s24 = base64encoder1.processString(); s25 = "Proxy-Authorization: Basic " + s24 + CRLF; } long l13 = l1 - System.currentTimeMillis(); long l14 = l13 / 1000L; long l15 = -1L; CounterLock counterlock; // 617 try { if (s10.length() != 0) { String s28 = ""; if (s27.length() > 0) { s28 = HTTPRequest.encodeString(s27); } String s32; if (s10.indexOf("get.exe") != -1) { String s36 = socketsession.context.getSetting("_URLRemoteOptions"); if (s36.length() == 0) { s36 = "-ignoreErrors+-ignoreUnknownCA+-x"; } if (flag3 && !s8.startsWith(NT_CHALLENGE_RESPONSE_TAG)) { s8 = NT_CHALLENGE_RESPONSE_TAG + s8; } if (s18.length() > 0) { if (s28.length() > 0) { s28 = s28 + URLEncoder.encode("&"); } s28 = s28 + URLEncoder.encode("User-Agent: " + s18); } if (s19.length() > 0) { if (s28.length() > 0) { s28 = s28 + URLEncoder.encode("&"); } s28 = s28 + URLEncoder.encode("sslgetOptions: " + s19); } if (s11.length() > 0) { String as[] = TextUtils.split(s11, CRLF); for (int k1 = 0; k1 < as.length; k1++) { if (s28.length() > 0) { s28 = s28 + URLEncoder.encode("&"); } if (getHeaderType(as[k1]) < 0) { s28 = s28 + URLEncoder.encode("Custom-Header: "); } String s46 = as[k1]; int i3 = s46.indexOf("&"); if (i3 >= 0 && !s46.startsWith(URLSequenceMonitor.refererStartToken)) { s46 = s46.substring(0, i3); } s28 = s28 + URLEncoder.encode(s46); } } String s13 = socketsession.getCookieHeader(s, true); if (s13.length() > 0) { String s40 = ""; if (s36.endsWith("-x")) { s40 = "-x"; s36 = s36.substring(0, s36.length() - 2); } String as2[] = TextUtils.split(s13, CRLF); for (int j2 = 0; j2 < as2.length; j2++) { s36 = s36 + "-c+%22" + URLEncoder.encode(as2[j2]) + "%22+"; } s36 = s36 + s40; } s32 = s10 + "?" + s36 + "+%22" + URLEncoder.encode(s) + "%22" + "+%22" + l14 + "%22" + "+%22" + URLEncoder.encode(s8) + "%22" + "+%22" + URLEncoder.encode(s9) + "%22" + "+%22" + s28 + "%22" + "+%22" + URLEncoder.encode(s5) + "%22" + "+%22" + URLEncoder.encode(s6) + "%22" + "+%22" + URLEncoder.encode(s7) + "%22"; } else if (s10.indexOf("port.exe") != -1) { s32 = s10 + "&host=" + s; } else { s32 = s10 + "?host=" + s; } Array array2 = null; String s41 = ""; String s43 = ""; String s47 = ""; String s49 = ""; String s51 = ""; String s54 = ""; String s56 = ""; if (Platform.isPortal()) { String s59 = HTTPUtils.getLocationIDByURL(s10); if (Portal.isPortalID(s59)) { PortalSiteView portalsiteview = (PortalSiteView) Portal.getSiteViewForID(s59); if (portalsiteview != null) { s41 = portalsiteview.getProperty(PortalSiteView.pUserName); s43 = portalsiteview.getProperty(PortalSiteView.pPassword); s49 = portalsiteview.getProperty(PortalSiteView.pProxy); s51 = portalsiteview.getProperty(PortalSiteView.pProxyUserName); s54 = portalsiteview.getProperty(PortalSiteView.pProxyPassword); } } } int k3 = i; if (socketsession.context == null) ; CounterLock counterlock1 = null; if (!socketsession.inRemoteRequest) { counterlock1 = getLocationLock(socketsession.context, s10, s); } try { long l18 = System.currentTimeMillis() + (l14 + 30L) * 1000L; socketsession.inRemoteRequest = true; long al2[] = check1URL(socketsession, s32, s1, s2, s3, s4, s49, s51, s54, array2, s41, s43, s47, stringbuffer, l, s56, k3, l18, stringbuffer1, stringbuffer2); l2 = al2[0]; if (j > 0) { l2 = getURLStatus_ForBackupToRegularMeansOnly(socketsession, l2, s32, 0, j); } if (debugURL != 0) { System.out.println("Status1: " + l2); } l3 = al2[1]; } finally { socketsession.inRemoteRequest = false; if (counterlock1 != null) { releaseLocationLock(counterlock1); } } String s65 = stringbuffer.toString(); int i4 = s65.length(); stringbuffer.setLength(0); int j4 = 0; while (j4 < i4) { int k4 = s65.indexOf("\r\r\n", j4); if (k4 < 0) { stringbuffer.append(s65.substring(j4)); break; } stringbuffer.append(s65.substring(j4, k4) + "\r\n"); j4 = k4 + 3; } String s68 = stringbuffer.toString(); if (s10.indexOf("get.exe") != -1) { String s70 = "URLMonitorDuration: "; int k5 = s68.lastIndexOf(s70); if (k5 != -1) { l3 = TextUtils.toLong(s68.substring(k5 + s70.length(), k5 + s70.length() + 10)); } s70 = "URLMonitorStatus: "; k5 = s68.lastIndexOf(s70); long l21 = l2; if (k5 != -1) { l21 = TextUtils.toLong(s68.substring(k5 + s70.length(), k5 + s70.length() + 10)); } if (l21 != 200L || l2 != (long) kURLContentMatchError && l2 != (long) kURLContentErrorFound) { if (k5 != -1) { l2 = l21; if (debugURL != 0) { System.out.println("Status2 ssl: " + l2); } } else { int j6 = s68.length(); if (j6 > 500) { j6 = 500; } String s78 = s68.substring(0, j6); if (j > 0) { l21 = getURLStatus_ForBackupToRegularMeansOnly(socketsession, l21, s32, 0, j); } LogManager.log("Error", "Remote URL error, [" + HTTPUtils.getLocationIDByURL(s10) + "] " + lookupStatus(l2) + ", " + s10 + ", " + s + ", detail: " + s78); l2 = kURLRemoteMonitoringError; if (debugURL != 0) { System.out.println("Status3 kURLRemoteMonitoringError: " + l2); } } } } s68 = getHTTPContent(s68); int i5 = s68.lastIndexOf("\r\nURLMonitorStatus: "); if (i5 >= 0) { s68 = s68.substring(0, i5); } stringbuffer.setLength(0); stringbuffer.append(s68); l12 = stringbuffer.length(); } else { if (flag3 || s16.equals("https") && !flag1 || flag4) { flag2 = true; counterlock = null; try { if (s16.equals("https")) { counterlock = getSSLGroupLock(socketsession.context); } if (flag4) { Vector vector = new Vector(); if (socketsession.context.getSetting("_sslKeepAlive").length() > 0) { if (s5.length() > 0) { vector.add(new Header("Proxy-Connection", "Keep-Alive")); } else { vector.add(new Header("Connection", "Keep-Alive")); } } vector.add(new Header("User-Agent", s18)); Header header = socketsession.getCookieHeader(s); if (header != null) { vector.add(header); } if (s27.length() > 0) { vector.add(new Header("Content-Type", s26)); } String s42 = ""; HTTPRequestSettings httprequestsettings = new HTTPRequestSettings(s, s8, s9, s42, null, s5, s6, s7, vector, 1, (int) l13, (int) l13); StringBuffer stringbuffer3 = new StringBuffer(); ApacheHttpMethod apachehttpmethod = null; long l17 = System.currentTimeMillis(); apachehttpmethod = ApacheHttpUtils.getRequest(httprequestsettings, stringbuffer3); l3 = System.currentTimeMillis() - l17; l2 = apachehttpmethod.getStatusCode(); if (apachehttpmethod.getResponseBodyAsString() != null) { stringbuffer2.append(apachehttpmethod.getResponseBodyAsString()); } if (apachehttpmethod.getResponseBody() != null) { l12 = apachehttpmethod.getResponseBody().length; } } else { if (s5 == null) { s5 = ""; } Array array1 = new Array(); array1.add(Platform.getRoot() + "/tools/sslget"); if (s19.length() > 0) { Array array3 = Platform.split(' ', s19); Enumeration enumeration = array3.elements(); while (enumeration.hasMoreElements()) { array1.add(enumeration.nextElement()); } } if (socketsession.context.getSetting("_sslKeepAlive").length() > 0) { array1.add("-keepAlive"); } boolean flag6 = socketsession.context.getSetting("_urlUnixSSL").length() == 0; array1.add("-agent"); array1.add("\"" + s18 + "\""); String s14 = s11; s14 = socketsession.getCookieHeader(s, flag6) + s14; if (s14.length() > 0) { String as1[] = TextUtils.split(s14, CRLF); for (int i2 = 0; i2 < as1.length; i2++) { array1.add("-c"); array1.add("\"" + as1[i2] + "\""); } } if (s27.length() > 0) { array1.add("-c"); array1.add("\"" + CONTENT_TYPE_HEADER + s26 + "\""); } if (array != null) { Enumeration enumeration1 = array.elements(); while (enumeration1.hasMoreElements()) { String s44 = (String) enumeration1.nextElement(); if (TextUtils.startsWithIgnoreCase(s44, CUSTOM_HEADER)) { array1.add("-c"); array1.add("\"" + s44.substring(CUSTOM_HEADER.length()) + "\""); } } } array1.add("-x"); array1.add(s); array1.add("" + l14); array1.add("\"" + s8 + "\""); array1.add("\"" + s9 + "\""); array1.add("\"" + s27 + "\""); if (!hostIsProxyException(s20, s)) { array1.add("\"" + s5 + "\""); } else { array1.add("\"\""); } array1.add("\"" + s6 + "\""); array1.add("\"" + s7 + "\""); SSLCounter++; if (sslLock.current() == 0) { LogManager.log("RunMonitor", "ssl block, " + ((sslLock.max - sslLock.current()) + 1) + ", " + s); } else { LogManager.log("RunMonitor", "ssl start, " + SSLCounter + ", " + s); } Array array4 = new Array(); l2 = sendSSLRequest(urlinfo.getHost(), socketsession, array1, sslLock, array4); if (debugURL != 0) { System.out.println("Status4 sendSSLRequest: " + l2); } SSLCounter--; Enumeration enumeration2 = array4.elements(); int k2 = 0; boolean flag7 = false; l12 = -1L; String s52 = "URLMonitorStatus:"; String s55 = "URLMonitorDuration:"; String s57 = "URLMonitorDNSDuration:"; String s60 = "URLMonitorConnectDuration:"; String s62 = "URLMonitorResponseDuration:"; String s66 = "URLMonitorDownloadDuration:"; boolean flag8 = true; while (enumeration2.hasMoreElements()) { String s69 = (String) enumeration2.nextElement(); if (stringbuffer2 != null) { stringbuffer2.append(s69 + "\n"); } if (++k2 > 2) { int j5 = s69.indexOf(s52); if (j5 >= 0) { String s71 = s69.substring(s69.length() - 10); l2 = TextUtils.toLong(s71); if (debugURL != 0) { System.out.println("Status5 statusString: " + l2); } flag8 = false; } int i6 = s69.indexOf(s55); if (i6 >= 0) { String s72 = s69.substring(s69.length() - 10); l3 = TextUtils.toLong(s72); } i6 = s69.indexOf(s57); if (i6 >= 0) { String s73 = s69.substring(s69.length() - 10); l6 = TextUtils.toLong(s73); } i6 = s69.indexOf(s60); if (i6 >= 0) { String s74 = s69.substring(s69.length() - 10); l7 = TextUtils.toLong(s74); } i6 = s69.indexOf(s62); if (i6 >= 0) { String s75 = s69.substring(s69.length() - 10); l8 = TextUtils.toLong(s75); } i6 = s69.indexOf(s66); if (i6 >= 0) { String s76 = s69.substring(s69.length() - 10); l9 = TextUtils.toLong(s76); } if (k2 == 4 && s69.length() == 0) { flag7 = true; } if ((!flag7 || k2 % 2 != 0 || s69.length() != 0) && flag8) { stringbuffer.append(s69); stringbuffer.append('\n'); } } } LogManager.log("RunMonitor", "SSL END, " + SSLCounter + ", " + l3 + " " + s); l12 = stringbuffer.length(); } if (counterlock != null) { releaseSSLGroupLock(counterlock); } } catch (Exception exception1) { if (counterlock != null) { releaseSSLGroupLock(counterlock); } throw exception1; } } else { String s29 = urlinfo.getFile(); String s33 = getHostHeader(array, s17, k, s16); String s37 = null; int j1 = -1; if (s5.length() != 0 && !isProxyException(s20, s17)) { if (!s5.startsWith("http://")) { s5 = "http://" + s5; } j1 = k; s37 = s17; URLInfo urlinfo1 = new URLInfo(s5); s17 = urlinfo1.getHost(); k = urlinfo1.getConnectPort(); if (!s16.equals("https")) { if (s29.equals("/") && !s.endsWith("/")) { s29 = s + "/"; } else { s29 = s; } } } String s45 = socketsession.getCookieHeader(s, false); String s48 = getRequestCommand(array); String s50 = socketsession.getVersion(); String s53 = getRequestProtocol(array); if (s53.endsWith("/")) { s53 = s53 + s50; } String s15 = s11; int j3 = -1; String s58 = s15; if ((j3 = s15.indexOf("&" + URLSequenceMonitor.refererEndToken)) != -1) { s15 = s58.substring(0, j3); s15 = s15 + s58.substring(j3 + ("&" + URLSequenceMonitor.refererEndToken).length()); } if (s15.length() > 0 && !s15.endsWith(CRLF)) { s15 = s15 + CRLF; } if (array != null) { Enumeration enumeration3 = array.elements(); while (enumeration3.hasMoreElements()) { String s63 = (String) enumeration3.nextElement(); if (TextUtils.startsWithIgnoreCase(s63, CUSTOM_HEADER)) { s15 = s15 + s63.substring(CUSTOM_HEADER.length()) + CRLF; } } } String s61 = socketsession.getStreamEncoding(); String s64 = ""; if (s61.length() > 0) { s64 = "Accept-charset: " + s61 + CRLF; } String s67 = s48 + " " + s29 + " " + s53 + CRLF + "User-Agent: " + s18 + CRLF + s64 + "Accept: */*" + CRLF + "Host: " + s33 + CRLF + s22 + s25 + s45 + s15; if (s27.length() == 0) { s67 = s67 + CRLF; } else { if (s61.length() > 0) { s64 = "; charset=" + s61; } s67 = s67 + CONTENT_TYPE_HEADER + s26 + s64 + CRLF + "Content-length: " + s27.length() + CRLF + CRLF + s27; } long l5 = System.currentTimeMillis(); long l19 = l5; InetAddress inetaddress = InetAddress.getByName(s17); long l20 = System.currentTimeMillis(); l6 = l20 - l19; String s77 = Platform.dottedIPString(inetaddress.getAddress()) + ":" + k; l19 = l20; socketstream = socketsession.connect(s77, inetaddress, k, s16, s37, j1, s6, s7, l1); l20 = System.currentTimeMillis(); l7 = l20 - l19; Socket socket = socketstream.socket; int k6 = (int) (l1 - System.currentTimeMillis()); if ((long) k6 <= kTimedOutValue) { throw new InterruptedIOException(); } if (s16.equals("https") && socketsession.context.getSetting("_urlCertDays").length() > 0) { try { SSLSession sslsession = ((SSLSocket) socketstream.socket).getSession(); X509Certificate ax509certificate[] = sslsession.getPeerCertificateChain(); int j7 = 0; for (int k7 = 0; k7 < ax509certificate.length; k7++) { X509Certificate x509certificate = ax509certificate[k7]; long l22 = System.currentTimeMillis(); long l23 = l22 + 0x5265c00L; int i8 = 0; while (true) { Date date = new Date(l23); try { x509certificate.checkValidity(date); } catch (CertificateExpiredException certificateexpiredexception) { if (i8 == 0) { i8++; } break; } catch (CertificateNotYetValidException certificatenotyetvalidexception) { break; } i8++; l23 += 0x5265c00L; } if (i8 <= 0) { continue; } if (j7 == 0) { j7 = i8; continue; } if (j7 > i8) { j7 = i8; } } if (j7 > 1) { l15 = j7; } if (j7 == 1) { l15 = 0L; } } catch (SSLPeerUnverifiedException sslpeerunverifiedexception) { /* empty */ } } Platform.setSocketTimeout(socket, k6); if ((debugURL & kDebugRequest) != 0) { LogManager.log("RunMonitor", "sending request... " + s67); } l19 = System.currentTimeMillis(); socketstream.transmit(s67); if (stringbuffer2 != null) { stringbuffer2.append(s67); } if ((debugURL & kDebugRequest) != 0) { LogManager.log("RunMonitor", "request sent"); } long al3[]; if (s50.equals("1.0")) { al3 = fillBuffer(socketsession, socketstream, l1, stringbuffer, l, l19); } else { al3 = fillBufferParse(s48, socketsession, socketstream, socket, l1, stringbuffer, l, l19); } if (stringbuffer2 != null) { stringbuffer2.append(stringbuffer.toString()); } if (!socketstream.receivedReply || al3.length > 2 && al3[2] == -1L) { socketstream.receivedEndOfStreamOnFirst = false; LogManager.log("RunMonitor", "reopening connection to " + inetaddress); socketstream.reconnect(); l19 = l20; socketstream = socketsession.connect(s77, inetaddress, k, s16, s37, j1, s6, s7, l1); l20 = System.currentTimeMillis(); l7 += l20 - l19; Socket socket1 = socketstream.socket; int i7 = (int) (l1 - System.currentTimeMillis()); if ((long) i7 <= kTimedOutValue) { throw new InterruptedIOException(); } Platform.setSocketTimeout(socket1, i7); if (debugURL != 0) { LogManager.log("RunMonitor", "sending request2..." + s67); System.out.println("URLOriginalMonitor : sending request2..." + s67); } l19 = System.currentTimeMillis(); socketstream.transmit(s67); if (stringbuffer2 != null) { stringbuffer2.append(s67); } if (debugURL != 0) { LogManager.log("RunMonitor", "request2 sent"); System.out.println("URLOriginalMonitor : request2 sent"); } if (s50.equals("1.0")) { al3 = fillBuffer(socketsession, socketstream, l1, stringbuffer, l, l19); } else { al3 = fillBufferParse(s48, socketsession, socketstream, socket1, l1, stringbuffer, l, l19); } if (stringbuffer2 != null) { stringbuffer2.append(stringbuffer.toString()); } } l12 = al3[0]; l8 = al3[1]; l20 = System.currentTimeMillis(); l9 = l20 - l19 - l8; l3 = l20 - l5; if ((debugURL & kDebugIO) != 0) { LogManager.log("RunMonitor", "total, duration: " + l3 + ", clock: " + System.currentTimeMillis()); } } } // 5637 if ((debugURL & kDebugData) != 0) { LogManager.log("RunMonitor", "content=" + stringbuffer); } URLScannerInputStream urlscannerinputstream = new URLScannerInputStream(stringbuffer, l2); urlscannerinputstream.parse(); if (urlscannerinputstream.contentLength != -1L) { l12 = urlscannerinputstream.contentLength; } l10 = urlscannerinputstream.lastModified; l11 = urlscannerinputstream.date; s21 = urlscannerinputstream.location; l2 = urlscannerinputstream.status; if (j > 0) { l2 = getURLStatus_ForBackupToRegularMeansOnly(socketsession, l2, s, 0, j); } if (debugURL != 0) { System.out.println("Status6 scanner.status: " + l2); } if ((debugURL & kDebugReply) != 0) { if (l2 != 200L) { LogManager.log("RunMonitor", "status=" + l2 + ", reply=" + stringbuffer); } else { LogManager.log("RunMonitor", "status=" + l2); } } if (socketstream != null) { socketstream.keepAlive = urlscannerinputstream.isKeepAlive(); } if (!socketsession.inRemoteRequest) { flag = urlscannerinputstream.refreshRedirect; } // 5905 } catch (UnknownHostException e) { l2 = kURLBadHostNameError; if (debugURL != 0) { System.out.println("Status7 kURLBadHostNameError: " + l2 + " exception: " + e.toString()); } } catch (InterruptedIOException e) { l2 = kURLTimeoutError; if (debugURL != 0) { System.out.println("Status8 kURLTimeoutError: " + l2 + " exception: " + e.toString()); } } catch (SocketException e) { if (debugURL != 0) { e.printStackTrace(); LogManager.log("RunMonitor", "socket exception, " + e); } if (Platform.noRoute(e)) { l2 = kURLNoRouteToHostError; if (debugURL != 0) { System.out.println("Status9 kURLNoRouteToHostError: " + l2 + " exception: " + e.toString()); } } else { l2 = kURLNoConnectionError; if (debugURL != 0) { System.out.println("Status10 kURLNoConnectionError: " + l2 + " exception: " + e.toString()); } if (Platform.isWindows()) { l2 = kSSL2NotFoundError; if (debugURL != 0) { System.out.println("Status11 kSSL2NotFoundError: " + l2 + " exception: " + e.toString()); } } } } catch (Exception e) { String s34 = e.getClass() + ", " + e.getMessage(); if (s34.indexOf("SSLException") != -1 && Platform.isWindows()) { String s38 = s17 + ":" + k; addSSL2Only(s38, s + ", " + s34); l2 = kSSL2NotFoundError; if (debugURL != 0) { System.out.println("Status12 kSSL2NotFoundError: " + l2 + " exception: " + e.toString()); } } else { e.printStackTrace(); l2 = kSSL2NotFoundError; if (debugURL != 0) { System.out.println("Status13 kSSL2NotFoundError: " + l2 + " exception: " + e.toString()); } } } finally { if (j > 0) { l2 = getURLStatus_ForBackupToRegularMeansOnly(socketsession, l2, s, 0, j); } if (socketstream != null) { if (socketstream.receivedEndOfStreamOnFirst) { String s79 = s17 + ":" + k; addSSL2Only(s79, s + ", " + " first line null"); l2 = kSSL2NotFoundError; if (debugURL != 0) { System.out.println("Status14 kSSL2NotFoundError: " + l2); } socketstream.receivedEndOfStreamOnFirst = false; } socketsession.release(socketstream); } } // 6637 if (200L < l2 && l2 < 300L && socketsession.context.getSetting("_urlEnable2xxStatus").length() == 0) { l2 = 200L; } if (debugURL != 0) { System.out.println("Status15 200: " + l2); } if (l2 == 301L || l2 == 302L || l2 == 303L || l2 == 307L || flag) { if (s21 != null) { s21 = TextUtils.unescapeHTML(s21); s21 = resolveURL(s21, new URLInfo(s1), ""); socketsession.refererURL = s21; long l16 = socketsession.context.getSettingAsLong("_urlRedirectMax", DEFAULT_MAX_REDIRECTS); if ((long) i <= l16) { if ((debugURL & kDebugRequest) != 0) { LogManager.log("RunMonitor", "redirect=" + s21); } socketsession.updateCookies(stringbuffer.toString(), s); if (stringbuffer1 != null) { stringbuffer1.setLength(0); stringbuffer1.append(s21); } if (flag5 && concatBuffer != null) { concatBuffer.append(stringbuffer.toString()); } stringbuffer.setLength(0); s8 = socketsession.originalUserName; s9 = socketsession.originalPassword; long al1[] = check1URL(socketsession, s21, s21, s2, s3, s4, s5, s6, s7, null, s8, s9, s2, stringbuffer, l, s11, i + 1, l1, stringbuffer1, stringbuffer2); l2 = al1[0]; if (j > 0) { l2 = getURLStatus_ForBackupToRegularMeansOnly(socketsession, l2, s21, 0, j); } if (debugURL != 0) { System.out.println("Status16 redirectResult: " + l2); } l10 = al1[3]; l11 = al1[4]; l3 += al1[1]; l12 += al1[2]; l6 += al1[5]; l7 += al1[6]; l8 += al1[7]; l9 += al1[8]; } } } else { if (l2 == (long) kURLNoStatusError) { if (socketsession.context.getSetting("_urlAllowNoStatus").length() > 0) { l2 = kURLok; if (debugURL != 0) { System.out.println("Status17 kURLok: " + l2); } } else { LogManager.log("Error", "URL missing status: " + s); } } if (flag5 && concatBuffer != null) { concatBuffer.append(stringbuffer.toString()); stringbuffer.setLength(0); stringbuffer.append(concatBuffer.toString()); concatBuffer = null; } String s30 = I18N.UnicodeToString(stringbuffer.toString(), I18N.nullEncoding()); if (l2 == 200L && s4.length() != 0) { int i1 = TextUtils.matchExpression(s30, s4); if (i1 != Monitor.kURLok && I18N.hasUnicode(s4)) { String s39 = getHTMLEncoding(s30); i1 = TextUtils.matchExpression(s30, I18N.UnicodeToString(s4, s39)); } if (i1 == 200) { l2 = kURLContentErrorFound; } if (debugURL != 0) { System.out.println("Status18 kURLContentErrorFound: " + l2); } } if (l2 == 200L && s3.length() != 0) { l2 = TextUtils.matchExpression(s30, s3); if (debugURL != 0) { System.out.println("Status19 TextUtils.matchExpression(contents,match): " + l2); } if (l2 != (long) Monitor.kURLok && I18N.hasUnicode(s3)) { String s35 = getHTMLEncoding(s30); l2 = TextUtils.matchExpression(s30, I18N.UnicodeToString(s3, s35)); if (debugURL != 0) { System.out.println( "Status20 TextUtils.matchExpression(contents, I18N.UnicodeToString(match,encoding): " + l2); } } } } if (socketsession.context.getSetting("_urlDetailLogEnabled").length() > 0 && s.indexOf("get.exe") == -1) { String s31 = ""; if (s10.length() > 0) { s31 = "[" + HTTPUtils.getLocationIDByURL(s10) + "]"; } LogManager.log(socketsession.context.getSetting(pURLLogName), s31 + s + "\t" + l2 + "\t" + l3 + "\t" + l12 + "\t" + l10 + "\t" + l11 + "\t" + l6 + "\t" + l7 + "\t" + l8 + "\t" + l9 + "\t" + socketsession.context.getProperty(pName) + "\t" + socketsession.context.getProperty(pGroupID) + "\t" + socketsession.context.getProperty(pID)); } if (!socketsession.inRemoteRequest) { internalURLs++; internalURLBytes += l12; internalURLDuration += l3; if (l2 != 200L) { internalURLErrors++; } } if (s10.length() > 0) { internalRemoteURLs++; internalRemoteBytes += l12; internalRemoteDuration += l3; if (l2 != 200L) { internalRemoteErrors++; } } else if (s16.equals("https")) { if (flag2) { internalSecureURLs++; internalSecureBytes += l12; internalSecureDuration += l3; if (l2 != 200L) { internalSecureErrors++; } } else { internalSecureJavaURLs++; internalSecureJavaBytes += l12; internalSecureJavaDuration += l3; if (l2 != 200L) { internalSecureJavaErrors++; } } } else if (!socketsession.inRemoteRequest) { internalJavaURLs++; internalJavaBytes += l12; internalJavaDuration += l3; if (l2 != 200L) { internalJavaErrors++; } } long al[] = new long[10]; al[0] = l2; if (debugURL != 0) { System.out.println("Status21 #############################results[0]: " + l2); } al[1] = l3; al[2] = l12; al[3] = l10; al[4] = l11; al[5] = l6; al[6] = l7; al[7] = l8; al[8] = l9; al[9] = l15; return al; }