X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fping%2FHTTPFetch.java;h=a4671bd23bb8090fff2cca74ee3c66176e9b41f5;hb=fc68ac3683c365ded29b3dc5356701ca682b2b0d;hp=b4e88ea4c650e25f7e7cdf24384f3a69891b0b2a;hpb=2824d1c165c501e2f3a8809044788b33b81f478a;p=gigi.git diff --git a/src/org/cacert/gigi/ping/HTTPFetch.java b/src/org/cacert/gigi/ping/HTTPFetch.java index b4e88ea4..a4671bd2 100644 --- a/src/org/cacert/gigi/ping/HTTPFetch.java +++ b/src/org/cacert/gigi/ping/HTTPFetch.java @@ -3,27 +3,35 @@ 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.Domain; +import org.cacert.gigi.dbObjects.User; + 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 String ping(Domain domain, String expToken, User user) { + 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) { + return "Invalid status code."; + } + BufferedReader br = new BufferedReader(new InputStreamReader(huc.getInputStream(), "UTF-8")); + String line = br.readLine(); + if (line == null) { + return "No response from your server."; + } + if (line.trim().equals(tokenParts[1])) { + return PING_SUCCEDED; + } + return "Challange tokens differed."; + } catch (IOException e) { + e.printStackTrace(); + return "Connection closed."; + } + } }