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
[email protected]
http://monkey.org/mailman/listinfo/libevent-users