diff options
| author | mar-v-in <github@rvin.mooo.com> | 2014-06-23 22:02:18 +0200 | 
|---|---|---|
| committer | mar-v-in <github@rvin.mooo.com> | 2014-06-23 22:02:18 +0200 | 
| commit | 2b18dc741a11b9709eb91cc3a240aa0cfae6d56d (patch) | |
| tree | 96e874d53f00039f3bf6bd8a03d74a34b4e63a66 | |
| parent | 6c42fe58bd2f73966af8a98fd8920ca1762c77e8 (diff) | |
| download | open-keychain-2b18dc741a11b9709eb91cc3a240aa0cfae6d56d.tar.gz open-keychain-2b18dc741a11b9709eb91cc3a240aa0cfae6d56d.tar.bz2 open-keychain-2b18dc741a11b9709eb91cc3a240aa0cfae6d56d.zip | |
Switch to dnsjava
4 files changed, 20 insertions, 17 deletions
| diff --git a/OpenKeychain/build.gradle b/OpenKeychain/build.gradle index ff6f603f4..8fe0cc7c7 100644 --- a/OpenKeychain/build.gradle +++ b/OpenKeychain/build.gradle @@ -19,7 +19,7 @@ dependencies {      compile project(':extern:spongycastle:prov')      compile project(':extern:AppMsg:library')      compile project(':extern:SuperToasts:supertoasts') -    compile project(':extern:dnsjava') +    compile project(':extern:minidns')      compile project(':extern:KeybaseLib:Lib') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/EmailKeyHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/EmailKeyHelper.java index 80f52f914..5d281d5b0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/EmailKeyHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/EmailKeyHelper.java @@ -57,11 +57,13 @@ public class EmailKeyHelper {              }          } -        // Most users don't have the SRV record, so ask a default server as well -        String[] servers = Preferences.getPreferences(context).getKeyServers(); -        if (servers != null && servers.length != 0) { -            HkpKeyserver hkp = new HkpKeyserver(servers[0]); -            keys.addAll(getEmailKeys(mail, hkp)); +        if (keys.isEmpty()) { +            // Most users don't have the SRV record, so ask a default server as well +            String[] servers = Preferences.getPreferences(context).getKeyServers(); +            if (servers != null && servers.length != 0) { +                HkpKeyserver hkp = new HkpKeyserver(servers[0]); +                keys.addAll(getEmailKeys(mail, hkp)); +            }          }          return new ArrayList<ImportKeysListEntry>(keys);      } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java index 2ec9e1c07..1949c9f19 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java @@ -18,6 +18,10 @@  package org.sufficientlysecure.keychain.keyimport; +import de.measite.minidns.Client; +import de.measite.minidns.Question; +import de.measite.minidns.Record; +import de.measite.minidns.record.SRV;  import org.apache.http.HttpEntity;  import org.apache.http.HttpResponse;  import org.apache.http.HttpStatus; @@ -33,10 +37,6 @@ import org.sufficientlysecure.keychain.Constants;  import org.sufficientlysecure.keychain.pgp.PgpHelper;  import org.sufficientlysecure.keychain.pgp.PgpKeyHelper;  import org.sufficientlysecure.keychain.util.Log; -import org.xbill.DNS.Lookup; -import org.xbill.DNS.Record; -import org.xbill.DNS.SRVRecord; -import org.xbill.DNS.Type;  import java.io.IOException;  import java.io.InputStream; @@ -396,19 +396,20 @@ public class HkpKeyserver extends Keyserver {       */      public static HkpKeyserver resolve(String domain) {          try { -            Record[] records = new Lookup("_hkp._tcp." + domain, Type.SRV).run(); +            Record[] records = new Client().query(new Question("_hkp._tcp." + domain, Record.TYPE.SRV)).getAnswers();              if (records.length > 0) {                  Arrays.sort(records, new Comparator<Record>() {                      @Override                      public int compare(Record lhs, Record rhs) { -                        if (!(lhs instanceof SRVRecord)) return 1; -                        if (!(rhs instanceof SRVRecord)) return -1; -                        return ((SRVRecord) lhs).getPriority() - ((SRVRecord) rhs).getPriority(); +                        if (lhs.getPayload().getType() != Record.TYPE.SRV) return 1; +                        if (rhs.getPayload().getType() != Record.TYPE.SRV) return -1; +                        return ((SRV) lhs.getPayload()).getPriority() - ((SRV) rhs.getPayload()).getPriority();                      }                  });                  Record record = records[0]; // This is our best choice -                if (record instanceof SRVRecord) { -                    return new HkpKeyserver(((SRVRecord) record).getTarget().toString(), (short) ((SRVRecord) record).getPort()); +                if (record.getPayload().getType() == Record.TYPE.SRV) { +                    return new HkpKeyserver(((SRV) record.getPayload()).getName(), +                            (short) ((SRV) record.getPayload()).getPort());                  }              }          } catch (Exception ignored) { diff --git a/settings.gradle b/settings.gradle index 24eb03490..4776ae5ee 100644 --- a/settings.gradle +++ b/settings.gradle @@ -12,5 +12,5 @@ include ':extern:spongycastle:pkix'  include ':extern:spongycastle:prov'  include ':extern:AppMsg:library'  include ':extern:SuperToasts:supertoasts' -include ':extern:dnsjava' +include ':extern:minidns'  include ':extern:KeybaseLib:Lib' | 
