rust: bssl-tls: Retract accidental datagram trait implementation This DatagramSocket trait should never be implemented back on TlsConnection. Update-Note: a reasonable application should have always used `sync_recv` or `sync_send`. Signed-off-by: Xiangfei Ding <xfding@google.com> Change-Id: Ibc0cb059a814d1633d71533254b3e8a56a6a6964 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/102787 Presubmit-BoringSSL-Verified: boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com <boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Benjamin <davidben@google.com>
diff --git a/rust/bssl-tls/src/connection/io/stdio.rs b/rust/bssl-tls/src/connection/io/stdio.rs index e048bcc..43448ae 100644 --- a/rust/bssl-tls/src/connection/io/stdio.rs +++ b/rust/bssl-tls/src/connection/io/stdio.rs
@@ -18,19 +18,12 @@ use crate::{ ReceiveBuffer, connection::TlsConnection, - context::{ - DtlsMode, // - TlsMode, - }, + context::TlsMode, errors::{ IoError, TlsRetryReason, // }, - io::{ - AbstractSocketResult, - IoStatus, - stdio::DatagramSocket, // - }, // + io::IoStatus, // }; fn translate_res_for_stdio(res: Result<IoStatus, Error>) -> Result<usize, io::Error> { @@ -79,29 +72,3 @@ translate_res_for_stdio(self.flush()).map(|_| ()) } } - -fn translate_result_for_datagram(res: Result<IoStatus, Error>) -> AbstractSocketResult { - match res { - Ok(IoStatus::Ok(bytes)) => AbstractSocketResult::Ok(bytes), - Ok(IoStatus::EndOfStream) | Err(Error::Io(IoError::EndOfStream)) => { - AbstractSocketResult::EndOfStream - } - Ok(IoStatus::Retry(_)) => AbstractSocketResult::Retry, - Ok(IoStatus::Empty | IoStatus::Err) => AbstractSocketResult::Err(Box::new(io::Error::new( - io::ErrorKind::Other, - "transport failed or empty", - ))), - Err(e) => AbstractSocketResult::Err(Box::new(io::Error::new(io::ErrorKind::Other, e))), - } -} - -impl<R> DatagramSocket for TlsConnection<R, DtlsMode> { - fn send(&mut self, datagram: &[u8]) -> AbstractSocketResult { - translate_result_for_datagram(self.sync_send(datagram)) - } - - fn recv(&mut self, datagram: &mut [u8]) -> AbstractSocketResult { - let mut datagram = ReceiveBuffer::new(datagram); - translate_result_for_datagram(self.sync_recv(&mut datagram)) - } -}
diff --git a/rust/bssl-tls/src/io/stdio.rs b/rust/bssl-tls/src/io/stdio.rs index 8da2071..535d5b1 100644 --- a/rust/bssl-tls/src/io/stdio.rs +++ b/rust/bssl-tls/src/io/stdio.rs
@@ -21,7 +21,7 @@ use super::AbstractSocketResult; -/// A datagram socket protocol +/// A datagram socket protocol as backing transport of TLS connection. pub trait DatagramSocket: Send { /// Send a complete datagram through the socket. ///