Patchwork [3/7] fix networking on win32 host

login
register
mail settings
Submitter riku.voipio@nokia.com
Date Dec. 3, 2009, 1:56 p.m.
Message ID <4a9c7e041981cf60d80cb76f9e797fde44b4c1b1.1259836046.git.riku.voipio@nokia.com>
Download mbox | patch
Permalink /patch/40258/
State New
Headers show

Comments

riku.voipio@nokia.com - Dec. 3, 2009, 1:56 p.m.
From: Juha Riihimäki <juha.riihimaki@nokia.com>

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>
---
 slirp/ip.h |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

Patch

diff --git a/slirp/ip.h b/slirp/ip.h
index 5074e33..8d185a1 100644
--- a/slirp/ip.h
+++ b/slirp/ip.h
@@ -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