#else
#include <ifaddrs.h>
+#include <sys/un.h>
#endif
#ifdef LWS_OPENSSL_SUPPORT
char ip[128];
unsigned char *p;
int n;
+ struct sockaddr_un *un;
rip[0] = '\0';
name[0] = '\0';
p = (unsigned char *)host1->h_addr_list[n++];
if (p == NULL)
continue;
- if (host1->h_addrtype != AF_INET)
+ if ((host1->h_addrtype != AF_INET) &&
+ (host1->h_addrtype != AF_LOCAL))
continue;
- sprintf(ip, "%u.%u.%u.%u",
- p[0], p[1], p[2], p[3]);
+ if (host1->h_addrtype == AF_INET)
+ sprintf(ip, "%u.%u.%u.%u", p[0], p[1], p[2], p[3]);
+ else {
+ un = (struct sockaddr_un *)p;
+ strncpy(ip, un->sun_path, sizeof(ip) -1);
+ ip[sizeof(ip) - 1] = '\0';
+ }
p = NULL;
strncpy(rip, ip, rip_len);
rip[rip_len - 1] = '\0';