X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2Fdomain%2FPingConfigForm.java;h=1810b7ae0543b0249e161116840058f40f449f9c;hb=e6d27a94476fa6a542569ae427d92a56993c9211;hp=5b5da852ca0356709b0e17aeacd0ab99e84651e0;hpb=98aa1434dc5e06971dcd35f6b9bd335216edce43;p=gigi.git diff --git a/src/org/cacert/gigi/pages/account/domain/PingConfigForm.java b/src/org/cacert/gigi/pages/account/domain/PingConfigForm.java index 5b5da852..1810b7ae 100644 --- a/src/org/cacert/gigi/pages/account/domain/PingConfigForm.java +++ b/src/org/cacert/gigi/pages/account/domain/PingConfigForm.java @@ -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 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); } }