fixing sa_len to compile again on non-ipv6 and non-macosx

git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@855 8eb893ce-cfd4-0310-b710-fb5ebe64c474
sayer/1.4-spce2.6
Stefan Sayer 19 years ago
parent ca1e19de52
commit b5f42a5083

@ -286,6 +286,20 @@ std::vector <string> explode(string s, string e);
/** add a directory to an environement variable */
void add_env_path(const char* name, const string& path);
#ifdef SUPPORT_IPV6
#ifdef SIN6_LEN
#define SOCKADDR_LEN(soc_address) ((struct sockaddr *)&soc_address)->sa_len
#else
#ifndef SA_LEN
#define SA_LEN(x) (((x)->sa_family == AF_INET6)?sizeof(struct sockaddr_in6): \
(((x)->sa_family == AF_INET)?sizeof(struct sockaddr_in):sizeof(struct sockaddr)))
#endif
#define SOCKADDR_LEN(soc_address) SA_LEN((struct sockaddr *)&soc_address)
#endif /* SIN6_LEN */
#else
#define SOCKADDR_LEN(soc_address) sizeof(soc_address)
#endif /* SUPPORT_IPV6 */
#endif
// Local Variables:

@ -455,7 +455,7 @@ static void getInterfaceList(int sd, std::vector<std::pair<string,string> >& if_
inet_ntoa(sa->sin_addr)));
}
p_ifr = (struct ifreq*)(((char*)p_ifr) + IFNAMSIZ + p_ifr->ifr_addr.sa_len);
p_ifr = (struct ifreq*)(((char*)p_ifr) + IFNAMSIZ + SOCKADDR_LEN(p_ifr->ifr_addr));
}
}

Loading…
Cancel
Save