]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/ping/HTTPFetch.java
Move the "dbObject"s to their own package.
[gigi.git] / src / org / cacert / gigi / ping / HTTPFetch.java
index de4990fc3f897472f590ab18ff2c74834f91d1a2..a4671bd23bb8090fff2cca74ee3c66176e9b41f5 100644 (file)
@@ -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) {
+    public String ping(Domain domain, String expToken, User user) {
         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) {
+                return "Invalid status code.";
+            }
+            BufferedReader br = new BufferedReader(new InputStreamReader(huc.getInputStream(), "UTF-8"));
             String line = br.readLine();
             if (line == null) {
-                // empty
-                return;
+                return "No response from your server.";
             }
-            if (line.equals(expToken)) {
-                // found
+            if (line.trim().equals(tokenParts[1])) {
+                return PING_SUCCEDED;
             }
-            // differ
+            return "Challange tokens differed.";
         } catch (IOException e) {
             e.printStackTrace();
-            // error
+            return "Connection closed.";
         }
     }
 }