* Fix a couple bugs in error paths related to the previous change.
This commit is contained in:
parent
39de8bb628
commit
0aec0db53b
@ -108,6 +108,7 @@ getBcastAddress(void)
|
|||||||
struct ifreq ifr[16];
|
struct ifreq ifr[16];
|
||||||
struct ifconf ifc;
|
struct ifconf ifc;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
uint32_t ret = INADDR_BROADCAST;
|
||||||
|
|
||||||
s = socket(PF_INET, SOCK_STREAM, 0);
|
s = socket(PF_INET, SOCK_STREAM, 0);
|
||||||
memset(&ifc, '\0', sizeof(ifc));
|
memset(&ifc, '\0', sizeof(ifc));
|
||||||
@ -115,8 +116,9 @@ getBcastAddress(void)
|
|||||||
ifc.ifc_req = ifr;
|
ifc.ifc_req = ifr;
|
||||||
|
|
||||||
if(ioctl(s, SIOCGIFCONF, &ifc) < 0) {
|
if(ioctl(s, SIOCGIFCONF, &ifc) < 0) {
|
||||||
DPRINTF(E_ERROR, L_TIVO, "Error getting interface list [%s]\n", ifr[i].ifr_name, strerror(errno));
|
DPRINTF(E_ERROR, L_TIVO, "Error getting interface list [%s]\n", strerror(errno));
|
||||||
return INADDR_BROADCAST;
|
close(s);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
count = ifc.ifc_len / sizeof(struct ifreq);
|
count = ifc.ifc_len / sizeof(struct ifreq);
|
||||||
@ -129,17 +131,17 @@ getBcastAddress(void)
|
|||||||
if( rval < 0 )
|
if( rval < 0 )
|
||||||
{
|
{
|
||||||
DPRINTF(E_ERROR, L_TIVO, "Failed to get broadcast addr on %s [%s]\n", ifr[i].ifr_name, strerror(errno));
|
DPRINTF(E_ERROR, L_TIVO, "Failed to get broadcast addr on %s [%s]\n", ifr[i].ifr_name, strerror(errno));
|
||||||
close(s);
|
break;
|
||||||
return INADDR_BROADCAST;
|
|
||||||
}
|
}
|
||||||
memcpy(&sin, &ifr[i].ifr_broadaddr, sizeof(sin));
|
memcpy(&sin, &ifr[i].ifr_broadaddr, sizeof(sin));
|
||||||
close(s);
|
|
||||||
DPRINTF(E_DEBUG, L_TIVO, "Interface: %s broadcast addr %s\n", ifr[i].ifr_name, inet_ntoa(sin.sin_addr));
|
DPRINTF(E_DEBUG, L_TIVO, "Interface: %s broadcast addr %s\n", ifr[i].ifr_name, inet_ntoa(sin.sin_addr));
|
||||||
return ntohl((uint32_t)(sin.sin_addr.s_addr));
|
ret = ntohl((uint32_t)(sin.sin_addr.s_addr));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
close(s);
|
||||||
|
|
||||||
return INADDR_BROADCAST;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user