diff mbox series

[v2,for-3.2,v2,01/30] fixup! net: do not depend on slirp internals

Message ID 20181121220647.18844-2-marcandre.lureau@redhat.com
State New
Headers show
Series slirp: make it again a standalone project | expand

Commit Message

Marc-André Lureau Nov. 21, 2018, 10:06 p.m. UTC
Somehow, I broke the build and failed to detect it. Please squash!

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 net/colo.h |  1 +
 net/util.h | 26 ++++++++++++++++++++++++++
 2 files changed, 27 insertions(+)

Comments

Samuel Thibault Nov. 21, 2018, 10:10 p.m. UTC | #1
Marc-André Lureau, le jeu. 22 nov. 2018 02:06:18 +0400, a ecrit:
> Somehow, I broke the build and failed to detect it. Please squash!

> +#include "qemu/osdep.h"
> +
> +typedef uint32_t tcp_seq;

I preferred to just use uint32_t instead of tcp_seq in the couple of
places where this showed up.

>  /*
>   * Structure of an internet header, naked of options.
> @@ -50,6 +53,29 @@ struct ip {
>      struct in_addr ip_src, ip_dst;  /* source and dest address */
>  } QEMU_PACKED;
>  
> +/*
> + * TCP header.
> + * Per RFC 793, September, 1981.
> + */
> +#define tcphdr slirp_tcphdr
> +struct tcphdr {
> +    uint16_t th_sport;      /* source port */
> +    uint16_t th_dport;      /* destination port */
> +    tcp_seq th_seq;         /* sequence number */
> +    tcp_seq th_ack;         /* acknowledgement number */
> +#ifdef HOST_WORDS_BIGENDIAN
> +    uint8_t th_off:4,       /* data offset */
> +            th_x2:4;        /* (unused) */
> +#else
> +    uint8_t th_x2:4,        /* (unused) */
> +            th_off:4;       /* data offset */
> +#endif
> +    uint8_t th_flags;
> +    uint16_t th_win;        /* window */
> +    uint16_t th_sum;        /* checksum */
> +    uint16_t th_urp;        /* urgent pointer */
> +};
> +

We already have struct tcp_hdr, in include/net/eth.h, so I used that
instead.

Too bad I have worked on that just a few minutes ago :)

Samuel
Marc-André Lureau Nov. 22, 2018, 7:14 a.m. UTC | #2
Hi

On Thu, Nov 22, 2018 at 2:41 AM Samuel Thibault <samuel.thibault@gnu.org> wrote:
>
> Marc-André Lureau, le jeu. 22 nov. 2018 02:06:18 +0400, a ecrit:
> > Somehow, I broke the build and failed to detect it. Please squash!
>
> > +#include "qemu/osdep.h"
> > +
> > +typedef uint32_t tcp_seq;
>
> I preferred to just use uint32_t instead of tcp_seq in the couple of
> places where this showed up.
>
> >  /*
> >   * Structure of an internet header, naked of options.
> > @@ -50,6 +53,29 @@ struct ip {
> >      struct in_addr ip_src, ip_dst;  /* source and dest address */
> >  } QEMU_PACKED;
> >
> > +/*
> > + * TCP header.
> > + * Per RFC 793, September, 1981.
> > + */
> > +#define tcphdr slirp_tcphdr
> > +struct tcphdr {
> > +    uint16_t th_sport;      /* source port */
> > +    uint16_t th_dport;      /* destination port */
> > +    tcp_seq th_seq;         /* sequence number */
> > +    tcp_seq th_ack;         /* acknowledgement number */
> > +#ifdef HOST_WORDS_BIGENDIAN
> > +    uint8_t th_off:4,       /* data offset */
> > +            th_x2:4;        /* (unused) */
> > +#else
> > +    uint8_t th_x2:4,        /* (unused) */
> > +            th_off:4;       /* data offset */
> > +#endif
> > +    uint8_t th_flags;
> > +    uint16_t th_win;        /* window */
> > +    uint16_t th_sum;        /* checksum */
> > +    uint16_t th_urp;        /* urgent pointer */
> > +};
> > +
>
> We already have struct tcp_hdr, in include/net/eth.h, so I used that
> instead.
>
> Too bad I have worked on that just a few minutes ago :)

Great, thank you! and I prefer your solution :)
diff mbox series

Patch

diff --git a/net/colo.h b/net/colo.h
index 420d916af2..b2f60e4d56 100644
--- a/net/colo.h
+++ b/net/colo.h
@@ -18,6 +18,7 @@ 
 #include "qemu/jhash.h"
 #include "qemu/timer.h"
 #include "net/eth.h"
+#include "util.h"
 
 #define HASHTABLE_MAX_SIZE 16384
 
diff --git a/net/util.h b/net/util.h
index 358185fd50..0e0748913a 100644
--- a/net/util.h
+++ b/net/util.h
@@ -25,6 +25,9 @@ 
 #ifndef QEMU_NET_UTIL_H
 #define QEMU_NET_UTIL_H
 
+#include "qemu/osdep.h"
+
+typedef uint32_t tcp_seq;
 
 /*
  * Structure of an internet header, naked of options.
@@ -50,6 +53,29 @@  struct ip {
     struct in_addr ip_src, ip_dst;  /* source and dest address */
 } QEMU_PACKED;
 
+/*
+ * TCP header.
+ * Per RFC 793, September, 1981.
+ */
+#define tcphdr slirp_tcphdr
+struct tcphdr {
+    uint16_t th_sport;      /* source port */
+    uint16_t th_dport;      /* destination port */
+    tcp_seq th_seq;         /* sequence number */
+    tcp_seq th_ack;         /* acknowledgement number */
+#ifdef HOST_WORDS_BIGENDIAN
+    uint8_t th_off:4,       /* data offset */
+            th_x2:4;        /* (unused) */
+#else
+    uint8_t th_x2:4,        /* (unused) */
+            th_off:4;       /* data offset */
+#endif
+    uint8_t th_flags;
+    uint16_t th_win;        /* window */
+    uint16_t th_sum;        /* checksum */
+    uint16_t th_urp;        /* urgent pointer */
+};
+
 static inline bool in6_equal_net(const struct in6_addr *a,
                                  const struct in6_addr *b,
                                  int prefix_len)