mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-07-16 06:07:15 +00:00
vmm: config: Implement Clone for NetConfig
The custom version duplicates any FDs that have been provided so that the validation logic used on hotplug, which takes a clone of the config, can be safely carried out. Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
parent
f5084f7c65
commit
ea4a95c4f6
@ -1134,6 +1134,22 @@ impl NetConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Clone for NetConfig {
|
||||||
|
fn clone(&self) -> Self {
|
||||||
|
NetConfig {
|
||||||
|
tap: self.tap.clone(),
|
||||||
|
vhost_socket: self.vhost_socket.clone(),
|
||||||
|
id: self.id.clone(),
|
||||||
|
fds: self
|
||||||
|
.fds
|
||||||
|
.as_ref()
|
||||||
|
// SAFETY: We have been handed these FDs through the API
|
||||||
|
.map(|fds| fds.iter().map(|fd| unsafe { libc::dup(*fd) }).collect()),
|
||||||
|
..*self
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl RngConfig {
|
impl RngConfig {
|
||||||
pub fn parse(rng: &str) -> Result<Self> {
|
pub fn parse(rng: &str) -> Result<Self> {
|
||||||
let mut parser = OptionParser::new();
|
let mut parser = OptionParser::new();
|
||||||
|
@ -183,7 +183,7 @@ impl Default for MemoryConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize, Default)]
|
#[derive(Clone, Copy, Debug, PartialEq, Eq, Deserialize, Serialize, Default)]
|
||||||
pub enum VhostMode {
|
pub enum VhostMode {
|
||||||
#[default]
|
#[default]
|
||||||
Client,
|
Client,
|
||||||
@ -248,7 +248,7 @@ impl Default for DiskConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)]
|
#[derive(Debug, PartialEq, Eq, Deserialize, Serialize)]
|
||||||
pub struct NetConfig {
|
pub struct NetConfig {
|
||||||
#[serde(default = "default_netconfig_tap")]
|
#[serde(default = "default_netconfig_tap")]
|
||||||
pub tap: Option<String>,
|
pub tap: Option<String>,
|
||||||
|
Loading…
Reference in New Issue
Block a user