Skip to content

Commit 1c7f972

Browse files
committedDec 31, 2016
Fix length of tx buffers returned by fault injector.
1 parent 5860c36 commit 1c7f972

File tree

5 files changed

+15
-13
lines changed

5 files changed

+15
-13
lines changed
 

‎src/phy/fault_injector.rs

+8-6
Original file line numberDiff line numberDiff line change
@@ -119,19 +119,20 @@ impl<T: Device> Device for FaultInjector<T>
119119
Ok(buffer)
120120
}
121121

122-
fn transmit(&mut self, len: usize) -> Result<Self::TxBuffer, Error> {
122+
fn transmit(&mut self, length: usize) -> Result<Self::TxBuffer, Error> {
123123
let buffer;
124124
if check_rng(&mut self.state, self.config.drop_pct) {
125125
net_trace!("rx: dropping a packet");
126126
buffer = None;
127127
} else {
128-
buffer = Some(try!(self.lower.transmit(len)));
128+
buffer = Some(try!(self.lower.transmit(length)));
129129
}
130130
Ok(TxBuffer {
131131
buffer: buffer,
132132
state: xorshift32(&mut self.state),
133133
config: self.config,
134-
junk: [0; MTU]
134+
junk: [0; MTU],
135+
length: length
135136
})
136137
}
137138
}
@@ -141,15 +142,16 @@ pub struct TxBuffer<T: AsRef<[u8]> + AsMut<[u8]>> {
141142
state: u32,
142143
config: Config,
143144
buffer: Option<T>,
144-
junk: [u8; MTU]
145+
junk: [u8; MTU],
146+
length: usize
145147
}
146148

147149
impl<T: AsRef<[u8]> + AsMut<[u8]>> AsRef<[u8]>
148150
for TxBuffer<T> {
149151
fn as_ref(&self) -> &[u8] {
150152
match self.buffer {
151153
Some(ref buf) => buf.as_ref(),
152-
None => &self.junk[..]
154+
None => &self.junk[..self.length]
153155
}
154156
}
155157
}
@@ -159,7 +161,7 @@ impl<T: AsRef<[u8]> + AsMut<[u8]>> AsMut<[u8]>
159161
fn as_mut(&mut self) -> &mut [u8] {
160162
match self.buffer {
161163
Some(ref mut buf) => buf.as_mut(),
162-
None => &mut self.junk[..]
164+
None => &mut self.junk[..self.length]
163165
}
164166
}
165167
}

‎src/phy/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,5 @@ pub trait Device {
5151
/// It is expected that a `transmit` implementation would gain ownership of a buffer with
5252
/// the requested length, provide it for emission, and schedule it to be read from
5353
/// memory by the network device once it is dropped.
54-
fn transmit(&mut self, len: usize) -> Result<Self::TxBuffer, Error>;
54+
fn transmit(&mut self, length: usize) -> Result<Self::TxBuffer, Error>;
5555
}

‎src/phy/raw_socket.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ impl Device for RawSocket {
4343
Ok(buffer)
4444
}
4545

46-
fn transmit(&mut self, len: usize) -> Result<Self::TxBuffer, Error> {
46+
fn transmit(&mut self, length: usize) -> Result<Self::TxBuffer, Error> {
4747
Ok(TxBuffer {
4848
lower: self.lower.clone(),
49-
buffer: vec![0; len]
49+
buffer: vec![0; length]
5050
})
5151
}
5252
}

‎src/phy/tap_interface.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ impl Device for TapInterface {
4343
Ok(buffer)
4444
}
4545

46-
fn transmit(&mut self, len: usize) -> Result<Self::TxBuffer, Error> {
46+
fn transmit(&mut self, length: usize) -> Result<Self::TxBuffer, Error> {
4747
Ok(TxBuffer {
4848
lower: self.lower.clone(),
49-
buffer: vec![0; len]
49+
buffer: vec![0; length]
5050
})
5151
}
5252
}

‎src/phy/tracer.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ impl<T: Device, U: PrettyPrint> Device for Tracer<T, U> {
5151
Ok(buffer)
5252
}
5353

54-
fn transmit(&mut self, len: usize) -> Result<Self::TxBuffer, Error> {
55-
let buffer = try!(self.lower.transmit(len));
54+
fn transmit(&mut self, length: usize) -> Result<Self::TxBuffer, Error> {
55+
let buffer = try!(self.lower.transmit(length));
5656
Ok(TxBuffer {
5757
buffer: buffer,
5858
writer: self.writer

0 commit comments

Comments
 (0)
Please sign in to comment.