handle last peer error case [CI SKIP]
This commit is contained in:
@@ -33,9 +33,11 @@ impl WireguardController for Userspace {
|
||||
let value_as_num = || parse_err(value.parse::<u64>());
|
||||
let mut peer: Option<Peer> = None;
|
||||
let build_peer = |peer: &mut Option<Peer>, builder: &mut PeerBuilder| -> Result<()> {
|
||||
let built: Result<Peer> = parse_err(builder.build());
|
||||
*peer = Some(built?);
|
||||
*builder = PeerBuilder::default();
|
||||
if builder.has_key() {
|
||||
let built: Result<Peer> = parse_err(builder.build());
|
||||
*peer = Some(built?);
|
||||
*builder = PeerBuilder::default();
|
||||
}
|
||||
Ok(())
|
||||
};
|
||||
let mut add_key = |peer: &mut Option<Peer>, key: ECCKey| -> Result<()> {
|
||||
@@ -50,7 +52,15 @@ impl WireguardController for Userspace {
|
||||
match key.as_ref() {
|
||||
"" => {
|
||||
//Empty line means end of data
|
||||
build_peer(&mut peer, builder); //TODO: handle possible actual error case
|
||||
build_peer(&mut peer, builder).map_err(|err| {
|
||||
Error::new(
|
||||
ErrorKind::InvalidData,
|
||||
format!(
|
||||
"Protocol error, wireguard supplied insufficent data: {}",
|
||||
err
|
||||
),
|
||||
)
|
||||
})?; //TODO: handle possible actual error case
|
||||
}
|
||||
"public_key" => {
|
||||
add_key(&mut peer, parse_err(ECCKey::from_hex(value))?)?;
|
||||
|
Reference in New Issue
Block a user