Merge branch 'development'
[NeonServV5.git] / src / overall.h
index d84c1d2272bb3a0bda92b92332a9f8ca2e1d56fb..55b48eac97e0771cbecbfe6343e89500e349f496 100644 (file)
@@ -1,4 +1,4 @@
-/* overall.h - NeonServ v5.5
+/* overall.h - NeonServ v5.6
  * Copyright (C) 2011-2012  Philipp Kreil (pk910)
  * 
  * This program is free software: you can redistribute it and/or modify
@@ -19,8 +19,8 @@
 #define _overall_h
 #include "../config.h"
 
-#define NEONSERV_VERSION "5.5"
-#define VERSION_PATCHLEVEL 707
+#define NEONSERV_VERSION "5.6"
+#define VERSION_PATCHLEVEL 736
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -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) { \
     pthread_mutexattr_settype(&mutex_attr, type);\
     pthread_mutex_init(&var, &mutex_attr); \
 }
+#ifdef ENABLE_MUTEX_DEBUG
+#include "mutexDebug.h"
+#define SYNCHRONIZE(var) xmutex(1, &var, __FILE__, __LINE__); pthread_mutex_lock(&var)
+#define DESYNCHRONIZE(var) xmutex(0, &var, __FILE__, __LINE__); pthread_mutex_unlock(&var)
+#else
 #define SYNCHRONIZE(var) pthread_mutex_lock(&var)
-#define SET_SYNCHRONIZE(var) pthread_mutex_trylock(&var)
 #define DESYNCHRONIZE(var) pthread_mutex_unlock(&var)
+#endif
 #else
 #define THREAD_MUTEX_INIT(var)
 #define SYNCHRONIZE(var)
 #define DESYNCHRONIZE(var)
+#ifdef ENABLE_MUTEX_DEBUG
+#undef ENABLE_MUTEX_DEBUG
+#endif
 #endif
 
 #if __GNUC__
 #include "memoryDebug.h"
 #endif
 
-#define PID_FILE "neonserv.pid"
-#define CONF_FILE "neonserv.conf"
-#define LOG_FILE "neonserv.log"
-
 #define SOCKET_SELECT_TIME    1
 #define SOCKET_RECONNECT_TIME 20
 
 #define MAXLOGLEN       1024
 #define TRIGGERLEN      50
 #define MAXNUMPARAMS    200 /* maximum number of parameters in one line */
-#define MAXLANGUAGES    5
+#define MAXLANGUAGES    15
 #define MAXMODES        6
 #define INVITE_TIMEOUT  30
 #define BOTWAR_DETECTION_TIME 7
 
 #define timeval_is_bigger(x,y) ((x.tv_sec > y.tv_sec) || (x.tv_sec == y.tv_sec && x.tv_usec > y.tv_usec))
 
-#define perror(errmsg) (putlog(LOGLEVEL_ERROR, "ERROR (%s:%d) %s", __FILE__, __LINE__, errmsg))
-
 #define MODSTATE_RELOAD    0x01
 #define MODSTATE_STARTSTOP 0x02
 #define MODSTATE_REBIND    0x03