Skip to content

Commit 8eadc2f

Browse files
committed
Add log info
1 parent bcd3376 commit 8eadc2f

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

fortanix-vme/ci-fortanixvme.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ function setup_environment {
2929
function start_runner {
3030
pushd fortanix-vme-runner
3131
cargo +${toolchain_version} --locked build
32-
cargo +${toolchain_version} --locked run &
32+
log=$(mktemp /tmp/ci-fortanixvme.log.XXXXX)
33+
RUST_LOG=debug cargo +${toolchain_version} --locked run 2> ${log} &
3334

3435
if [[ -v AWS_VM ]]; then
3536
ssh ubuntu@${AWS_VM} 'mkdir -p /home/ubuntu/ci-fortanixvme'

fortanix-vme/fortanix-vme-runner/src/lib.rs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#![deny(warnings)]
22
use fnv::FnvHashMap;
33
use nix::sys::select::{select, FdSet};
4-
use log::{error, info, warn};
4+
use log::{error, info, log, warn};
55
use serde_cbor::{self, StreamDeserializer};
66
use serde_cbor::de::IoRead;
77
use std::cmp;
@@ -14,6 +14,7 @@ use std::sync::{Arc, Mutex, RwLock};
1414
use fortanix_vme_abi::{self, Addr, Error as VmeError, Response, Request};
1515
use vsock::{self, SockAddr as VsockAddr, Std, Vsock, VsockListener, VsockStream};
1616

17+
const MAX_MESSAGE_LEN: usize = 80;
1718
const PROXY_BUFF_SIZE: usize = 4192;
1819

1920
enum Direction {
@@ -207,26 +208,32 @@ impl<'de> ClientConnection<'de> {
207208
self.sender.peer()?.parse().map_err(|e| IoError::new(IoErrorKind::InvalidData, e))
208209
}
209210

210-
fn log_communication(src: &str, src_port: u32, dst: &str, dst_port: u32, msg: &str, arrow: Direction, prot: &str) {
211+
fn log_communication(level: log::Level, src: &str, src_port: u32, dst: &str, dst_port: u32, msg: &str, arrow: Direction, prot: &str, max_len: Option<usize>) {
211212
let src = format!("{}:{}", src, src_port);
212213
let dst = format!("{}:{}", dst, dst_port);
213-
let msg = &msg[0.. cmp::min(msg.len(), 80)];
214+
let msg = if let Some(max) = max_len {
215+
&msg[0.. cmp::min(msg.len(), max)]
216+
} else {
217+
&msg[..]
218+
};
214219
let arrow = match arrow {
215220
Direction::Left => format!("<{:-^width$}", prot, width = 10),
216221
Direction::Right => format!("{:-^width$}>", prot, width = 10),
217222
};
218-
info!("{:>20} {} {:<20}: {:?}", src, arrow, dst, msg);
223+
log!(level, "{:>20} {} {:<20}: {:?}", src, arrow, dst, msg);
219224
}
220225

221226
pub fn send(&mut self, response: &Response) -> Result<(), IoError> {
222227
Self::log_communication(
228+
log::Level::Info,
223229
"runner",
224230
self.sender.local_port().unwrap_or_default(),
225231
"enclave",
226232
self.sender.peer_port().unwrap_or_default(),
227233
&format!("{:?}", response),
228234
Direction::Right,
229-
"vsock");
235+
"vsock",
236+
None);
230237
let response: Vec<u8> = serde_cbor::ser::to_vec(response)
231238
.map_err(|_| IoError::new(IoErrorKind::InvalidData, "Serialization failed"))?;
232239
self.sender.write(&response)?;
@@ -238,13 +245,15 @@ impl<'de> ClientConnection<'de> {
238245
.ok_or(IoError::new(IoErrorKind::Other, "Failed to read request"))?
239246
.map_err(|e| IoError::new(IoErrorKind::InvalidInput, e))?;
240247
Self::log_communication(
248+
log::Level::Info,
241249
"runner",
242250
self.sender.local_port().unwrap_or_default(),
243251
"enclave",
244252
self.sender.peer_port().unwrap_or_default(),
245253
&format!("{:?}", &req),
246254
Direction::Left,
247-
"vsock");
255+
"vsock",
256+
None);
248257
Ok(req)
249258
}
250259
}

0 commit comments

Comments
 (0)