X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fping%2FHTTPFetch.java;h=a5755844a47636bc24396d7dd64af392f2772f75;hp=b4e88ea4c650e25f7e7cdf24384f3a69891b0b2a;hb=d7be034f96e06985f57d86d2779c434276b5bd4d;hpb=2824d1c165c501e2f3a8809044788b33b81f478a diff --git a/src/org/cacert/gigi/ping/HTTPFetch.java b/src/org/cacert/gigi/ping/HTTPFetch.java index b4e88ea4..a5755844 100644 --- a/src/org/cacert/gigi/ping/HTTPFetch.java +++ b/src/org/cacert/gigi/ping/HTTPFetch.java @@ -3,27 +3,40 @@ package org.cacert.gigi.ping; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; +import java.net.HttpURLConnection; import java.net.URL; +import org.cacert.gigi.dbObjects.CertificateOwner; +import org.cacert.gigi.dbObjects.Domain; + public class HTTPFetch extends DomainPinger { - @Override - public void ping(String domain, String configuration, String expToken) { - try { - URL u = new URL("http://" + domain + "/cacert_rai.txt"); - BufferedReader br = new BufferedReader(new InputStreamReader(u.openStream(), "UTF-8")); - String line = br.readLine(); - if (line == null) { - // empty - return; - } - if (line.equals(expToken)) { - // found - } - // differ - } catch (IOException e) { - e.printStackTrace(); - // error - } - } + @Override + public void ping(Domain domain, String expToken, CertificateOwner user, int confId) { + try { + String[] tokenParts = expToken.split(":", 2); + URL u = new URL("http://" + domain.getSuffix() + "/cacert-" + tokenParts[0] + ".txt"); + HttpURLConnection huc = (HttpURLConnection) u.openConnection(); + if (huc.getResponseCode() != 200) { + enterPingResult(confId, "error", "Invaild status code " + huc.getResponseCode() + ".", null); + return; + } + BufferedReader br = new BufferedReader(new InputStreamReader(huc.getInputStream(), "UTF-8")); + String line = br.readLine(); + if (line == null) { + enterPingResult(confId, "error", "Empty document.", null); + return; + } + if (line.trim().equals(tokenParts[1])) { + enterPingResult(confId, PING_SUCCEDED, "", null); + return; + } + enterPingResult(confId, "error", "Challange tokens differed.", null); + return; + } catch (IOException e) { + e.printStackTrace(); + enterPingResult(confId, "error", "Exception: connection closed.", null); + return; + } + } }