]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/account/domain/PingConfigForm.java
upd: removes ToS check from certificate generation
[gigi.git] / src / org / cacert / gigi / pages / account / domain / PingConfigForm.java
index 5b5da852ca0356709b0e17aeacd0ab99e84651e0..1810b7ae0543b0249e161116840058f40f449f9c 100644 (file)
@@ -11,7 +11,7 @@ import org.cacert.gigi.Gigi;
 import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.dbObjects.Domain;
 import org.cacert.gigi.dbObjects.DomainPingConfiguration;
-import org.cacert.gigi.dbObjects.DomainPingConfiguration.PingType;
+import org.cacert.gigi.dbObjects.DomainPingType;
 import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.template.Form;
 import org.cacert.gigi.output.template.IterableDataset;
@@ -87,9 +87,11 @@ public class PingConfigForm extends Form {
             case SSL: {
                 doSSL = true;
                 String[] parts = dpc.getInfo().split(":");
-                ports[portpos] = Integer.parseInt(parts[0]);
-                if (parts.length == 2) {
-                    sslTypes[portpos] = SSLType.valueOf(parts[1].toUpperCase());
+                tokenName = parts[0];
+                tokenValue = parts[1];
+                ports[portpos] = Integer.parseInt(parts[2]);
+                if (parts.length == 4) {
+                    sslTypes[portpos] = SSLType.valueOf(parts[3].toUpperCase());
                 } else {
                     sslTypes[portpos] = SSLType.DIRECT;
                 }
@@ -106,15 +108,20 @@ public class PingConfigForm extends Form {
 
     @Override
     public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException {
-        if (req.getParameter("emailType") != null) {
-            String mail = AUTHORATIVE_EMAILS[Integer.parseInt(req.getParameter("email"))];
-            target.addPing(PingType.EMAIL, mail);
+        target.clearPings();
+        if (req.getParameter("emailType") != null && req.getParameter("email") != null) {
+            try {
+                String mail = AUTHORATIVE_EMAILS[Integer.parseInt(req.getParameter("email"))];
+                target.addPing(DomainPingType.EMAIL, mail);
+            } catch (NumberFormatException e) {
+                throw new GigiApiException("A email address is required");
+            }
         }
         if (req.getParameter("DNSType") != null) {
-            target.addPing(PingType.DNS, tokenName + ":" + tokenValue);
+            target.addPing(DomainPingType.DNS, tokenName + ":" + tokenValue);
         }
         if (req.getParameter("HTTPType") != null) {
-            target.addPing(PingType.HTTP, tokenName + ":" + tokenValue);
+            target.addPing(DomainPingType.HTTP, tokenName + ":" + tokenValue);
         }
         if (req.getParameter("SSLType") != null) {
             List<String> types = Arrays.asList(SSLPinger.TYPES);
@@ -126,9 +133,9 @@ public class PingConfigForm extends Form {
                 }
                 int portInt = Integer.parseInt(port);
                 if ("direct".equals(type)) {
-                    target.addPing(PingType.SSL, port);
+                    target.addPing(DomainPingType.SSL, tokenName + ":" + tokenValue + ":" + port);
                 } else if (types.contains(type)) {
-                    target.addPing(PingType.SSL, portInt + ":" + type);
+                    target.addPing(DomainPingType.SSL, tokenName + ":" + tokenValue + ":" + portInt + ":" + type);
                 }
 
             }