Hm, I'm a little concerned about the `sendto` and `recvfrom` interface then. If you may not necessarily be working with ip-based protocols, then it seems like the wrong api to return a `IpAddr` from them?

It would also seem odd to return a `libc::sockaddr_storage`, though. Do you know what other `sockaddr` variants are used?