try fix check privacy mode on conn
Signed-off-by: fufesou <shuanglongchen@yeah.net>
This commit is contained in:
parent
c6bb6955dc
commit
4cd025fcf3
@ -118,15 +118,6 @@ async fn accept_connection_(server: ServerPtr, socket: Stream, secure: bool) ->
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn check_privacy_mode_on(stream: &mut Stream) -> ResultType<()> {
|
||||
if video_service::get_privacy_mode_conn_id() > 0 {
|
||||
let msg_out =
|
||||
crate::common::make_privacy_mode_msg(back_notification::PrivacyModeState::PrvOnByOther);
|
||||
timeout(CONNECT_TIMEOUT, stream.send(&msg_out)).await??;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn create_tcp_connection(
|
||||
server: ServerPtr,
|
||||
stream: Stream,
|
||||
@ -134,8 +125,6 @@ pub async fn create_tcp_connection(
|
||||
secure: bool,
|
||||
) -> ResultType<()> {
|
||||
let mut stream = stream;
|
||||
check_privacy_mode_on(&mut stream).await?;
|
||||
|
||||
let id = {
|
||||
let mut w = server.write().unwrap();
|
||||
w.id_count += 1;
|
||||
|
@ -793,8 +793,18 @@ impl Connection {
|
||||
self.send(msg_out).await;
|
||||
}
|
||||
|
||||
async fn on_open(&mut self, addr: SocketAddr) -> bool {
|
||||
log::debug!("#{} Connection opened from {}.", self.inner.id, addr);
|
||||
async fn check_privacy_mode_on(&mut self) -> bool {
|
||||
if video_service::get_privacy_mode_conn_id() > 0 {
|
||||
self.send_login_error("Someone turns on privacy mode, exit")
|
||||
.await;
|
||||
false
|
||||
}
|
||||
{
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
async fn check_whitelist(&mut self, addr: &SocketAddr) -> bool {
|
||||
let whitelist: Vec<String> = Config::get_option("whitelist")
|
||||
.split(",")
|
||||
.filter(|x| !x.is_empty())
|
||||
@ -822,6 +832,17 @@ impl Connection {
|
||||
sleep(1.).await;
|
||||
return false;
|
||||
}
|
||||
true
|
||||
}
|
||||
|
||||
async fn on_open(&mut self, addr: SocketAddr) -> bool {
|
||||
log::debug!("#{} Connection opened from {}.", self.inner.id, addr);
|
||||
if !self.check_privacy_mode_on().await {
|
||||
return false;
|
||||
}
|
||||
if !self.check_whitelist(&addr).await {
|
||||
return false;
|
||||
}
|
||||
self.ip = addr.ip().to_string();
|
||||
let mut msg_out = Message::new();
|
||||
msg_out.set_hash(self.hash.clone());
|
||||
|
Loading…
x
Reference in New Issue
Block a user