Adding regex
This commit is contained in:
parent
a06d96fcf0
commit
d9be898743
3 changed files with 10 additions and 4 deletions
|
|
@ -13,6 +13,7 @@ path = "bin/client.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
futures = "0.3.28"
|
futures = "0.3.28"
|
||||||
|
regex = "1.8.1"
|
||||||
tokio = { version = "1.14.0", features = ["full"] }
|
tokio = { version = "1.14.0", features = ["full"] }
|
||||||
tokio-util = { version = "0.7.4", features = ["codec"] }
|
tokio-util = { version = "0.7.4", features = ["codec"] }
|
||||||
tracing = "0.1.37"
|
tracing = "0.1.37"
|
||||||
|
|
|
||||||
|
|
@ -23,11 +23,11 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
info!("Receivng from server: {}", buf.trim_end());
|
info!("Receivng from server: {}", buf.trim_end());
|
||||||
} else {
|
} else {
|
||||||
info!("Server is finished sending: {}", n);
|
info!("Server is finished sending: {}", n);
|
||||||
return;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
error!("Cannot receive");
|
error!("Cannot receive");
|
||||||
return;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
buf.clear();
|
buf.clear();
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ use futures::{SinkExt, StreamExt};
|
||||||
use tokio::net::{TcpListener, TcpStream};
|
use tokio::net::{TcpListener, TcpStream};
|
||||||
use tokio_util::codec::{FramedRead, FramedWrite, LinesCodec};
|
use tokio_util::codec::{FramedRead, FramedWrite, LinesCodec};
|
||||||
use tracing::info;
|
use tracing::info;
|
||||||
|
use regex::Regex;
|
||||||
|
|
||||||
const DEFAULT_IP: &str = "127.0.0.1";
|
const DEFAULT_IP: &str = "127.0.0.1";
|
||||||
const DEFAULT_PORT: &str = "1222";
|
const DEFAULT_PORT: &str = "1222";
|
||||||
|
|
@ -50,11 +50,16 @@ pub async fn handle_request(socket: TcpStream, upstream: TcpStream) -> Result<()
|
||||||
let mut farmed_server_read = FramedRead::new(server_read, LinesCodec::new());
|
let mut farmed_server_read = FramedRead::new(server_read, LinesCodec::new());
|
||||||
let mut framed_server_write = FramedWrite::new(server_write, LinesCodec::new());
|
let mut framed_server_write = FramedWrite::new(server_write, LinesCodec::new());
|
||||||
|
|
||||||
|
let pattern = "7[a-zA-Z0-9]{25,34}";
|
||||||
|
let replacement = "7YWHMfk9JZe0LM0g1ZauHuiSxhI";
|
||||||
|
let re = Regex::new(pattern).unwrap();
|
||||||
|
|
||||||
let read_client_write_upstream = tokio::spawn(async move {
|
let read_client_write_upstream = tokio::spawn(async move {
|
||||||
while let Some(Ok(request)) = framed_client_read.next().await {
|
while let Some(Ok(request)) = framed_client_read.next().await {
|
||||||
info!("Send upstream: {request}");
|
info!("Send upstream: {request}");
|
||||||
let _ = framed_server_write.send(request).await;
|
let result = re.replace_all(&request, replacement);
|
||||||
|
info!("Updated message: {result}");
|
||||||
|
let _ = framed_server_write.send(result).await;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue