-/* 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
#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>
#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 BOTWAR_DETECTION_EVENTS 6
#define REWHO_TIMEOUT 10 /* wait 10 seconds before WHO an unauthed user again */
-#define TICKS_PER_SECOND 10
+#define CLEAR_CACHE_INTERVAL 10
//valid nick chars
#define VALID_NICK_CHARS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890{|}~[\\]^-_`"
#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