Merge remote-tracking branch 'origin/development'
authorpk910 <philipp@zoelle1.de>
Sat, 22 Sep 2012 05:46:05 +0000 (07:46 +0200)
committerpk910 <philipp@zoelle1.de>
Sat, 22 Sep 2012 05:46:05 +0000 (07:46 +0200)
configure.ac
src/IOEngine.h
src/IOEngine_kevent.c
src/IRCParser.c
src/modules/stats.mod/module.c
src/mysqlConn.h
src/overall.h

index 966314a21bf420862f4803fad99902822ae525e0..409d0a2b0312327419da2541f8faba7f5a818cd4 100644 (file)
@@ -76,7 +76,7 @@ AC_ARG_ENABLE([debug],
 CFLAGS="$CFLAGS -D_GNU_SOURCE"
 
 # Checks for header files.
-AC_CHECK_HEADERS([arpa/inet.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h unistd.h windows.h winsock2.h pthread.h sys/epoll.h sys/kevent.h openssl/ssl.h openssl/err.h openssl/rand.h])
+AC_CHECK_HEADERS([stdio.h stdlib.h string.h ctype.h windows.h winsock2.h malloc.h features.h sys/types.h sys/socket.h netinet/in.h netinet/tcp.h arpa/inet.h netdb.h sys/wait.h errno.h unistd.h getopt.h stdarg.h sys/time.h time.h signal.h sys/epoll.h sys/event.h ws2tcpip.h mysql.h mysql/errmsg.h errmsg.h])
 
 # Checks for typedefs, structures, and compiler characteristics.
 
index f64078e83d4733587632f905509b5d2a800fcd99..5f68240617f1304da64ddbf9a1f6a9e1f84be53e 100644 (file)
 
 #ifdef HAVE_PTHREAD_H
 #include <pthread.h>
+#ifdef PTHREAD_MUTEX_RECURSIVE_NP
+#define PTHREAD_MUTEX_RECURSIVE_VAL PTHREAD_MUTEX_RECURSIVE_NP
+#else
+#define PTHREAD_MUTEX_RECURSIVE_VAL PTHREAD_MUTEX_RECURSIVE
+#endif
 #define IOTHREAD_MUTEX_INIT(var) { \
     pthread_mutexattr_t mutex_attr; \
     pthread_mutexattr_init(&mutex_attr);\
-    pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE_NP);\
+    pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE_VAL);\
     pthread_mutex_init(&var, &mutex_attr); \
 }
 #define IOSYNCHRONIZE(var) pthread_mutex_lock(&var)
index 21c81efcf421bb5fe2bace8b519b055813ba8964..f729dbbe820694181ee43d4ebf6dda7b7c9bfb47 100644 (file)
@@ -18,6 +18,7 @@
 
 #ifdef HAVE_SYS_EVENT_H
 #include <sys/event.h>
+#include <errno.h>
 
 #define MAX_EVENTS 32
 
