diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-10-15 11:02:30 +0200 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-10-15 11:02:30 +0200 |
commit | 4093f7ca91b48d8afe4683695a641ab73f08d7c0 (patch) | |
tree | 1d5c016bcb92bc8de67515eadcc5621893c55ade /src | |
parent | c644bc721e72bdd662f2af9da256c73742e62f98 (diff) |
tunnel api: accept owned strings
Diffstat (limited to 'src')
-rw-r--r-- | src/tunnel.rs | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/tunnel.rs b/src/tunnel.rs index 2799c10..65c7ece 100644 --- a/src/tunnel.rs +++ b/src/tunnel.rs @@ -21,7 +21,7 @@ impl Drop for Sit { } impl Sit { - pub fn new(name: &str, master: &str, laddr: Ipv4Addr, raddr: Ipv4Addr) -> Result<Self> { + pub fn new(name: String, master: String, laddr: Ipv4Addr, raddr: Ipv4Addr) -> Result<Self> { let mut vihl = VerIhl::default(); vihl.set_version(4); @@ -49,7 +49,7 @@ impl Sit { }; if p.link == 0 { - return Err(Error::LinkNotFound(master.to_owned())); + return Err(Error::LinkNotFound(master)); } let ifr = IfReq4 { @@ -70,9 +70,7 @@ impl Sit { // but do leave the program in an inconsistent state. libc::close(fd); - Ok(Self { - name: name.to_owned(), - }) + Ok(Self { name }) } fn do_delete(&self) -> Result<()> { @@ -101,7 +99,7 @@ impl Drop for IpIp6 { } impl IpIp6 { - pub fn new(name: &str, master: &str, laddr: Ipv6Addr, raddr: Ipv6Addr) -> Result<Self> { + pub fn new(name: String, master: String, laddr: Ipv6Addr, raddr: Ipv6Addr) -> Result<Self> { let p = IpTunnelParm6 { name: CString::new(name)?, link: libc::if_nametoindex(CString::new(master)?.as_ptr()), @@ -116,7 +114,7 @@ impl IpIp6 { }; if p.link == 0 { - return Err(Error::LinkNotFound(master.to_owned())); + return Err(Error::LinkNotFound(master)); } let ifr = IfReq6 { @@ -137,9 +135,7 @@ impl IpIp6 { // but do leave the program in an inconsistent state. libc::close(fd); - Ok(Self { - name: name.to_owned(), - }) + Ok(Self { name }) } fn do_delete(&self) -> Result<()> { |