diff options
author | venaas <venaas> | 2008-02-19 14:12:26 +0000 |
---|---|---|
committer | venaas <venaas@e88ac4ed-0b26-0410-9574-a7f39faa03bf> | 2008-02-19 14:12:26 +0000 |
commit | 1932be8fffa9c6a1e3b6df17f51f3e29746cb7f4 (patch) | |
tree | 853cc596c87d161f60a84ca022f1f53bbccf7183 | |
parent | 4f214a98e413b6d19aa536d5735f722d453d2280 (diff) |
Solaris9 fixes
git-svn-id: https://svn.testnett.uninett.no/radsecproxy/trunk@214 e88ac4ed-0b26-0410-9574-a7f39faa03bf
-rw-r--r-- | Makefile.am | 4 | ||||
-rw-r--r-- | configure.ac | 13 | ||||
-rw-r--r-- | debug.c | 2 | ||||
-rw-r--r-- | debug.h | 2 | ||||
-rw-r--r-- | radsecproxy.c | 20 | ||||
-rw-r--r-- | util.c | 2 |
6 files changed, 40 insertions, 3 deletions
diff --git a/Makefile.am b/Makefile.am index acf4223..eb4b1d2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -11,8 +11,8 @@ radsecproxy_SOURCES = radsecproxy.c \ util.h \ list.h -radsecproxy_CFLAGS = -g -Wall -pedantic -pthread @SSL_CFLAGS@ -radsecproxy_LDFLAGS = @SSL_LDFLAGS@ +radsecproxy_CFLAGS = -g -Wall -pedantic -pthread @SSL_CFLAGS@ @TARGET_CFLAGS@ +radsecproxy_LDFLAGS = @SSL_LDFLAGS@ @TARGET_LDFLAGS@ radsecproxy_LDADD = @SSL_LIBS@ dist_sysconf_DATA = $(srcdir)/radsecproxy.conf-example diff --git a/configure.ac b/configure.ac index 410df27..444ee64 100644 --- a/configure.ac +++ b/configure.ac @@ -2,5 +2,18 @@ AC_INIT(radsecproxy, 1.2-devel, venaas@uninett.no) AM_INIT_AUTOMAKE AC_PROG_CC AM_PROG_CC_C_O +dnl Check if we're on Solaris and set CFLAGS accordingly +AC_CANONICAL_SYSTEM +case "${target_os}" in + solaris*) + TARGET_CFLAGS="-DSYS_SOLARIS9 -D_POSIX_PTHREAD_SEMANTICS" + TARGET_LDFLAGS="-lsocket" + ;; + *) + TARGET_CFLAGS="" + TARGET_LDFLAGS="" + esac +AC_SUBST(TARGET_CFLAGS) +AC_SUBST(TARGET_LDFLAGS) AX_CHECK_SSL AC_OUTPUT(Makefile) @@ -6,7 +6,9 @@ * copyright notice and this permission notice appear in all copies. */ +#ifndef SYS_SOLARIS9 #include <stdint.h> +#endif #include <stdio.h> #include <stdlib.h> #include <stdarg.h> @@ -6,7 +6,9 @@ * copyright notice and this permission notice appear in all copies. */ +#ifndef SYS_SOLARIS9 #include <stdint.h> +#endif #define DBG_DBG 8 #define DBG_INFO 16 diff --git a/radsecproxy.c b/radsecproxy.c index 2f3c99b..f6cbaa1 100644 --- a/radsecproxy.c +++ b/radsecproxy.c @@ -34,6 +34,9 @@ #include <netdb.h> #include <string.h> #include <unistd.h> +#ifdef SYS_SOLARIS9 +#include <fcntl.h> +#endif #include <sys/time.h> #include <sys/types.h> #include <arpa/inet.h> @@ -2768,6 +2771,23 @@ void getargs(int argc, char **argv, uint8_t *foreground, uint8_t *pretend, uint8 exit(1); } +#ifdef SYS_SOLARIS9 +int daemon(int a, int b) { + int i; + + if (fork()) + exit(0); + + setsid(); + + for (i = 0; i < 3; i++) { + close(i); + open("/dev/null", O_RDWR); + } + return 1; +} +#endif + int main(int argc, char **argv) { pthread_t udpserverth, udpaccserverth, udpclient4rdth, udpclient6rdth; struct list_node *entry; @@ -91,7 +91,7 @@ char *addr2string(struct sockaddr *addr, socklen_t len) { if (getnameinfo(addr, len, addr_buf[i], sizeof(addr_buf[i]), NULL, 0, NI_NUMERICHOST)) { debug(DBG_WARN, "getnameinfo failed"); - return NULL; + return return "getnameinfo_failed"; } return addr_buf[i]; } |