diff --git a/application/xiu/src/config/errors.rs b/application/xiu/src/config/errors.rs index baa6768a..66d32b37 100644 --- a/application/xiu/src/config/errors.rs +++ b/application/xiu/src/config/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { failure::{Backtrace, Fail}, std::{fmt, io::Error}, diff --git a/library/bytesio/src/bits_errors.rs b/library/bytesio/src/bits_errors.rs index dbab8046..a9100af9 100644 --- a/library/bytesio/src/bits_errors.rs +++ b/library/bytesio/src/bits_errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use super::bytes_errors::BytesReadError; use super::bytes_errors::BytesWriteError; use failure::{Backtrace, Fail}; diff --git a/library/bytesio/src/bytes_errors.rs b/library/bytesio/src/bytes_errors.rs index e1c32e12..73662f47 100644 --- a/library/bytesio/src/bytes_errors.rs +++ b/library/bytesio/src/bytes_errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use super::bytesio_errors::BytesIOError; use std::io; // use tokio::time::Elapsed; diff --git a/library/bytesio/src/bytesio_errors.rs b/library/bytesio/src/bytesio_errors.rs index 73fe415d..d812015f 100644 --- a/library/bytesio/src/bytesio_errors.rs +++ b/library/bytesio/src/bytesio_errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use failure::{Backtrace, Fail}; use std::fmt; use std::io; diff --git a/library/codec/h264/src/errors.rs b/library/codec/h264/src/errors.rs index db35b19d..0613f10d 100644 --- a/library/codec/h264/src/errors.rs +++ b/library/codec/h264/src/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use bytesio::bits_errors::BitError; use failure::{Backtrace, Fail}; use std::fmt; diff --git a/library/common/src/errors.rs b/library/common/src/errors.rs index 2e385b20..ded4a2d2 100644 --- a/library/common/src/errors.rs +++ b/library/common/src/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use failure::{Backtrace, Fail}; use std::fmt; diff --git a/library/container/flv/src/amf0/errors.rs b/library/container/flv/src/amf0/errors.rs index 6a4b0906..4aaceec5 100644 --- a/library/container/flv/src/amf0/errors.rs +++ b/library/container/flv/src/amf0/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { bytesio::bytes_errors::{BytesReadError, BytesWriteError}, failure::{Backtrace, Fail}, diff --git a/library/container/flv/src/errors.rs b/library/container/flv/src/errors.rs index df565f6b..39754b1d 100644 --- a/library/container/flv/src/errors.rs +++ b/library/container/flv/src/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { bytesio::bits_errors::BitError, bytesio::bytes_errors::{BytesReadError, BytesWriteError}, diff --git a/library/container/mpegts/src/errors.rs b/library/container/mpegts/src/errors.rs index 6602b8a4..a041c3da 100644 --- a/library/container/mpegts/src/errors.rs +++ b/library/container/mpegts/src/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { bytesio::bytes_errors::{BytesReadError, BytesWriteError}, failure::{Backtrace, Fail}, diff --git a/library/logger/src/errors.rs b/library/logger/src/errors.rs index 9d259d9c..c9d7f20a 100644 --- a/library/logger/src/errors.rs +++ b/library/logger/src/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use failure::Fail; pub struct LogError { diff --git a/library/streamhub/src/errors.rs b/library/streamhub/src/errors.rs index f57b6481..b5afabf1 100644 --- a/library/streamhub/src/errors.rs +++ b/library/streamhub/src/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use bytesio::bytes_errors::BytesReadError; use bytesio::bytes_errors::BytesWriteError; use failure::Backtrace; diff --git a/protocol/hls/src/errors.rs b/protocol/hls/src/errors.rs index 66685564..5e296cdf 100644 --- a/protocol/hls/src/errors.rs +++ b/protocol/hls/src/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { failure::{Backtrace, Fail}, std::fmt, diff --git a/protocol/httpflv/src/errors.rs b/protocol/httpflv/src/errors.rs index 704c6cbf..966e537a 100644 --- a/protocol/httpflv/src/errors.rs +++ b/protocol/httpflv/src/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use streamhub::errors::StreamHubError; use { diff --git a/protocol/rtmp/src/cache/errors.rs b/protocol/rtmp/src/cache/errors.rs index 387f2a9a..b4bfba89 100644 --- a/protocol/rtmp/src/cache/errors.rs +++ b/protocol/rtmp/src/cache/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { crate::chunk::errors::PackError, bytesio::bytes_errors::BytesReadError, diff --git a/protocol/rtmp/src/chunk/errors.rs b/protocol/rtmp/src/chunk/errors.rs index e13decc4..31ee7722 100644 --- a/protocol/rtmp/src/chunk/errors.rs +++ b/protocol/rtmp/src/chunk/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { failure::{Backtrace, Fail}, bytesio::bytes_errors::{BytesReadError, BytesWriteError}, diff --git a/protocol/rtmp/src/handshake/errors.rs b/protocol/rtmp/src/handshake/errors.rs index dc53a269..ef2963ba 100644 --- a/protocol/rtmp/src/handshake/errors.rs +++ b/protocol/rtmp/src/handshake/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { bytesio::bytes_errors::{BytesReadError, BytesWriteError}, failure::{Backtrace, Fail}, diff --git a/protocol/rtmp/src/messages/errors.rs b/protocol/rtmp/src/messages/errors.rs index 68bdc2d0..f5c5c4ce 100644 --- a/protocol/rtmp/src/messages/errors.rs +++ b/protocol/rtmp/src/messages/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { crate::{ protocol_control_messages::errors::ProtocolControlMessageReaderError, diff --git a/protocol/rtmp/src/netconnection/errors.rs b/protocol/rtmp/src/netconnection/errors.rs index bad50ef3..a1b30d70 100644 --- a/protocol/rtmp/src/netconnection/errors.rs +++ b/protocol/rtmp/src/netconnection/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { crate::chunk::errors::PackError, failure::{Backtrace, Fail}, diff --git a/protocol/rtmp/src/netstream/errors.rs b/protocol/rtmp/src/netstream/errors.rs index 364b3e86..05e65f85 100644 --- a/protocol/rtmp/src/netstream/errors.rs +++ b/protocol/rtmp/src/netstream/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { crate::chunk::errors::PackError, failure::{Backtrace, Fail}, diff --git a/protocol/rtmp/src/protocol_control_messages/errors.rs b/protocol/rtmp/src/protocol_control_messages/errors.rs index df4f207e..7af65050 100644 --- a/protocol/rtmp/src/protocol_control_messages/errors.rs +++ b/protocol/rtmp/src/protocol_control_messages/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { failure::{Backtrace, Fail}, bytesio::bytes_errors::{BytesReadError, BytesWriteError}, diff --git a/protocol/rtmp/src/relay/errors.rs b/protocol/rtmp/src/relay/errors.rs index a3a44963..dfd2c559 100644 --- a/protocol/rtmp/src/relay/errors.rs +++ b/protocol/rtmp/src/relay/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { failure::Fail, std::{fmt, io::Error}, diff --git a/protocol/rtmp/src/remuxer/errors.rs b/protocol/rtmp/src/remuxer/errors.rs index 675e37a7..8c7f46a0 100644 --- a/protocol/rtmp/src/remuxer/errors.rs +++ b/protocol/rtmp/src/remuxer/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { crate::{cache::errors::MetadataError, session::errors::SessionError}, bytesio::bytes_errors::{BytesReadError, BytesWriteError}, diff --git a/protocol/rtmp/src/session/errors.rs b/protocol/rtmp/src/session/errors.rs index 7ca306eb..0b3240de 100644 --- a/protocol/rtmp/src/session/errors.rs +++ b/protocol/rtmp/src/session/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { crate::{ cache::errors::CacheError, diff --git a/protocol/rtmp/src/user_control_messages/errors.rs b/protocol/rtmp/src/user_control_messages/errors.rs index 6292e252..cffeba1d 100644 --- a/protocol/rtmp/src/user_control_messages/errors.rs +++ b/protocol/rtmp/src/user_control_messages/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { bytesio::bytes_errors::{BytesReadError, BytesWriteError}, failure::{Backtrace, Fail}, diff --git a/protocol/rtmp/src/utils/errors.rs b/protocol/rtmp/src/utils/errors.rs index 766c0958..f42e5d27 100644 --- a/protocol/rtmp/src/utils/errors.rs +++ b/protocol/rtmp/src/utils/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { failure::{Backtrace, Fail}, std::fmt, diff --git a/protocol/rtsp/src/relay/errors.rs b/protocol/rtsp/src/relay/errors.rs index 96067865..715031ee 100644 --- a/protocol/rtsp/src/relay/errors.rs +++ b/protocol/rtsp/src/relay/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { failure::Fail, std::{fmt, io::Error}, diff --git a/protocol/rtsp/src/rtp/errors.rs b/protocol/rtsp/src/rtp/errors.rs index ed42b83c..49b88631 100644 --- a/protocol/rtsp/src/rtp/errors.rs +++ b/protocol/rtsp/src/rtp/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { failure::{Backtrace, Fail}, std::fmt, diff --git a/protocol/rtsp/src/rtp/rtcp/errors.rs b/protocol/rtsp/src/rtp/rtcp/errors.rs index 9827253b..4b3c783f 100644 --- a/protocol/rtsp/src/rtp/rtcp/errors.rs +++ b/protocol/rtsp/src/rtp/rtcp/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use bytesio::bytes_errors::BytesReadError; use bytesio::bytes_errors::BytesWriteError; use failure::Fail; diff --git a/protocol/rtsp/src/session/errors.rs b/protocol/rtsp/src/session/errors.rs index d359e6e4..9d2680f7 100644 --- a/protocol/rtsp/src/session/errors.rs +++ b/protocol/rtsp/src/session/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { crate::rtp::errors::{PackerError, UnPackerError}, bytesio::bytes_errors::BytesReadError, diff --git a/protocol/rtsp/src/session/server_session.rs b/protocol/rtsp/src/session/server_session.rs index 19c7dadb..c7383901 100644 --- a/protocol/rtsp/src/session/server_session.rs +++ b/protocol/rtsp/src/session/server_session.rs @@ -48,6 +48,7 @@ use bytesio::bytesio::TcpIO; use std::collections::HashMap; use std::sync::Arc; +use std::net::SocketAddr; use tokio::sync::mpsc; use commonlib::auth::Auth; @@ -81,6 +82,7 @@ pub struct RtspServerSession { pub stream_identifier: Option, pub is_normal_exit: bool, + remote_addr: SocketAddr, } pub struct InterleavedBinaryData { @@ -125,6 +127,7 @@ impl RtspServerSession { // None // }; + let remote_addr = stream.peer_addr().unwrap_or(stream.local_addr().unwrap()); let net_io: Box = Box::new(TcpIO::new(stream)); let io = Arc::new(Mutex::new(net_io)); @@ -141,6 +144,7 @@ impl RtspServerSession { auth, stream_identifier: None, is_normal_exit: false, + remote_addr, } } @@ -159,7 +163,7 @@ impl RtspServerSession { if let Ok(data) = InterleavedBinaryData::new(&mut self.reader) { match data { Some(a) => { - if self.reader.len() < a.length as usize { + while self.reader.len() < a.length as usize { let data = self.io.lock().await.read().await?; self.reader.extend_from_slice(&data[..]); } @@ -428,7 +432,7 @@ impl RtspServerSession { (0, 0) }; - let address = rtsp_request.uri.host.clone(); + let address = self.remote_addr.ip().to_string(); if let Some(rtp_io) = UdpIO::new(address.clone(), rtp_port, 0).await { rtp_server_port = rtp_io.get_local_port(); diff --git a/protocol/webrtc/src/errors.rs b/protocol/webrtc/src/errors.rs index 4185c2a7..7d29ffb7 100644 --- a/protocol/webrtc/src/errors.rs +++ b/protocol/webrtc/src/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use { audiopus::error::Error as OpusError, failure::{Backtrace, Fail}, diff --git a/protocol/webrtc/src/session/errors.rs b/protocol/webrtc/src/session/errors.rs index 280b4f1e..cb755608 100644 --- a/protocol/webrtc/src/session/errors.rs +++ b/protocol/webrtc/src/session/errors.rs @@ -1,3 +1,4 @@ +#![allow(non_local_definitions)] use streamhub::errors::StreamHubError; use { bytesio::bytes_errors::BytesReadError,