aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2006-05-02 21:09:02 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2006-05-02 21:09:02 +0000
commite553272d759b41e6d1de226c8fad0aab56fefdd6 (patch)
tree3297691f582da08bf799f6b650fbf60a11bba547
parent3aee288bc8e120bd022cbfede2aaf2b2a7ab1dcc (diff)
> 32 KB packet handling (Ed Swierk)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1891 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--slirp/ip.h14
1 files changed, 5 insertions, 9 deletions
diff --git a/slirp/ip.h b/slirp/ip.h
index 8280e55b89..371537d485 100644
--- a/slirp/ip.h
+++ b/slirp/ip.h
@@ -75,10 +75,6 @@ typedef u_int32_t n_long; /* long as received from the net */
/*
* Structure of an internet header, naked of options.
- *
- * We declare ip_len and ip_off to be short, rather than u_short
- * pragmatically since otherwise unsigned comparisons can result
- * against negative integers quite easily, and fail in subtle ways.
*/
struct ip {
#ifdef WORDS_BIGENDIAN
@@ -89,9 +85,9 @@ struct ip {
ip_v:4; /* version */
#endif
u_int8_t ip_tos; /* type of service */
- int16_t ip_len; /* total length */
+ u_int16_t ip_len; /* total length */
u_int16_t ip_id; /* identification */
- int16_t ip_off; /* fragment offset field */
+ u_int16_t ip_off; /* fragment offset field */
#define IP_DF 0x4000 /* don't fragment flag */
#define IP_MF 0x2000 /* more fragments flag */
#define IP_OFFMASK 0x1fff /* mask for fragmenting bits */
@@ -212,7 +208,7 @@ struct ipovly {
caddr32_t ih_next, ih_prev; /* for protocol sequence q's */
u_int8_t ih_x1; /* (unused) */
u_int8_t ih_pr; /* protocol */
- int16_t ih_len; /* protocol length */
+ u_int16_t ih_len; /* protocol length */
struct in_addr ih_src; /* source internet address */
struct in_addr ih_dst; /* destination internet address */
};
@@ -253,9 +249,9 @@ struct ipasfrag {
u_int8_t ipf_mff; /* XXX overlays ip_tos: use low bit
* to avoid destroying tos (PPPDTRuu);
* copied from (ip_off&IP_MF) */
- int16_t ip_len;
+ u_int16_t ip_len;
u_int16_t ip_id;
- int16_t ip_off;
+ u_int16_t ip_off;
u_int8_t ip_ttl;
u_int8_t ip_p;
u_int16_t ip_sum;