]> WPIA git - gigi.git/blob - src/org/cacert/gigi/ping/HTTPFetch.java
5450f265181520b169f7e8dc8e00f5e8ae064d5c
[gigi.git] / src / org / cacert / gigi / ping / HTTPFetch.java
1 package org.cacert.gigi.ping;
2
3 import java.io.BufferedReader;
4 import java.io.IOException;
5 import java.io.InputStreamReader;
6 import java.net.HttpURLConnection;
7 import java.net.URL;
8
9 import org.cacert.gigi.Domain;
10 import org.cacert.gigi.User;
11
12 public class HTTPFetch extends DomainPinger {
13
14     @Override
15     public String ping(Domain domain, String expToken, User user) {
16         try {
17             String[] tokenParts = expToken.split(":", 2);
18             URL u = new URL("http://" + domain.getSuffix() + "/cacert-" + tokenParts[0] + ".txt");
19             HttpURLConnection huc = (HttpURLConnection) u.openConnection();
20             if (huc.getResponseCode() != 200) {
21                 return "Invalid status code.";
22             }
23             BufferedReader br = new BufferedReader(new InputStreamReader(huc.getInputStream(), "UTF-8"));
24             String line = br.readLine();
25             if (line == null) {
26                 return "No response from your server.";
27             }
28             if (line.trim().equals(tokenParts[1])) {
29                 return PING_SUCCEDED;
30             }
31             return "Challange tokens differed.";
32         } catch (IOException e) {
33             e.printStackTrace();
34             return "Connection closed.";
35         }
36     }
37 }