Hello

The diff attached is targeted to Solaris users, it solves several issues:

- "__inline" should not be used because AC_C_INLINE will provide appropriate 
substitution for "inline", if necessary. In particular, Sun C compiler does 
not recognize __inline.
- added missing evport_dealloc()
- added missing -lresolv check. Without one libtool does not add libresolv 
into dependency_libs list in libevent.la.
- devpoll.c compilation fixes


-- 
Andrei Nigmatulin
GPG PUB KEY 6449830D

Now I lay me down to sleep(3)
Pray the OS my core to keep
If I die before I wake
Pray the Disk my core to take
diff -burp libevent/configure.in ./configure.in
--- libevent/configure.in	2007-06-08 01:59:32.000000000 +0400
+++ ./configure.in	2007-06-08 02:56:50.000000000 +0400
@@ -36,6 +36,7 @@ AC_ARG_WITH(rtsig,
 
 dnl Checks for libraries.
 AC_CHECK_LIB(socket, socket)
+AC_CHECK_LIB(resolv, inet_aton)
 
 dnl Checks for header files.
 AC_HEADER_STDC
diff -burp libevent/devpoll.c ./devpoll.c
--- libevent/devpoll.c	2007-06-08 01:59:32.000000000 +0400
+++ ./devpoll.c	2007-06-08 02:22:37.000000000 +0400
@@ -36,6 +36,7 @@
 #include <sys/_time.h>
 #endif
 #include <sys/queue.h>
+#include <sys/tree.h>
 #include <sys/devpoll.h>
 #include <signal.h>
 #include <stdio.h>
@@ -47,6 +48,7 @@
 #include <assert.h>
 
 #include "event.h"
+#include "event-internal.h"
 #include "evsignal.h"
 #include "log.h"
 
diff -burp libevent/event_tagging.c ./event_tagging.c
--- libevent/event_tagging.c	2007-06-08 01:59:32.000000000 +0400
+++ ./event_tagging.c	2007-06-08 02:20:07.000000000 +0400
@@ -149,7 +149,7 @@ evtag_marshal_timeval(struct evbuffer *e
 	    EVBUFFER_LENGTH(_buf));
 }
 
-static int __inline
+static int inline
 decode_int_internal(u_int32_t *pnumber, struct evbuffer *evbuf, int dodrain)
 {
 	u_int32_t number = 0;
diff -burp libevent/evport.c ./evport.c
--- libevent/evport.c	2007-06-08 01:59:32.000000000 +0400
+++ ./evport.c	2007-06-08 02:29:30.000000000 +0400
@@ -126,6 +126,7 @@ static int 	evport_add	(void *, struct e
 static int 	evport_del	(void *, struct event *);
 static int 	evport_recalc	(struct event_base *, void *, int);
 static int 	evport_dispatch	(struct event_base *, void *, struct timeval *);
+static void	evport_dealloc	(struct event_base *, void *);
 
 const struct eventop evportops = {
 	"event ports",
@@ -133,7 +134,8 @@ const struct eventop evportops = {
 	evport_add,
 	evport_del,
 	evport_recalc,
-	evport_dispatch
+	evport_dispatch,
+	evport_dealloc
 };
 
 /*
@@ -328,7 +330,7 @@ evport_dispatch(struct event_base *base,
 	}
 
 	if ((res = port_getn(epdp->ed_port, pevtlist, EVENTS_PER_GETN, 
-		    &nevents, &ts)) == -1) {
+		    (unsigned int *) &nevents, &ts)) == -1) {
 		if (errno == EINTR) {
 			evsignal_process(base);
 			return (0);
@@ -496,3 +498,15 @@ evport_del(void *arg, struct event *ev)
 }
 
 
+static void
+evport_dealloc(struct event_base *base, void *arg)
+{
+	struct evport_data *evpd = arg;
+
+	evsignal_dealloc(base);
+
+	close(evpd->ed_port);
+
+	if (evpd->ed_fds) free(evpd->ed_fds);
+	free(evpd);
+}
diff -burp libevent/http.c ./http.c
--- libevent/http.c	2007-06-12 15:15:28.000000000 +0400
+++ ./http.c	2007-06-08 02:20:04.000000000 +0400
@@ -1570,7 +1570,7 @@ evhttp_send_error(struct evhttp_request 
 
 /* Requires that headers and response code are already set up */
 
-static __inline void
+static inline void
 evhttp_send(struct evhttp_request *req, struct evbuffer *databuf)
 {
 	struct evhttp_connection *evcon = req->evcon;
_______________________________________________
Libevent-users mailing list
Libevent-users@monkey.org
http://monkey.org/mailman/listinfo/libevent-users

Reply via email to