/* * uhub - A tiny ADC p2p connection hub * Copyright (C) 2007-2009, Jan Vidar Krey * * 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 HAVE_UHUB_COMMON_H #define HAVE_UHUB_COMMON_H /* Debugging */ /* #define NETWORK_DUMP_DEBUG */ /* #define MEMORY_DEBUG */ /* #define DEBUG_SENDQ 1 */ #if USE_REGPARM && __GNUC__ >= 3 #define REGPRM1 __attribute__((regparm(1))) #define REGPRM2 __attribute__((regparm(2))) #define REGPRM3 __attribute__((regparm(3))) #else #define REGPRM1 #define REGPRM2 #define REGPRM3 #endif #ifndef FORCEINLINE #if __GNUC__ < 3 #define FORCEINLINE inline #else #define FORCEINLINE inline __attribute__((always_inline)) #endif #endif #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif #if defined(__CYGWIN__) || defined(__MINGW32__) #ifndef WINSOCK #define WINSOCK #endif #endif #ifdef WINSOCK #include #include #else #include #include #include #include #include #include #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #ifndef WIN32 #include #include #define HAVE_STRNDUP #define HAVE_MEMMEM #endif #ifdef SSL_SUPPORT #include #endif #include "../version.h" #define uhub_assert assert #include #if defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) #undef HAVE_STRNDUP #undef HAVE_MEMMEM #endif #ifdef MSG_NOSIGNAL #define UHUB_SEND_SIGNAL MSG_NOSIGNAL #else #ifdef MSG_NOPIPE #define UHUB_SEND_SIGNAL MSG_NOPIPE #else #define UHUB_SEND_SIGNAL 0 #endif #endif #define SERVER_PORT 1511 #define SERVER_ADDR_IPV6 "::" #define SERVER_ADDR_IPV4 "0.0.0.0" #define SERVER_BACKLOG 50 #ifndef WIN32 #define SERVER_CONFIG "/etc/uhub/uhub.conf" #define SERVER_ACL_FILE "/etc/uhub/users.conf" #else #define SERVER_CONFIG "uhub.conf" #define SERVER_ACL_FILE "users.conf" #ifndef stderr #define stderr stdout #endif #endif #define TIMEOUT_CONNECTED 15 #define TIMEOUT_HANDSHAKE 30 #define TIMEOUT_SENDQ 120 #define TIMEOUT_IDLE 7200 #define TIMEOUT_STATS 60 #define MAX_CLIENTS 512 #define MAX_CID_LEN 39 #define MAX_NICK_LEN 64 #define MAX_UA_LEN 32 #define TIGERSIZE 24 #define MAX_RECV_BUF 65535 #define MAX_SEND_BUF 65535 #ifndef INET6_ADDRSTRLEN #define INET6_ADDRSTRLEN 46 #endif #include "adc/adcconst.h" #define MIN(a, b) ((a) < (b) ? (a) : (b)) #define MAX(a, b) ((a) > (b) ? (a) : (b)) #ifdef __cplusplus extern "C" { #endif #include "util/ipcalc.h" #include "util/list.h" #include "util/log.h" #include "util/memory.h" #include "util/misc.h" #include "util/tiger.h" #include "adc/sid.h" #include "adc/message.h" #include "network/network.h" #include "core/auth.h" #include "core/config.h" #include "core/eventid.h" #include "core/eventqueue.h" #include "core/netevent.h" #include "core/hubio.h" #include "core/user.h" #include "core/usermanager.h" #include "core/route.h" #include "core/hub.h" #include "core/commands.h" #include "core/inf.h" #include "core/hubevent.h" #ifdef __cplusplus } #endif #endif /* HAVE_UHUB_COMMON_H */