---
title: llarp::apple

---

# llarp::apple



## Classes

|                | Name           |
| -------------- | -------------- |
| struct | **[llarp::apple::Context](Classes/structllarp_1_1apple_1_1Context.md)**  |
| class | **[llarp::apple::RouteManager](Classes/classllarp_1_1apple_1_1RouteManager.md)**  |
| class | **[llarp::apple::VPNInterface](Classes/classllarp_1_1apple_1_1VPNInterface.md)**  |
| class | **[llarp::apple::VPNPlatform](Classes/classllarp_1_1apple_1_1VPNPlatform.md)**  |

## Attributes

|                | Name           |
| -------------- | -------------- |
| constexpr std::uint16_t | **[dns_trampoline_port](Namespaces/namespacellarp_1_1apple.md#variable-dns-trampoline-port)** <br>Localhost port on macOS where we proxy DNS requests _through_ the tunnel, because without calling into special snowflake Apple network APIs an extension's network connections all go around the tunnel, even when the tunnel is (supposedly) the default route.  |
| constexpr std::uint16_t | **[dns_trampoline_source_port](Namespaces/namespacellarp_1_1apple.md#variable-dns-trampoline-source-port)** <br>We query the above trampoline from unbound with this fixed source port (so that the trampoline is simplified by not having to track different ports for different requests).  |



## Attributes Documentation

### variable dns_trampoline_port

```cpp
constexpr std::uint16_t dns_trampoline_port = 1053;
```

Localhost port on macOS where we proxy DNS requests _through_ the tunnel, because without calling into special snowflake Apple network APIs an extension's network connections all go around the tunnel, even when the tunnel is (supposedly) the default route. 

### variable dns_trampoline_source_port

```cpp
constexpr std::uint16_t dns_trampoline_source_port = 1054;
```

We query the above trampoline from unbound with this fixed source port (so that the trampoline is simplified by not having to track different ports for different requests). 




-------------------------------

Updated on 2022-09-01 at 18:16:52 +0000