37 #define NETINIT_ADDR_SET(name_p) \
39 if(ip_check(DEFAULT_IP_ADDR, netinfo.ip) != RET_OK) { \
40 printf("Default IP Addr set fail"); return RET_NOK; \
41 } else DBGA(name_p" IP Addr(%d.%d.%d.%d)", \
42 netinfo.ip[0], netinfo.ip[1], netinfo.ip[2], netinfo.ip[3]); \
43 if(ip_check(DEFAULT_SN_MASK, netinfo.sn) != RET_OK) { \
44 printf("Default SN Mask set fail"); return RET_NOK; \
45 } else DBGA(name_p" SN Mask(%d.%d.%d.%d)", \
46 netinfo.sn[0], netinfo.sn[1], netinfo.sn[2], netinfo.sn[3]); \
47 if(ip_check(DEFAULT_GW_ADDR, netinfo.gw) != RET_OK) { \
48 printf("Default GW Addr set fail"); return RET_NOK; \
49 } else DBGA(name_p" GW Addr(%d.%d.%d.%d)", netinfo.gw[0], \
50 netinfo.gw[1], netinfo.gw[2], netinfo.gw[3]); \
51 if(ip_check(DEFAULT_DNS_ADDR, netinfo.dns) != RET_OK) { \
52 printf("Default DNS Addr set fail"); return RET_NOK; \
53 } else DBGA(name_p" DNS Addr(%d.%d.%d.%d)", netinfo.dns[0], \
54 netinfo.dns[1], netinfo.dns[2], netinfo.dns[3]); \
59 memset(&netinfo, 0,
sizeof(netinfo));
62 printf(
"Default MAC Addr set fail");
64 }
else DBGA(
"Default MAC Addr(%02x:%02x:%02x:%02x:%02x:%02x)", netinfo.
mac[0],
65 netinfo.
mac[1], netinfo.
mac[2], netinfo.
mac[3], netinfo.
mac[4], netinfo.
mac[5]);
69 if(dhcp_init(dhcp_sock, ip_update, ip_conflict, &netinfo) !=
RET_OK)
92 LOG(
"---------------------------------------");
96 LOG(
"---------------------------------------");
97 LOG(
"Current Network Configuration ");
100 LOG(
"---------------------------------------");
101 LOGA(
"MAC : %02X:%02X:%02X:%02X:%02X:%02X", netinfo->
mac[0], netinfo->
mac[1],
102 netinfo->
mac[2], netinfo->
mac[3], netinfo->
mac[4], netinfo->
mac[5]);
103 LOGA(
"IP : %d.%d.%d.%d", netinfo->
ip[0], netinfo->
ip[1], netinfo->
ip[2], netinfo->
ip[3]);
104 LOGA(
"SN : %d.%d.%d.%d", netinfo->
sn[0], netinfo->
sn[1], netinfo->
sn[2], netinfo->
sn[3]);
105 LOGA(
"GW : %d.%d.%d.%d", netinfo->
gw[0], netinfo->
gw[1], netinfo->
gw[2], netinfo->
gw[3]);
106 LOG(
"---------------------------------------");
123 DBGA(
"WATCH Open - sock(%d), CB(%p)", sock, (
void*)cb);
125 ERRA(
"wrong arg - sock(%d)", sock);
128 if(watch_cb[sock] == NULL) watch_cb[sock] = cb;
144 DBGA(
"WATCH Close - sock(%d)", sock);
146 ERRA(
"wrong sock(%d)", sock);
151 watch_cb[sock] = NULL;
170 DBGA(
"WATCH Set - sock(%d), item(0x%x)", sock, item);
172 ERRA(
"wrong sock(%d)", sock);
176 BITSET(watch_sock[sock], 0x7F & item);
194 DBGA(
"WATCH Clear - sock(%d), item(0x%x)", sock, item);
196 ERRA(
"wrong sock(%d)", sock);
200 BITCLR(watch_sock[sock], 0x7F & item);
229 #define WCF_HANDLE(item_v, ret_v) \
231 BITCLR(watch_sock[i], item_v); \
232 watch_cb[i](i, item_v, ret_v); \
239 if(watch_sock[i] == 0)
continue;
285 int8_t tmp[16], *split;
286 int32_t digit, sumchk = 0;
288 digit = strlen((
char*)str);
289 if(digit > 15 || digit < 7) {
293 strcpy((
char*)tmp, (
char*)str);
294 split = (int8_t*)strtok((
char*)tmp,
".");
296 digit = atoi((
char*)split);
297 if(digit > 255 || digit < 0)
return RET_NOK;
298 if(ip) ip[cnt] = digit;
301 split = (int8_t*)strtok(NULL,
".");
304 if(cnt != 4 || sumchk == 0) {
324 val = strtol((
char*)str, (
char**)&ptr, 10);
326 if(val == 0 || val > 65535 || *ptr != 0)
return RET_NOK;
327 if(port) *port = val;
343 int8_t tmp[18], *split;
346 if(strlen((
char*)str) != 17) {
350 strcpy((
char*)tmp, (
char*)str);
351 split = (int8_t*)strtok((
char*)tmp,
":");
353 digit = strtol((
char*)split, NULL, 16);
354 if(digit > 255 || digit < 0)
return RET_NOK;
355 if(mac) mac[cnt] = digit;
357 split = (int8_t*)strtok(NULL,
":");
375 static int8_t addr_str[16];
376 memset(addr_str,0,16);
377 sprintf((
char*)addr_str,
"%d.%d.%d.%d",(int32_t)(addr>>24 & 0xFF),(int32_t)(addr>>16 & 0xFF),(int32_t)(addr>>8 & 0xFF),(int32_t)(addr & 0xFF));
390 static int8_t addr_str[16];
391 memset(addr_str,0,16);
392 sprintf((
char*)addr_str,
"%03d.%03d.%03d.%03d",(int32_t)(addr>>24 & 0xFF),(int32_t)(addr>>16 & 0xFF),(int32_t)(addr>>8 & 0xFF),(int32_t)(addr & 0xFF));
405 uint32_t inetaddr = 0;
409 strcpy((
char*)taddr,(
char*)addr);
412 for(i = 0; i < 4 ; i++)
414 nexttok = (int8_t*)strtok((
char*)nexttok,
".");
415 if(nexttok[0] ==
'0' && nexttok[1] ==
'x') num = strtol((
char*)nexttok+2, NULL, 16);
416 else num = strtol((
char*)nexttok, NULL, 10);
417 inetaddr = inetaddr << 8;
418 inetaddr |= (num & 0xFF);
433 ret = (i & 0xFF) << 8;
434 ret |= ((i >> 8)& 0xFF);
447 ret = (l & 0xFF) << 24;
448 ret |= ((l >> 8) & 0xFF) << 16;
449 ret |= ((l >> 16) & 0xFF) << 8;
450 ret |= ((l >> 24) & 0xFF);
462 #ifdef SYSTEM_LITTLE_ENDIAN
463 return swaps(hostshort);
478 #ifdef SYSTEM_LITTLE_ENDIAN
479 return swapl(hostlong);
495 #ifdef SYSTEM_LITTLE_ENDIAN
496 return htons(netshort);
511 #ifdef SYSTEM_LITTLE_ENDIAN
512 return swapl(netlong);