Moved structs into their own file.
This commit is contained in:
parent
504fc87b83
commit
c39b0e898a
|
@ -0,0 +1,47 @@
|
||||||
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
|
#[derive(Debug, Deserialize)]
|
||||||
|
pub struct DNSRecordsHolder {
|
||||||
|
pub records: Vec<DNSRecord>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
|
pub struct DNSRecord {
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
#[serde(default)]
|
||||||
|
pub name: Option<String>,
|
||||||
|
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
#[serde(default)]
|
||||||
|
pub record_type: Option<String>,
|
||||||
|
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
#[serde(default)]
|
||||||
|
pub data: Option<String>,
|
||||||
|
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
#[serde(default)]
|
||||||
|
pub port: Option<u16>, // SRV Only.
|
||||||
|
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
#[serde(default)]
|
||||||
|
pub priority: Option<u32>, // MX and SRV only.
|
||||||
|
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
#[serde(default)]
|
||||||
|
pub protocol: Option<String>, // SRV only.
|
||||||
|
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
#[serde(default)]
|
||||||
|
pub service: Option<String>, // SRV only.
|
||||||
|
|
||||||
|
pub ttl: u32,
|
||||||
|
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
#[serde(default)]
|
||||||
|
pub interpolate: Option<bool>,
|
||||||
|
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
#[serde(default)]
|
||||||
|
pub weight: Option<u32>, // SRV only.
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
use serde::Deserialize;
|
||||||
|
|
||||||
|
#[derive(Deserialize)]
|
||||||
|
pub struct IP {
|
||||||
|
pub origin: String,
|
||||||
|
}
|
|
@ -1,17 +1,16 @@
|
||||||
use serde::Deserialize;
|
use std::fs::{File, read_to_string};
|
||||||
use std::fs::{read_to_string, File};
|
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
use log::debug;
|
use log::debug;
|
||||||
|
|
||||||
|
use crate::ip_handler::ip::IP;
|
||||||
|
|
||||||
|
mod ip;
|
||||||
|
|
||||||
const IP_FILE_NAME: &'static str = "ddns_ip";
|
const IP_FILE_NAME: &'static str = "ddns_ip";
|
||||||
const WEBSITE_URL: &'static str = "https://httpbin.org/ip";
|
const WEBSITE_URL: &'static str = "https://httpbin.org/ip";
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
|
||||||
struct IP {
|
|
||||||
origin: String,
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Returns an Option holding the current IP address if the value has changed, otherwise returns None.
|
/// Returns an Option holding the current IP address if the value has changed, otherwise returns None.
|
||||||
pub async fn get_ip_to_publish() -> Option<String> {
|
pub async fn get_ip_to_publish() -> Option<String> {
|
||||||
let previous_ip = match check_previous_ip() {
|
let previous_ip = match check_previous_ip() {
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
mod go_daddy_ddns;
|
use std::env;
|
||||||
mod ip_handler;
|
|
||||||
|
|
||||||
use log::LevelFilter;
|
use log::LevelFilter;
|
||||||
use simple_logger::SimpleLogger;
|
use simple_logger::SimpleLogger;
|
||||||
use std::env;
|
|
||||||
|
mod go_daddy_ddns;
|
||||||
|
mod ip_handler;
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
|
|
Loading…
Reference in New Issue