vmm: Make ConsoleConfig owned

Convert Path to PathBuf and remove the associated lifetime.

Fixes #298

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
Samuel Ortiz 2019-09-23 19:30:22 +02:00 committed by Rob Bradford
parent 79a02f9171
commit 36137232f0
2 changed files with 9 additions and 9 deletions

View File

@ -417,13 +417,13 @@ impl ConsoleOutputMode {
}
}
pub struct ConsoleConfig<'a> {
pub file: Option<&'a Path>,
pub struct ConsoleConfig {
pub file: Option<PathBuf>,
pub mode: ConsoleOutputMode,
}
impl<'a> ConsoleConfig<'a> {
pub fn parse(param: &'a str) -> Result<Self> {
impl ConsoleConfig {
pub fn parse(param: &str) -> Result<Self> {
if param == "off" {
Ok(Self {
mode: ConsoleOutputMode::Off,
@ -437,7 +437,7 @@ impl<'a> ConsoleConfig<'a> {
} else if param.starts_with("file=") {
Ok(Self {
mode: ConsoleOutputMode::File,
file: Some(Path::new(&param[5..])),
file: Some(PathBuf::from(&param[5..])),
})
} else if param.starts_with("null") {
Ok(Self {
@ -618,8 +618,8 @@ pub struct VmConfig<'a> {
pub rng: RngConfig,
pub fs: Option<Vec<FsConfig>>,
pub pmem: Option<Vec<PmemConfig>>,
pub serial: ConsoleConfig<'a>,
pub console: ConsoleConfig<'a>,
pub serial: ConsoleConfig,
pub console: ConsoleConfig,
pub devices: Option<Vec<DeviceConfig<'a>>>,
pub vhost_user_net: Option<Vec<VhostUserNetConfig<'a>>>,
pub vhost_user_blk: Option<Vec<VhostUserBlkConfig<'a>>>,

View File

@ -325,7 +325,7 @@ impl DeviceManager {
let serial_writer: Option<Box<dyn io::Write + Send>> = match vm_info.vm_cfg.serial.mode {
ConsoleOutputMode::File => Some(Box::new(
File::create(vm_info.vm_cfg.serial.file.unwrap())
File::create(vm_info.vm_cfg.serial.file.as_ref().unwrap())
.map_err(DeviceManagerError::SerialOutputFileOpen)?,
)),
ConsoleOutputMode::Tty => Some(Box::new(stdout())),
@ -386,7 +386,7 @@ impl DeviceManager {
let console_writer: Option<Box<dyn io::Write + Send>> = match vm_info.vm_cfg.console.mode {
ConsoleOutputMode::File => Some(Box::new(
File::create(vm_info.vm_cfg.console.file.unwrap())
File::create(vm_info.vm_cfg.console.file.as_ref().unwrap())
.map_err(DeviceManagerError::ConsoleOutputFileOpen)?,
)),
ConsoleOutputMode::Tty => Some(Box::new(stdout())),