[pbs-devel] [PATCH proxmox v4 3/4] proxmox-async: add connect_to_udp helper
Dominik Csapak
d.csapak at proxmox.com
Tue Feb 1 13:13:56 CET 2022
On 2/1/22 13:02, Thomas Lamprecht wrote:
> A overly "sensitive" review due to getting a new public method, which is
> always more work to change.
>
>
> On 17.01.22 11:48, Dominik Csapak wrote:
>> so that we do not have to always check the target ipaddr family manually
>
> nit: above is slightly to long for our commit message style guide
>
>> index 9a6d8a6..2dd49d4 100644
>> --- a/proxmox-async/src/io/mod.rs
>> +++ b/proxmox-async/src/io/mod.rs
>> @@ -2,3 +2,6 @@
>>
>> mod async_channel_writer;
>> pub use async_channel_writer::AsyncChannelWriter;
>> +
>> +mod udp_connect;
>
> nit: why not just udp? I mean, it's private so we can change any time without
> breaking much, but feel still a bit to narrow/specialized - not really hard
> feelings though.
>
>> +pub use udp_connect::connect_to_udp;
>> diff --git a/proxmox-async/src/io/udp_connect.rs b/proxmox-async/src/io/udp_connect.rs
>> new file mode 100644
>> index 0000000..878b150
>> --- /dev/null
>> +++ b/proxmox-async/src/io/udp_connect.rs
>> @@ -0,0 +1,18 @@
>> +use std::io;
>> +use std::net::SocketAddr;
>> +
>> +use tokio::net::{ToSocketAddrs, UdpSocket};
>> +
>> +/// Helper to connect to UDP addresses without having to manually bind to the correct ip address
>> +pub async fn connect_to_udp<A: ToSocketAddrs + std::fmt::Display>(
>
> name is a bit weird, as one cannot connect to a UDP, maybe dropping the `to`,
> i.e., `udp_connect`, would be already fine?
>
> One alternative could be to make this module `pub mod udp` and name the helper
> either just `connect` or `connect_to`, just throwing out the idea here, not
> much preference.
yes, udp::connect() does look better & cleaner
>
>> + addr: A,
>> +) -> io::Result<UdpSocket> {
>> + let socket = match tokio::net::lookup_host(&addr).await?.next() {> + Some(SocketAddr::V4(_)) => UdpSocket::bind("0.0.0.0:0").await?,
>> + Some(SocketAddr::V6(_)) => UdpSocket::bind("[::]:0").await?,
>> + None => proxmox_sys::io_bail!("could not resolve address family {}", addr),
>
> would it have some merit to use {:?} to loose the Display trait bound?
> Probably not to relevant though.
>
then we'd need the Debug trait though, so no real gain?
More information about the pbs-devel
mailing list