X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fmain.h;h=b8d260b8ec68be3582645f48b5447b7757f33095;hb=3b03d79e0abdb8ed15dcc8943cf761f2a2775cf1;hp=dccf2ee38b0d055ee9b55c5f01a2391ad597c997;hpb=9d2bbd34f22639745b23b7916ed3123c0dfed557;p=NeonServV5.git diff --git a/src/main.h b/src/main.h index dccf2ee..b8d260b 100644 --- a/src/main.h +++ b/src/main.h @@ -1,11 +1,25 @@ +/* main.h - NeonServ v5.3 + * Copyright (C) 2011-2012 Philipp Kreil (pk910) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ #ifndef _main_h #define _main_h +#include "../config.h" -#define NEONSERV_VERSION "5.0.1-dev" - -#ifndef BOTWAR_ALERT_CHAN -#define BOTWAR_ALERT_CHAN NULL -#endif +#define NEONSERV_VERSION "5.3" +#define VERSION_PATCHLEVEL 543 #include #include @@ -14,16 +28,48 @@ #ifdef WIN32 #include #include +#include #else +#include #include #include #include +#include #include #include +#include #endif #include #include +#include #include +#ifdef HAVE_THREADS +#include +#ifdef WIN32 +#define pthread_self_tid() pthread_self().p +#else +#define pthread_self_tid() pthread_self() +#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_mutex_init(&var, &mutex_attr); \ +} +#define THREAD_MUTEX_INIT_TYPE(var, type) { \ + pthread_mutexattr_t mutex_attr; \ + pthread_mutexattr_init(&mutex_attr);\ + pthread_mutexattr_settype(&mutex_attr, type);\ + pthread_mutex_init(&var, &mutex_attr); \ +} +#define SYNCHRONIZE(var) pthread_mutex_lock(&var) +#define SET_SYNCHRONIZE(var) pthread_mutex_trylock(&var) +#define DESYNCHRONIZE(var) pthread_mutex_unlock(&var) +#else +#define THREAD_MUTEX_INIT(var) +#define SYNCHRONIZE(var) +#define DESYNCHRONIZE(var) +#endif #if __GNUC__ #define PRINTF_LIKE(M,N) __attribute__((format (printf, M, N))) @@ -55,7 +101,12 @@ #define COMPILER "Unknown" #endif -#define SOCKET_SELECT_TIME 2 +#ifdef ENABLE_MEMORY_DEBUG +#include "memoryDebug.h" +#endif + +#define SOCKET_SELECT_TIME 1 +#define SOCKET_RECONNECT_TIME 20 #define NICKLEN 30 #define USERLEN 10 @@ -72,6 +123,8 @@ #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 //valid nick chars #define VALID_NICK_CHARS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890{|}~[\\]^-_`" @@ -83,9 +136,27 @@ #define TEMPUSER_LIST_INDEX VALID_NICK_CHARS_FIRST_LEN +#define timeval_is_bigger(x,y) ((x.tv_sec > y.tv_sec) || (x.tv_sec == y.tv_sec && x.tv_usec > y.tv_usec)) + extern time_t start_time; +extern int statistics_enabled; +#ifdef HAVE_THREADS +extern int running_threads; +extern pthread_mutex_t cache_sync; +extern pthread_mutex_t whohandler_sync, whohandler_mass_sync; + +int getCurrentThreadID(); +#endif int stricmp (const char *s1, const char *s2); int stricmplen (const char *s1, const char *s2, int len); +void restart_process(); +void cleanup(); +void restart_bot(int do_hard_restart); +void stop_bot(); +void reload_config(); + +void statistics_update(); + #endif \ No newline at end of file