OSDN Git Service

fix networking on win32 host
authorJuha Riihimäki <juha.riihimaki@nokia.com>
Thu, 3 Dec 2009 13:56:04 +0000 (15:56 +0200)
committerAurelien Jarno <aurelien@aurel32.net>
Fri, 18 Dec 2009 22:23:56 +0000 (23:23 +0100)
At least under some mingw compilers slirp networking fails without declaring
these fields packed.

From: Juha Riihimäki <juha.riihimaki@nokia.com>
Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com>
Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
slirp/ip.h

index 5074e33..8d185a1 100644 (file)
@@ -91,7 +91,7 @@ struct ip {
        u_int8_t ip_p;                  /* protocol */
        u_int16_t       ip_sum;                 /* checksum */
        struct  in_addr ip_src,ip_dst;  /* source and dest address */
-};
+} __attribute__((packed));
 
 #define        IP_MAXPACKET    65535           /* maximum packet size */
 
@@ -153,7 +153,7 @@ struct      ip_timestamp {
                        n_long ipt_time;
                } ipt_ta[1];
        } ipt_timestamp;
-};
+} __attribute__((packed));
 
 /* flag bits for ipt_flg */
 #define        IPOPT_TS_TSONLY         0               /* timestamps only */
@@ -183,11 +183,11 @@ struct    ip_timestamp {
 struct mbuf_ptr {
        struct mbuf *mptr;
        uint32_t dummy;
-};
+} __attribute__((packed));
 #else
 struct mbuf_ptr {
        struct mbuf *mptr;
-};
+} __attribute__((packed));
 #endif
 struct qlink {
        void *next, *prev;
@@ -219,7 +219,7 @@ struct ipq {
        u_int8_t        ipq_p;                  /* protocol of this fragment */
        u_int16_t       ipq_id;                 /* sequence id for reassembly */
        struct  in_addr ipq_src,ipq_dst;
-};
+} __attribute__((packed));
 
 /*
  * Ip header, when holding a fragment.
@@ -229,7 +229,7 @@ struct ipq {
 struct ipasfrag {
        struct qlink ipf_link;
        struct ip ipf_ip;
-};
+} __attribute__((packed));
 
 #define ipf_off      ipf_ip.ip_off
 #define ipf_tos      ipf_ip.ip_tos
@@ -248,6 +248,6 @@ struct      ipasfrag {
 struct ipoption {
        struct  in_addr ipopt_dst;      /* first-hop dst if source routed */
        int8_t  ipopt_list[MAX_IPOPTLEN];       /* options proper */
-};
+} __attribute__((packed));
 
 #endif