@@ -44,7 +45,6 @@ static void engine_kevent_add(struct IODescriptor *iofd) {
     res = kevent(kevent_fd, changes, nchanges, NULL, 0, NULL);
     if(res < 0)
         iohandler_log(IOLOG_ERROR, "could not add IODescriptor %d to kevent queue. (returned: %d)", res);
-    }
 }
 
 static void engine_kevent_remove(struct IODescriptor *iofd) {
@@ -60,7 +60,7 @@ static void engine_kevent_remove(struct IODescriptor *iofd) {
 static void engine_kevent_update(struct IODescriptor *iofd) {
     if(iofd->type == IOTYPE_TIMER) return;
     if(iofd->state == IO_CLOSED) {
-        engine_epoll_remove(iofd);
+        engine_kevent_remove(iofd);
         return;
     }
     struct kevent changes[2];
@@ -77,11 +77,10 @@ static void engine_kevent_update(struct IODescriptor *iofd) {
 }
 
 static void engine_kevent_loop(struct timeval *timeout) {
-    struct kevent evts[MAX_EVENTS];
+    struct kevent events[MAX_EVENTS];
     struct timeval now, tdiff;
-    struct timespec ts, *ptr
+    struct timespec ts, *pts;
     int msec;
-    int events;
     int kevent_result;
     
     gettimeofday(&now, NULL);
@@ -113,7 +112,7 @@ static void engine_kevent_loop(struct timeval *timeout) {
     }
     
     //select system call
-    kevent_result = kevent(kq_fd, NULL, 0, events, MAX_EVENTS, pts);
+    kevent_result = kevent(kevent_fd, NULL, 0, events, MAX_EVENTS, pts);
     
     if (kevent_result < 0) {
         if (errno != EINTR) {
@@ -123,7 +122,7 @@ static void engine_kevent_loop(struct timeval *timeout) {
     } else {
         int i;
         for(i = 0; i < kevent_result; i++)
-            iohandler_events(evts[i].udata, (evts[i].filter == EVFILT_READ), (evts[i].filter == EVFILT_WRITE));
+            iohandler_events(events[i].udata, (events[i].filter == EVFILT_READ), (events[i].filter == EVFILT_WRITE));
     }
     
     //check timers
index cb976ce2dec92afb480322642bb17644d71545f2..ff244a05043c98384c978b0dca68e8bca1a01be2 100644 (file)
@@ -334,6 +334,8 @@ static IRC_CMD(raw_join) {
         
         event_registered(user, from);
         user->flags &= ~USERFLAG_WAS_REGISTERING;
+        if(user->last_who > REWHO_TIMEOUT)
+            user->last_who -= REWHO_TIMEOUT;
         
         event_join(chanuser);
     } else if(!(chan->flags & CHANFLAG_RECEIVED_USERLIST)) {
index e322754ab017e96f755c0268a152dbd361878282..c81e3a6b12a14ecbea820690013d8d19e3ade7aa 100644 (file)
@@ -129,6 +129,7 @@ static TIMEQ_CALLBACK(stats_timer_callback) {
         int chanuser_count = getChanUserCount();
         pkgpos += sprintf(pkgbuf + pkgpos, "%d %d\n", user_count, chanuser_count);
     }
+    pkgpos += sprintf(pkgbuf + pkgpos, "%lu\n", getStartTime());
     pkgbuf[pkgpos] = 0;
     //send package
     #ifndef WIN32
index 0cd3830c5623f09d74a91dbd014b8c5188eb2d4c..660e2cb32c2c74f8c5ef817d9af97f19f71dcc6d 100644 (file)
 
 #include "main.h"
 #include <mysql.h>
+#ifdef HAVE_MYSQL_ERRMSG_H
 #include <mysql/errmsg.h>
+#elif defined(HAVE_ERRMSG_H)
+#include <errmsg.h>
+#endif
 
 #define MYSQLMAXLEN 1024
 
index cee57955cd4779a5ac8456523ca43d5e01f4d5f8..caf062de7161598fa76e3ccc485ab790160c22a8 100644 (file)
@@ -31,7 +31,9 @@
 #include <winsock2.h>
 #include <malloc.h>
 #else
+#ifdef HAVE_FEATURES_H
 #include <features.h>
+#endif
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
 #else
 #define pthread_self_tid() pthread_self()
 #endif
+#ifdef PTHREAD_MUTEX_RECURSIVE_NP
+#define PTHREAD_MUTEX_RECURSIVE_VAL PTHREAD_MUTEX_RECURSIVE_NP
+#else
+#define PTHREAD_MUTEX_RECURSIVE_VAL PTHREAD_MUTEX_RECURSIVE
+#endif
 #define THREAD_MUTEX_INIT(var) { \
     pthread_mutexattr_t mutex_attr; \
     pthread_mutexattr_init(&mutex_attr);\
-    pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE_NP);\
+    pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE_VAL);\
     pthread_mutex_init(&var, &mutex_attr); \
 }
 #define THREAD_MUTEX_INIT_TYPE(var, type) { \