Skip to content

Rust library for parsing OpenBSD dhcpd configuration files.

License

Notifications You must be signed in to change notification settings

mskrip/dhcpd-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dhcpd config parser

Rust library for parsing OpenBSD dhcpd configuration files.

The library currently supports only OpenBSD implementation of the dhcpd.leases file format. See man pages

Example usage

use dhcpd_parser::parser;
use dhcpd_parser::parser::LeasesMethods;


let res = parser::parse("
    lease 192.168.0.2 {
        starts 2 2019/01/01 22:00:00 UTC;
        ends 2 2019/01/01 22:00:00 UTC;
        hardware type 11:11:11:11:11:11;
        uid Client1;
        client-hostname \"CLIENTHOSTNAME\";
        hostname \"TESTHOSTNAME\";
        abandoned;
    }

    lease 192.168.0.3 {
        starts 1 1985/01/01 00:00:00 UTC;
        hardware type 22:22:22:22:22:22;
        uid Client2;
        hostname \"TESTHOSTNAME\";
    }
".to_string()).expect("This should be a correct lease file");

let leases = res.unwrap().leases;

assert_eq!(
    leases[0].hostname.as_ref().unwrap(),
    "TESTHOSTNAME",
);
assert_eq!(
    leases[1].dates.starts.unwrap().to_string(),
    "Monday 1985/01/01 00:00:00",
);
assert!(leases[1].dates.ends.is_none());

assert!(leases[0].abandoned);
assert!(!leases[1].abandoned);
assert_eq!(
    leases.client_hostnames(),
    ["CLIENTHOSTNAME".to_owned()]
        .iter()
        .cloned()
        .collect(),
);

About

Rust library for parsing OpenBSD dhcpd configuration files.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages