Only in libevent-1.1b: CHANGES Only in libevent-1.1b: Makefile diff -uwr libevent-1.1b-old/Makefile.am libevent-1.1b/Makefile.am --- libevent-1.1b-old/Makefile.am Wed Aug 9 22:16:35 2006 +++ libevent-1.1b/Makefile.am Sat Sep 2 03:49:26 2006 @@ -1,6 +1,5 @@ AUTOMAKE_OPTIONS = foreign no-dependencies -SUBDIRS = . sample test EXTRA_DIST = acconfig.h event.h event-internal.h log.h evsignal.h event.3 \ kqueue.c epoll_sub.c epoll.c select.c rtsig.c poll.c signal.c \ @@ -20,8 +19,29 @@ lib_LTLIBRARIES = libevent.la -libevent_la_SOURCES = event.c buffer.c evbuffer.c log.c -libevent_la_LIBADD = @LTLIBOBJS@ + +if BUILD_WIN32 + +SUBDIRS = . sample +SYS_LIBS = -lws2_32 +SYS_SRC = WIN32-Code/misc.c WIN32-Code/win32.c + +else + +SUBDIRS = . sample test +SYS_LIBS = +SYS_SRC = + +endif + +if USE_CUSTOM_CODE +CUST_SRC = custom/custom.c +else +CUST_SRC = +endif + +libevent_la_SOURCES = event.c buffer.c evbuffer.c log.c $(CUST_SRC) $(SYS_SRC) +libevent_la_LIBADD = @LTLIBOBJS@ $(SYS_LIBS) libevent_la_LDFLAGS = -release @VERSION@ -version-info 1:2:0 include_HEADERS = event.h Only in libevent-1.1b: Makefile.in diff -uwr libevent-1.1b-old/WIN32-Code/misc.c libevent-1.1b/WIN32-Code/misc.c --- libevent-1.1b-old/WIN32-Code/misc.c Wed Aug 9 21:01:14 2006 +++ libevent-1.1b/WIN32-Code/misc.c Fri Sep 1 22:21:31 2006 @@ -4,6 +4,12 @@ #include #include +#ifdef __GNUC__ +/*our prototypes for timeval and timezone are in here, just in case the above + headers don't have them*/ +#include "misc.h" +#endif + /**************************************************************************** * * Function: gettimeofday(struct timeval *, struct timezone *) diff -uwr libevent-1.1b-old/WIN32-Code/misc.h libevent-1.1b/WIN32-Code/misc.h --- libevent-1.1b-old/WIN32-Code/misc.h Wed Aug 9 21:01:14 2006 +++ libevent-1.1b/WIN32-Code/misc.h Fri Sep 1 18:47:09 2006 @@ -1,6 +1,9 @@ #ifndef MISC_H #define MISC_H +struct timezone; +struct timeval; + int gettimeofday(struct timeval *,struct timezone *); #endif diff -uwr libevent-1.1b-old/WIN32-Code/win32.c libevent-1.1b/WIN32-Code/win32.c --- libevent-1.1b-old/WIN32-Code/win32.c Wed Aug 9 21:25:48 2006 +++ libevent-1.1b/WIN32-Code/win32.c Sat Sep 2 00:45:55 2006 @@ -60,7 +60,8 @@ /* MSDN says this is required to handle SIGFPE */ volatile double SIGFPE_REQ = 0.0f; -int signal_handler(int sig); +static int signal_handler(int sig); + void signal_process(void); int signal_recalc(void); @@ -77,20 +78,21 @@ }; void *win32_init (void); -int win32_insert (void *, struct event *); -int win32_del (void *, struct event *); +int win32_insert (struct win32op *, struct event *); +int win32_del (struct win32op *, struct event *); int win32_recalc (struct event_base *base, void *, int); -int win32_dispatch (struct event_base *base, void *, struct timeval *); +int win32_dispatch (struct event_base *base, struct win32op *, struct timeval *); struct eventop win32ops = { "win32", win32_init, - win32_insert, - win32_del, + (int (*) (void*, struct event*)) win32_insert, + (int (*) (void*, struct event*)) win32_del, win32_recalc, - win32_dispatch + (int (*) (struct event_base*, void*, struct timeval*)) win32_dispatch }; + #define FD_SET_ALLOC_SIZE(n) ((sizeof(struct win_fd_set) + ((n)-1)*sizeof(SOCKET))) static int @@ -213,7 +215,13 @@ if (ev->ev_events & (EV_READ|EV_WRITE)) event_errx(1, "%s: EV_SIGNAL incompatible use", __func__); + +#ifndef __GNUC__ if((int)signal(EVENT_SIGNAL(ev), signal_handler) == -1) +#else + if((int)signal(EVENT_SIGNAL(ev), (void*) signal_handler) == -1) +#endif + return (-1); return (0); @@ -382,8 +390,13 @@ /* Reinstall our signal handler. */ TAILQ_FOREACH(ev, &signalqueue, ev_signal_next) { +#ifndef __GNUC__ if((int)signal(EVENT_SIGNAL(ev), signal_handler) == -1) +#else + if((int)signal(EVENT_SIGNAL(ev), (void*) signal_handler) == -1) +#endif return (-1); + } return (0); } Only in libevent-1.1b-old/: aclocal.m4 Only in libevent-1.1b: autom4te.cache diff -uwr libevent-1.1b-old/buffer.c libevent-1.1b/buffer.c --- libevent-1.1b-old/buffer.c Wed Aug 9 22:01:40 2006 +++ libevent-1.1b/buffer.c Fri Sep 1 18:52:56 2006 @@ -197,7 +197,7 @@ u_char *data = EVBUFFER_DATA(buffer); size_t len = EVBUFFER_LENGTH(buffer); char *line; - u_int i; + unsigned int i; for (i = 0; i < len; i++) { if (data[i] == '\r' || data[i] == '\n') Only in libevent-1.1b: config.guess Only in libevent-1.1b: config.h diff -uwr libevent-1.1b-old/config.h.in libevent-1.1b/config.h.in --- libevent-1.1b-old/config.h.in Wed Aug 9 21:27:37 2006 +++ libevent-1.1b/config.h.in Sat Sep 2 02:23:17 2006 @@ -223,6 +223,9 @@ /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME +/* Define to 1 if you want to use a custom eventops variable */ +#undef USE_CUSTOM_EVENTOPS + /* Version number of package */ #undef VERSION @@ -232,11 +235,9 @@ /* Define to empty if `const' does not conform to ANSI C. */ #undef const -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus +/* Define as `__inline' if that's what the C compiler calls it, or to nothing + if it is not supported. */ #undef inline -#endif /* Define to `int' if does not define. */ #undef pid_t Only in libevent-1.1b: config.h.in~ Only in libevent-1.1b: config.log Only in libevent-1.1b: config.status Only in libevent-1.1b: configure diff -uwr libevent-1.1b-old/configure.in libevent-1.1b/configure.in --- libevent-1.1b-old/configure.in Wed Aug 9 22:05:17 2006 +++ libevent-1.1b/configure.in Sat Sep 2 03:40:15 2006 @@ -21,6 +21,18 @@ CFLAGS="$CFLAGS -Wall" fi +AC_ARG_ENABLE(custom-eventops, + [ --enable-custom-eventops Use custom eventops variable], + AC_DEFINE([USE_CUSTOM_EVENTOPS],[1], + [Define to 1 to use a custom eventops variable]) + ,) +AC_ARG_ENABLE(custom-code, + [ --enable-custom-code Use custom code from custom/], + customcodev=true, + customcodev=false) + +AM_CONDITIONAL(USE_CUSTOM_CODE, test x$customcodev = xtrue) + AC_PROG_LIBTOOL dnl Uncomment "AC_DISABLE_SHARED" to make shared librraries not get @@ -110,6 +122,22 @@ AC_MSG_RESULT(yes)] ,AC_MSG_RESULT(no) ) fi + +dnl - check if the macro WIN32 is defined on this compiler. +dnl - (this is how we check for a windows version of GCC) +AC_MSG_CHECKING(for WIN32) +AC_TRY_COMPILE(, + [ + #ifndef WIN32 + #error + #endif + ], + bwin32=true; AC_MSG_RESULT(yes), + bwin32=false; AC_MSG_RESULT(no), +) + +AM_CONDITIONAL(BUILD_WIN32, test x$bwin32 = xtrue) + dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST diff -uwr libevent-1.1b-old/evbuffer.c libevent-1.1b/evbuffer.c --- libevent-1.1b-old/evbuffer.c Wed Aug 9 21:01:14 2006 +++ libevent-1.1b/evbuffer.c Fri Sep 1 19:18:13 2006 @@ -154,12 +154,20 @@ if (EVBUFFER_LENGTH(bufev->output)) { res = evbuffer_write(bufev->output, fd); if (res == -1) { +#ifndef WIN32 +/*todo. evbuffer uses WriteFile when WIN32 is set. WIN32 system calls do not + *set errno. thus this error checking is not portable*/ if (errno == EAGAIN || errno == EINTR || errno == EINPROGRESS) goto reschedule; /* error case */ what |= EVBUFFER_ERROR; + +#else + goto reschedule; +#endif + } else if (res == 0) { /* eof case */ what |= EVBUFFER_EOF; @@ -181,6 +189,7 @@ return; reschedule: + if (EVBUFFER_LENGTH(bufev->output) != 0) bufferevent_add(&bufev->ev_write, bufev->timeout_write); return; diff -uwr libevent-1.1b-old/event.c libevent-1.1b/event.c --- libevent-1.1b-old/event.c Wed Aug 9 21:25:48 2006 +++ libevent-1.1b/event.c Sat Sep 2 04:22:05 2006 @@ -30,8 +30,14 @@ #define WIN32_LEAN_AND_MEAN #include #undef WIN32_LEAN_AND_MEAN + +#ifdef __GNUC__ +#include "WIN32-Code/misc.h" +#else #include "misc.h" #endif + +#endif #include #include #ifdef HAVE_SYS_TIME_H @@ -53,6 +59,7 @@ #include "event-internal.h" #include "log.h" + #ifdef HAVE_SELECT extern const struct eventop selectops; #endif @@ -75,6 +82,8 @@ extern const struct eventop win32ops; #endif +#ifndef USE_CUSTOM_EVENTOPS + /* In order of preference */ const struct eventop *eventops[] = { #ifdef HAVE_WORKING_KQUEUE @@ -101,6 +110,11 @@ NULL }; +#else +#include "custom-eventops.h" +#endif //USE_CUSTOM_EVENTOPS + + /* Global state */ struct event_list signalqueue; Only in libevent-1.1b: libtool diff -uwr libevent-1.1b-old/log.c libevent-1.1b/log.c --- libevent-1.1b-old/log.c Wed Aug 9 21:01:14 2006 +++ libevent-1.1b/log.c Fri Sep 1 19:09:45 2006 @@ -45,8 +45,14 @@ #define WIN32_LEAN_AND_MEAN #include #undef WIN32_LEAN_AND_MEAN + +#ifdef __GNUC__ +#include "WIN32-Code/misc.h" +#else #include "misc.h" #endif + +#endif #include #include #ifdef HAVE_SYS_TIME_H Only in libevent-1.1b/sample: Makefile Only in libevent-1.1b/sample: Makefile.in Only in libevent-1.1b: stamp-h1 Only in libevent-1.1b/test: Makefile Only in libevent-1.1b/test: Makefile.in