Example usage for javax.security.cert X509Certificate checkValidity

List of usage examples for javax.security.cert X509Certificate checkValidity

Introduction

In this page you can find the example usage for javax.security.cert X509Certificate checkValidity.

Prototype

public abstract void checkValidity(Date date)
        throws CertificateExpiredException, CertificateNotYetValidException;

Source Link

Document

Checks that the specified date is within the certificate's validity period.

Usage

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;
}