*/
static inline int logsrv_addrlen(const struct logsrv *logsrv)
{
-#ifdef __SOCKADDR_COMMON
switch (logsrv->u.addr.sa_family) {
case AF_UNIX:
return sizeof(logsrv->u.un);
default:
break;
}
-#else /* !__SOCKADDR_COMMON */
- switch (logsrv->u.addr.sa_family) {
- case AF_UNIX:
- return logsrv->u.un.sun_len;
- case AF_INET:
- return logsrv->u.in.sin_len;
- default:
- break;
- }
-#endif /* !__SOCKADDR_COMMON */
return -1;
}
#include <netdb.h>
#include <stdlib.h>
#include <string.h>
+#include <sys/socket.h>
+#include <sys/un.h>
#include <netinet/in.h>
#include <arpa/inet.h>
*/
struct sockaddr_un *str2sun(char *str)
{
- static struct sockaddr_un sun;
+ static struct sockaddr_un su;
int strsz; /* length included null */
- memset(&sun, 0, sizeof(sun));
+ memset(&su, 0, sizeof(su));
str = strdup(str);
if (str == NULL)
goto out_nofree;
strsz = strlen(str) + 1;
- if (strsz > sizeof(sun.sun_path)) {
+ if (strsz > sizeof(su.sun_path)) {
Alert("Socket path '%s' too long (max %d)\n",
- str, sizeof(sun.sun_path) - 1);
+ str, sizeof(su.sun_path) - 1);
goto out_nofree;
}
-
-#ifndef __SOCKADDR_COMMON
- sun.sun_len = sizeof(sun.sun_path);
-#endif /* !__SOCKADDR_COMMON */
- sun.sun_family = AF_UNIX;
- memcpy(sun.sun_path, str, strsz);
+ su.sun_family = AF_UNIX;
+ memcpy(su.sun_path, str, strsz);
free(str);
out_nofree:
- return &sun;
+ return &su;
}
/*
return name;
while (*name) {
- if (!isalnum(*name) && *name != '.' && *name != ':' &&
+ if (!isalnum((int)*name) && *name != '.' && *name != ':' &&
*name != '_' && *name != '-')
return name;
name++;
else
sa.sin_addr = *(struct in_addr *) *(he->h_addr_list);
}
-#ifndef __SOCKADDR_COMMON
- sa.sin_len = sizeof(sa);
-#endif /* !__SOCKADDR_COMMON */
sa.sin_port = htons(port);
sa.sin_family = AF_INET;