This project is a dynamic IP updater for Cloudflare DNS records. It listens for changes in the IPv4 address of the network interface and updates the DNS records in Cloudflare accordingly.
## Features
- Automatically detects changes in the public IP address.
- Updates Cloudflare DNS records when the public IP changes.
- Listens for network interface events to detect IP changes.
- Handles errors and retries updates to Cloudflare.
Create a `config.toml` file in the current directory or in the configuration directory (typically `~/.config/dynip-cloudflare/`) with the following content:
```toml
zone_id = "your_zone_id"
api_key = "your_api_key"
domains = ["example.com", "sub.example.com"]
max_errors_in_row = 5
```
## Usage
1.**Run the program:**
```sh
./target/release/dynip-cloudflare
```
2.**Logging:**
The program logs to both stderr and a rotating file located in the `logs` directory. The log level is set to `Info`.
## Configuration
### `config.toml`
-`zone_id`: The Zone ID of your Cloudflare domain.
-`api_key`: The API key for your Cloudflare account.
-`domains`: A list of domain names to update.
-`max_errors_in_row`: Maximum number of consecutive errors before the program stops. Will be set to 10 as default
### Example
```toml
zone_id = "your_zone_id"
api_key = "your_api_key"
domains = ["example.com", "sub.example.com"]
max_errors_in_row = 5
```
## Error Handling
The program handles errors gracefully, with retries and logging of error messages. If the number of consecutive errors exceeds `max_errors_in_row`, the program will stop.