diff --git a/apps/webserver/httpd-cgi.c b/apps/webserver/httpd-cgi.c
index ae64aaf27..3496fc08a 100644
--- a/apps/webserver/httpd-cgi.c
+++ b/apps/webserver/httpd-cgi.c
@@ -28,7 +28,7 @@
*
* This file is part of the uIP TCP/IP stack.
*
- * $Id: httpd-cgi.c,v 1.1 2006/06/17 22:41:14 adamdunkels Exp $
+ * $Id: httpd-cgi.c,v 1.2 2006/08/09 16:13:39 bg- Exp $
*
*/
@@ -157,10 +157,10 @@ make_tcp_stats(void *arg)
return sprintf((char *)uip_appdata,
"
%d | %u.%u.%u.%u:%u | %s | %u | %u | %c %c |
\r\n",
htons(conn->lport),
- htons(conn->ripaddr[0]) >> 8,
- htons(conn->ripaddr[0]) & 0xff,
- htons(conn->ripaddr[1]) >> 8,
- htons(conn->ripaddr[1]) & 0xff,
+ conn->ripaddr.u8[0],
+ conn->ripaddr.u8[1],
+ conn->ripaddr.u8[2],
+ conn->ripaddr.u8[3],
htons(conn->rport),
states[conn->tcpstateflags & UIP_TS_MASK],
conn->nrtx,
diff --git a/apps/webserver/httpd.c b/apps/webserver/httpd.c
index 76c2fedea..a90593742 100644
--- a/apps/webserver/httpd.c
+++ b/apps/webserver/httpd.c
@@ -30,7 +30,7 @@
*
* Author: Adam Dunkels
*
- * $Id: httpd.c,v 1.1 2006/06/17 22:41:14 adamdunkels Exp $
+ * $Id: httpd.c,v 1.2 2006/08/09 16:13:39 bg- Exp $
*/
#include "contiki-net.h"
@@ -249,7 +249,7 @@ PT_THREAD(handle_input(struct httpd_state *s))
strncpy(s->filename, &s->inputbuf[0], sizeof(s->filename));
}
- httpd_log_file(uip_conn->ripaddr, s->filename);
+ httpd_log_file(&uip_conn->ripaddr, s->filename);
s->state = STATE_OUTPUT;
diff --git a/apps/webserver/httpd.h b/apps/webserver/httpd.h
index d33904aa5..4e33988b4 100644
--- a/apps/webserver/httpd.h
+++ b/apps/webserver/httpd.h
@@ -28,7 +28,7 @@
*
* This file is part of the uIP TCP/IP stack.
*
- * $Id: httpd.h,v 1.1 2006/06/17 22:41:14 adamdunkels Exp $
+ * $Id: httpd.h,v 1.2 2006/08/09 16:13:39 bg- Exp $
*
*/
@@ -59,6 +59,6 @@ void httpd_init(void);
void httpd_appcall(void *state);
void httpd_log(char *msg);
-void httpd_log_file(u16_t *requester, char *file);
+void httpd_log_file(uip_ipaddr_t *requester, char *file);
#endif /* __HTTPD_H__ */
diff --git a/apps/webserver/webserver-nogui.c b/apps/webserver/webserver-nogui.c
index c1fa396aa..c0791cad1 100644
--- a/apps/webserver/webserver-nogui.c
+++ b/apps/webserver/webserver-nogui.c
@@ -29,7 +29,7 @@
*
* This file is part of the Contiki OS.
*
- * $Id: webserver-nogui.c,v 1.1 2006/06/17 22:41:15 adamdunkels Exp $
+ * $Id: webserver-nogui.c,v 1.2 2006/08/09 16:13:39 bg- Exp $
*
*/
@@ -59,7 +59,7 @@ PROCESS_THREAD(webserver_nogui_process, ev, data)
}
/*---------------------------------------------------------------------------*/
void
-httpd_log_file(u16_t *requester, char *file)
+httpd_log_file(uip_ipaddr_t *requester, char *file)
{
}
/*---------------------------------------------------------------------------*/
diff --git a/apps/webserver/webserver.c b/apps/webserver/webserver.c
index d11e21dcb..0c8fda207 100644
--- a/apps/webserver/webserver.c
+++ b/apps/webserver/webserver.c
@@ -29,7 +29,7 @@
*
* This file is part of the Contiki desktop environment for the C64.
*
- * $Id: webserver.c,v 1.1 2006/06/17 22:41:15 adamdunkels Exp $
+ * $Id: webserver.c,v 1.2 2006/08/09 16:13:39 bg- Exp $
*
*/
@@ -89,7 +89,7 @@ PROCESS_THREAD(webserver_process, ev, data)
}
/*-----------------------------------------------------------------------------------*/
void
-httpd_log_file(u16_t *requester, char *file)
+httpd_log_file(uip_ipaddr_t *requester, char *file)
{
int size;
@@ -99,10 +99,10 @@ httpd_log_file(u16_t *requester, char *file)
/* Print out IP address of requesting host. */
size = sprintf(&log[LOG_WIDTH * (LOG_HEIGHT - 1)],
"%d.%d.%d.%d: ",
- htons(requester[0]) >> 8,
- htons(requester[0]) & 0xff,
- htons(requester[1]) >> 8,
- htons(requester[1]) & 0xff);
+ requester->u8[0],
+ requester->u8[1],
+ requester->u8[2],
+ requester->u8[3]);
/* Copy filename into last line. */
strncpy(&log[LOG_WIDTH * (LOG_HEIGHT - 1) + size], file, LOG_WIDTH - size);
diff --git a/core/dev/cc2420.c b/core/dev/cc2420.c
index fe27c0bf3..82bb57f7b 100644
--- a/core/dev/cc2420.c
+++ b/core/dev/cc2420.c
@@ -28,7 +28,7 @@
*
* This file is part of the Contiki operating system.
*
- * @(#)$Id: cc2420.c,v 1.2 2006/08/02 14:33:36 bg- Exp $
+ * @(#)$Id: cc2420.c,v 1.3 2006/08/09 16:13:39 bg- Exp $
*/
/*
* This code is almost device independent and should be possible to
@@ -209,7 +209,7 @@ cc2420_send_data_ack(u16_t mac)
h.fc0 = FC0_TYPE_DATA | FC0_INTRA_PAN;
h.fc1 = FC1_DST_16 | FC1_SRC_16;
- h.src = uip_hostaddr[1];
+ h.src = uip_hostaddr.u16[1];
h.dst = mac;
cc2420_send(&h, 10, NULL, 0);
@@ -491,8 +491,7 @@ PROCESS_THREAD(cc2420_process, ev, data)
* If we are the unique receiver send DATA ACK.
*/
if (h.dst == 0xffff
- && BUF->destipaddr[0] == uip_hostaddr[0]
- && BUF->destipaddr[1] == uip_hostaddr[1])
+ && uip_ipaddr_cmp(&BUF->destipaddr, &uip_hostaddr))
cc2420_send_data_ack(h.src);
leds_toggle(LEDS_GREEN);
tcpip_input();
@@ -630,7 +629,7 @@ neigbour_update(u16_t mac, int nretrans)
void
cc2420_recv_ok(uip_ipaddr_t *from)
{
- neigbour_update((*from)[1], 0);
+ neigbour_update(from->u16[1], 0);
}
/*
diff --git a/core/dev/cc2420_send_ip.c b/core/dev/cc2420_send_ip.c
index 7ebb2d931..c19b16883 100644
--- a/core/dev/cc2420_send_ip.c
+++ b/core/dev/cc2420_send_ip.c
@@ -11,8 +11,8 @@
#include "dev/cc2420.h"
#define in_my_network(a) \
- (((a[0] ^ cc2420if.ipaddr[0]) & cc2420if.netmask[0]) == 0 && \
- ((a[1] ^ cc2420if.ipaddr[1]) & cc2420if.netmask[1]) == 0)
+ (((a[0] ^ cc2420if.ipaddr.u16[0]) & cc2420if.netmask.u16[0]) == 0 && \
+ ((a[1] ^ cc2420if.ipaddr.u16[1]) & cc2420if.netmask.u16[1]) == 0)
u8_t
cc2420_send_ip(void)
@@ -26,21 +26,21 @@ cc2420_send_ip(void)
h.fc0 = FC0_TYPE_DATA | FC0_REQ_ACK | FC0_INTRA_PAN;
h.fc1 = FC1_DST_16 | FC1_SRC_16;
- h.src = uip_hostaddr[1];
- if (BUF->destipaddr[0] == 0xffff && BUF->destipaddr[1] == 0xffff)
+ h.src = uip_hostaddr.u16[1];
+ if (uip_ipaddr_cmp(&BUF->destipaddr, &uip_broadcast_addr))
h.dst = 0xffff;
else {
uip_ipaddr_t *next_gw;
- if (in_my_network(BUF->destipaddr))
+ if (in_my_network(BUF->destipaddr.u16))
next_gw = &BUF->destipaddr;
else
next_gw = &uip_draddr; /* Default router. */
- if (cc2420_check_remote((*next_gw)[1]) == 1)
+ if (cc2420_check_remote(next_gw->u16[1]) == 1)
h.dst = 0xffff; /* remote, use bcast */
else
- h.dst = (*next_gw)[1]; /* local or unknown, use ucast */
+ h.dst = next_gw->u16[1]; /* local or unknown, use ucast */
}
/* Don't request MAC level ACKs for broadcast packets. */
diff --git a/core/dev/cc2420_send_uaodv.c b/core/dev/cc2420_send_uaodv.c
index 5afcd7d3c..aa697c983 100644
--- a/core/dev/cc2420_send_uaodv.c
+++ b/core/dev/cc2420_send_uaodv.c
@@ -14,8 +14,8 @@
#include "net/uaodv-rt.h"
#define in_my_network(a) \
- (((a[0] ^ cc2420if.ipaddr[0]) & cc2420if.netmask[0]) == 0 && \
- ((a[1] ^ cc2420if.ipaddr[1]) & cc2420if.netmask[1]) == 0)
+ (((a[0] ^ cc2420if.ipaddr.u16[0]) & cc2420if.netmask.u16[0]) == 0 && \
+ ((a[1] ^ cc2420if.ipaddr.u16[1]) & cc2420if.netmask.u16[1]) == 0)
u8_t
cc2420_send_uaodv(void)
@@ -29,27 +29,27 @@ cc2420_send_uaodv(void)
h.fc0 = FC0_TYPE_DATA | FC0_REQ_ACK | FC0_INTRA_PAN;
h.fc1 = FC1_DST_16 | FC1_SRC_16;
- h.src = uip_hostaddr[1];
- if (BUF->destipaddr[0] == 0xffff && BUF->destipaddr[1] == 0xffff)
+ h.src = uip_hostaddr.u16[1];
+ if (uip_ipaddr_cmp(&BUF->destipaddr, &uip_broadcast_addr))
h.dst = 0xffff;
else {
uip_ipaddr_t *next_gw;
- if (in_my_network(BUF->destipaddr))
+ if (in_my_network(BUF->destipaddr.u16))
next_gw = &BUF->destipaddr;
else
next_gw = &uip_draddr; /* Default router. */
- if (cc2420_check_remote((*next_gw)[1]) == 0)
- h.dst = (*next_gw)[1]; /* local, use ucast */
+ if (cc2420_check_remote(next_gw->u16[1]) == 0)
+ h.dst = next_gw->u16[1]; /* local, use ucast */
else { /* remote or unknown */
struct uaodv_rt_entry *route = uaodv_request_route_to(next_gw);
if (route == NULL) {
- h.dst = (*next_gw)[1]; /* try local while waiting for route */
+ h.dst = next_gw->u16[1]; /* try local while waiting for route */
} else {
- if (cc2420_check_remote(route->nexthop[1]) == 1) {
- printf("LOST 0x%04x\n", route->nexthop[1]);
+ if (cc2420_check_remote(route->nexthop.u16[1]) == 1) {
+ printf("LOST 0x%04x\n", route->nexthop.u16[1]);
/* Send bad route notification? */
#ifdef UAODV_BAD_ROUTE
uaodv_bad_route(route);
@@ -58,7 +58,7 @@ cc2420_send_uaodv(void)
h.dst = 0xffff; /* revert to bcast */
} else /* unknown */ {
/* This will implicitly update neigbour table. */
- h.dst = route->nexthop[1];
+ h.dst = route->nexthop.u16[1];
}
}
}
diff --git a/core/net/dhcpc.c b/core/net/dhcpc.c
index 49dbf0ce8..abb36842b 100644
--- a/core/net/dhcpc.c
+++ b/core/net/dhcpc.c
@@ -28,7 +28,7 @@
*
* This file is part of the Contiki operating system.
*
- * @(#)$Id: dhcpc.c,v 1.2 2006/06/24 17:59:28 gpz Exp $
+ * @(#)$Id: dhcpc.c,v 1.3 2006/08/09 16:13:39 bg- Exp $
*/
#include
@@ -116,7 +116,7 @@ add_req_ipaddr(u8_t *optptr)
{
*optptr++ = DHCP_OPTION_REQ_IPADDR;
*optptr++ = 4;
- memcpy(optptr, s.ipaddr, 4);
+ memcpy(optptr, s.ipaddr.u16, 4);
return optptr + 4;
}
/*---------------------------------------------------------------------------*/
@@ -149,7 +149,7 @@ create_msg(register struct dhcp_msg *m)
m->secs = 0;
m->flags = HTONS(BOOTP_BROADCAST); /* Broadcast bit. */
/* uip_ipaddr_copy(m->ciaddr, uip_hostaddr);*/
- memcpy(m->ciaddr, uip_hostaddr, sizeof(m->ciaddr));
+ memcpy(m->ciaddr, uip_hostaddr.u16, sizeof(m->ciaddr));
memset(m->yiaddr, 0, sizeof(m->yiaddr));
memset(m->siaddr, 0, sizeof(m->siaddr));
memset(m->giaddr, 0, sizeof(m->giaddr));
@@ -203,13 +203,13 @@ parse_options(u8_t *optptr, int len)
while(optptr < end) {
switch(*optptr) {
case DHCP_OPTION_SUBNET_MASK:
- memcpy(s.netmask, optptr + 2, 4);
+ memcpy(s.netmask.u16, optptr + 2, 4);
break;
case DHCP_OPTION_ROUTER:
- memcpy(s.default_router, optptr + 2, 4);
+ memcpy(s.default_router.u16, optptr + 2, 4);
break;
case DHCP_OPTION_DNS_SERVER:
- memcpy(s.dnsaddr, optptr + 2, 4);
+ memcpy(s.dnsaddr.u16, optptr + 2, 4);
break;
case DHCP_OPTION_MSG_TYPE:
type = *(optptr + 2);
@@ -237,7 +237,7 @@ parse_msg(void)
if(m->op == DHCP_REPLY &&
memcmp(m->xid, &xid, sizeof(xid)) == 0 &&
memcmp(m->chaddr, s.mac_addr, s.mac_len) == 0) {
- memcpy(s.ipaddr, m->yiaddr, 4);
+ memcpy(s.ipaddr.u16, m->yiaddr, 4);
return parse_options(&m->options[4], uip_datalen());
}
return 0;
@@ -385,14 +385,14 @@ PT_THREAD(handle_dhcp(process_event_t ev, void *data))
void
dhcpc_init(const void *mac_addr, int mac_len)
{
- u16_t addr[2];
+ uip_ipaddr_t addr;
s.mac_addr = mac_addr;
s.mac_len = mac_len;
s.state = STATE_INITIAL;
- uip_ipaddr(addr, 255,255,255,255);
- s.conn = udp_new(addr, HTONS(DHCPC_SERVER_PORT), NULL);
+ uip_ipaddr(&addr, 255,255,255,255);
+ s.conn = udp_new(&addr, HTONS(DHCPC_SERVER_PORT), NULL);
if(s.conn != NULL) {
udp_bind(s.conn, HTONS(DHCPC_CLIENT_PORT));
}
@@ -410,11 +410,11 @@ dhcpc_appcall(process_event_t ev, void *data)
void
dhcpc_request(void)
{
- u16_t ipaddr[2];
+ uip_ipaddr_t ipaddr;
if(s.state == STATE_INITIAL) {
- uip_ipaddr(ipaddr, 0,0,0,0);
- uip_sethostaddr(ipaddr);
+ uip_ipaddr(&ipaddr, 0,0,0,0);
+ uip_sethostaddr(&ipaddr);
handle_dhcp(PROCESS_EVENT_NONE, NULL);
}
}
diff --git a/core/net/dhcpc.h b/core/net/dhcpc.h
index c86f0d602..0f70a2f9c 100644
--- a/core/net/dhcpc.h
+++ b/core/net/dhcpc.h
@@ -28,7 +28,7 @@
*
* This file is part of the Contiki operating system.
*
- * @(#)$Id: dhcpc.h,v 1.1 2006/06/17 22:41:18 adamdunkels Exp $
+ * @(#)$Id: dhcpc.h,v 1.2 2006/08/09 16:13:39 bg- Exp $
*/
#ifndef __DHCPC_H__
#define __DHCPC_H__
@@ -45,10 +45,10 @@ struct dhcpc_state {
u8_t serverid[4];
u16_t lease_time[2];
- u16_t ipaddr[2];
- u16_t netmask[2];
- u16_t dnsaddr[2];
- u16_t default_router[2];
+ uip_ipaddr_t ipaddr;
+ uip_ipaddr_t netmask;
+ uip_ipaddr_t dnsaddr;
+ uip_ipaddr_t default_router;
};
void dhcpc_init(const void *mac_addr, int mac_len);
diff --git a/core/net/hc.c b/core/net/hc.c
index 1aa000dac..113e32428 100644
--- a/core/net/hc.c
+++ b/core/net/hc.c
@@ -28,7 +28,7 @@
*
* This file is part of the Contiki operating system.
*
- * @(#)$Id: hc.c,v 1.1 2006/06/17 22:41:18 adamdunkels Exp $
+ * @(#)$Id: hc.c,v 1.2 2006/08/09 16:13:39 bg- Exp $
*/
/**
@@ -49,7 +49,7 @@
struct hc_hdr {
u16_t flagsport;
- u16_t srcipaddr[2];
+ uip_ipaddr_t srcipaddr;
};
struct udpip_hdr {
@@ -62,8 +62,7 @@ struct udpip_hdr {
ttl,
proto;
u16_t ipchksum;
- u16_t srcipaddr[2],
- destipaddr[2];
+ uip_ipaddr_t srcipaddr, destipaddr;
/* UDP header. */
u16_t srcport,
@@ -121,11 +120,8 @@ hc_compress(void)
uhdr->ipoffset[1] == 0x00 && /* No fragmented IP
packets. */
uhdr->proto == UIP_PROTO_UDP && /* Only UDP packets. */
- uhdr->destipaddr[0] == 0xffffU && /* Only link-local
- broadcast
- packets. */
- uhdr->destipaddr[1] == 0xffffU && /* Only link-local
- broadcast
+ uip_ipaddr_cmp(&uhdr->destipaddr, &uip_broadcast_addr) && /* Only
+ link-local broadcast
packets. */
uhdr->destport == uhdr->srcport && /* Only packets with
the same destination
@@ -184,8 +180,7 @@ hc_inflate(void)
hdr = (struct hc_hdr *)&uip_buf[UIP_LLH_LEN + UIP_IPUDPH_LEN -
HC_HLEN];
- uhdr->srcipaddr[0] = hdr->srcipaddr[0];
- uhdr->srcipaddr[1] = hdr->srcipaddr[1];
+ uhdr->srcipaddr = hdr->srcipaddr;
uhdr->srcport = hdr->flagsport & HTONS(0x3fff);
uhdr->destport = hdr->flagsport & HTONS(0x3fff);
@@ -202,7 +197,7 @@ hc_inflate(void)
uhdr->ipoffset[0] = uhdr->ipoffset[1] = 0;
uhdr->ttl = 2;
uhdr->proto = UIP_PROTO_UDP;
- uhdr->destipaddr[0] = uhdr->destipaddr[1] = 0xffff;
+ uhdr->destipaddr = uip_broadcast_addr;
uhdr->udpchksum = 0;
uhdr->ipchksum = 0;
diff --git a/core/net/resolv.c b/core/net/resolv.c
index 645da29cd..ddcefc5b1 100644
--- a/core/net/resolv.c
+++ b/core/net/resolv.c
@@ -57,7 +57,7 @@
*
* This file is part of the uIP TCP/IP stack.
*
- * $Id: resolv.c,v 1.1 2006/06/17 22:41:18 adamdunkels Exp $
+ * $Id: resolv.c,v 1.2 2006/08/09 16:13:39 bg- Exp $
*
*/
@@ -356,7 +356,7 @@ PROCESS_THREAD(resolv_process, ev, data)
uip_udp_remove(resolv_conn);
}
- resolv_conn = udp_new((u16_t *)data, HTONS(53), NULL);
+ resolv_conn = udp_new((uip_ipaddr_t *)data, HTONS(53), NULL);
} else if(ev == tcpip_event) {
if(uip_udp_conn->rport == HTONS(53)) {
@@ -459,7 +459,7 @@ resolv_getserver(void)
if(resolv_conn == NULL) {
return NULL;
}
- return resolv_conn->ripaddr;
+ return resolv_conn->ripaddr.u16;
}
/*-----------------------------------------------------------------------------------*/
/**
diff --git a/core/net/tcpip.c b/core/net/tcpip.c
index 068085477..07d77095f 100644
--- a/core/net/tcpip.c
+++ b/core/net/tcpip.c
@@ -30,7 +30,7 @@
*
* Author: Adam Dunkels
*
- * $Id: tcpip.c,v 1.2 2006/07/07 06:45:45 nifi Exp $
+ * $Id: tcpip.c,v 1.3 2006/08/09 16:13:39 bg- Exp $
*/
#include "contiki-conf.h"
@@ -188,12 +188,12 @@ udp_attach(struct uip_udp_conn *conn,
}
/*---------------------------------------------------------------------------*/
struct uip_udp_conn *
-udp_new(u16_t *ripaddr, u16_t port, void *appstate)
+udp_new(uip_ipaddr_t *ripaddr, u16_t port, void *appstate)
{
struct uip_udp_conn *c;
uip_udp_appstate_t *s;
- c = uip_udp_new((uip_ipaddr_t *)ripaddr, port);
+ c = uip_udp_new(ripaddr, port);
if(c == NULL) {
return NULL;
}
@@ -211,8 +211,8 @@ udp_broadcast_new(u16_t port, void *appstate)
uip_ipaddr_t addr;
struct uip_udp_conn *conn;
- uip_ipaddr(addr, 255,255,255,255);
- conn = udp_new(addr, port, appstate);
+ uip_ipaddr(&addr, 255,255,255,255);
+ conn = udp_new(&addr, port, appstate);
if(conn != NULL) {
udp_bind(conn, port);
}
diff --git a/core/net/tcpip.h b/core/net/tcpip.h
index f5f6cb51f..a382658cd 100644
--- a/core/net/tcpip.h
+++ b/core/net/tcpip.h
@@ -60,7 +60,7 @@
*
* Author: Adam Dunkels
*
- * $Id: tcpip.h,v 1.1 2006/06/17 22:41:19 adamdunkels Exp $
+ * $Id: tcpip.h,v 1.2 2006/08/09 16:13:39 bg- Exp $
*/
#ifndef __TCPIP_H__
#define __TCPIP_H__
@@ -223,7 +223,7 @@ void udp_attach(struct uip_udp_conn *conn,
* \return A pointer to the newly created connection, or NULL if
* memory could not be allocated for the connection.
*/
-struct uip_udp_conn *udp_new(u16_t *ripaddr, u16_t port,
+struct uip_udp_conn *udp_new(uip_ipaddr_t *ripaddr, u16_t port,
void *appstate);
/**
diff --git a/core/net/uaodv-rt.c b/core/net/uaodv-rt.c
index 99ab04157..6a897ad61 100644
--- a/core/net/uaodv-rt.c
+++ b/core/net/uaodv-rt.c
@@ -28,7 +28,7 @@
*
* This file is part of the Contiki operating system.
*
- * $Id: uaodv-rt.c,v 1.1 2006/06/17 22:41:19 adamdunkels Exp $
+ * $Id: uaodv-rt.c,v 1.2 2006/08/09 16:13:39 bg- Exp $
*/
/**
@@ -76,8 +76,8 @@ uaodv_rt_add(uip_ipaddr_t *dest, uip_ipaddr_t *nexthop,
}
}
- uip_ipaddr_copy(e->dest, dest);
- uip_ipaddr_copy(e->nexthop, nexthop);
+ uip_ipaddr_copy(&e->dest, dest);
+ uip_ipaddr_copy(&e->nexthop, nexthop);
e->hop_count = hop_count;
e->seqno = seqno;
diff --git a/core/net/uaodv.c b/core/net/uaodv.c
index e77cdcab0..c14b63acf 100644
--- a/core/net/uaodv.c
+++ b/core/net/uaodv.c
@@ -28,7 +28,7 @@
*
* This file is part of the Contiki operating system.
*
- * $Id: uaodv.c,v 1.1 2006/06/17 22:41:19 adamdunkels Exp $
+ * $Id: uaodv.c,v 1.2 2006/08/09 16:13:39 bg- Exp $
*/
/**
@@ -82,13 +82,11 @@ print_debug(const char *fmt, ...)
}
#endif
-#define uip_udp_sender() ((uip_ipaddr_t *)(((struct uip_udpip_hdr *)&uip_buf[UIP_LLH_LEN])->srcipaddr))
-
-uip_ipaddr_t inaddr_broadcast = { 0xffff, 0xffff };
+#define uip_udp_sender() (&((struct uip_udpip_hdr *)&uip_buf[UIP_LLH_LEN])->srcipaddr)
/*---------------------------------------------------------------------------*/
static void
-sendto(uip_ipaddr_t *dest, char *buf, int len)
+sendto(const uip_ipaddr_t *dest, char *buf, int len)
{
/* XXX: this is a HACK! We're updating the uIP UDP connection
"unicastconn" so that the destination address is the next-hop,
@@ -162,7 +160,7 @@ send_rerr(uip_ipaddr_t *addr, u32_t seqno)
uip_ipaddr_copy(&rm->unreach[0].addr, addr);
rm->unreach[0].seqno = seqno;
- sendto(&inaddr_broadcast, (char *)rm, sizeof(struct uaodv_msg_rerr));
+ sendto(&uip_broadcast_addr, (char *)rm, sizeof(struct uaodv_msg_rerr));
print_debug("Broadcasting initial RERR for %d.%d.%d.%d\n", ip2quad(addr));
}
@@ -189,7 +187,7 @@ handle_incoming_rreq(void)
#endif
/* Check if it is for our address. */
- if(uip_ipaddr_cmp(&rm->dest_addr, uip_hostaddr)) {
+ if(uip_ipaddr_cmp(&rm->dest_addr, &uip_hostaddr)) {
print_debug("RREQ for our address!\n");
rt = uaodv_rt_lookup(&rm->src_addr);
if(rt == NULL || rm->hop_count <= rt->hop_count) {
@@ -317,7 +315,7 @@ handle_incoming_rrep(void)
);
}
- if(uip_ipaddr_cmp(&rm->src_addr, uip_hostaddr)) {
+ if(uip_ipaddr_cmp(&rm->src_addr, &uip_hostaddr)) {
print_debug("------- COMPLETE ROUTE FOUND\n");
} else {
@@ -365,7 +363,7 @@ handle_incoming_rerr(void)
if(rt != NULL && uip_ipaddr_cmp(&rt->nexthop, uip_udp_sender())) {
uaodv_rt_remove(rt);
print_debug("RERR rebroadcast\n");
- sendto(&inaddr_broadcast, (char *)rm, sizeof(struct uaodv_msg_rerr));
+ sendto(&uip_broadcast_addr, (char *)rm, sizeof(struct uaodv_msg_rerr));
}
}
#endif
diff --git a/core/net/uip-fw.c b/core/net/uip-fw.c
index 739ca1ea8..44acf25ba 100644
--- a/core/net/uip-fw.c
+++ b/core/net/uip-fw.c
@@ -30,7 +30,7 @@
*
* Author: Adam Dunkels
*
- * $Id: uip-fw.c,v 1.1 2006/06/17 22:41:19 adamdunkels Exp $
+ * $Id: uip-fw.c,v 1.2 2006/08/09 16:13:39 bg- Exp $
*/
/**
* \addtogroup uip
@@ -80,8 +80,7 @@ struct tcpip_hdr {
u8_t ttl,
proto;
u16_t ipchksum;
- u16_t srcipaddr[2],
- destipaddr[2];
+ uip_ipaddr_t srcipaddr, destipaddr;
/* TCP header. */
u16_t srcport,
@@ -106,8 +105,7 @@ struct icmpip_hdr {
ttl,
proto;
u16_t ipchksum;
- u16_t srcipaddr[2],
- destipaddr[2];
+ uip_ipaddr_t srcipaddr, destipaddr;
/* ICMP (echo) header. */
u8_t type, icode;
u16_t icmpchksum;
@@ -138,8 +136,8 @@ struct icmpip_hdr {
struct fwcache_entry {
u16_t timer;
- u16_t srcipaddr[2];
- u16_t destipaddr[2];
+ uip_ipaddr_t srcipaddr;
+ uip_ipaddr_t destipaddr;
u16_t ipid;
u8_t proto;
u8_t unused;
@@ -205,10 +203,12 @@ uip_fw_init(void)
*/
/*------------------------------------------------------------------------------*/
static unsigned char
-ipaddr_maskcmp(u16_t *ipaddr, u16_t *netipaddr, u16_t *netmask)
+ipaddr_maskcmp(uip_ipaddr_t *ipaddr,
+ uip_ipaddr_t *netipaddr,
+ uip_ipaddr_t *netmask)
{
- return (ipaddr[0] & netmask [0]) == (netipaddr[0] & netmask[0]) &&
- (ipaddr[1] & netmask[1]) == (netipaddr[1] & netmask[1]);
+ return (ipaddr->u16[0] & netmask->u16[0]) == (netipaddr->u16[0] & netmask->u16[0]) &&
+ (ipaddr->u16[1] & netmask->u16[1]) == (netipaddr->u16[1] & netmask->u16[1]);
}
/*------------------------------------------------------------------------------*/
/**
@@ -222,7 +222,7 @@ ipaddr_maskcmp(u16_t *ipaddr, u16_t *netipaddr, u16_t *netmask)
static void
time_exceeded(void)
{
- u16_t tmp16;
+ uip_ipaddr_t tmpip;
/* We don't send out ICMP errors for ICMP messages. */
if(ICMPBUF->proto == UIP_PROTO_ICMP) {
@@ -242,16 +242,15 @@ time_exceeded(void)
/* Set the IP destination address to be the source address of the
original packet. */
- tmp16= BUF->destipaddr[0];
- BUF->destipaddr[0] = BUF->srcipaddr[0];
- BUF->srcipaddr[0] = tmp16;
- tmp16 = BUF->destipaddr[1];
- BUF->destipaddr[1] = BUF->srcipaddr[1];
- BUF->srcipaddr[1] = tmp16;
+ tmpip = BUF->destipaddr;
+ BUF->destipaddr = BUF->srcipaddr;
+ BUF->srcipaddr = tmpip;
+ tmpip = BUF->destipaddr;
+ BUF->destipaddr = BUF->srcipaddr;
+ BUF->srcipaddr = tmpip;
/* Set our IP address as the source address. */
- BUF->srcipaddr[0] = uip_hostaddr[0];
- BUF->srcipaddr[1] = uip_hostaddr[1];
+ BUF->srcipaddr = uip_hostaddr;
/* The size of the ICMP time exceeded packet is 36 + the size of the
IP header (20) = 56. */
@@ -301,10 +300,8 @@ fwcache_register(void)
fw->timer = FW_TIME;
fw->ipid = BUF->ipid;
- fw->srcipaddr[0] = BUF->srcipaddr[0];
- fw->srcipaddr[1] = BUF->srcipaddr[1];
- fw->destipaddr[0] = BUF->destipaddr[0];
- fw->destipaddr[1] = BUF->destipaddr[1];
+ fw->srcipaddr = BUF->srcipaddr;
+ fw->destipaddr = BUF->destipaddr;
fw->proto = BUF->proto;
#if notdef
fw->payload[0] = BUF->srcport;
@@ -328,8 +325,8 @@ find_netif(void)
/* Walk through every network interface to check for a match. */
for(netif = netifs; netif != NULL; netif = netif->next) {
- if(ipaddr_maskcmp(BUF->destipaddr, netif->ipaddr,
- netif->netmask)) {
+ if(ipaddr_maskcmp(&BUF->destipaddr, &netif->ipaddr,
+ &netif->netmask)) {
/* If there was a match, we break the loop. */
return netif;
}
@@ -369,8 +366,7 @@ uip_fw_output(void)
#if UIP_BROADCAST
/* Link local broadcasts go out on all interfaces. */
if(/*BUF->proto == UIP_PROTO_UDP &&*/
- BUF->destipaddr[0] == 0xffff &&
- BUF->destipaddr[1] == 0xffff) {
+ uip_ipaddr_cmp(&BUF->destipaddr, &uip_broadcast_addr)) {
if(defaultnetif != NULL) {
defaultnetif->output();
}
@@ -410,15 +406,14 @@ uip_fw_forward(void)
/* First check if the packet is destined for ourselves and return 0
to indicate that the packet should be processed locally. */
- if(BUF->destipaddr[0] == uip_hostaddr[0] &&
- BUF->destipaddr[1] == uip_hostaddr[1]) {
+ if(uip_ipaddr_cmp(&BUF->destipaddr, &uip_hostaddr)) {
return UIP_FW_LOCAL;
}
/* If we use ping IP address configuration, and our IP address is
not yet configured, we should intercept all ICMP echo packets. */
#if UIP_PINGADDRCONF
- if((uip_hostaddr[0] | uip_hostaddr[1]) == 0 &&
+ if(uip_ipaddr_cmp(&uip_hostaddr, &all_zeroes_addr) &&
BUF->proto == UIP_PROTO_ICMP &&
ICMPBUF->type == ICMP_ECHO) {
return UIP_FW_LOCAL;
@@ -435,10 +430,8 @@ uip_fw_forward(void)
fw->offset == BUF->ipoffset &&
#endif
fw->ipid == BUF->ipid &&
- fw->srcipaddr[0] == BUF->srcipaddr[0] &&
- fw->srcipaddr[1] == BUF->srcipaddr[1] &&
- fw->destipaddr[0] == BUF->destipaddr[0] &&
- fw->destipaddr[1] == BUF->destipaddr[1] &&
+ uip_ipaddr_cmp(&fw->srcipaddr, &BUF->srcipaddr) &&
+ uip_ipaddr_cmp(&fw->destipaddr, &BUF->destipaddr) &&
#if notdef
fw->payload[0] == BUF->srcport &&
fw->payload[1] == BUF->destport &&
@@ -454,7 +447,7 @@ uip_fw_forward(void)
of the packet. */
if(BUF->ttl <= 1) {
/* No time exceeded for broadcasts and multicasts! */
- if(BUF->destipaddr[0] == 0xffff && BUF->destipaddr[1] == 0xffff) {
+ if(uip_ipaddr_cmp(&BUF->destipaddr, &uip_broadcast_addr)) {
return UIP_FW_LOCAL;
}
time_exceeded();
@@ -476,7 +469,7 @@ uip_fw_forward(void)
}
#if UIP_BROADCAST
- if(BUF->destipaddr[0] == 0xffff && BUF->destipaddr[1] == 0xffff) {
+ if(uip_ipaddr_cmp(&BUF->destipaddr, &uip_broadcast_addr)) {
return UIP_FW_LOCAL;
}
#endif /* UIP_BROADCAST */
diff --git a/core/net/uip-fw.h b/core/net/uip-fw.h
index 43c432d49..4fd823930 100644
--- a/core/net/uip-fw.h
+++ b/core/net/uip-fw.h
@@ -41,7 +41,7 @@
*
* Author: Adam Dunkels
*
- * $Id: uip-fw.h,v 1.1 2006/06/17 22:41:19 adamdunkels Exp $
+ * $Id: uip-fw.h,v 1.2 2006/08/09 16:13:40 bg- Exp $
*/
#ifndef __UIP_FW_H__
#define __UIP_FW_H__
@@ -54,8 +54,8 @@
struct uip_fw_netif {
struct uip_fw_netif *next; /**< Pointer to the next interface when
linked in a list. */
- u16_t ipaddr[2]; /**< The IP address of this interface. */
- u16_t netmask[2]; /**< The netmask of the interface. */
+ uip_ipaddr_t ipaddr; /**< The IP address of this interface. */
+ uip_ipaddr_t netmask; /**< The netmask of the interface. */
u8_t (* output)(void);
/**< A pointer to the function that
sends a packet. */
@@ -79,8 +79,8 @@ struct uip_fw_netif {
*/
#define UIP_FW_NETIF(ip1,ip2,ip3,ip4, nm1,nm2,nm3,nm4, outputfunc) \
NULL, \
- {HTONS((ip1 << 8) | ip2), HTONS((ip3 << 8) | ip4)}, \
- {HTONS((nm1 << 8) | nm2), HTONS((nm3 << 8) | nm4)}, \
+ { .u16 = {HTONS((ip1 << 8) | ip2), HTONS((ip3 << 8) | ip4)} }, \
+ { .u16 = {HTONS((nm1 << 8) | nm2), HTONS((nm3 << 8) | nm4)} }, \
outputfunc
/**
diff --git a/core/net/uip-neighbor.c b/core/net/uip-neighbor.c
index 5e5f63295..629b8e3a2 100644
--- a/core/net/uip-neighbor.c
+++ b/core/net/uip-neighbor.c
@@ -28,7 +28,7 @@
*
* This file is part of the Contiki operating system.
*
- * $Id: uip-neighbor.c,v 1.1 2006/06/17 22:41:19 adamdunkels Exp $
+ * $Id: uip-neighbor.c,v 1.2 2006/08/09 16:13:40 bg- Exp $
*/
/**
@@ -42,6 +42,7 @@
#include "net/uip-neighbor.h"
#include
+#include
#define MAX_TIME 128
@@ -82,7 +83,7 @@ uip_neighbor_periodic(void)
}
/*---------------------------------------------------------------------------*/
void
-uip_neighbor_add(uip_ipaddr_t ipaddr, struct uip_neighbor_addr *addr)
+uip_neighbor_add(uip_ipaddr_t *ipaddr, struct uip_neighbor_addr *addr)
{
int i, oldest;
u8_t oldest_time;
@@ -99,7 +100,7 @@ uip_neighbor_add(uip_ipaddr_t ipaddr, struct uip_neighbor_addr *addr)
oldest = i;
break;
}
- if(uip_ipaddr_cmp(entries[i].ipaddr, addr)) {
+ if(uip_ipaddr_cmp(&entries[i].ipaddr, ipaddr)) {
oldest = i;
break;
}
@@ -112,17 +113,17 @@ uip_neighbor_add(uip_ipaddr_t ipaddr, struct uip_neighbor_addr *addr)
/* Use the oldest or first free entry (either pointed to by the
"oldest" variable). */
entries[oldest].time = 0;
- uip_ipaddr_copy(entries[oldest].ipaddr, ipaddr);
+ uip_ipaddr_copy(&entries[oldest].ipaddr, ipaddr);
memcpy(&entries[oldest].addr, addr, sizeof(struct uip_neighbor_addr));
}
/*---------------------------------------------------------------------------*/
static struct neighbor_entry *
-find_entry(uip_ipaddr_t ipaddr)
+find_entry(uip_ipaddr_t *ipaddr)
{
int i;
for(i = 0; i < ENTRIES; ++i) {
- if(uip_ipaddr_cmp(entries[i].ipaddr, ipaddr)) {
+ if(uip_ipaddr_cmp(&entries[i].ipaddr, ipaddr)) {
return &entries[i];
}
}
@@ -130,7 +131,7 @@ find_entry(uip_ipaddr_t ipaddr)
}
/*---------------------------------------------------------------------------*/
void
-uip_neighbor_update(uip_ipaddr_t ipaddr)
+uip_neighbor_update(uip_ipaddr_t *ipaddr)
{
struct neighbor_entry *e;
@@ -141,7 +142,7 @@ uip_neighbor_update(uip_ipaddr_t ipaddr)
}
/*---------------------------------------------------------------------------*/
struct uip_neighbor_addr *
-uip_neighbor_lookup(uip_ipaddr_t ipaddr)
+uip_neighbor_lookup(uip_ipaddr_t *ipaddr)
{
struct neighbor_entry *e;
diff --git a/core/net/uip-neighbor.h b/core/net/uip-neighbor.h
index 3b9cfb88e..d894469c4 100644
--- a/core/net/uip-neighbor.h
+++ b/core/net/uip-neighbor.h
@@ -28,7 +28,7 @@
*
* This file is part of the Contiki operating system.
*
- * $Id: uip-neighbor.h,v 1.1 2006/06/17 22:41:19 adamdunkels Exp $
+ * $Id: uip-neighbor.h,v 1.2 2006/08/09 16:13:40 bg- Exp $
*/
/**
@@ -53,9 +53,9 @@ struct uip_neighbor_addr {
};
void uip_neighbor_init(void);
-void uip_neighbor_add(uip_ipaddr_t ipaddr, struct uip_neighbor_addr *addr);
-void uip_neighbor_update(uip_ipaddr_t ipaddr);
-struct uip_neighbor_addr *uip_neighbor_lookup(uip_ipaddr_t ipaddr);
+void uip_neighbor_add(uip_ipaddr_t *ipaddr, struct uip_neighbor_addr *addr);
+void uip_neighbor_update(uip_ipaddr_t *ipaddr);
+struct uip_neighbor_addr *uip_neighbor_lookup(uip_ipaddr_t *ipaddr);
void uip_neighbor_periodic(void);
#endif /* __UIP-NEIGHBOR_H__ */
diff --git a/core/net/uip.c b/core/net/uip.c
index 8a5a7c059..904a6487c 100644
--- a/core/net/uip.c
+++ b/core/net/uip.c
@@ -41,7 +41,7 @@
*
* This file is part of the uIP TCP/IP stack.
*
- * $Id: uip.c,v 1.1 2006/06/17 22:41:19 adamdunkels Exp $
+ * $Id: uip.c,v 1.2 2006/08/09 16:13:40 bg- Exp $
*
*/
@@ -106,13 +106,13 @@ const uip_ipaddr_t uip_broadcast_addr =
#if UIP_CONF_IPV6
{0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff};
#else /* UIP_CONF_IPV6 */
- {0xffff,0xffff};
+ { .u16 = {0xffff,0xffff} };
#endif /* UIP_CONF_IPV6 */
-static const uip_ipaddr_t all_zeroes_addr =
+const uip_ipaddr_t all_zeroes_addr =
#if UIP_CONF_IPV6
{0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};
#else /* UIP_CONF_IPV6 */
- {0x0000,0x0000};
+ { .u16 = {0x0000,0x0000} };
#endif /* UIP_CONF_IPV6 */
@@ -334,7 +334,7 @@ upper_layer_chksum(u8_t proto)
/* IP protocol and length fields. This addition cannot carry. */
sum = upper_layer_len + proto;
/* Sum IP source and destination addresses. */
- sum = chksum(sum, (u8_t *)&BUF->srcipaddr[0], 2 * sizeof(uip_ipaddr_t));
+ sum = chksum(sum, (u8_t *)&BUF->srcipaddr, 2 * sizeof(uip_ipaddr_t));
/* Sum TCP header and data. */
sum = chksum(sum, &uip_buf[UIP_IPH_LEN + UIP_LLH_LEN],
@@ -496,7 +496,7 @@ uip_udp_new(uip_ipaddr_t *ripaddr, u16_t rport)
conn->lport = HTONS(lastport);
conn->rport = rport;
if(ripaddr == NULL) {
- memset(conn->ripaddr, 0, sizeof(uip_ipaddr_t));
+ memset(&conn->ripaddr, 0, sizeof(uip_ipaddr_t));
} else {
uip_ipaddr_copy(&conn->ripaddr, ripaddr);
}
@@ -881,7 +881,7 @@ uip_process(u8_t flag)
}
#endif /* UIP_CONF_IPV6 */
- if(uip_ipaddr_cmp(uip_hostaddr, all_zeroes_addr)) {
+ if(uip_ipaddr_cmp(&uip_hostaddr, &all_zeroes_addr)) {
/* If we are configured to use ping IP address configuration and
hasn't been assigned an IP address yet, we accept all ICMP
packets. */
@@ -901,7 +901,7 @@ uip_process(u8_t flag)
#if UIP_BROADCAST
DEBUG_PRINTF("UDP IP checksum 0x%04x\n", uip_ipchksum());
if(BUF->proto == UIP_PROTO_UDP &&
- uip_ipaddr_cmp(BUF->destipaddr, uip_broadcast_addr)
+ uip_ipaddr_cmp(&BUF->destipaddr, &uip_broadcast_addr)
/*&&
uip_ipchksum() == 0xffff*/) {
goto udp_input;
@@ -910,7 +910,7 @@ uip_process(u8_t flag)
/* Check if the packet is destined for our IP address. */
#if !UIP_CONF_IPV6
- if(!uip_ipaddr_cmp(BUF->destipaddr, uip_hostaddr)) {
+ if(!uip_ipaddr_cmp(&BUF->destipaddr, &uip_hostaddr)) {
UIP_STAT(++uip_stat.ip.drop);
goto drop;
}
@@ -979,9 +979,8 @@ uip_process(u8_t flag)
the destination IP address of this ping packet and assign it to
ourself. */
#if UIP_PINGADDRCONF
- if((uip_hostaddr[0] | uip_hostaddr[1]) == 0) {
- uip_hostaddr[0] = BUF->destipaddr[0];
- uip_hostaddr[1] = BUF->destipaddr[1];
+ if(uip_ipaddr_cmp(&uip_hostaddr, &all_zeroes_addr)) {
+ uip_hostaddr = BUF->destipaddr;
}
#endif /* UIP_PINGADDRCONF */
@@ -994,8 +993,8 @@ uip_process(u8_t flag)
}
/* Swap IP addresses. */
- uip_ipaddr_copy(BUF->destipaddr, BUF->srcipaddr);
- uip_ipaddr_copy(BUF->srcipaddr, uip_hostaddr);
+ uip_ipaddr_copy(&BUF->destipaddr, &BUF->srcipaddr);
+ uip_ipaddr_copy(&BUF->srcipaddr, &uip_hostaddr);
UIP_STAT(++uip_stat.icmp.sent);
goto send;
@@ -1105,9 +1104,9 @@ uip_process(u8_t flag)
UDPBUF->destport == uip_udp_conn->lport &&
(uip_udp_conn->rport == 0 ||
UDPBUF->srcport == uip_udp_conn->rport) &&
- (uip_ipaddr_cmp(uip_udp_conn->ripaddr, all_zeroes_addr) ||
- uip_ipaddr_cmp(uip_udp_conn->ripaddr, uip_broadcast_addr) ||
- uip_ipaddr_cmp(BUF->srcipaddr, uip_udp_conn->ripaddr))) {
+ (uip_ipaddr_cmp(&uip_udp_conn->ripaddr, &all_zeroes_addr) ||
+ uip_ipaddr_cmp(&uip_udp_conn->ripaddr, &uip_broadcast_addr) ||
+ uip_ipaddr_cmp(&BUF->srcipaddr, &uip_udp_conn->ripaddr))) {
goto udp_found;
}
}
@@ -1145,8 +1144,8 @@ uip_process(u8_t flag)
BUF->srcport = uip_udp_conn->lport;
BUF->destport = uip_udp_conn->rport;
- uip_ipaddr_copy(BUF->srcipaddr, uip_hostaddr);
- uip_ipaddr_copy(BUF->destipaddr, uip_udp_conn->ripaddr);
+ uip_ipaddr_copy(&BUF->srcipaddr, &uip_hostaddr);
+ uip_ipaddr_copy(&BUF->destipaddr, &uip_udp_conn->ripaddr);
uip_appdata = &uip_buf[UIP_LLH_LEN + UIP_IPTCPH_LEN];
@@ -1183,7 +1182,7 @@ uip_process(u8_t flag)
if(uip_connr->tcpstateflags != UIP_CLOSED &&
BUF->destport == uip_connr->lport &&
BUF->srcport == uip_connr->rport &&
- uip_ipaddr_cmp(BUF->srcipaddr, uip_connr->ripaddr)) {
+ uip_ipaddr_cmp(&BUF->srcipaddr, &uip_connr->ripaddr)) {
goto found;
}
}
@@ -1252,8 +1251,8 @@ uip_process(u8_t flag)
BUF->destport = tmp16;
/* Swap IP addresses. */
- uip_ipaddr_copy(BUF->destipaddr, BUF->srcipaddr);
- uip_ipaddr_copy(BUF->srcipaddr, uip_hostaddr);
+ uip_ipaddr_copy(&BUF->destipaddr, &BUF->srcipaddr);
+ uip_ipaddr_copy(&BUF->srcipaddr, &uip_hostaddr);
/* And send out the RST packet! */
goto tcp_send_noconn;
@@ -1299,7 +1298,7 @@ uip_process(u8_t flag)
uip_connr->nrtx = 0;
uip_connr->lport = BUF->destport;
uip_connr->rport = BUF->srcport;
- uip_ipaddr_copy(uip_connr->ripaddr, BUF->srcipaddr);
+ uip_ipaddr_copy(&uip_connr->ripaddr, &BUF->srcipaddr);
uip_connr->tcpstateflags = UIP_SYN_RCVD;
uip_connr->snd_nxt[0] = iss[0];
@@ -1806,8 +1805,8 @@ uip_process(u8_t flag)
BUF->srcport = uip_connr->lport;
BUF->destport = uip_connr->rport;
- uip_ipaddr_copy(BUF->srcipaddr, uip_hostaddr);
- uip_ipaddr_copy(BUF->destipaddr, uip_connr->ripaddr);
+ uip_ipaddr_copy(&BUF->srcipaddr, &uip_hostaddr);
+ uip_ipaddr_copy(&BUF->destipaddr, &uip_connr->ripaddr);
if(uip_connr->tcpstateflags & UIP_STOPPED) {
/* If the connection has issued uip_stop(), we advertise a zero
diff --git a/core/net/uip.h b/core/net/uip.h
index 8b0c89d72..a3f0575cf 100644
--- a/core/net/uip.h
+++ b/core/net/uip.h
@@ -46,7 +46,7 @@
*
* This file is part of the uIP TCP/IP stack.
*
- * $Id: uip.h,v 1.1 2006/06/17 22:41:19 adamdunkels Exp $
+ * $Id: uip.h,v 1.2 2006/08/09 16:13:40 bg- Exp $
*
*/
@@ -56,17 +56,30 @@
#include "net/uipopt.h"
/**
- * Repressentation of an IP address.
+ * Representation of an IP address.
*
*/
-typedef u16_t uip_ip4addr_t[2];
-typedef u16_t uip_ip6addr_t[8];
+typedef union uip_ip4addr_t {
+ u16_t u16[2]; /* Must come first for now!!! */
+ u8_t u8[4];
+#if 0
+ u32_t u32;
+#endif
+} uip_ip4addr_t;
+
+typedef union uip_ip6addr_t {
+ u16_t u16[8];
+ u8_t u8[16];
+} uip_ip6addr_t;
+
#if UIP_CONF_IPV6
typedef uip_ip6addr_t uip_ipaddr_t;
#else /* UIP_CONF_IPV6 */
typedef uip_ip4addr_t uip_ipaddr_t;
#endif /* UIP_CONF_IPV6 */
+#include "net/tcpip.h"
+
/*---------------------------------------------------------------------------*/
/* First, the functions that should be called from the
* system. Initialization, the periodic timer and incoming packets are
@@ -103,7 +116,7 @@ typedef uip_ip4addr_t uip_ipaddr_t;
*
* \hideinitializer
*/
-#define uip_sethostaddr(addr) uip_ipaddr_copy(uip_hostaddr, (addr))
+#define uip_sethostaddr(addr) uip_ipaddr_copy(&uip_hostaddr, (addr))
/**
* Get the IP address of this host.
@@ -123,7 +136,7 @@ typedef uip_ip4addr_t uip_ipaddr_t;
*
* \hideinitializer
*/
-#define uip_gethostaddr(addr) uip_ipaddr_copy((addr), uip_hostaddr)
+#define uip_gethostaddr(addr) uip_ipaddr_copy((addr), &uip_hostaddr)
/**
* Set the default router's IP address.
@@ -135,7 +148,7 @@ typedef uip_ip4addr_t uip_ipaddr_t;
*
* \hideinitializer
*/
-#define uip_setdraddr(addr) uip_ipaddr_copy(uip_draddr, (addr))
+#define uip_setdraddr(addr) uip_ipaddr_copy(&uip_draddr, (addr))
/**
* Set the netmask.
@@ -147,7 +160,7 @@ typedef uip_ip4addr_t uip_ipaddr_t;
*
* \hideinitializer
*/
-#define uip_setnetmask(addr) uip_ipaddr_copy(uip_netmask, (addr))
+#define uip_setnetmask(addr) uip_ipaddr_copy(&uip_netmask, (addr))
/**
@@ -158,7 +171,7 @@ typedef uip_ip4addr_t uip_ipaddr_t;
*
* \hideinitializer
*/
-#define uip_getdraddr(addr) uip_ipaddr_copy((addr), uip_draddr)
+#define uip_getdraddr(addr) uip_ipaddr_copy((addr), &uip_draddr)
/**
* Get the netmask.
@@ -168,7 +181,7 @@ typedef uip_ip4addr_t uip_ipaddr_t;
*
* \hideinitializer
*/
-#define uip_getnetmask(addr) uip_ipaddr_copy((addr), uip_netmask)
+#define uip_getnetmask(addr) uip_ipaddr_copy((addr), &uip_netmask)
/** @} */
@@ -838,8 +851,10 @@ struct uip_udp_conn *uip_udp_new(uip_ipaddr_t *ripaddr, u16_t rport);
* \hideinitializer
*/
#define uip_ipaddr(addr, addr0,addr1,addr2,addr3) do { \
- ((u16_t *)(addr))[0] = HTONS(((addr0) << 8) | (addr1)); \
- ((u16_t *)(addr))[1] = HTONS(((addr2) << 8) | (addr3)); \
+ (addr)->u8[0] = addr0; \
+ (addr)->u8[1] = addr1; \
+ (addr)->u8[2] = addr2; \
+ (addr)->u8[3] = addr3; \
} while(0)
/**
@@ -878,14 +893,7 @@ struct uip_udp_conn *uip_udp_new(uip_ipaddr_t *ripaddr, u16_t rport);
*
* \hideinitializer
*/
-#if !UIP_CONF_IPV6
-#define uip_ipaddr_copy(dest, src) do { \
- ((u16_t *)dest)[0] = ((u16_t *)src)[0]; \
- ((u16_t *)dest)[1] = ((u16_t *)src)[1]; \
- } while(0)
-#else /* !UIP_CONF_IPV6 */
-#define uip_ipaddr_copy(dest, src) memcpy(dest, src, sizeof(uip_ip6addr_t))
-#endif /* !UIP_CONF_IPV6 */
+#define uip_ipaddr_copy(dest, src) ((*dest) = (*src))
/**
* Compare two IP addresses
@@ -908,8 +916,8 @@ struct uip_udp_conn *uip_udp_new(uip_ipaddr_t *ripaddr, u16_t rport);
* \hideinitializer
*/
#if !UIP_CONF_IPV6
-#define uip_ipaddr_cmp(addr1, addr2) (((u16_t *)addr1)[0] == ((u16_t *)addr2)[0] && \
- ((u16_t *)addr1)[1] == ((u16_t *)addr2)[1])
+#define uip_ipaddr_cmp(addr1, addr2) ((addr1)->u16[0] == (addr2)->u16[0] && \
+ (addr1)->u16[1] == (addr2)->u16[1])
#else /* !UIP_CONF_IPV6 */
#define uip_ipaddr_cmp(addr1, addr2) (memcmp(addr1, addr2, sizeof(uip_ip6addr_t)) == 0)
#endif /* !UIP_CONF_IPV6 */
@@ -992,7 +1000,7 @@ struct uip_udp_conn *uip_udp_new(uip_ipaddr_t *ripaddr, u16_t rport);
*
* \hideinitializer
*/
-#define uip_ipaddr1(addr) (htons(((u16_t *)(addr))[0]) >> 8)
+#define uip_ipaddr1(addr) ((addr)->u8[0])
/**
* Pick the second octet of an IP address.
@@ -1012,7 +1020,7 @@ struct uip_udp_conn *uip_udp_new(uip_ipaddr_t *ripaddr, u16_t rport);
*
* \hideinitializer
*/
-#define uip_ipaddr2(addr) (htons(((u16_t *)(addr))[0]) & 0xff)
+#define uip_ipaddr2(addr) ((addr)->u8[1])
/**
* Pick the third octet of an IP address.
@@ -1032,7 +1040,7 @@ struct uip_udp_conn *uip_udp_new(uip_ipaddr_t *ripaddr, u16_t rport);
*
* \hideinitializer
*/
-#define uip_ipaddr3(addr) (htons(((u16_t *)(addr))[1]) >> 8)
+#define uip_ipaddr3(addr) ((addr)->u8[2])
/**
* Pick the fourth octet of an IP address.
@@ -1052,7 +1060,7 @@ struct uip_udp_conn *uip_udp_new(uip_ipaddr_t *ripaddr, u16_t rport);
*
* \hideinitializer
*/
-#define uip_ipaddr4(addr) (htons(((u16_t *)(addr))[1]) & 0xff)
+#define uip_ipaddr4(addr) ((addr)->u8[3])
/**
* Convert 16-bit quantity from host byte order to network byte order.
@@ -1403,8 +1411,7 @@ struct uip_tcpip_hdr {
ttl,
proto;
u16_t ipchksum;
- u16_t srcipaddr[2],
- destipaddr[2];
+ uip_ipaddr_t srcipaddr, destipaddr;
#endif /* UIP_CONF_IPV6 */
/* TCP header. */
@@ -1440,8 +1447,7 @@ struct uip_icmpip_hdr {
ttl,
proto;
u16_t ipchksum;
- u16_t srcipaddr[2],
- destipaddr[2];
+ uip_ipaddr_t srcipaddr, destipaddr;
#endif /* UIP_CONF_IPV6 */
/* ICMP (echo) header. */
@@ -1477,8 +1483,7 @@ struct uip_udpip_hdr {
ttl,
proto;
u16_t ipchksum;
- u16_t srcipaddr[2],
- destipaddr[2];
+ uip_ipaddr_t srcipaddr, destipaddr;
#endif /* UIP_CONF_IPV6 */
/* UDP header. */
@@ -1535,6 +1540,7 @@ extern const uip_ipaddr_t uip_hostaddr, uip_netmask, uip_draddr;
extern uip_ipaddr_t uip_hostaddr, uip_netmask, uip_draddr;
#endif /* UIP_FIXEDADDR */
extern const uip_ipaddr_t uip_broadcast_addr;
+extern const uip_ipaddr_t all_zeroes_addr;
/**
diff --git a/core/net/uip_arp.c b/core/net/uip_arp.c
index 2c54e47c1..0c6bf774a 100644
--- a/core/net/uip_arp.c
+++ b/core/net/uip_arp.c
@@ -54,7 +54,7 @@
*
* This file is part of the uIP TCP/IP stack.
*
- * $Id: uip_arp.c,v 1.1 2006/06/17 22:41:19 adamdunkels Exp $
+ * $Id: uip_arp.c,v 1.2 2006/08/09 16:13:40 bg- Exp $
*
*/
@@ -71,9 +71,9 @@ struct arp_hdr {
u8_t protolen;
u16_t opcode;
struct uip_eth_addr shwaddr;
- u16_t sipaddr[2];
+ uip_ipaddr_t sipaddr;
struct uip_eth_addr dhwaddr;
- u16_t dipaddr[2];
+ uip_ipaddr_t dipaddr;
};
struct ethip_hdr {
@@ -87,8 +87,7 @@ struct ethip_hdr {
ttl,
proto;
u16_t ipchksum;
- u16_t srcipaddr[2],
- destipaddr[2];
+ uip_ipaddr_t srcipaddr, destipaddr;
};
#define ARP_REQUEST 1
@@ -97,7 +96,7 @@ struct ethip_hdr {
#define ARP_HWTYPE_ETH 1
struct arp_entry {
- u16_t ipaddr[2];
+ uip_ipaddr_t ipaddr;
struct uip_eth_addr ethaddr;
u8_t time;
};
@@ -107,7 +106,7 @@ static const struct uip_eth_addr broadcast_ethaddr =
static const u16_t broadcast_ipaddr[2] = {0xffff,0xffff};
static struct arp_entry arp_table[UIP_ARPTAB_SIZE];
-static u16_t ipaddr[2];
+static uip_ipaddr_t ipaddr;
static u8_t i, c;
static u8_t arptime;
@@ -125,7 +124,7 @@ void
uip_arp_init(void)
{
for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {
- memset(arp_table[i].ipaddr, 0, 4);
+ memset(&arp_table[i].ipaddr, 0, 4);
}
}
/*-----------------------------------------------------------------------------------*/
@@ -146,16 +145,16 @@ uip_arp_timer(void)
++arptime;
for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {
tabptr = &arp_table[i];
- if((tabptr->ipaddr[0] | tabptr->ipaddr[1]) != 0 &&
+ if(uip_ipaddr_cmp(&tabptr->ipaddr, &all_zeroes_addr) &&
arptime - tabptr->time >= UIP_ARP_MAXAGE) {
- memset(tabptr->ipaddr, 0, 4);
+ memset(&tabptr->ipaddr, 0, 4);
}
}
}
/*-----------------------------------------------------------------------------------*/
static void
-uip_arp_update(u16_t *ipaddr, struct uip_eth_addr *ethaddr)
+uip_arp_update(uip_ipaddr_t *ipaddr, struct uip_eth_addr *ethaddr)
{
register struct arp_entry *tabptr;
/* Walk through the ARP mapping table and try to find an entry to
@@ -165,13 +164,11 @@ uip_arp_update(u16_t *ipaddr, struct uip_eth_addr *ethaddr)
tabptr = &arp_table[i];
/* Only check those entries that are actually in use. */
- if(tabptr->ipaddr[0] != 0 &&
- tabptr->ipaddr[1] != 0) {
+ if(!uip_ipaddr_cmp(&tabptr->ipaddr, &all_zeroes_addr)) {
/* Check if the source IP address of the incoming packet matches
the IP address in this ARP table entry. */
- if(ipaddr[0] == tabptr->ipaddr[0] &&
- ipaddr[1] == tabptr->ipaddr[1]) {
+ if(uip_ipaddr_cmp(ipaddr, &tabptr->ipaddr)) {
/* An old entry found, update this and return. */
memcpy(tabptr->ethaddr.addr, ethaddr->addr, 6);
@@ -188,8 +185,7 @@ uip_arp_update(u16_t *ipaddr, struct uip_eth_addr *ethaddr)
/* First, we try to find an unused entry in the ARP table. */
for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {
tabptr = &arp_table[i];
- if(tabptr->ipaddr[0] == 0 &&
- tabptr->ipaddr[1] == 0) {
+ if(uip_ipaddr_cmp(&tabptr->ipaddr, &all_zeroes_addr)) {
break;
}
}
@@ -212,7 +208,7 @@ uip_arp_update(u16_t *ipaddr, struct uip_eth_addr *ethaddr)
/* Now, i is the ARP table entry which we will fill with the new
information. */
- memcpy(tabptr->ipaddr, ipaddr, 4);
+ tabptr->ipaddr = *ipaddr;
memcpy(tabptr->ethaddr.addr, ethaddr->addr, 6);
tabptr->time = arptime;
}
@@ -290,11 +286,11 @@ uip_arp_arpin(void)
reply. */
/* if(BUF->dipaddr[0] == uip_hostaddr[0] &&
BUF->dipaddr[1] == uip_hostaddr[1]) {*/
- if(uip_ipaddr_cmp(BUF->dipaddr, uip_hostaddr)) {
+ if(uip_ipaddr_cmp(&BUF->dipaddr, &uip_hostaddr)) {
/* First, we register the one who made the request in our ARP
table, since it is likely that we will do more communication
with this host in the future. */
- uip_arp_update(BUF->sipaddr, &BUF->shwaddr);
+ uip_arp_update(&BUF->sipaddr, &BUF->shwaddr);
/* The reply opcode is 2. */
BUF->opcode = HTONS(2);
@@ -304,10 +300,8 @@ uip_arp_arpin(void)
memcpy(BUF->ethhdr.src.addr, uip_ethaddr.addr, 6);
memcpy(BUF->ethhdr.dest.addr, BUF->dhwaddr.addr, 6);
- BUF->dipaddr[0] = BUF->sipaddr[0];
- BUF->dipaddr[1] = BUF->sipaddr[1];
- BUF->sipaddr[0] = uip_hostaddr[0];
- BUF->sipaddr[1] = uip_hostaddr[1];
+ BUF->dipaddr = BUF->sipaddr;
+ BUF->sipaddr = uip_hostaddr;
BUF->ethhdr.type = HTONS(UIP_ETHTYPE_ARP);
uip_len = sizeof(struct arp_hdr);
@@ -318,8 +312,8 @@ uip_arp_arpin(void)
for us. */
/* if(BUF->dipaddr[0] == uip_hostaddr[0] &&
BUF->dipaddr[1] == uip_hostaddr[1]) {*/
- if(uip_ipaddr_cmp(BUF->dipaddr, uip_hostaddr)) {
- uip_arp_update(BUF->sipaddr, &BUF->shwaddr);
+ if(uip_ipaddr_cmp(&BUF->dipaddr, &uip_hostaddr)) {
+ uip_arp_update(&BUF->sipaddr, &BUF->shwaddr);
}
break;
}
@@ -367,23 +361,23 @@ uip_arp_out(void)
packet with an ARP request for the IP address. */
/* First check if destination is a local broadcast. */
- if(uip_ipaddr_cmp(IPBUF->destipaddr, broadcast_ipaddr)) {
+ if(uip_ipaddr_cmp(&IPBUF->destipaddr, &uip_broadcast_addr)) {
memcpy(IPBUF->ethhdr.dest.addr, broadcast_ethaddr.addr, 6);
} else {
/* Check if the destination address is on the local network. */
- if(!uip_ipaddr_maskcmp(IPBUF->destipaddr, uip_hostaddr, uip_netmask)) {
+ if(!uip_ipaddr_maskcmp(&IPBUF->destipaddr, &uip_hostaddr, &uip_netmask)) {
/* Destination address was not on the local network, so we need to
use the default router's IP address instead of the destination
address when determining the MAC address. */
- uip_ipaddr_copy(ipaddr, uip_draddr);
+ uip_ipaddr_copy(&ipaddr, &uip_draddr);
} else {
/* Else, we use the destination IP address. */
- uip_ipaddr_copy(ipaddr, IPBUF->destipaddr);
+ uip_ipaddr_copy(&ipaddr, &IPBUF->destipaddr);
}
for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {
tabptr = &arp_table[i];
- if(uip_ipaddr_cmp(ipaddr, tabptr->ipaddr)) {
+ if(uip_ipaddr_cmp(&ipaddr, &tabptr->ipaddr)) {
break;
}
}
@@ -397,8 +391,8 @@ uip_arp_out(void)
memcpy(BUF->ethhdr.src.addr, uip_ethaddr.addr, 6);
memcpy(BUF->shwaddr.addr, uip_ethaddr.addr, 6);
- uip_ipaddr_copy(BUF->dipaddr, ipaddr);
- uip_ipaddr_copy(BUF->sipaddr, uip_hostaddr);
+ uip_ipaddr_copy(&BUF->dipaddr, &ipaddr);
+ uip_ipaddr_copy(&BUF->sipaddr, &uip_hostaddr);
BUF->opcode = HTONS(ARP_REQUEST); /* ARP request. */
BUF->hwtype = HTONS(ARP_HWTYPE_ETH);
BUF->protocol = HTONS(UIP_ETHTYPE_IP);
diff --git a/core/net/uipopt.h b/core/net/uipopt.h
index 5977db47f..06a0c8eb2 100644
--- a/core/net/uipopt.h
+++ b/core/net/uipopt.h
@@ -53,7 +53,7 @@
*
* This file is part of the uIP TCP/IP stack.
*
- * $Id: uipopt.h,v 1.1 2006/06/17 22:41:19 adamdunkels Exp $
+ * $Id: uipopt.h,v 1.2 2006/08/09 16:13:40 bg- Exp $
*
*/
@@ -540,7 +540,5 @@ typedef struct httpd_state uip_tcp_appstate_t
*/
/** @} */
-#include "net/tcpip.h"
-
#endif /* __UIPOPT_H__ */
/** @} */
diff --git a/platform/esb/contiki-esb-default-init-net.c b/platform/esb/contiki-esb-default-init-net.c
index 1eb8997ef..72da41b2f 100644
--- a/platform/esb/contiki-esb-default-init-net.c
+++ b/platform/esb/contiki-esb-default-init-net.c
@@ -28,7 +28,7 @@
*
* This file is part of the Contiki operating system.
*
- * @(#)$Id: contiki-esb-default-init-net.c,v 1.1 2006/06/17 22:41:27 adamdunkels Exp $
+ * @(#)$Id: contiki-esb-default-init-net.c,v 1.2 2006/08/09 16:13:40 bg- Exp $
*/
#include "contiki-esb.h"
@@ -44,7 +44,7 @@ static struct uip_fw_netif slipif =
void
init_net(void)
{
- u16_t hostaddr[2];
+ uip_ipaddr_t hostaddr;
rs232_set_input(slip_input_byte);
@@ -53,8 +53,8 @@ init_net(void)
if (NODE_ID > 0) {
/* node id is set, construct an ip address based on the node id */
- uip_ipaddr(hostaddr, 172, 16, 1, NODE_ID);
- uip_sethostaddr(hostaddr);
+ uip_ipaddr(&hostaddr, 172, 16, 1, NODE_ID);
+ uip_sethostaddr(&hostaddr);
}
uip_fw_register(&slipif);
uip_fw_default(&tr1001if);
diff --git a/platform/native/contiki-main.c b/platform/native/contiki-main.c
index ba4c152c2..73869c2ab 100644
--- a/platform/native/contiki-main.c
+++ b/platform/native/contiki-main.c
@@ -29,7 +29,7 @@
*
* This file is part of the Contiki OS
*
- * $Id: contiki-main.c,v 1.1 2006/06/17 22:41:31 adamdunkels Exp $
+ * $Id: contiki-main.c,v 1.2 2006/08/09 16:13:40 bg- Exp $
*
*/
@@ -57,14 +57,14 @@ main(void)
autostart_start(autostart_processes);
- uip_ipaddr(addr, 192,168,2,2);
- uip_sethostaddr(addr);
+ uip_ipaddr(&addr, 192,168,2,2);
+ uip_sethostaddr(&addr);
- uip_ipaddr(addr, 192,168,2,1);
- uip_setdraddr(addr);
+ uip_ipaddr(&addr, 192,168,2,1);
+ uip_setdraddr(&addr);
- uip_ipaddr(addr, 255,255,255,0);
- uip_setnetmask(addr);
+ uip_ipaddr(&addr, 255,255,255,0);
+ uip_setnetmask(&addr);
printf("Contiki initiated, now starting process scheduling\n");
diff --git a/platform/sky/dhclient.c b/platform/sky/dhclient.c
index 2ea101e92..e5a1cc219 100644
--- a/platform/sky/dhclient.c
+++ b/platform/sky/dhclient.c
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * @(#)$Id: dhclient.c,v 1.1 2006/08/02 14:44:46 bg- Exp $
+ * @(#)$Id: dhclient.c,v 1.2 2006/08/09 16:13:40 bg- Exp $
*/
/*
@@ -100,7 +100,7 @@ main(int argc, char **argv)
leds_toggle(LEDS_RED | LEDS_GREEN | LEDS_BLUE);
slip_arch_init(); /* Must come before first printf */
printf("Starting %s "
- "($Id: dhclient.c,v 1.1 2006/08/02 14:44:46 bg- Exp $)\n", __FILE__);
+ "($Id: dhclient.c,v 1.2 2006/08/09 16:13:40 bg- Exp $)\n", __FILE__);
ds2411_init();
sensors_light_init();
cc2420_init();
@@ -194,7 +194,7 @@ PROCESS_THREAD(dhclient_process, ev, data)
/* For now use 0.0.0.0 as our IP address. */
uip_ipaddr(&uip_hostaddr, 0,0,0,0);
- cc2420_set_chan_pan_addr(RF_CHANNEL, panId, uip_hostaddr[1], ds2411_id);
+ cc2420_set_chan_pan_addr(RF_CHANNEL, panId, uip_hostaddr.u16[1], ds2411_id);
/* Use only radio interface and enable forwarding. */
uip_fw_default(&cc2420if);
@@ -230,18 +230,18 @@ dhcpc_configured(const struct dhcpc_state *s)
process_start(&uaodv_process, NULL);
}
- uip_sethostaddr(s->ipaddr);
- uip_setnetmask(s->netmask);
- uip_setdraddr(s->default_router);
+ uip_sethostaddr(&s->ipaddr);
+ uip_setnetmask(&s->netmask);
+ uip_setdraddr(&s->default_router);
- uip_ipaddr_copy(&cc2420if.ipaddr, s->ipaddr);
- uip_ipaddr_copy(&cc2420if.netmask, s->netmask);
+ uip_ipaddr_copy(&cc2420if.ipaddr, &s->ipaddr);
+ uip_ipaddr_copy(&cc2420if.netmask, &s->netmask);
/* resolv_conf(s->dnsaddr); */
/*
* Now we also have a new short MAC address!
*/
- cc2420_set_chan_pan_addr(RF_CHANNEL, panId, uip_hostaddr[1], ds2411_id);
+ cc2420_set_chan_pan_addr(RF_CHANNEL, panId, uip_hostaddr.u16[1], ds2411_id);
/* Use only radio interface and enable forwarding. */
uip_fw_init();
@@ -257,10 +257,10 @@ dhcpc_unconfigured(const struct dhcpc_state *s)
is_configured = 0;
process_exit(&uaodv_process);
- uip_ipaddr(uip_hostaddr, 0,0,0,0);
- uip_ipaddr(uip_netmask, 0,0,0,0);
- uip_ipaddr(uip_draddr, 0,0,0,0);
+ uip_ipaddr(&uip_hostaddr, 0,0,0,0);
+ uip_ipaddr(&uip_netmask, 0,0,0,0);
+ uip_ipaddr(&uip_draddr, 0,0,0,0);
/* New short MAC address. */
- cc2420_set_chan_pan_addr(RF_CHANNEL, panId, uip_hostaddr[1], ds2411_id);
+ cc2420_set_chan_pan_addr(RF_CHANNEL, panId, uip_hostaddr.u16[1], ds2411_id);
}
diff --git a/platform/sky/gateway.c b/platform/sky/gateway.c
index 38cc6291b..ad2653040 100644
--- a/platform/sky/gateway.c
+++ b/platform/sky/gateway.c
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * @(#)$Id: gateway.c,v 1.1 2006/08/02 14:44:46 bg- Exp $
+ * @(#)$Id: gateway.c,v 1.2 2006/08/09 16:13:40 bg- Exp $
*/
/*
@@ -110,7 +110,7 @@ main(int argc, char **argv)
leds_toggle(LEDS_RED | LEDS_GREEN | LEDS_BLUE);
slip_arch_init(); /* Must come before first printf */
printf("Starting %s "
- "($Id: gateway.c,v 1.1 2006/08/02 14:44:46 bg- Exp $)\n", __FILE__);
+ "($Id: gateway.c,v 1.2 2006/08/09 16:13:40 bg- Exp $)\n", __FILE__);
ds2411_init();
sensors_light_init();
cc2420_init();
@@ -128,7 +128,7 @@ main(int argc, char **argv)
uip_ipaddr_copy(&uip_netmask, &cc2420if.netmask);
printf("IP %d.%d.%d.%d netmask %d.%d.%d.%d\n",
ip2quad(&uip_hostaddr), ip2quad(&uip_netmask));
- cc2420_set_chan_pan_addr(RF_CHANNEL, panId, uip_hostaddr[1], ds2411_id);
+ cc2420_set_chan_pan_addr(RF_CHANNEL, panId, uip_hostaddr.u16[1], ds2411_id);
/*
* Initialize Contiki and our processes.
diff --git a/platform/sky/udprecv.c b/platform/sky/udprecv.c
index 5cac1d91c..429c3e65b 100644
--- a/platform/sky/udprecv.c
+++ b/platform/sky/udprecv.c
@@ -28,7 +28,7 @@
*
* This file is part of the Contiki operating system.
*
- * @(#)$Id: udprecv.c,v 1.1 2006/08/02 14:44:46 bg- Exp $
+ * @(#)$Id: udprecv.c,v 1.2 2006/08/09 16:13:40 bg- Exp $
*/
#include
@@ -51,7 +51,7 @@ PROCESS_THREAD(udprecv_process, ev, data)
{
uip_ipaddr_t any;
uip_ipaddr(&any, 0,0,0,0);
- c = udp_new(any, HTONS(0), NULL);
+ c = udp_new(&any, HTONS(0), NULL);
uip_udp_bind(c, HTONS(4321));
}
@@ -59,7 +59,7 @@ PROCESS_THREAD(udprecv_process, ev, data)
PROCESS_YIELD();
if(ev == tcpip_event && uip_newdata()) {
- u8_t *src = (u8_t *)((struct uip_udpip_hdr *)uip_buf)->srcipaddr;
+ u8_t *src = ((struct uip_udpip_hdr *)uip_buf)->srcipaddr.u8;
printf("%d.%d.%d.%d: %s\n",
src[0], src[1], src[2], src[3], (char *)uip_appdata);
}
diff --git a/platform/sky/udpsend.c b/platform/sky/udpsend.c
index 94efef12f..4c78b7207 100644
--- a/platform/sky/udpsend.c
+++ b/platform/sky/udpsend.c
@@ -28,7 +28,7 @@
*
* This file is part of the Contiki operating system.
*
- * @(#)$Id: udpsend.c,v 1.1 2006/08/02 14:44:46 bg- Exp $
+ * @(#)$Id: udpsend.c,v 1.2 2006/08/09 16:13:40 bg- Exp $
*/
/* Set the IP destination address to something different from the
@@ -60,7 +60,7 @@ PROCESS_THREAD(udpsend_process, ev, data)
{
uip_ipaddr_t addr;
uip_ipaddr(&addr, 255,255,255,255); /* Change address here! */
- c = udp_new(addr, HTONS(4321), NULL);
+ c = udp_new(&addr, HTONS(4321), NULL);
c->ttl = 1; /* One hop only. */
}