40 #define DEBUG DEBUG_NONE
46 uiplib_ip6addrconv(
const char *addrstr, uip_ip6addr_t *ipaddr)
55 if(*addrstr ==
'[') addrstr++;
57 for(len = 0; len <
sizeof(uip_ip6addr_t) - 1; addrstr++) {
59 if(c ==
':' || c ==
'\0' || c ==
']' || c ==
'/') {
60 ipaddr->u8[len] = (value >> 8) & 0xff;
61 ipaddr->u8[len + 1] = value & 0xff;
65 if(c ==
'\0' || c ==
']' || c ==
'/') {
69 if(*(addrstr + 1) ==
':') {
77 if(c >=
'0' && c <=
'9') {
79 }
else if(c >=
'a' && c <=
'f') {
81 }
else if(c >=
'A' && c <=
'F') {
84 PRINTF(
"uiplib: illegal char: '%c'\n", c);
87 value = (value << 4) + (tmp & 0xf);
90 if(c !=
'\0' && c !=
']' && c !=
'/') {
91 PRINTF(
"uiplib: too large address\n");
94 if(len <
sizeof(uip_ip6addr_t)) {
96 PRINTF(
"uiplib: too short address\n");
99 memmove(&ipaddr->u8[zero +
sizeof(uip_ip6addr_t) - len],
100 &ipaddr->u8[zero], len - zero);
101 memset(&ipaddr->u8[zero], 0,
sizeof(uip_ip6addr_t) - len);
111 uiplib_ip4addrconv(
const char *addrstr,
uip_ip4addr_t *ipaddr)
116 uint8_t charsread = 0;
120 for(i = 0; i < 4; ++i) {
128 if(c ==
'.' || c == 0 || c ==
' ') {
131 }
else if(c >=
'0' && c <=
'9') {
132 tmp = (tmp * 10) + (c -
'0');
138 }
while(c !=
'.' && c != 0 && c !=
' ');
Header file for the uIP TCP/IP stack.
Representation of an IP address.
A set of debugging macros.
Various uIP library functions.