fixed a couple of porting (C++->C) issues
This commit was SVN r638.
Этот коммит содержится в:
родитель
60be99b4cd
Коммит
8908bf2cbc
@ -65,6 +65,7 @@ static int lam_ifinit(void)
|
|||||||
close(sd);
|
close(sd);
|
||||||
return LAM_ERROR;
|
return LAM_ERROR;
|
||||||
}
|
}
|
||||||
|
STATIC_INIT(lam_if_list, &lam_list_cls);
|
||||||
|
|
||||||
for(ptr = buff; ptr < buff + ifconf.ifc_len; ) {
|
for(ptr = buff; ptr < buff + ifconf.ifc_len; ) {
|
||||||
struct ifreq* ifr = (struct ifreq*)ptr;
|
struct ifreq* ifr = (struct ifreq*)ptr;
|
||||||
@ -72,6 +73,8 @@ static int lam_ifinit(void)
|
|||||||
lam_if_t *intf_ptr;
|
lam_if_t *intf_ptr;
|
||||||
lam_list_item_init(&intf.if_item);
|
lam_list_item_init(&intf.if_item);
|
||||||
|
|
||||||
|
STATIC_INIT(intf, &lam_list_item_cls);
|
||||||
|
|
||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__)
|
||||||
ptr += (sizeof(ifr->ifr_name) +
|
ptr += (sizeof(ifr->ifr_name) +
|
||||||
MAX(sizeof(struct sockaddr),ifr->ifr_addr.sa_len));
|
MAX(sizeof(struct sockaddr),ifr->ifr_addr.sa_len));
|
||||||
@ -89,7 +92,7 @@ static int lam_ifinit(void)
|
|||||||
if(ifr->ifr_addr.sa_family != AF_INET)
|
if(ifr->ifr_addr.sa_family != AF_INET)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if(ioctl(sd, SIOCGIFFLAGS, &ifr) < 0) {
|
if(ioctl(sd, SIOCGIFFLAGS, ifr) < 0) {
|
||||||
lam_output(0, "lam_ifinit: ioctl(SIOCGIFFLAGS) failed with errno=%d", errno);
|
lam_output(0, "lam_ifinit: ioctl(SIOCGIFFLAGS) failed with errno=%d", errno);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -102,7 +105,7 @@ static int lam_ifinit(void)
|
|||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__)
|
||||||
intf.if_index = lam_list_get_size(&lam_if_list)+1;
|
intf.if_index = lam_list_get_size(&lam_if_list)+1;
|
||||||
#else
|
#else
|
||||||
if(ioctl(sd, SIOCGIFINDEX, &ifr) < 0) {
|
if(ioctl(sd, SIOCGIFINDEX, ifr) < 0) {
|
||||||
lam_output(0,"lam_ifinit: ioctl(SIOCGIFINDEX) failed with errno=%d", errno);
|
lam_output(0,"lam_ifinit: ioctl(SIOCGIFINDEX) failed with errno=%d", errno);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -115,7 +118,7 @@ static int lam_ifinit(void)
|
|||||||
#endif
|
#endif
|
||||||
#endif /* __APPLE__ */
|
#endif /* __APPLE__ */
|
||||||
|
|
||||||
if(ioctl(sd, SIOCGIFADDR, &ifr) < 0) {
|
if(ioctl(sd, SIOCGIFADDR, ifr) < 0) {
|
||||||
lam_output(0, "lam_ifinit: ioctl(SIOCGIFADDR) failed with errno=%d", errno);
|
lam_output(0, "lam_ifinit: ioctl(SIOCGIFADDR) failed with errno=%d", errno);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -123,7 +126,7 @@ static int lam_ifinit(void)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
memcpy(&intf.if_addr, &ifr->ifr_addr, sizeof(intf.if_addr));
|
memcpy(&intf.if_addr, &ifr->ifr_addr, sizeof(intf.if_addr));
|
||||||
if(ioctl(sd, SIOCGIFNETMASK, &ifr) < 0) {
|
if(ioctl(sd, SIOCGIFNETMASK, ifr) < 0) {
|
||||||
lam_output(0, "lam_ifinit: ioctl(SIOCGIFNETMASK) failed with errno=%d", errno);
|
lam_output(0, "lam_ifinit: ioctl(SIOCGIFNETMASK) failed with errno=%d", errno);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -134,7 +137,7 @@ static int lam_ifinit(void)
|
|||||||
lam_output(0, "lam_ifinit: unable to allocated %d bytes\n", sizeof(lam_if_t));
|
lam_output(0, "lam_ifinit: unable to allocated %d bytes\n", sizeof(lam_if_t));
|
||||||
return LAM_ERR_OUT_OF_RESOURCE;
|
return LAM_ERR_OUT_OF_RESOURCE;
|
||||||
}
|
}
|
||||||
memcpy(intf_ptr, &intf, sizeof(lam_if_t));
|
memcpy(intf_ptr, &intf, sizeof(intf));
|
||||||
lam_list_append(&lam_if_list, (lam_list_item_t*)intf_ptr);
|
lam_list_append(&lam_if_list, (lam_list_item_t*)intf_ptr);
|
||||||
}
|
}
|
||||||
close(sd);
|
close(sd);
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user