# `MdnsLite.CoreMonitor`
[🔗](https://github.com/nerves-networking/mdns_lite/blob/v0.9.1/lib/mdns_lite/core_monitor.ex#L6)

Core logic for network monitors

This module contains most of the logic needed for writing a network monitor.
It's only intended to be called from `MdnsLite.InetMonitor` and
`MdnsLite.VintageNetMonitor`.

# `option`

```elixir
@type option() :: {:excluded_ifnames, [String.t()]} | {:ipv4_only, boolean()}
```

Monitor options

* `:excluded_ifnames` - a list of network interface names to ignore
* `:ipv4_only` - set to `true` to ignore all IPv6 addresses

# `flush_todo_list`

```elixir
@spec flush_todo_list(state()) :: state()
```

# `init`

```elixir
@spec init([option()]) :: state()
```

# `set_ip_list`

```elixir
@spec set_ip_list(state(), String.t(), [:inet.ip_address()]) :: state()
```

# `unset_remaining_ifnames`

```elixir
@spec unset_remaining_ifnames(state(), [String.t()]) :: state()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
