Skip to content
Snippets Groups Projects
Commit e6c957ca authored by Matt Johnston's avatar Matt Johnston
Browse files

Fix so that getnameinfo() is passed the address-specific structure size. This

lets it work on Solaris (and probably other platforms)

--HG--
extra : convert_revision : b486b773f163af8462b0ef6565ac4285a54708eb
parent 6d752982
No related merge requests found
...@@ -357,6 +357,16 @@ unsigned char * getaddrstring(struct sockaddr_storage* addr, int withport) { ...@@ -357,6 +357,16 @@ unsigned char * getaddrstring(struct sockaddr_storage* addr, int withport) {
unsigned int len; unsigned int len;
len = sizeof(struct sockaddr_storage); len = sizeof(struct sockaddr_storage);
/* Some platforms such as Solaris 8 require that len is the length
* of the specific structure. */
if (addr->ss_family == AF_INET) {
len = sizeof(struct sockaddr_in);
}
#ifdef AF_INET6
if (addr->ss_family == AF_INET6) {
len = sizeof(struct sockaddr_in6);
}
#endif
ret = getnameinfo((struct sockaddr*)addr, len, hbuf, sizeof(hbuf), ret = getnameinfo((struct sockaddr*)addr, len, hbuf, sizeof(hbuf),
sbuf, sizeof(sbuf), NI_NUMERICSERV | NI_NUMERICHOST); sbuf, sizeof(sbuf), NI_NUMERICSERV | NI_NUMERICHOST);
...@@ -389,6 +399,16 @@ char* getaddrhostname(struct sockaddr_storage * addr) { ...@@ -389,6 +399,16 @@ char* getaddrhostname(struct sockaddr_storage * addr) {
unsigned int len; unsigned int len;
len = sizeof(struct sockaddr_storage); len = sizeof(struct sockaddr_storage);
/* Some platforms such as Solaris 8 require that len is the length
* of the specific structure. */
if (addr->ss_family == AF_INET) {
len = sizeof(struct sockaddr_in);
}
#ifdef AF_INET6
if (addr->ss_family == AF_INET6) {
len = sizeof(struct sockaddr_in6);
}
#endif
ret = getnameinfo((struct sockaddr*)addr, len, hbuf, sizeof(hbuf), ret = getnameinfo((struct sockaddr*)addr, len, hbuf, sizeof(hbuf),
sbuf, sizeof(sbuf), NI_NUMERICSERV); sbuf, sizeof(sbuf), NI_NUMERICSERV);
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment