aboutsummaryrefslogtreecommitdiffstats
path: root/asterisk.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-12-14 23:36:30 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-12-14 23:36:30 +0000
commit70cedacdde512d2ed5984eec242c55f3239b73fc (patch)
tree48694f38698e4ead3840305333816193c7fcd8a0 /asterisk.c
parentc60f8a2b8e1551244e674baff85cb1a4f2d5fd5b (diff)
Merge slimey's Solaris compatibility (with small mods) (bug #2740)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4446 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'asterisk.c')
-rwxr-xr-xasterisk.c33
1 files changed, 19 insertions, 14 deletions
diff --git a/asterisk.c b/asterisk.c
index 4dcf27a81..204ef160a 100755
--- a/asterisk.c
+++ b/asterisk.c
@@ -53,10 +53,15 @@
#include <grp.h>
#include <pwd.h>
-#if defined(__FreeBSD__) || defined( __NetBSD__ )
+#if defined(__FreeBSD__) || defined( __NetBSD__ ) || defined(SOLARIS)
#include <netdb.h>
#endif
+#ifndef AF_LOCAL
+#define AF_LOCAL AF_UNIX
+#define PF_LOCAL PF_UNIX
+#endif
+
#define AST_MAX_CONNECTS 128
#define NUM_MSGS 64
@@ -315,7 +320,7 @@ static void *netconsole(void *vconsole)
static void *listener(void *unused)
{
- struct sockaddr_un sun;
+ struct sockaddr_un sunaddr;
int s;
int len;
int x;
@@ -335,8 +340,8 @@ static void *listener(void *unused)
ast_log(LOG_WARNING, "poll returned error: %s\n", strerror(errno));
continue;
}
- len = sizeof(sun);
- s = accept(ast_socket, (struct sockaddr *)&sun, &len);
+ len = sizeof(sunaddr);
+ s = accept(ast_socket, (struct sockaddr *)&sunaddr, &len);
if (s < 0) {
if (errno != EINTR)
ast_log(LOG_WARNING, "Accept returned %d: %s\n", s, strerror(errno));
@@ -377,7 +382,7 @@ static void *listener(void *unused)
static int ast_makesocket(void)
{
- struct sockaddr_un sun;
+ struct sockaddr_un sunaddr;
int res;
int x;
for (x=0;x<AST_MAX_CONNECTS;x++)
@@ -388,10 +393,10 @@ static int ast_makesocket(void)
ast_log(LOG_WARNING, "Unable to create control socket: %s\n", strerror(errno));
return -1;
}
- memset(&sun, 0, sizeof(sun));
- sun.sun_family = AF_LOCAL;
- strncpy(sun.sun_path, (char *)ast_config_AST_SOCKET, sizeof(sun.sun_path)-1);
- res = bind(ast_socket, (struct sockaddr *)&sun, sizeof(sun));
+ memset(&sunaddr, 0, sizeof(sunaddr));
+ sunaddr.sun_family = AF_LOCAL;
+ strncpy(sunaddr.sun_path, (char *)ast_config_AST_SOCKET, sizeof(sunaddr.sun_path)-1);
+ res = bind(ast_socket, (struct sockaddr *)&sunaddr, sizeof(sunaddr));
if (res) {
ast_log(LOG_WARNING, "Unable to bind socket to %s: %s\n", (char *)ast_config_AST_SOCKET, strerror(errno));
close(ast_socket);
@@ -412,17 +417,17 @@ static int ast_makesocket(void)
static int ast_tryconnect(void)
{
- struct sockaddr_un sun;
+ struct sockaddr_un sunaddr;
int res;
ast_consock = socket(PF_LOCAL, SOCK_STREAM, 0);
if (ast_consock < 0) {
ast_log(LOG_WARNING, "Unable to create socket: %s\n", strerror(errno));
return 0;
}
- memset(&sun, 0, sizeof(sun));
- sun.sun_family = AF_LOCAL;
- strncpy(sun.sun_path, (char *)ast_config_AST_SOCKET, sizeof(sun.sun_path)-1);
- res = connect(ast_consock, (struct sockaddr *)&sun, sizeof(sun));
+ memset(&sunaddr, 0, sizeof(sunaddr));
+ sunaddr.sun_family = AF_LOCAL;
+ strncpy(sunaddr.sun_path, (char *)ast_config_AST_SOCKET, sizeof(sunaddr.sun_path)-1);
+ res = connect(ast_consock, (struct sockaddr *)&sunaddr, sizeof(sunaddr));
if (res) {
close(ast_consock);
ast_consock = -1;