aboutsummaryrefslogtreecommitdiffstats
path: root/src/configuration/uapi/set.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/configuration/uapi/set.rs')
-rw-r--r--src/configuration/uapi/set.rs13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/configuration/uapi/set.rs b/src/configuration/uapi/set.rs
index e449edd..882e4a7 100644
--- a/src/configuration/uapi/set.rs
+++ b/src/configuration/uapi/set.rs
@@ -109,7 +109,7 @@ impl<'a, C: Configuration> LineParser<'a, C> {
// opt: set listen port
"listen_port" => match value.parse() {
Ok(port) => {
- self.config.set_listen_port(Some(port));
+ self.config.set_listen_port(Some(port))?;
Ok(())
}
Err(_) => Err(ConfigError::InvalidPortNumber),
@@ -119,7 +119,7 @@ impl<'a, C: Configuration> LineParser<'a, C> {
"fwmark" => match value.parse() {
Ok(fwmark) => {
self.config
- .set_fwmark(if fwmark == 0 { None } else { Some(fwmark) });
+ .set_fwmark(if fwmark == 0 { None } else { Some(fwmark) })?;
Ok(())
}
Err(_) => Err(ConfigError::InvalidFwmark),
@@ -142,6 +142,9 @@ impl<'a, C: Configuration> LineParser<'a, C> {
Ok(())
}
+ // ignore (end of transcript)
+ "" => Ok(()),
+
// unknown key
_ => Err(ConfigError::InvalidKey),
},
@@ -227,6 +230,12 @@ impl<'a, C: Configuration> LineParser<'a, C> {
}
}
+ // flush (used at end of transcipt)
+ "" => {
+ flush_peer(self.config, &peer);
+ Ok(())
+ }
+
// unknown key
_ => Err(ConfigError::InvalidKey),
},