#openbsd #config-parser #lease #dhcpd #leases

dhcpd_parser

dhcpd配置文件的解析器。目前仅支持OpenBSD基础实现的dhcpd.leases文件

9个不稳定版本 (3个破坏性更新)

0.4.3 2019年10月17日
0.4.2 2019年10月16日
0.3.1 2019年10月7日
0.2.0 2019年9月30日
0.1.1 2019年9月30日

#787 in 配置

MIT许可证

28KB
685

dhcpd配置解析器

Rust库,用于解析OpenBSD dhcpd配置文件。

该库目前仅支持OpenBSD实现的dhcpd.leases文件格式。请参阅手册页面

使用示例

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(),
);

无运行时依赖