示例#1
0
 /**
  * Retorna o registro de domínio de um determinado host.
  *
  * @param id a identificação do dono que deve ser retornado.
  * @return o registro de domínio de um determinado host.
  * @throws ProcessException se houver falha no processamento.
  */
 public static Owner getOwner(String id) throws ProcessException {
   String key = normalizeID(id);
   // Busca eficiente O(1).
   if (OWNER_MAP.containsKey(key)) {
     // Owner encontrado.
     Owner owner = OWNER_MAP.get(key);
     owner.queries++;
     if (owner.isRegistryExpired()) {
       // Registro desatualizado.
       // Atualizando campos do registro.
       if (owner.refresh()) {
         // Owner real do resultado WHOIS bate com o registro.
         return owner;
       } else {
         // Owner real do resultado WHOIS não bate com o registro.
         removeOwner(owner);
         // Segue para nova consulta.
       }
     } else {
       // Registro atualizado.
       return owner;
     }
   }
   // Não encontrou o dominio em cache.
   // Selecionando servidor da pesquisa WHOIS.
   String server = Server.WHOIS_BR;
   // Realizando a consulta no WHOIS.
   Owner owner = new Owner(key);
   owner.server = server; // Temporário até final de transição.
   // Adicinando registro em cache.
   addOwner(owner);
   return owner;
 }
示例#2
0
 /**
  * Atualiza o registro de domínio de um determinado host.
  *
  * @param id a identificação do dono que deve ser atualizado.
  * @throws ProcessException se houver falha no processamento.
  */
 public static void refreshOwner(String id) throws ProcessException {
   String key = normalizeID(id);
   // Busca eficiente O(1).
   if (OWNER_MAP.containsKey(key)) {
     // Owner encontrado.
     Owner owner = OWNER_MAP.get(key);
     // Atualizando campos do registro.
     if (!owner.refresh()) {
       // Owner real do resultado WHOIS não bate com o registro.
       // Apagando registro de dono do cache.
       removeOwner(owner);
       // Segue para nova consulta.
     }
   }
   // Não encontrou o dono em cache.
   // Selecionando servidor da pesquisa WHOIS.
   String server = Server.WHOIS_BR;
   // Owner existente.
   // Realizando a consulta no WHOIS.
   Owner owner = new Owner(key);
   owner.server = Server.WHOIS_BR; // Temporário até final de transição.
   // Adicinando registro em cache.
   addOwner(owner);
 }
示例#3
0
 /**
  * Remove o registro de domínio do cache.
  *
  * @param owner o dono que deve ser removido.
  */
 private static synchronized void removeOwner(Owner owner) {
   if (OWNER_MAP.remove(owner.getOwnerID()) != null) {
     // Atualiza flag de atualização.
     OWNER_CHANGED = true;
   }
 }
示例#4
0
 /**
  * Adciiona o registro de domínio no cache.
  *
  * @param owner o owner que deve ser adicionado.
  */
 private static synchronized void addOwner(Owner owner) {
   OWNER_MAP.put(owner.getOwnerID(), owner);
   // Atualiza flag de atualização.
   OWNER_CHANGED = true;
 }