Previously, on x86_64, fragments would only be received because
the bpf header was being parsed wrong.  This fixes rumpnet on hurd-amd64.

---
 rumpnet/net-rump.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/rumpnet/net-rump.c b/rumpnet/net-rump.c
index a9627c72..a2a0a188 100644
--- a/rumpnet/net-rump.c
+++ b/rumpnet/net-rump.c
@@ -125,8 +125,13 @@ struct bpf_program {
 #define BPF_BUFSIZE    131072
 
 struct bpf_hdr {
+#if defined (__x86_64__)
+  int64_t usec;
+  int64_t sec;
+#else
   int32_t usec;
   int32_t sec;
+#endif
   uint32_t bh_caplen;  /* length of captured portion */
   uint32_t bh_datalen; /* original length of packet */
   uint16_t bh_hdrlen;  /* length of this struct + alignment padding */
@@ -706,10 +711,7 @@ poll_again:
       todo -= buf_inc;
 
       if (fragment)
-        {
-          mach_print("fragment rcvd, try again\n");
-          return 0;
-        }
+        return 0;
 
       if (!cmp_hwaddr(hdr->h_source, nd->hw_address))
        {
-- 
2.51.0



Reply via email to