X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fping%2FHTTPFetch.java;h=a5755844a47636bc24396d7dd64af392f2772f75;hb=084ba501e5879a03c74853b6b566841e5c152726;hp=de4990fc3f897472f590ab18ff2c74834f91d1a2;hpb=943d8e7ed0ea5a9d56e7e694a3cbd849c52bad16;p=gigi.git diff --git a/src/org/cacert/gigi/ping/HTTPFetch.java b/src/org/cacert/gigi/ping/HTTPFetch.java index de4990fc..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) { + public void ping(Domain domain, String expToken, CertificateOwner user, int confId) { try { - URL u = new URL("http://" + domain + "/cacert_rai.txt"); - BufferedReader br = new BufferedReader(new InputStreamReader(u.openStream(), "UTF-8")); + 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) { - // empty + enterPingResult(confId, "error", "Empty document.", null); return; } - if (line.equals(expToken)) { - // found + if (line.trim().equals(tokenParts[1])) { + enterPingResult(confId, PING_SUCCEDED, "", null); + return; } - // differ + enterPingResult(confId, "error", "Challange tokens differed.", null); + return; } catch (IOException e) { e.printStackTrace(); - // error + enterPingResult(confId, "error", "Exception: connection closed.", null); + return; } } }