41 #define DEBUG DEBUG_NONE 48 uiplib_ip6addrconv(
const char *addrstr, uip_ip6addr_t *ipaddr)
57 if(*addrstr ==
'[') addrstr++;
59 for(len = 0; len <
sizeof(uip_ip6addr_t) - 1; addrstr++) {
61 if(c ==
':' || c ==
'\0' || c ==
']' || c ==
'/') {
62 ipaddr->u8[len] = (value >> 8) & 0xff;
63 ipaddr->u8[len + 1] = value & 0xff;
67 if(c ==
'\0' || c ==
']' || c ==
'/') {
71 if(*(addrstr + 1) ==
':') {
79 if(c >=
'0' && c <=
'9') {
81 }
else if(c >=
'a' && c <=
'f') {
83 }
else if(c >=
'A' && c <=
'F') {
86 PRINTF(
"uiplib: illegal char: '%c'\n", c);
89 value = (value << 4) + (tmp & 0xf);
92 if(c !=
'\0' && c !=
']' && c !=
'/') {
93 PRINTF(
"uiplib: too large address\n");
96 if(len <
sizeof(uip_ip6addr_t)) {
98 PRINTF(
"uiplib: too short address\n");
101 memmove(&ipaddr->u8[zero +
sizeof(uip_ip6addr_t) - len],
102 &ipaddr->u8[zero], len - zero);
103 memset(&ipaddr->u8[zero], 0,
sizeof(uip_ip6addr_t) - len);
113 uiplib_ip4addrconv(
const char *addrstr,
uip_ip4addr_t *ipaddr)
118 uint8_t charsread = 0;
122 for(i = 0; i < 4; ++i) {
130 if(c ==
'.' || c == 0 || c ==
' ') {
133 }
else if(c >=
'0' && c <=
'9') {
134 tmp = (tmp * 10) + (c -
'0');
140 }
while(c !=
'.' && c != 0 && c !=
' ');