RServer
A library for intercepting/sniffing TCP requests, modify headers and responses.
Example
How to use the RServer to intercept/sniff TCP requests.
```rust
use rserver;
fn main() {
let (serverhost, serverport) = ("127.0.0.1", 80);
rserver::startserver(serverhost, server_port);
}
```
How to read the request data and return request data & request length
```rust
fn readrequest(stream: &mut TcpStream) -> (Vec, usize) {
let buffersize = 512;
let mut requestbuff = vec![];
// let us loop & try to read the whole request data
let mut requestlen = 0usize;
loop {
let mut buffer = vec![0; buffersize];
println!("Reading stream data");
match stream.read(&mut buffer) {
Ok(n) => {
println!("Top n:{}", n);
println!("buffer data now: {}", String::fromutf8lossy(&buffer[..]));
if n == 0 {
break;
} else {
requestlen += n;
requestbuff.append(&mut buffer);
// we need not read more data in case we have read less data than buffer size
if n < buffersize {
println!("No Need to read more data");
break;
}
}
}
Err(e) => {
println!("Error in reading stream data: {:?}", e);
break;
}
}
println!("loop stream read code ends here");
}
(request_buff, request_len)
}
``