X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cadi%2Fclient%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fcadi%2Flocator%2FDNSLocator.java;h=c0b9f375f79689e1a30a34a73883b0c9a13ec23d;hb=1296352d8eafee57f982a4342ad79ada4aa56d28;hp=4711aee62838054a41209bd5e353678d47ba64ea;hpb=3d1706fcbe7f95830ff6fd23cf679ee55c6d0595;p=aaf%2Fauthz.git diff --git a/cadi/client/src/main/java/org/onap/aaf/cadi/locator/DNSLocator.java b/cadi/client/src/main/java/org/onap/aaf/cadi/locator/DNSLocator.java index 4711aee6..c0b9f375 100644 --- a/cadi/client/src/main/java/org/onap/aaf/cadi/locator/DNSLocator.java +++ b/cadi/client/src/main/java/org/onap/aaf/cadi/locator/DNSLocator.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -27,20 +27,21 @@ import java.net.URI; import java.net.URISyntaxException; import org.onap.aaf.cadi.Access; -import org.onap.aaf.cadi.Locator; -import org.onap.aaf.cadi.LocatorException; import org.onap.aaf.cadi.Access.Level; +import org.onap.aaf.cadi.LocatorException; -public class DNSLocator implements Locator { +public class DNSLocator implements SizedLocator { private static enum Status {UNTRIED, OK, INVALID, SLOW}; private static final int CHECK_TIME = 3000; - + private String host, protocol; private Access access; private Host[] hosts; private int startPort, endPort; private String suffix; - + + private int size = 1; // initial, until refreshed. + public DNSLocator(Access access, String protocol, String host, String range) { this.host = host; this.protocol = protocol; @@ -61,11 +62,11 @@ public class DNSLocator implements Locator { throw new LocatorException("Null passed into DNSLocator constructor"); } int start, defPort; - if (aaf_locate.startsWith("https:")) { + if (aaf_locate.startsWith("https://")) { protocol = "https"; start = 8; // https:// defPort = 443; - } else if (aaf_locate.startsWith("http:")) { + } else if (aaf_locate.startsWith("http://")) { protocol = "http"; start = 7; // http:// defPort = 80; @@ -156,13 +157,14 @@ public class DNSLocator implements Locator { } } hosts = temp; + size = temp.length * (endPort-startPort+1); return true; } catch (Exception e) { access.log(Level.ERROR, e); } return false; } - + private String parseHostAndPorts(String aaf_locate, int _start, int defaultPort) throws LocatorException { int slash, start; int colon = aaf_locate.indexOf(':',_start); @@ -191,7 +193,7 @@ public class DNSLocator implements Locator { if(slash>=0) { suffix = aaf_locate.substring(slash); } - + } else { slash = aaf_locate.indexOf('/', start); if (slash == start) { @@ -209,7 +211,7 @@ public class DNSLocator implements Locator { host = slash<_start?aaf_locate.substring(_start):aaf_locate.substring(_start,slash); startPort = endPort = defaultPort; } - + return host; } @@ -217,18 +219,18 @@ public class DNSLocator implements Locator { private URI uri; private InetAddress ia; private Status status; - + public Host(InetAddress inetAddress, int port, String suffix) throws URISyntaxException { ia = inetAddress; uri = new URI(protocol,null,inetAddress.getCanonicalHostName(),port,suffix,null,null); status = Status.UNTRIED; } - + public String toString() { return uri.toString() + " - " + status.name(); } } - + private class DLItem implements Item { public DLItem(int i) { cnt = i; @@ -236,6 +238,10 @@ public class DNSLocator implements Locator { private int cnt; } - + public void destroy() {} + + public int size() { + return size; + } }