Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/azatoth/minidlna.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Maggard <jmaggard@users.sourceforge.net>2011-02-23 01:54:16 +0300
committerJustin Maggard <jmaggard@users.sourceforge.net>2011-02-23 01:54:16 +0300
commit6c7f8e22d32c76d90baf4d6dd875234f39098160 (patch)
tree6bc6ee3444498d4651d4689fb9d998ea1eb9ea69
parentea0f7c29ec4382fc55599adcaa56cc8354dd4300 (diff)
* Fix a couple bugs in error paths related to the previous change.
-rw-r--r--tivo_beacon.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/tivo_beacon.c b/tivo_beacon.c
index 22d9cd8..8de73af 100644
--- a/tivo_beacon.c
+++ b/tivo_beacon.c
@@ -108,6 +108,7 @@ getBcastAddress(void)
struct ifreq ifr[16];
struct ifconf ifc;
int count = 0;
+ uint32_t ret = INADDR_BROADCAST;
s = socket(PF_INET, SOCK_STREAM, 0);
memset(&ifc, '\0', sizeof(ifc));
@@ -115,8 +116,9 @@ getBcastAddress(void)
ifc.ifc_req = ifr;
if(ioctl(s, SIOCGIFCONF, &ifc) < 0) {
- DPRINTF(E_ERROR, L_TIVO, "Error getting interface list [%s]\n", ifr[i].ifr_name, strerror(errno));
- return INADDR_BROADCAST;
+ DPRINTF(E_ERROR, L_TIVO, "Error getting interface list [%s]\n", strerror(errno));
+ close(s);
+ return ret;
}
count = ifc.ifc_len / sizeof(struct ifreq);
@@ -129,17 +131,17 @@ getBcastAddress(void)
if( rval < 0 )
{
DPRINTF(E_ERROR, L_TIVO, "Failed to get broadcast addr on %s [%s]\n", ifr[i].ifr_name, strerror(errno));
- close(s);
- return INADDR_BROADCAST;
+ break;
}
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));
- 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;
}
/*