mirror of
https://github.com/shadowsocks/shadowsocks-rust.git
synced 2026-02-09 01:59:16 +08:00
swap read and write stream
This commit is contained in:
@@ -104,15 +104,15 @@ impl TcpRelayLocal {
|
||||
}
|
||||
};
|
||||
|
||||
let local_reader = match stream.try_clone() {
|
||||
let stream_writer = match stream.try_clone() {
|
||||
Ok(s) => s,
|
||||
Err(err) => {
|
||||
error!("Failed to clone local stream: {}", err);
|
||||
return;
|
||||
}
|
||||
};
|
||||
let mut local_reader = BufReader::new(local_reader);
|
||||
let mut local_writer = BufWriter::new(stream);
|
||||
let mut local_reader = BufReader::new(stream);
|
||||
let mut local_writer = BufWriter::new(stream_writer);
|
||||
|
||||
if let Err(err) = TcpRelayLocal::do_handshake(&mut local_reader, &mut local_writer) {
|
||||
error!("Error occurs while doing handshake: {}", err);
|
||||
|
||||
@@ -119,14 +119,14 @@ impl TcpRelayServer {
|
||||
&remote_iv[..],
|
||||
CryptoMode::Decrypt);
|
||||
|
||||
let client_reader = match stream.try_clone() {
|
||||
let mut client_writer = match stream.try_clone() {
|
||||
Ok(s) => s,
|
||||
Err(err) => {
|
||||
error!("Error occurs while cloning client stream: {}", err);
|
||||
return;
|
||||
}
|
||||
};
|
||||
let mut client_writer = stream;
|
||||
let client_reader = stream;
|
||||
|
||||
let iv = encrypt_method.gen_init_vec();
|
||||
let encryptor = cipher::with_type(encrypt_method, &pwd[..], &iv[..], CryptoMode::Encrypt);
|
||||
|
||||
Reference in New Issue
Block a user