Index: rust-quinn-udp-0.6.1/src/unix.rs
===================================================================
--- rust-quinn-udp-0.6.1.orig/src/unix.rs
+++ rust-quinn-udp-0.6.1/src/unix.rs
@@ -68,6 +68,7 @@ impl UdpSocketState {
     pub fn new(sock: UdpSockRef<'_>) -> io::Result<Self> {
         let io = sock.0;
         let mut cmsg_platform_space = 0;
+        #[cfg(not(target_os = "hurd"))]
         if cfg!(target_os = "linux")
             || cfg!(bsd)
             || cfg!(apple)
@@ -99,6 +100,7 @@ impl UdpSocketState {
             target_os = "openbsd",
             target_os = "netbsd",
             target_os = "dragonfly",
+            target_os = "hurd",
             solarish
         )))]
         if is_ipv4 || !io.only_v6()? {
@@ -236,6 +238,7 @@ impl UdpSocketState {
         target_os = "openbsd",
         target_os = "netbsd",
         target_os = "dragonfly",
+        target_os = "hurd",
         solarish
     )))]
     pub fn recv(
@@ -265,6 +268,7 @@ impl UdpSocketState {
         target_os = "openbsd",
         target_os = "netbsd",
         target_os = "dragonfly",
+        target_os = "hurd",
         solarish,
         apple_slow
     ))]
@@ -549,6 +553,7 @@ fn send_single(state: &UdpSocketState, i
     target_os = "openbsd",
     target_os = "netbsd",
     target_os = "dragonfly",
+    target_os = "hurd",
     solarish
 )))]
 fn recv_via_recvmmsg(
@@ -661,6 +666,7 @@ fn resolve_symbol(lock: &std::sync::Once
     target_os = "openbsd",
     target_os = "netbsd",
     target_os = "dragonfly",
+    target_os = "hurd",
     solarish,
     apple
 ))]
@@ -775,6 +781,8 @@ fn prepare_msg(
                 }
             }
             IpAddr::V6(v6) => {
+              #[cfg(not(target_os = "hurd"))]
+              {
                 let pktinfo = libc::in6_pktinfo {
                     ipi6_ifindex: 0,
                     ipi6_addr: libc::in6_addr {
@@ -782,6 +790,7 @@ fn prepare_msg(
                     },
                 };
                 encoder.push(libc::IPPROTO_IPV6, libc::IPV6_PKTINFO, pktinfo);
+              }
             }
         }
     }
@@ -931,6 +940,7 @@ impl ControlMetadata {
                 target_os = "openbsd",
                 target_os = "netbsd",
                 target_os = "dragonfly",
+                target_os = "hurd",
                 solarish
             )))]
             (libc::IPPROTO_IP, libc::IP_RECVTOS) => unsafe {
@@ -961,6 +971,7 @@ impl ControlMetadata {
                 let in_addr = unsafe { cmsg::decode::<libc::in_addr, libc::cmsghdr>(cmsg) };
                 self.dst_ip = Some(IpAddr::V4(Ipv4Addr::from(in_addr.s_addr.to_ne_bytes())));
             }
+            #[cfg(not(target_os = "hurd"))]
             (libc::IPPROTO_IPV6, libc::IPV6_PKTINFO) => {
                 let pktinfo = unsafe { cmsg::decode::<libc::in6_pktinfo, libc::cmsghdr>(cmsg) };
                 self.dst_ip = Some(IpAddr::V6(Ipv6Addr::from(pktinfo.ipi6_addr.s6_addr)));
