mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-03-31 17:55:36 +00:00
udp protocol: rename "write" and "from_bytes" methods
This commit is contained in:
parent
f30ab82371
commit
1c59972834
9 changed files with 27 additions and 27 deletions
|
|
@ -290,7 +290,7 @@ mod tests {
|
||||||
|
|
||||||
let mut buf = Vec::new();
|
let mut buf = Vec::new();
|
||||||
|
|
||||||
response.write(&mut buf).unwrap();
|
response.write_bytes(&mut buf).unwrap();
|
||||||
|
|
||||||
println!("Buffer len: {}", buf.len());
|
println!("Buffer len: {}", buf.len());
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -198,7 +198,7 @@ impl SocketWorker {
|
||||||
}
|
}
|
||||||
|
|
||||||
let src = CanonicalSocketAddr::new(src);
|
let src = CanonicalSocketAddr::new(src);
|
||||||
let request_parsable = match Request::from_bytes(
|
let request_parsable = match Request::parse_bytes(
|
||||||
&self.buffer[..bytes_read],
|
&self.buffer[..bytes_read],
|
||||||
self.config.protocol.max_scrape_torrents,
|
self.config.protocol.max_scrape_torrents,
|
||||||
) {
|
) {
|
||||||
|
|
@ -431,7 +431,7 @@ impl SocketWorker {
|
||||||
) {
|
) {
|
||||||
let mut buffer = Cursor::new(&mut buffer[..]);
|
let mut buffer = Cursor::new(&mut buffer[..]);
|
||||||
|
|
||||||
if let Err(err) = response.write(&mut buffer) {
|
if let Err(err) = response.write_bytes(&mut buffer) {
|
||||||
::log::error!("failed writing response to buffer: {:#}", err);
|
::log::error!("failed writing response to buffer: {:#}", err);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -138,7 +138,7 @@ impl RecvHelper {
|
||||||
|
|
||||||
let addr = CanonicalSocketAddr::new(addr);
|
let addr = CanonicalSocketAddr::new(addr);
|
||||||
|
|
||||||
let request = Request::from_bytes(msg.payload_data(), self.max_scrape_torrents)
|
let request = Request::parse_bytes(msg.payload_data(), self.max_scrape_torrents)
|
||||||
.map_err(|err| Error::RequestParseError(err, addr))?;
|
.map_err(|err| Error::RequestParseError(err, addr))?;
|
||||||
|
|
||||||
Ok((request, addr))
|
Ok((request, addr))
|
||||||
|
|
|
||||||
|
|
@ -196,7 +196,7 @@ impl SendBuffer {
|
||||||
|
|
||||||
let mut cursor = Cursor::new(&mut self.bytes[..]);
|
let mut cursor = Cursor::new(&mut self.bytes[..]);
|
||||||
|
|
||||||
match response.write(&mut cursor) {
|
match response.write_bytes(&mut cursor) {
|
||||||
Ok(()) => {
|
Ok(()) => {
|
||||||
self.iovec.iov_len = cursor.position() as usize;
|
self.iovec.iov_len = cursor.position() as usize;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@ pub fn request_and_response(
|
||||||
let mut buffer = Cursor::new(&mut buffer[..]);
|
let mut buffer = Cursor::new(&mut buffer[..]);
|
||||||
|
|
||||||
request
|
request
|
||||||
.write(&mut buffer)
|
.write_bytes(&mut buffer)
|
||||||
.with_context(|| "write request")?;
|
.with_context(|| "write request")?;
|
||||||
|
|
||||||
let bytes_written = buffer.position() as usize;
|
let bytes_written = buffer.position() as usize;
|
||||||
|
|
@ -119,6 +119,6 @@ pub fn request_and_response(
|
||||||
.recv_from(&mut buffer)
|
.recv_from(&mut buffer)
|
||||||
.with_context(|| "recv response")?;
|
.with_context(|| "recv response")?;
|
||||||
|
|
||||||
Response::from_bytes(&buffer[..bytes_read], true).with_context(|| "parse response")
|
Response::parse_bytes(&buffer[..bytes_read], true).with_context(|| "parse response")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ fn no_response(
|
||||||
let mut buffer = Cursor::new(&mut buffer[..]);
|
let mut buffer = Cursor::new(&mut buffer[..]);
|
||||||
|
|
||||||
request
|
request
|
||||||
.write(&mut buffer)
|
.write_bytes(&mut buffer)
|
||||||
.with_context(|| "write request")?;
|
.with_context(|| "write request")?;
|
||||||
|
|
||||||
let bytes_written = buffer.position() as usize;
|
let bytes_written = buffer.position() as usize;
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@ impl Worker {
|
||||||
|
|
||||||
for _ in events.iter() {
|
for _ in events.iter() {
|
||||||
while let Ok(amt) = self.socket.recv(&mut self.buffer) {
|
while let Ok(amt) = self.socket.recv(&mut self.buffer) {
|
||||||
match Response::from_bytes(&self.buffer[0..amt], self.addr.is_ipv4()) {
|
match Response::parse_bytes(&self.buffer[0..amt], self.addr.is_ipv4()) {
|
||||||
Ok(response) => {
|
Ok(response) => {
|
||||||
if let Some(request) = self.process_response(response) {
|
if let Some(request) = self.process_response(response) {
|
||||||
self.send_request(request);
|
self.send_request(request);
|
||||||
|
|
@ -288,7 +288,7 @@ impl Worker {
|
||||||
fn send_request(&mut self, request: Request) {
|
fn send_request(&mut self, request: Request) {
|
||||||
let mut cursor = Cursor::new(self.buffer);
|
let mut cursor = Cursor::new(self.buffer);
|
||||||
|
|
||||||
match request.write(&mut cursor) {
|
match request.write_bytes(&mut cursor) {
|
||||||
Ok(()) => {
|
Ok(()) => {
|
||||||
let position = cursor.position() as usize;
|
let position = cursor.position() as usize;
|
||||||
let inner = cursor.get_ref();
|
let inner = cursor.get_ref();
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ pub enum Request {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Request {
|
impl Request {
|
||||||
pub fn write(self, bytes: &mut impl Write) -> Result<(), io::Error> {
|
pub fn write_bytes(self, bytes: &mut impl Write) -> Result<(), io::Error> {
|
||||||
match self {
|
match self {
|
||||||
Request::Connect(r) => {
|
Request::Connect(r) => {
|
||||||
bytes.write_i64::<NetworkEndian>(PROTOCOL_IDENTIFIER)?;
|
bytes.write_i64::<NetworkEndian>(PROTOCOL_IDENTIFIER)?;
|
||||||
|
|
@ -42,7 +42,7 @@ impl Request {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn from_bytes(bytes: &[u8], max_scrape_torrents: u8) -> Result<Self, RequestParseError> {
|
pub fn parse_bytes(bytes: &[u8], max_scrape_torrents: u8) -> Result<Self, RequestParseError> {
|
||||||
let action = bytes
|
let action = bytes
|
||||||
.get(8..12)
|
.get(8..12)
|
||||||
.map(|bytes| I32::from_bytes(bytes.try_into().unwrap()))
|
.map(|bytes| I32::from_bytes(bytes.try_into().unwrap()))
|
||||||
|
|
@ -323,8 +323,8 @@ mod tests {
|
||||||
fn same_after_conversion(request: Request) -> bool {
|
fn same_after_conversion(request: Request) -> bool {
|
||||||
let mut buf = Vec::new();
|
let mut buf = Vec::new();
|
||||||
|
|
||||||
request.clone().write(&mut buf).unwrap();
|
request.clone().write_bytes(&mut buf).unwrap();
|
||||||
let r2 = Request::from_bytes(&buf[..], ::std::u8::MAX).unwrap();
|
let r2 = Request::parse_bytes(&buf[..], ::std::u8::MAX).unwrap();
|
||||||
|
|
||||||
let success = request == r2;
|
let success = request == r2;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,18 +18,18 @@ pub enum Response {
|
||||||
|
|
||||||
impl Response {
|
impl Response {
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn write(&self, bytes: &mut impl Write) -> Result<(), io::Error> {
|
pub fn write_bytes(&self, bytes: &mut impl Write) -> Result<(), io::Error> {
|
||||||
match self {
|
match self {
|
||||||
Response::Connect(r) => r.write(bytes),
|
Response::Connect(r) => r.write_bytes(bytes),
|
||||||
Response::AnnounceIpv4(r) => r.write(bytes),
|
Response::AnnounceIpv4(r) => r.write_bytes(bytes),
|
||||||
Response::AnnounceIpv6(r) => r.write(bytes),
|
Response::AnnounceIpv6(r) => r.write_bytes(bytes),
|
||||||
Response::Scrape(r) => r.write(bytes),
|
Response::Scrape(r) => r.write_bytes(bytes),
|
||||||
Response::Error(r) => r.write(bytes),
|
Response::Error(r) => r.write_bytes(bytes),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn from_bytes(mut bytes: &[u8], ipv4: bool) -> Result<Self, io::Error> {
|
pub fn parse_bytes(mut bytes: &[u8], ipv4: bool) -> Result<Self, io::Error> {
|
||||||
let action = read_i32_ne(&mut bytes)?;
|
let action = read_i32_ne(&mut bytes)?;
|
||||||
|
|
||||||
match action.get() {
|
match action.get() {
|
||||||
|
|
@ -137,7 +137,7 @@ pub struct ConnectResponse {
|
||||||
|
|
||||||
impl ConnectResponse {
|
impl ConnectResponse {
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn write(&self, bytes: &mut impl Write) -> Result<(), io::Error> {
|
pub fn write_bytes(&self, bytes: &mut impl Write) -> Result<(), io::Error> {
|
||||||
bytes.write_i32::<NetworkEndian>(0)?;
|
bytes.write_i32::<NetworkEndian>(0)?;
|
||||||
bytes.write_all(self.as_bytes())?;
|
bytes.write_all(self.as_bytes())?;
|
||||||
|
|
||||||
|
|
@ -160,7 +160,7 @@ impl<I: Ip> AnnounceResponse<I> {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn write(&self, bytes: &mut impl Write) -> Result<(), io::Error> {
|
pub fn write_bytes(&self, bytes: &mut impl Write) -> Result<(), io::Error> {
|
||||||
bytes.write_i32::<NetworkEndian>(1)?;
|
bytes.write_i32::<NetworkEndian>(1)?;
|
||||||
bytes.write_all(self.fixed.as_bytes())?;
|
bytes.write_all(self.fixed.as_bytes())?;
|
||||||
bytes.write_all((*self.peers.as_slice()).as_bytes())?;
|
bytes.write_all((*self.peers.as_slice()).as_bytes())?;
|
||||||
|
|
@ -186,7 +186,7 @@ pub struct ScrapeResponse {
|
||||||
|
|
||||||
impl ScrapeResponse {
|
impl ScrapeResponse {
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn write(&self, bytes: &mut impl Write) -> Result<(), io::Error> {
|
pub fn write_bytes(&self, bytes: &mut impl Write) -> Result<(), io::Error> {
|
||||||
bytes.write_i32::<NetworkEndian>(2)?;
|
bytes.write_i32::<NetworkEndian>(2)?;
|
||||||
bytes.write_all(self.transaction_id.as_bytes())?;
|
bytes.write_all(self.transaction_id.as_bytes())?;
|
||||||
bytes.write_all((*self.torrent_stats.as_slice()).as_bytes())?;
|
bytes.write_all((*self.torrent_stats.as_slice()).as_bytes())?;
|
||||||
|
|
@ -211,7 +211,7 @@ pub struct ErrorResponse {
|
||||||
|
|
||||||
impl ErrorResponse {
|
impl ErrorResponse {
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn write(&self, bytes: &mut impl Write) -> Result<(), io::Error> {
|
pub fn write_bytes(&self, bytes: &mut impl Write) -> Result<(), io::Error> {
|
||||||
bytes.write_i32::<NetworkEndian>(3)?;
|
bytes.write_i32::<NetworkEndian>(3)?;
|
||||||
bytes.write_all(self.transaction_id.as_bytes())?;
|
bytes.write_all(self.transaction_id.as_bytes())?;
|
||||||
bytes.write_all(self.message.as_bytes())?;
|
bytes.write_all(self.message.as_bytes())?;
|
||||||
|
|
@ -304,8 +304,8 @@ mod tests {
|
||||||
fn same_after_conversion(response: Response, ipv4: bool) -> bool {
|
fn same_after_conversion(response: Response, ipv4: bool) -> bool {
|
||||||
let mut buf = Vec::new();
|
let mut buf = Vec::new();
|
||||||
|
|
||||||
response.clone().write(&mut buf).unwrap();
|
response.clone().write_bytes(&mut buf).unwrap();
|
||||||
let r2 = Response::from_bytes(&buf[..], ipv4).unwrap();
|
let r2 = Response::parse_bytes(&buf[..], ipv4).unwrap();
|
||||||
|
|
||||||
let success = response == r2;
|
let success = response == r2;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue