Make nixio compile on OpenSolaris
authorSteven Barth <steven@midlink.org>
Mon, 9 Mar 2009 09:37:08 +0000 (09:37 +0000)
committerSteven Barth <steven@midlink.org>
Mon, 9 Mar 2009 09:37:08 +0000 (09:37 +0000)
libs/nixio/Makefile
libs/nixio/src/process.c
libs/nixio/src/sockopt.c
libs/nixio/src/tls-socket.c

index df63dc1838f31939348aec10bc7ee45415b00dec..f8d01b78154b0f7c3971cde080225023af343f73 100644 (file)
@@ -6,8 +6,6 @@ AXTLS_VERSION = 1.2.1
 AXTLS_DIR     = axTLS
 AXTLS_FILE    = $(AXTLS_DIR)-$(AXTLS_VERSION).tar.gz
 NIXIO_TLS    ?= axtls
-EXTRA_CFLAGS  = -std=c99
-NIXIO_CFLAGS  = -D_XOPEN_SOURCE=500
 
 NIXIO_OBJ = src/nixio.o src/socket.o src/sockopt.o src/bind.o src/address.o \
            src/poll.o src/io.o src/file.o src/splice.o src/process.o \
@@ -24,10 +22,6 @@ ifeq ($(NIXIO_TLS),openssl)
        TLS_LDFLAGS = -lssl
 endif
 
-ifeq ($(OS),Linux)
-       NIXIO_CFLAGS = -D_GNU_SOURCE
-endif
-
 %.o: %.c
        $(COMPILE) $(NIXIO_CFLAGS) $(LUA_CFLAGS) $(FPIC) -c -o $@ $< 
 
@@ -55,7 +49,7 @@ $(AXTLS_DIR)/.prepared:
        touch $@
 
 src/libaxtls.a: $(AXTLS_DIR)/.prepared
-       $(MAKE) -C $(AXTLS_DIR) CC=$(CC) CFLAGS="$(CFLAGS) $(EXTRA_CFLAGS) $(FPIC) '-Dalloca(size)=__builtin_alloca(size)' -Wall -pedantic -I../config -I../ssl -I../crypto" LDFLAGS="$(LDFLAGS)" OS="$(OS)" clean all
+       $(MAKE) -C $(AXTLS_DIR) CC=$(CC) CFLAGS="$(CFLAGS) $(EXTRA_CFLAGS) $(FPIC) -Wall -pedantic -I../config -I../ssl -I../crypto" LDFLAGS="$(LDFLAGS)" OS="$(OS)" clean all
        cp -p $(AXTLS_DIR)/_stage/libaxtls.a src
 
 clean: luaclean
index 19fa10ef2cdfd7e7e658e8c1e51f5c0abbacd3ba..e8f0cdc50bf5e00eb8b06f85ecd282bc1dfc642c 100644 (file)
@@ -24,6 +24,7 @@
 #include <string.h>
 #include <sys/wait.h>
 #include <sys/types.h>
+#include <signal.h>
 
 static int nixio_fork(lua_State *L) {
        pid_t pid = fork();
index b80e2e3532b3db229dd90a4b6549066c73070837..6ec87539b632b220699dedce42f19a131b684d64 100644 (file)
@@ -23,6 +23,7 @@
 #include <sys/time.h>
 #include <string.h>
 #include <fcntl.h>
+#include <errno.h>
 #include "nixio.h"
 
 
@@ -124,7 +125,11 @@ static int nixio__getsetsockopt(lua_State *L, int set) {
                } else if (!strcmp(option, "sndbuf")) {
                        return nixio__gso_int(L, sock->fd, SOL_SOCKET, SO_SNDBUF, set);
                } else if (!strcmp(option, "priority")) {
+#ifdef SO_PRIORITY
                        return nixio__gso_int(L, sock->fd, SOL_SOCKET, SO_PRIORITY, set);
+#else
+                       return nixio__pstatus(L, !(errno = ENOPROTOOPT));
+#endif
                } else if (!strcmp(option, "broadcast")) {
                        return nixio__gso_int(L, sock->fd, SOL_SOCKET, SO_BROADCAST, set);
                } else if (!strcmp(option, "linger")) {
index 3b0744f04302fe378a57fbb62633c15f17c6dca6..693a2a551281ce24dc92ed0952032b2012bbd743 100644 (file)
@@ -82,11 +82,11 @@ static int nixio_tls_sock_recv(lua_State *L) {
                t->pbufsiz -= req;
                return 1;
        } else {
-               char *axbuf;
-               int axread;
+               uint8_t *axbuf;
+               size_t axread;
 
                /* while handshake pending */
-               while ((axread = ssl_read(sock, (uint8_t**)&axbuf)) == SSL_OK);
+               while ((axread = ssl_read(sock, &axbuf)) == SSL_OK);
 
                if (t->pbufsiz) {
                        lua_pushlstring(L, t->pbufpos, t->pbufsiz);
@@ -111,7 +111,7 @@ static int nixio_tls_sock_recv(lua_State *L) {
                        int stillwant = req - t->pbufsiz;
                        if (stillwant < axread) {
                                /* we got more data than we need */
-                               lua_pushlstring(L, axbuf, stillwant);
+                               lua_pushlstring(L, (char *)axbuf, stillwant);
                                if(t->pbufsiz) {
                                        lua_concat(L, 2);
                                }
@@ -130,7 +130,7 @@ static int nixio_tls_sock_recv(lua_State *L) {
                                t->pbufpos = t->pbuffer;
                                memcpy(t->pbufpos, axbuf + stillwant, t->pbufsiz);
                        } else {
-                               lua_pushlstring(L, axbuf, axread);
+                               lua_pushlstring(L, (char *)axbuf, axread);
                                if(t->pbufsiz) {
                                        lua_concat(L, 2);
                                }