Skip to content

Commit

Permalink
DoH changes
Browse files Browse the repository at this point in the history
  • Loading branch information
valarpirai committed Jul 31, 2024
1 parent 3c5577f commit c6b497e
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 8 deletions.
11 changes: 6 additions & 5 deletions src/main/kotlin/org/disposableemail/DisposableEmail.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import java.io.BufferedReader
import java.io.IOException
import java.io.InputStream
import java.io.InputStreamReader
import kotlin.reflect.KFunction1

class DisposableEmail private constructor() {
private val maxDomains = 200_000
Expand Down Expand Up @@ -40,7 +39,7 @@ class DisposableEmail private constructor() {
* Verify the given email address is a Disposable mail box. Also, check the given email actually exists
*
*/
fun isDisposableEmail(email: String, checkDns: Boolean = false, dnsResolver: DNS_RESOLVER_TYPE = DNS_RESOLVER_TYPE.CLOUD_FLARE): Boolean {
fun isDisposableEmail(email: String, checkDns: Boolean = true, dnsResolver: DNS_RESOLVER_TYPE = DNS_RESOLVER_TYPE.CLOUD_FLARE): Boolean {
val domain = getInstance().extractDomain(email)
if (getInstance().isDisposable(domain)) {
return true
Expand All @@ -64,15 +63,18 @@ class DisposableEmail private constructor() {
getInstance().blackListedDomains.remove(domain)
}

fun refreshDisposableDomains(performGc: Boolean = false) {
/**
* Download latest disposable email domain list from Github
*/
fun refreshDisposableDomains(performGc: Boolean = true) {
getInstance().refreshDisposableDomains(performGc)
}
}

/**
* By providing email address, it returns whether the domain is a disposable domain
*
* @param email - Email Address
* @param domain - domain of a Email Address
*/
fun isDisposable(domain: String): Boolean {
if (whiteListedDomains.contains(domain)) {
Expand Down Expand Up @@ -149,7 +151,6 @@ class DisposableEmail private constructor() {

// Swap
bloomFilter = tempBloomFilter
println("Data refresh completed..")
}
response.body?.close()
if (performGc)
Expand Down
11 changes: 8 additions & 3 deletions src/main/kotlin/org/disposableemail/dnsoverhttps/DnsResolver.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,25 @@ import com.google.gson.Gson
import okhttp3.OkHttpClient
import okhttp3.Request
import org.disposableemail.Configurations
import java.io.IOException
import kotlin.jvm.Throws

class DnsResolver {
companion object {
private val client = OkHttpClient()
private val gson: Gson = Gson()

@Throws(IOException::class)
fun verifyMxRecordPresent(domain: String, dnsResolver: DNS_RESOLVER_TYPE): Boolean {
val url = "${getResolverUrl(dnsResolver)}?type=MX&name=$domain"
val request = Request.Builder()
.url(getResolverUrl(dnsResolver))
.url(url)
.addHeader("Accept", "application/dns-json")
.build();

val response = client.newCall(request).execute()
response.body?.let {
val resp = gson.fromJson(it.string(), DnsResponse::class.java)
val body = it.string()
val resp = gson.fromJson(body, DnsResponse::class.java)
return !resp.Answer.isNullOrEmpty()
}
return false
Expand Down

0 comments on commit c6b497e

Please sign in to comment.