# DnsOptions.StaleDnsOptions.Builder

Added in[API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in[S Extensions 7](https://developer.android.com/sdkExtensions)

# Builder

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder "View this page in Java")  

```
class Builder
```

|---|------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)                                                                             ||
| ↳ | [android.net.http.DnsOptions.StaleDnsOptions.Builder](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions.Builder#) |

Builder for[StaleDnsOptions](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions).

## Summary

|                                                          Public constructors                                                          ||
|------------------------------------------------------------------------------------------------------------------------------------|---|
| [Builder](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions.Builder#Builder())`()` <br /> |

|                                                                                                                                                                                                                                                              Public methods                                                                                                                                                                                                                                                              ||
|-------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [DnsOptions.StaleDnsOptions](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions)                  | [build](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions.Builder#build())`()` Creates and returns the final[StaleDnsOptions](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions)instance, based on the values in this builder.                                                                              |
| [DnsOptions.StaleDnsOptions.Builder](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions.Builder#) | [setAllowCrossNetworkUsage](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions.Builder#setAllowCrossNetworkUsage(kotlin.Int))`(`state:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` Sets whether to return results originating from other networks or not.                                                         |
| [DnsOptions.StaleDnsOptions.Builder](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions.Builder#) | [setFreshLookupTimeout](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions.Builder#setFreshLookupTimeout(java.time.Duration))`(`freshLookupTimeout:` `[Duration](https://developer.android.com/reference/kotlin/java/time/Duration.html#)`)` Sets how long (in milliseconds) to wait for a DNS request to return before using a stale result instead. |
| [DnsOptions.StaleDnsOptions.Builder](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions.Builder#) | [setMaxExpiredDelay](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions.Builder#setMaxExpiredDelay(java.time.Duration))`(`maxExpiredDelay:` `[Duration](https://developer.android.com/reference/kotlin/java/time/Duration.html#)`)` Sets how long (in milliseconds) past expiration to consider using expired results.                                |
| [DnsOptions.StaleDnsOptions.Builder](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions.Builder#) | [setUseStaleOnNameNotResolved](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions.Builder#setUseStaleOnNameNotResolved(kotlin.Int))`(`state:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` Sets whether to allow use of stale DNS results when network resolver fails to resolve the hostname.                      |

## Public constructors

### Builder

Added in[API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in[S Extensions 7](https://developer.android.com/sdkExtensions)  

```
Builder()
```

## Public methods

### build

Added in[API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in[S Extensions 7](https://developer.android.com/sdkExtensions)  

```
fun build(): DnsOptions.StaleDnsOptions
```

Creates and returns the final[StaleDnsOptions](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions)instance, based on the values in this builder.

|                                                                        Return                                                                         ||
|--------------------------------------------------------------------------------------------------------------------------|-----------------------------|
| [DnsOptions.StaleDnsOptions](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions) | This value cannot be`null`. |

### setAllowCrossNetworkUsage

Added in[API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in[S Extensions 7](https://developer.android.com/sdkExtensions)  

```
fun setAllowCrossNetworkUsage(state: Int): DnsOptions.StaleDnsOptions.Builder
```

Sets whether to return results originating from other networks or not. Normally, the HTTP stack clears the DNS cache entirely when switching connections, e.g. between two Wi-Fi networks or from Wi-Fi to 4G.

|                                                                                                                                                                                                                                                                                                        Parameters                                                                                                                                                                                                                                                                                                         ||
|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `state` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):one of the DNS_OPTION_\* values Value is[android.net.http.DnsOptions#DNS_OPTION_UNSPECIFIED](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions#DNS_OPTION_UNSPECIFIED:kotlin.Int),[android.net.http.DnsOptions#DNS_OPTION_ENABLED](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions#DNS_OPTION_ENABLED:kotlin.Int), or[android.net.http.DnsOptions#DNS_OPTION_DISABLED](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions#DNS_OPTION_DISABLED:kotlin.Int) |

|                                                                                             Return                                                                                              ||
|-------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------|
| [DnsOptions.StaleDnsOptions.Builder](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions.Builder#) | the builder for chaining This value cannot be`null`. |

### setFreshLookupTimeout

Added in[API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in[S Extensions 7](https://developer.android.com/sdkExtensions)  

```
fun setFreshLookupTimeout(freshLookupTimeout: Duration): DnsOptions.StaleDnsOptions.Builder
```

Sets how long (in milliseconds) to wait for a DNS request to return before using a stale result instead. If set to zero, returns stale results instantly but continues the DNS request in the background to update the cache.

|                                                              Parameters                                                               ||
|----------------------|-----------------------------------------------------------------------------------------------------------------|
| `freshLookupTimeout` | [Duration](https://developer.android.com/reference/kotlin/java/time/Duration.html#):This value cannot be`null`. |

|                                                                                             Return                                                                                              ||
|-------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------|
| [DnsOptions.StaleDnsOptions.Builder](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions.Builder#) | the builder for chaining This value cannot be`null`. |

### setMaxExpiredDelay

Added in[API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in[S Extensions 7](https://developer.android.com/sdkExtensions)  

```
fun setMaxExpiredDelay(maxExpiredDelay: Duration): DnsOptions.StaleDnsOptions.Builder
```

Sets how long (in milliseconds) past expiration to consider using expired results. Setting the value to zero means expired records can be used indefinitely.

|                                                             Parameters                                                             ||
|-------------------|-----------------------------------------------------------------------------------------------------------------|
| `maxExpiredDelay` | [Duration](https://developer.android.com/reference/kotlin/java/time/Duration.html#):This value cannot be`null`. |

|                                                                                             Return                                                                                              ||
|-------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------|
| [DnsOptions.StaleDnsOptions.Builder](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions.Builder#) | the builder for chaining This value cannot be`null`. |

### setUseStaleOnNameNotResolved

Added in[API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in[S Extensions 7](https://developer.android.com/sdkExtensions)  

```
fun setUseStaleOnNameNotResolved(state: Int): DnsOptions.StaleDnsOptions.Builder
```

Sets whether to allow use of stale DNS results when network resolver fails to resolve the hostname.

Depending on the use case, if the DNS resolver quickly sees a fresh failure, it may be desirable to use the failure as it is technically the fresher result, and we had such a fresh result quickly; or, prefer having any result (even if stale) to use over dealing with a DNS failure.

|                                                                                                                                                                                                                                                                                                        Parameters                                                                                                                                                                                                                                                                                                         ||
|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `state` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):one of the DNS_OPTION_\* values Value is[android.net.http.DnsOptions#DNS_OPTION_UNSPECIFIED](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions#DNS_OPTION_UNSPECIFIED:kotlin.Int),[android.net.http.DnsOptions#DNS_OPTION_ENABLED](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions#DNS_OPTION_ENABLED:kotlin.Int), or[android.net.http.DnsOptions#DNS_OPTION_DISABLED](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions#DNS_OPTION_DISABLED:kotlin.Int) |

|                                                                                             Return                                                                                              ||
|-------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------|
| [DnsOptions.StaleDnsOptions.Builder](https://developer.android.com/reference/kotlin/android/net/http/DnsOptions.StaleDnsOptions.Builder#) | the builder for chaining This value cannot be`null`. |