summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Client/Makefile.in57
-rw-r--r--src/Client/Requests/Makefile.in57
-rw-r--r--src/Common/Base64Encoder.cpp210
-rw-r--r--src/Common/Base64Encoder.h43
-rw-r--r--src/Common/Initializable.cpp2
-rw-r--r--src/Common/LogManager.cpp52
-rw-r--r--src/Common/LogManager.h48
-rw-r--r--src/Common/Makefile.am7
-rw-r--r--src/Common/Makefile.in81
-rw-r--r--src/Common/RequestHandlers/Makefile.in57
-rw-r--r--src/Common/Requests/Makefile.in57
-rw-r--r--src/Common/XmlPacket.cpp29
-rw-r--r--src/Daemon/Backends/Makefile.in57
-rw-r--r--src/Daemon/Makefile.in57
-rw-r--r--src/Daemon/RequestHandlers/Makefile.in57
-rw-r--r--src/Daemon/Requests/Makefile.in57
-rw-r--r--src/Makefile.in57
-rw-r--r--src/Net/ClientConnection.cpp10
-rw-r--r--src/Net/Connection.cpp96
-rw-r--r--src/Net/Connection.h38
-rw-r--r--src/Net/FdManager.cpp62
-rw-r--r--src/Net/FdManager.h11
-rw-r--r--src/Net/Makefile.am2
-rw-r--r--src/Net/Makefile.in67
-rw-r--r--src/Net/ServerConnection.cpp6
-rw-r--r--src/Net/ThreadManager.cpp105
-rw-r--r--src/Net/ThreadManager.h56
-rw-r--r--src/Server/Makefile.in57
-rw-r--r--src/Server/RequestHandlers/Makefile.in57
-rw-r--r--src/Server/Requests/Makefile.in57
-rw-r--r--src/madc.cpp1
-rw-r--r--src/modules/Makefile.in57
32 files changed, 600 insertions, 1067 deletions
diff --git a/src/Client/Makefile.in b/src/Client/Makefile.in
index 2d099ed..94a059f 100644
--- a/src/Client/Makefile.in
+++ b/src/Client/Makefile.in
@@ -37,22 +37,14 @@ subdir = src/Client
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
- $(top_srcdir)/m4/argz.m4 $(top_srcdir)/m4/ax_lib_mysql.m4 \
- $(top_srcdir)/m4/base64.m4 $(top_srcdir)/m4/cond.m4 \
- $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/extensions.m4 \
- $(top_srcdir)/m4/gettimeofday.m4 \
- $(top_srcdir)/m4/gnulib-common.m4 \
- $(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
+ $(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_thread.m4 \
+ $(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/sys_time_h.m4 \
- $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
- $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -99,6 +91,9 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -117,25 +112,13 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
-EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
-EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
-ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
-ENOLINK_VALUE = @ENOLINK_VALUE@
-EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
-EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
-ERRNO_H = @ERRNO_H@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GSSAPI_LIBS = @GSSAPI_LIBS@
GnuTLS_CFLAGS = @GnuTLS_CFLAGS@
GnuTLS_LIBS = @GnuTLS_LIBS@
-HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
-HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
-HAVE__BOOL = @HAVE__BOOL@
INCLTDL = @INCLTDL@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -148,22 +131,15 @@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@
LIBADD_DLOPEN = @LIBADD_DLOPEN@
LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@
LIBLTDL = @LIBLTDL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTDLDEPS = @LTDLDEPS@
LTDLINCL = @LTDLINCL@
LTDLOPEN = @LTDLOPEN@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
LT_CONFIG_H = @LT_CONFIG_H@
LT_DLLOADERS = @LT_DLLOADERS@
LT_DLPREOPEN = @LT_DLPREOPEN@
@@ -174,9 +150,6 @@ MYSQL_CFLAGS = @MYSQL_CFLAGS@
MYSQL_CONFIG = @MYSQL_CONFIG@
MYSQL_LDFLAGS = @MYSQL_LDFLAGS@
MYSQL_VERSION = @MYSQL_VERSION@
-NEXT_ERRNO_H = @NEXT_ERRNO_H@
-NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
-NEXT_TIME_H = @NEXT_TIME_H@
NM = @NM@
NMEDIT = @NMEDIT@
OBJEXT = @OBJEXT@
@@ -190,22 +163,12 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
RANLIB = @RANLIB@
READLINE_LIBS = @READLINE_LIBS@
-REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
-REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
-REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
-REPLACE_STRPTIME = @REPLACE_STRPTIME@
-REPLACE_TIMEGM = @REPLACE_TIMEGM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-STDBOOL_H = @STDBOOL_H@
STRIP = @STRIP@
-SYS_TIME_H = @SYS_TIME_H@
-SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
-TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -231,10 +194,6 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
have_df = @have_df@
host = @host@
host_alias = @host_alias@
diff --git a/src/Client/Requests/Makefile.in b/src/Client/Requests/Makefile.in
index 47403c6..820cb4d 100644
--- a/src/Client/Requests/Makefile.in
+++ b/src/Client/Requests/Makefile.in
@@ -37,22 +37,14 @@ subdir = src/Client/Requests
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
- $(top_srcdir)/m4/argz.m4 $(top_srcdir)/m4/ax_lib_mysql.m4 \
- $(top_srcdir)/m4/base64.m4 $(top_srcdir)/m4/cond.m4 \
- $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/extensions.m4 \
- $(top_srcdir)/m4/gettimeofday.m4 \
- $(top_srcdir)/m4/gnulib-common.m4 \
- $(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
+ $(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_thread.m4 \
+ $(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/sys_time_h.m4 \
- $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
- $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -89,6 +81,9 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -107,25 +102,13 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
-EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
-EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
-ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
-ENOLINK_VALUE = @ENOLINK_VALUE@
-EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
-EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
-ERRNO_H = @ERRNO_H@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GSSAPI_LIBS = @GSSAPI_LIBS@
GnuTLS_CFLAGS = @GnuTLS_CFLAGS@
GnuTLS_LIBS = @GnuTLS_LIBS@
-HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
-HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
-HAVE__BOOL = @HAVE__BOOL@
INCLTDL = @INCLTDL@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -138,22 +121,15 @@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@
LIBADD_DLOPEN = @LIBADD_DLOPEN@
LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@
LIBLTDL = @LIBLTDL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTDLDEPS = @LTDLDEPS@
LTDLINCL = @LTDLINCL@
LTDLOPEN = @LTDLOPEN@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
LT_CONFIG_H = @LT_CONFIG_H@
LT_DLLOADERS = @LT_DLLOADERS@
LT_DLPREOPEN = @LT_DLPREOPEN@
@@ -164,9 +140,6 @@ MYSQL_CFLAGS = @MYSQL_CFLAGS@
MYSQL_CONFIG = @MYSQL_CONFIG@
MYSQL_LDFLAGS = @MYSQL_LDFLAGS@
MYSQL_VERSION = @MYSQL_VERSION@
-NEXT_ERRNO_H = @NEXT_ERRNO_H@
-NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
-NEXT_TIME_H = @NEXT_TIME_H@
NM = @NM@
NMEDIT = @NMEDIT@
OBJEXT = @OBJEXT@
@@ -180,22 +153,12 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
RANLIB = @RANLIB@
READLINE_LIBS = @READLINE_LIBS@
-REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
-REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
-REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
-REPLACE_STRPTIME = @REPLACE_STRPTIME@
-REPLACE_TIMEGM = @REPLACE_TIMEGM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-STDBOOL_H = @STDBOOL_H@
STRIP = @STRIP@
-SYS_TIME_H = @SYS_TIME_H@
-SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
-TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -221,10 +184,6 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
have_df = @have_df@
host = @host@
host_alias = @host_alias@
diff --git a/src/Common/Base64Encoder.cpp b/src/Common/Base64Encoder.cpp
new file mode 100644
index 0000000..9607ec9
--- /dev/null
+++ b/src/Common/Base64Encoder.cpp
@@ -0,0 +1,210 @@
+/*
+ * Base64Encoder.cpp
+ *
+ * Copyright (C) 2009 Matthias Schiffer <matthias@gamezock.de>
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
+#include "Base64Encoder.h"
+
+#include <boost/scoped_array.hpp>
+
+#define B64(_) \
+ ((_) == 'A' ? 0 \
+ : (_) == 'B' ? 1 \
+ : (_) == 'C' ? 2 \
+ : (_) == 'D' ? 3 \
+ : (_) == 'E' ? 4 \
+ : (_) == 'F' ? 5 \
+ : (_) == 'G' ? 6 \
+ : (_) == 'H' ? 7 \
+ : (_) == 'I' ? 8 \
+ : (_) == 'J' ? 9 \
+ : (_) == 'K' ? 10 \
+ : (_) == 'L' ? 11 \
+ : (_) == 'M' ? 12 \
+ : (_) == 'N' ? 13 \
+ : (_) == 'O' ? 14 \
+ : (_) == 'P' ? 15 \
+ : (_) == 'Q' ? 16 \
+ : (_) == 'R' ? 17 \
+ : (_) == 'S' ? 18 \
+ : (_) == 'T' ? 19 \
+ : (_) == 'U' ? 20 \
+ : (_) == 'V' ? 21 \
+ : (_) == 'W' ? 22 \
+ : (_) == 'X' ? 23 \
+ : (_) == 'Y' ? 24 \
+ : (_) == 'Z' ? 25 \
+ : (_) == 'a' ? 26 \
+ : (_) == 'b' ? 27 \
+ : (_) == 'c' ? 28 \
+ : (_) == 'd' ? 29 \
+ : (_) == 'e' ? 30 \
+ : (_) == 'f' ? 31 \
+ : (_) == 'g' ? 32 \
+ : (_) == 'h' ? 33 \
+ : (_) == 'i' ? 34 \
+ : (_) == 'j' ? 35 \
+ : (_) == 'k' ? 36 \
+ : (_) == 'l' ? 37 \
+ : (_) == 'm' ? 38 \
+ : (_) == 'n' ? 39 \
+ : (_) == 'o' ? 40 \
+ : (_) == 'p' ? 41 \
+ : (_) == 'q' ? 42 \
+ : (_) == 'r' ? 43 \
+ : (_) == 's' ? 44 \
+ : (_) == 't' ? 45 \
+ : (_) == 'u' ? 46 \
+ : (_) == 'v' ? 47 \
+ : (_) == 'w' ? 48 \
+ : (_) == 'x' ? 49 \
+ : (_) == 'y' ? 50 \
+ : (_) == 'z' ? 51 \
+ : (_) == '0' ? 52 \
+ : (_) == '1' ? 53 \
+ : (_) == '2' ? 54 \
+ : (_) == '3' ? 55 \
+ : (_) == '4' ? 56 \
+ : (_) == '5' ? 57 \
+ : (_) == '6' ? 58 \
+ : (_) == '7' ? 59 \
+ : (_) == '8' ? 60 \
+ : (_) == '9' ? 61 \
+ : (_) == '+' ? 62 \
+ : (_) == '/' ? 63 \
+ : 0xFF)
+
+
+namespace Mad {
+namespace Common {
+
+std::string Base64Encoder::encode(const std::vector<boost::uint8_t> &data) {
+ static const char b64str[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+
+ size_t inlen = data.size(), outlen = ((((inlen) + 2) / 3) * 4);
+
+ boost::scoped_array<char> buf(new char[outlen]);
+ char *ptr = buf.get();
+
+ for(size_t in = 0; in < data.size(); in += 3) {
+ *ptr++ = b64str[(data[in] >> 2) & 0x3f];
+ *ptr++ = b64str[((data[in] << 4) + (--inlen ? data[in+1] >> 4 : 0)) & 0x3f];
+ *ptr++ = (inlen ? b64str[((data[in+1] << 2) + (--inlen ? data[in+2] >> 6 : 0)) & 0x3f] : '=');
+ *ptr++ = inlen ? b64str[data[in+2] & 0x3f] : '=';
+
+ if(!inlen)
+ break;
+
+ inlen--;
+ }
+
+ return std::string(buf.get(), outlen);
+}
+
+std::vector<boost::uint8_t> Base64Encoder::decode(const std::string &data) {
+ static const boost::uint8_t b64[0x100] = {
+ B64(0), B64(1), B64(2), B64(3),
+ B64(4), B64(5), B64(6), B64(7),
+ B64(8), B64(9), B64(10), B64(11),
+ B64(12), B64(13), B64(14), B64(15),
+ B64(16), B64(17), B64(18), B64(19),
+ B64(20), B64(21), B64(22), B64(23),
+ B64(24), B64(25), B64(26), B64(27),
+ B64(28), B64(29), B64(30), B64(31),
+ B64(32), B64(33), B64(34), B64(35),
+ B64(36), B64(37), B64(38), B64(39),
+ B64(40), B64(41), B64(42), B64(43),
+ B64(44), B64(45), B64(46), B64(47),
+ B64(48), B64(49), B64(50), B64(51),
+ B64(52), B64(53), B64(54), B64(55),
+ B64(56), B64(57), B64(58), B64(59),
+ B64(60), B64(61), B64(62), B64(63),
+ B64(64), B64(65), B64(66), B64(67),
+ B64(68), B64(69), B64(70), B64(71),
+ B64(72), B64(73), B64(74), B64(75),
+ B64(76), B64(77), B64(78), B64(79),
+ B64(80), B64(81), B64(82), B64(83),
+ B64(84), B64(85), B64(86), B64(87),
+ B64(88), B64(89), B64(90), B64(91),
+ B64(92), B64(93), B64(94), B64(95),
+ B64(96), B64(97), B64(98), B64(99),
+ B64(100), B64(101), B64(102), B64(103),
+ B64(104), B64(105), B64(106), B64(107),
+ B64(108), B64(109), B64(110), B64(111),
+ B64(112), B64(113), B64(114), B64(115),
+ B64(116), B64(117), B64(118), B64(119),
+ B64(120), B64(121), B64(122), B64(123),
+ B64(124), B64(125), B64(126), B64(127),
+ B64(128), B64(129), B64(130), B64(131),
+ B64(132), B64(133), B64(134), B64(135),
+ B64(136), B64(137), B64(138), B64(139),
+ B64(140), B64(141), B64(142), B64(143),
+ B64(144), B64(145), B64(146), B64(147),
+ B64(148), B64(149), B64(150), B64(151),
+ B64(152), B64(153), B64(154), B64(155),
+ B64(156), B64(157), B64(158), B64(159),
+ B64(160), B64(161), B64(162), B64(163),
+ B64(164), B64(165), B64(166), B64(167),
+ B64(168), B64(169), B64(170), B64(171),
+ B64(172), B64(173), B64(174), B64(175),
+ B64(176), B64(177), B64(178), B64(179),
+ B64(180), B64(181), B64(182), B64(183),
+ B64(184), B64(185), B64(186), B64(187),
+ B64(188), B64(189), B64(190), B64(191),
+ B64(192), B64(193), B64(194), B64(195),
+ B64(196), B64(197), B64(198), B64(199),
+ B64(200), B64(201), B64(202), B64(203),
+ B64(204), B64(205), B64(206), B64(207),
+ B64(208), B64(209), B64(210), B64(211),
+ B64(212), B64(213), B64(214), B64(215),
+ B64(216), B64(217), B64(218), B64(219),
+ B64(220), B64(221), B64(222), B64(223),
+ B64(224), B64(225), B64(226), B64(227),
+ B64(228), B64(229), B64(230), B64(231),
+ B64(232), B64(233), B64(234), B64(235),
+ B64(236), B64(237), B64(238), B64(239),
+ B64(240), B64(241), B64(242), B64(243),
+ B64(244), B64(245), B64(246), B64(247),
+ B64(248), B64(249), B64(250), B64(251),
+ B64(252), B64(253), B64(254), B64(255)
+ };
+
+ size_t inlen = data.length(), outlen = 3 * (inlen / 4) + 2;
+
+ boost::scoped_array<boost::uint8_t> buf(new boost::uint8_t[outlen]);
+ boost::uint8_t *ptr = buf.get();
+
+ for(size_t in = 0; in < data.length()-1; in += 4) {
+ if(b64[data[in]] >= 64 || b64[data[in+1]] >= 64)
+ break;
+
+ *ptr++ = (b64[data[in]] << 2) + (b64[data[in+1]] >> 4);
+ if(in >= data.length()-2 || b64[data[in+2]] >= 64)
+ break;
+
+ *ptr++ = (b64[data[in+1]] << 4) + (b64[data[in+2]] >> 2);
+ if(in >= data.length()-3 || b64[data[in+3]] >= 64)
+ break;
+
+ *ptr++ = (b64[data[in+2]] << 6) + b64[data[in+3]];
+ }
+
+ return std::vector<boost::uint8_t>(buf.get(), ptr);
+}
+
+}
+}
diff --git a/src/Common/Base64Encoder.h b/src/Common/Base64Encoder.h
new file mode 100644
index 0000000..d451109
--- /dev/null
+++ b/src/Common/Base64Encoder.h
@@ -0,0 +1,43 @@
+/*
+ * Base64Encoder.h
+ *
+ * Copyright (C) 2009 Matthias Schiffer <matthias@gamezock.de>
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef MAD_COMMON_BASE64ENCODER_H_
+#define MAD_COMMON_BASE64ENCODER_H_
+
+#include <string>
+#include <vector>
+
+#include <boost/cstdint.hpp>
+
+namespace Mad {
+namespace Common {
+
+class Base64Encoder {
+ private:
+ Base64Encoder();
+
+ public:
+ static std::string encode(const std::vector<boost::uint8_t> &data);
+ static std::vector<boost::uint8_t> decode(const std::string &data);
+};
+
+}
+}
+
+#endif /* MAD_COMMON_BASE64ENCODER_H_ */
diff --git a/src/Common/Initializable.cpp b/src/Common/Initializable.cpp
index 2a9aef3..d2dc9fd 100644
--- a/src/Common/Initializable.cpp
+++ b/src/Common/Initializable.cpp
@@ -23,6 +23,8 @@
#include "Configurable.h"
#include "Logger.h"
+#include <typeinfo>
+
namespace Mad {
namespace Common {
diff --git a/src/Common/LogManager.cpp b/src/Common/LogManager.cpp
index 5741d38..b17d916 100644
--- a/src/Common/LogManager.cpp
+++ b/src/Common/LogManager.cpp
@@ -30,22 +30,22 @@ LogManager LogManager::logManager;
void LogManager::ConsoleLogger::logMessage(MessageCategory category _UNUSED_PARAMETER_, MessageLevel level, time_t timestamp _UNUSED_PARAMETER_, const std::string &message) {
if(level != CRITICAL) {// Critical messages are printed to cerr directly, so don't print them a second time
- gl_lock_lock(cerrLock);
+ cerrLock.lock();
std::cerr << message << std::endl;
- gl_lock_unlock(cerrLock);
+ cerrLock.unlock();
}
}
void LogManager::ConsoleLogger::logMessage(MessageCategory category _UNUSED_PARAMETER_, MessageLevel, time_t timestamp _UNUSED_PARAMETER_, const std::string &message, const std::string &messageSource) {
- gl_lock_lock(cerrLock);
+ cerrLock.lock();
std::cerr << message << " from " << messageSource << std::endl;
- gl_lock_unlock(cerrLock);
+ cerrLock.unlock();
}
void LogManager::ConsoleLogger::logMessageDirect(MessageCategory category _UNUSED_PARAMETER_, MessageLevel level _UNUSED_PARAMETER_, time_t timestamp _UNUSED_PARAMETER_, const std::string &message) {
- gl_lock_lock(cerrLock);
+ cerrLock.lock();
std::cerr << message << std::endl;
- gl_lock_unlock(cerrLock);
+ cerrLock.unlock();
}
@@ -73,72 +73,70 @@ void LogManager::configFinished() {
if(loggers.empty())
registerLogger(static_cast<Logger*>(&consoleLogger));
- gl_lock_lock(lock);
+ queueLock.lock();
configured = true;
- gl_cond_signal(queueCond);
- gl_lock_unlock(lock);
+ queueLock.unlock();
+ queueCond.notify_one();
}
void LogManager::log(MessageCategory category, MessageLevel level, time_t timestamp, const std::string &message) {
if(level == LoggerBase::CRITICAL)
consoleLogger.logMessageDirect(category, level, timestamp, message);
- gl_lock_lock(lock);
+ queueLock.lock();
Message m = {category, level, timestamp, message};
messageQueue.push(m);
- gl_cond_signal(queueCond);
- gl_lock_unlock(lock);
+ queueLock.unlock();
+ queueCond.notify_one();
}
void LogManager::log(MessageCategory category, MessageLevel level, time_t timestamp, const std::string &message, const std::string &source) {
- gl_lock_lock(lock);
+ queueLock.lock();
RemoteMessage m = {category, level, timestamp, message, source};
remoteMessageQueue.push(m);
- gl_cond_signal(queueCond);
- gl_lock_unlock(lock);
+ queueLock.unlock();
+ queueCond.notify_one();
}
void LogManager::loggerThread() {
- gl_lock_lock(lock);
+ boost::unique_lock<boost::mutex> lock(queueLock);
running = true;
while(running) {
while(running && ((messageQueue.empty() && messageQueue.empty()) || !configured))
- gl_cond_wait(queueCond, lock);
+ queueCond.wait(lock);
while(!messageQueue.empty()) {
Message message = messageQueue.front();
messageQueue.pop();
- gl_lock_unlock(lock);
+ lock.unlock();
- gl_lock_lock(loggerLock);
+ loggerLock.lock();
for(std::set<Logger*>::iterator logger = loggers.begin(); logger != loggers.end(); ++logger) {
if((*logger)->getLevel() >= message.level && (*logger)->isCategorySet(message.category))
(*logger)->logMessage(message.category, message.level, message.timestamp, message.message);
}
- gl_lock_unlock(loggerLock);
+ loggerLock.unlock();
- gl_lock_lock(lock);
+ lock.lock();
}
while(!remoteMessageQueue.empty()) {
RemoteMessage message = remoteMessageQueue.front();
remoteMessageQueue.pop();
- gl_lock_unlock(lock);
+ lock.unlock();
- gl_lock_lock(remoteLoggerLock);
+ remoteLoggerLock.lock();
for(std::set<RemoteLogger*>::iterator logger = remoteLoggers.begin(); logger != remoteLoggers.end(); ++logger) {
if((*logger)->getLevel() >= message.level && (*logger)->isCategorySet(message.category))
(*logger)->logMessage(message.category, message.level, message.timestamp, message.message, message.source);
}
- gl_lock_unlock(remoteLoggerLock);
+ remoteLoggerLock.unlock();
- gl_lock_lock(lock);
+ lock.lock();
}
}
-
- gl_lock_unlock(lock);
}
}
diff --git a/src/Common/LogManager.h b/src/Common/LogManager.h
index 1e10e0b..98bb6f7 100644
--- a/src/Common/LogManager.h
+++ b/src/Common/LogManager.h
@@ -29,8 +29,8 @@
#include <queue>
#include <set>
-#include "glthread/lock.h"
-#include "glthread/cond.h"
+#include <boost/thread/condition_variable.hpp>
+#include <boost/thread/mutex.hpp>
namespace Mad {
@@ -66,7 +66,7 @@ class LogManager : public Configurable {
private:
// For long messages, writing to cerr is not atomic
// -> lock cerr to prevent mixing messages up
- gl_lock_t cerrLock;
+ boost::mutex cerrLock;
protected:
virtual void logMessage(MessageCategory category _UNUSED_PARAMETER_, MessageLevel level, time_t timestamp _UNUSED_PARAMETER_, const std::string &message);
@@ -87,65 +87,55 @@ class LogManager : public Configurable {
std::set<RemoteLogger*> remoteLoggers;
bool configured, running;
- gl_lock_t lock;
- gl_cond_t queueCond;
+ boost::mutex queueLock;
+ boost::condition_variable queueCond;
- gl_lock_t loggerLock;
- gl_lock_t remoteLoggerLock;
+ boost::mutex loggerLock;
+ boost::mutex remoteLoggerLock;
std::queue<Message> messageQueue;
std::queue<RemoteMessage> remoteMessageQueue;
void loggerThread();
void stopLoggerThread() {
- gl_lock_lock(lock);
+ queueLock.lock();
running = false;
- gl_cond_signal(queueCond);
- gl_lock_unlock(lock);
+ queueLock.unlock();
+ queueCond.notify_one();
}
- LogManager() : configured(false), running(false) {
- gl_lock_init(lock);
- gl_lock_init(loggerLock);
- gl_lock_init(remoteLoggerLock);
- }
+ LogManager() : configured(false), running(false) {}
protected:
virtual bool handleConfigEntry(const ConfigEntry &entry, bool handled);
virtual void configFinished();
public:
- ~LogManager() {
- gl_lock_destroy(remoteLoggerLock);
- gl_lock_destroy(loggerLock);
- gl_lock_destroy(lock);
- }
-
void log(MessageCategory category, MessageLevel level, time_t timestamp, const std::string &message);
void log(MessageCategory category, MessageLevel level, time_t timestamp, const std::string &message, const std::string &source);
void registerLogger(Logger *logger) {
- gl_lock_lock(loggerLock);
+ loggerLock.lock();
loggers.insert(logger);
- gl_lock_unlock(loggerLock);
+ loggerLock.unlock();
}
void unregisterLogger(Logger *logger) {
- gl_lock_lock(loggerLock);
+ loggerLock.lock();
loggers.erase(logger);
- gl_lock_unlock(loggerLock);
+ loggerLock.unlock();
}
void registerLogger(RemoteLogger *logger) {
- gl_lock_lock(remoteLoggerLock);
+ remoteLoggerLock.lock();
remoteLoggers.insert(logger);
- gl_lock_unlock(remoteLoggerLock);
+ remoteLoggerLock.unlock();
}
void unregisterLogger(RemoteLogger *logger) {
- gl_lock_lock(remoteLoggerLock);
+ remoteLoggerLock.lock();
remoteLoggers.erase(logger);
- gl_lock_unlock(remoteLoggerLock);
+ remoteLoggerLock.unlock();
}
static LogManager *get() {
diff --git a/src/Common/Makefile.am b/src/Common/Makefile.am
index e50461a..c38f9c4 100644
--- a/src/Common/Makefile.am
+++ b/src/Common/Makefile.am
@@ -1,14 +1,13 @@
SUBDIRS = Requests RequestHandlers
noinst_LTLIBRARIES = libcommon.la
-libcommon_la_SOURCES = ActionManager.cpp ClientConnection.cpp ConfigEntry.cpp ConfigManager.cpp \
+libcommon_la_SOURCES = ActionManager.cpp Base64Encoder.cpp ClientConnection.cpp ConfigEntry.cpp ConfigManager.cpp \
Connection.cpp Initializable.cpp Logger.cpp LogManager.cpp \
ModuleManager.cpp Request.cpp RequestManager.cpp SystemManager.cpp \
Tokenizer.cpp XmlPacket.cpp
-libcommon_la_LIBADD = Requests/librequests.la RequestHandlers/librequesthandlers.la ../../lib/libgnu.la
-libcommon_la_LDFLAGS = $(LTLIBMULTITHREAD) $(LTLIBTHREAD)
+libcommon_la_LIBADD = Requests/librequests.la RequestHandlers/librequesthandlers.la
-noinst_HEADERS = ActionManager.h ClientConnection.h ConfigEntry.h ConfigManager.h \
+noinst_HEADERS = ActionManager.h Base64Encoder.h ClientConnection.h ConfigEntry.h ConfigManager.h \
Configurable.h Connection.h HostInfo.h Initializable.h Logger.h \
LoggerBase.h LogManager.h ModuleManager.h RemoteLogger.h Request.h \
RequestHandler.h RequestManager.h SystemBackend.h SystemManager.h \
diff --git a/src/Common/Makefile.in b/src/Common/Makefile.in
index 915c3bb..ef3993d 100644
--- a/src/Common/Makefile.in
+++ b/src/Common/Makefile.in
@@ -37,22 +37,14 @@ subdir = src/Common
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
- $(top_srcdir)/m4/argz.m4 $(top_srcdir)/m4/ax_lib_mysql.m4 \
- $(top_srcdir)/m4/base64.m4 $(top_srcdir)/m4/cond.m4 \
- $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/extensions.m4 \
- $(top_srcdir)/m4/gettimeofday.m4 \
- $(top_srcdir)/m4/gnulib-common.m4 \
- $(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
+ $(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_thread.m4 \
+ $(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/sys_time_h.m4 \
- $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
- $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -60,15 +52,13 @@ CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
libcommon_la_DEPENDENCIES = Requests/librequests.la \
- RequestHandlers/librequesthandlers.la ../../lib/libgnu.la
-am_libcommon_la_OBJECTS = ActionManager.lo ClientConnection.lo \
- ConfigEntry.lo ConfigManager.lo Connection.lo Initializable.lo \
- Logger.lo LogManager.lo ModuleManager.lo Request.lo \
- RequestManager.lo SystemManager.lo Tokenizer.lo XmlPacket.lo
+ RequestHandlers/librequesthandlers.la
+am_libcommon_la_OBJECTS = ActionManager.lo Base64Encoder.lo \
+ ClientConnection.lo ConfigEntry.lo ConfigManager.lo \
+ Connection.lo Initializable.lo Logger.lo LogManager.lo \
+ ModuleManager.lo Request.lo RequestManager.lo SystemManager.lo \
+ Tokenizer.lo XmlPacket.lo
libcommon_la_OBJECTS = $(am_libcommon_la_OBJECTS)
-libcommon_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
- $(CXXFLAGS) $(libcommon_la_LDFLAGS) $(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
am__depfiles_maybe = depfiles
@@ -105,6 +95,9 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -123,25 +116,13 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
-EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
-EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
-ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
-ENOLINK_VALUE = @ENOLINK_VALUE@
-EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
-EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
-ERRNO_H = @ERRNO_H@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GSSAPI_LIBS = @GSSAPI_LIBS@
GnuTLS_CFLAGS = @GnuTLS_CFLAGS@
GnuTLS_LIBS = @GnuTLS_LIBS@
-HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
-HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
-HAVE__BOOL = @HAVE__BOOL@
INCLTDL = @INCLTDL@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -154,22 +135,15 @@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@
LIBADD_DLOPEN = @LIBADD_DLOPEN@
LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@
LIBLTDL = @LIBLTDL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTDLDEPS = @LTDLDEPS@
LTDLINCL = @LTDLINCL@
LTDLOPEN = @LTDLOPEN@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
LT_CONFIG_H = @LT_CONFIG_H@
LT_DLLOADERS = @LT_DLLOADERS@
LT_DLPREOPEN = @LT_DLPREOPEN@
@@ -180,9 +154,6 @@ MYSQL_CFLAGS = @MYSQL_CFLAGS@
MYSQL_CONFIG = @MYSQL_CONFIG@
MYSQL_LDFLAGS = @MYSQL_LDFLAGS@
MYSQL_VERSION = @MYSQL_VERSION@
-NEXT_ERRNO_H = @NEXT_ERRNO_H@
-NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
-NEXT_TIME_H = @NEXT_TIME_H@
NM = @NM@
NMEDIT = @NMEDIT@
OBJEXT = @OBJEXT@
@@ -196,22 +167,12 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
RANLIB = @RANLIB@
READLINE_LIBS = @READLINE_LIBS@
-REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
-REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
-REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
-REPLACE_STRPTIME = @REPLACE_STRPTIME@
-REPLACE_TIMEGM = @REPLACE_TIMEGM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-STDBOOL_H = @STDBOOL_H@
STRIP = @STRIP@
-SYS_TIME_H = @SYS_TIME_H@
-SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
-TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -237,10 +198,6 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
have_df = @have_df@
host = @host@
host_alias = @host_alias@
@@ -282,14 +239,13 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
SUBDIRS = Requests RequestHandlers
noinst_LTLIBRARIES = libcommon.la
-libcommon_la_SOURCES = ActionManager.cpp ClientConnection.cpp ConfigEntry.cpp ConfigManager.cpp \
+libcommon_la_SOURCES = ActionManager.cpp Base64Encoder.cpp ClientConnection.cpp ConfigEntry.cpp ConfigManager.cpp \
Connection.cpp Initializable.cpp Logger.cpp LogManager.cpp \
ModuleManager.cpp Request.cpp RequestManager.cpp SystemManager.cpp \
Tokenizer.cpp XmlPacket.cpp
-libcommon_la_LIBADD = Requests/librequests.la RequestHandlers/librequesthandlers.la ../../lib/libgnu.la
-libcommon_la_LDFLAGS = $(LTLIBMULTITHREAD) $(LTLIBTHREAD)
-noinst_HEADERS = ActionManager.h ClientConnection.h ConfigEntry.h ConfigManager.h \
+libcommon_la_LIBADD = Requests/librequests.la RequestHandlers/librequesthandlers.la
+noinst_HEADERS = ActionManager.h Base64Encoder.h ClientConnection.h ConfigEntry.h ConfigManager.h \
Configurable.h Connection.h HostInfo.h Initializable.h Logger.h \
LoggerBase.h LogManager.h ModuleManager.h RemoteLogger.h Request.h \
RequestHandler.h RequestManager.h SystemBackend.h SystemManager.h \
@@ -338,7 +294,7 @@ clean-noinstLTLIBRARIES:
rm -f "$${dir}/so_locations"; \
done
libcommon.la: $(libcommon_la_OBJECTS) $(libcommon_la_DEPENDENCIES)
- $(libcommon_la_LINK) $(libcommon_la_OBJECTS) $(libcommon_la_LIBADD) $(LIBS)
+ $(CXXLINK) $(libcommon_la_OBJECTS) $(libcommon_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -347,6 +303,7 @@ distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ActionManager.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Base64Encoder.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClientConnection.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigEntry.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigManager.Plo@am__quote@
diff --git a/src/Common/RequestHandlers/Makefile.in b/src/Common/RequestHandlers/Makefile.in
index 8595870..e5cce2c 100644
--- a/src/Common/RequestHandlers/Makefile.in
+++ b/src/Common/RequestHandlers/Makefile.in
@@ -37,22 +37,14 @@ subdir = src/Common/RequestHandlers
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
- $(top_srcdir)/m4/argz.m4 $(top_srcdir)/m4/ax_lib_mysql.m4 \
- $(top_srcdir)/m4/base64.m4 $(top_srcdir)/m4/cond.m4 \
- $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/extensions.m4 \
- $(top_srcdir)/m4/gettimeofday.m4 \
- $(top_srcdir)/m4/gnulib-common.m4 \
- $(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
+ $(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_thread.m4 \
+ $(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/sys_time_h.m4 \
- $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
- $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -89,6 +81,9 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -107,25 +102,13 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
-EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
-EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
-ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
-ENOLINK_VALUE = @ENOLINK_VALUE@
-EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
-EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
-ERRNO_H = @ERRNO_H@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GSSAPI_LIBS = @GSSAPI_LIBS@
GnuTLS_CFLAGS = @GnuTLS_CFLAGS@
GnuTLS_LIBS = @GnuTLS_LIBS@
-HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
-HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
-HAVE__BOOL = @HAVE__BOOL@
INCLTDL = @INCLTDL@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -138,22 +121,15 @@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@
LIBADD_DLOPEN = @LIBADD_DLOPEN@
LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@
LIBLTDL = @LIBLTDL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTDLDEPS = @LTDLDEPS@
LTDLINCL = @LTDLINCL@
LTDLOPEN = @LTDLOPEN@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
LT_CONFIG_H = @LT_CONFIG_H@
LT_DLLOADERS = @LT_DLLOADERS@
LT_DLPREOPEN = @LT_DLPREOPEN@
@@ -164,9 +140,6 @@ MYSQL_CFLAGS = @MYSQL_CFLAGS@
MYSQL_CONFIG = @MYSQL_CONFIG@
MYSQL_LDFLAGS = @MYSQL_LDFLAGS@
MYSQL_VERSION = @MYSQL_VERSION@
-NEXT_ERRNO_H = @NEXT_ERRNO_H@
-NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
-NEXT_TIME_H = @NEXT_TIME_H@
NM = @NM@
NMEDIT = @NMEDIT@
OBJEXT = @OBJEXT@
@@ -180,22 +153,12 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
RANLIB = @RANLIB@
READLINE_LIBS = @READLINE_LIBS@
-REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
-REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
-REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
-REPLACE_STRPTIME = @REPLACE_STRPTIME@
-REPLACE_TIMEGM = @REPLACE_TIMEGM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-STDBOOL_H = @STDBOOL_H@
STRIP = @STRIP@
-SYS_TIME_H = @SYS_TIME_H@
-SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
-TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -221,10 +184,6 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
have_df = @have_df@
host = @host@
host_alias = @host_alias@
diff --git a/src/Common/Requests/Makefile.in b/src/Common/Requests/Makefile.in
index a150e6a..c809e3c 100644
--- a/src/Common/Requests/Makefile.in
+++ b/src/Common/Requests/Makefile.in
@@ -37,22 +37,14 @@ subdir = src/Common/Requests
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
- $(top_srcdir)/m4/argz.m4 $(top_srcdir)/m4/ax_lib_mysql.m4 \
- $(top_srcdir)/m4/base64.m4 $(top_srcdir)/m4/cond.m4 \
- $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/extensions.m4 \
- $(top_srcdir)/m4/gettimeofday.m4 \
- $(top_srcdir)/m4/gnulib-common.m4 \
- $(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
+ $(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_thread.m4 \
+ $(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/sys_time_h.m4 \
- $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
- $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -89,6 +81,9 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -107,25 +102,13 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
-EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
-EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
-ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
-ENOLINK_VALUE = @ENOLINK_VALUE@
-EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
-EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
-ERRNO_H = @ERRNO_H@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GSSAPI_LIBS = @GSSAPI_LIBS@
GnuTLS_CFLAGS = @GnuTLS_CFLAGS@
GnuTLS_LIBS = @GnuTLS_LIBS@
-HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
-HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
-HAVE__BOOL = @HAVE__BOOL@
INCLTDL = @INCLTDL@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -138,22 +121,15 @@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@
LIBADD_DLOPEN = @LIBADD_DLOPEN@
LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@
LIBLTDL = @LIBLTDL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTDLDEPS = @LTDLDEPS@
LTDLINCL = @LTDLINCL@
LTDLOPEN = @LTDLOPEN@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
LT_CONFIG_H = @LT_CONFIG_H@
LT_DLLOADERS = @LT_DLLOADERS@
LT_DLPREOPEN = @LT_DLPREOPEN@
@@ -164,9 +140,6 @@ MYSQL_CFLAGS = @MYSQL_CFLAGS@
MYSQL_CONFIG = @MYSQL_CONFIG@
MYSQL_LDFLAGS = @MYSQL_LDFLAGS@
MYSQL_VERSION = @MYSQL_VERSION@
-NEXT_ERRNO_H = @NEXT_ERRNO_H@
-NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
-NEXT_TIME_H = @NEXT_TIME_H@
NM = @NM@
NMEDIT = @NMEDIT@
OBJEXT = @OBJEXT@
@@ -180,22 +153,12 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
RANLIB = @RANLIB@
READLINE_LIBS = @READLINE_LIBS@
-REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
-REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
-REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
-REPLACE_STRPTIME = @REPLACE_STRPTIME@
-REPLACE_TIMEGM = @REPLACE_TIMEGM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-STDBOOL_H = @STDBOOL_H@
STRIP = @STRIP@
-SYS_TIME_H = @SYS_TIME_H@
-SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
-TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -221,10 +184,6 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
have_df = @have_df@
host = @host@
host_alias = @host_alias@
diff --git a/src/Common/XmlPacket.cpp b/src/Common/XmlPacket.cpp
index 73dd87d..6e3d007 100644
--- a/src/Common/XmlPacket.cpp
+++ b/src/Common/XmlPacket.cpp
@@ -20,13 +20,10 @@
#include <config.h>
#include "XmlPacket.h"
+#include "Base64Encoder.h"
#include <cstdlib>
#include <cstring>
-extern "C" {
-#include "base64.h"
-}
-
namespace Mad {
namespace Common {
@@ -38,10 +35,7 @@ void XmlPacket::Element::updateStr() {
return;
if(type == BINARY) {
- char *base64Data;
- base64_encode_alloc((char*)binData, value.var_size, &base64Data);
- str = base64Data;
- std::free(base64Data);
+ str = Base64Encoder::encode(std::vector<boost::uint8_t>((boost::uint8_t*)binData, ((boost::uint8_t*)binData)+value.var_size));
}
else if(type != STRING) {
std::ostringstream buf;
@@ -99,7 +93,12 @@ XmlPacket::Element::Element(xmlNodePtr node) : elementNode(node), binData(0), ty
if(!xmlStrcmp(typestr, (xmlChar*)"binary")) {
type = BINARY;
- base64_decode_alloc((char*)content, xmlStrlen(content), (char**)&binData, &value.var_size);
+
+ std::vector<boost::uint8_t> v = Base64Encoder::decode(str);
+
+ value.var_size = v.size();
+ binData = std::malloc(value.var_size);
+ std::memcpy(binData, v.data(), value.var_size);
}
else if(!xmlStrcmp(typestr, (xmlChar*)"int")) {
type = INT;
@@ -215,17 +214,9 @@ bool XmlPacket::Entry::addBinary(const std::string &name, const void *data, size
if(elements.find(name) != elements.end() || lists.find(name) != lists.end())
return false;
- char *base64Data;
+ std::string base64Data = Base64Encoder::encode(std::vector<boost::uint8_t>((boost::uint8_t*)data, ((boost::uint8_t*)data)+size));;
- base64_encode_alloc((const char*)data, size, &base64Data);
- if(!base64Data)
- return false;
-
- bool ret = add(name, std::string(base64Data), "binary");
-
- std::free(base64Data);
-
- return ret;
+ return add(name, base64Data, "binary");
}
XmlPacket::List::List(xmlNodePtr node) : Element(node, LIST) {
diff --git a/src/Daemon/Backends/Makefile.in b/src/Daemon/Backends/Makefile.in
index 691271e..31017c9 100644
--- a/src/Daemon/Backends/Makefile.in
+++ b/src/Daemon/Backends/Makefile.in
@@ -36,22 +36,14 @@ subdir = src/Daemon/Backends
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
- $(top_srcdir)/m4/argz.m4 $(top_srcdir)/m4/ax_lib_mysql.m4 \
- $(top_srcdir)/m4/base64.m4 $(top_srcdir)/m4/cond.m4 \
- $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/extensions.m4 \
- $(top_srcdir)/m4/gettimeofday.m4 \
- $(top_srcdir)/m4/gnulib-common.m4 \
- $(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
+ $(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_thread.m4 \
+ $(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/sys_time_h.m4 \
- $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
- $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -71,6 +63,9 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -89,25 +84,13 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
-EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
-EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
-ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
-ENOLINK_VALUE = @ENOLINK_VALUE@
-EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
-EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
-ERRNO_H = @ERRNO_H@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GSSAPI_LIBS = @GSSAPI_LIBS@
GnuTLS_CFLAGS = @GnuTLS_CFLAGS@
GnuTLS_LIBS = @GnuTLS_LIBS@
-HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
-HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
-HAVE__BOOL = @HAVE__BOOL@
INCLTDL = @INCLTDL@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -120,22 +103,15 @@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@
LIBADD_DLOPEN = @LIBADD_DLOPEN@
LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@
LIBLTDL = @LIBLTDL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTDLDEPS = @LTDLDEPS@
LTDLINCL = @LTDLINCL@
LTDLOPEN = @LTDLOPEN@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
LT_CONFIG_H = @LT_CONFIG_H@
LT_DLLOADERS = @LT_DLLOADERS@
LT_DLPREOPEN = @LT_DLPREOPEN@
@@ -146,9 +122,6 @@ MYSQL_CFLAGS = @MYSQL_CFLAGS@
MYSQL_CONFIG = @MYSQL_CONFIG@
MYSQL_LDFLAGS = @MYSQL_LDFLAGS@
MYSQL_VERSION = @MYSQL_VERSION@
-NEXT_ERRNO_H = @NEXT_ERRNO_H@
-NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
-NEXT_TIME_H = @NEXT_TIME_H@
NM = @NM@
NMEDIT = @NMEDIT@
OBJEXT = @OBJEXT@
@@ -162,22 +135,12 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
RANLIB = @RANLIB@
READLINE_LIBS = @READLINE_LIBS@
-REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
-REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
-REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
-REPLACE_STRPTIME = @REPLACE_STRPTIME@
-REPLACE_TIMEGM = @REPLACE_TIMEGM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-STDBOOL_H = @STDBOOL_H@
STRIP = @STRIP@
-SYS_TIME_H = @SYS_TIME_H@
-SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
-TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -203,10 +166,6 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
have_df = @have_df@
host = @host@
host_alias = @host_alias@
diff --git a/src/Daemon/Makefile.in b/src/Daemon/Makefile.in
index 3090519..a9faebf 100644
--- a/src/Daemon/Makefile.in
+++ b/src/Daemon/Makefile.in
@@ -37,22 +37,14 @@ subdir = src/Daemon
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
- $(top_srcdir)/m4/argz.m4 $(top_srcdir)/m4/ax_lib_mysql.m4 \
- $(top_srcdir)/m4/base64.m4 $(top_srcdir)/m4/cond.m4 \
- $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/extensions.m4 \
- $(top_srcdir)/m4/gettimeofday.m4 \
- $(top_srcdir)/m4/gnulib-common.m4 \
- $(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
+ $(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_thread.m4 \
+ $(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/sys_time_h.m4 \
- $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
- $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -97,6 +89,9 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -115,25 +110,13 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
-EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
-EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
-ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
-ENOLINK_VALUE = @ENOLINK_VALUE@
-EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
-EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
-ERRNO_H = @ERRNO_H@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GSSAPI_LIBS = @GSSAPI_LIBS@
GnuTLS_CFLAGS = @GnuTLS_CFLAGS@
GnuTLS_LIBS = @GnuTLS_LIBS@
-HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
-HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
-HAVE__BOOL = @HAVE__BOOL@
INCLTDL = @INCLTDL@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -146,22 +129,15 @@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@
LIBADD_DLOPEN = @LIBADD_DLOPEN@
LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@
LIBLTDL = @LIBLTDL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTDLDEPS = @LTDLDEPS@
LTDLINCL = @LTDLINCL@
LTDLOPEN = @LTDLOPEN@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
LT_CONFIG_H = @LT_CONFIG_H@
LT_DLLOADERS = @LT_DLLOADERS@
LT_DLPREOPEN = @LT_DLPREOPEN@
@@ -172,9 +148,6 @@ MYSQL_CFLAGS = @MYSQL_CFLAGS@
MYSQL_CONFIG = @MYSQL_CONFIG@
MYSQL_LDFLAGS = @MYSQL_LDFLAGS@
MYSQL_VERSION = @MYSQL_VERSION@
-NEXT_ERRNO_H = @NEXT_ERRNO_H@
-NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
-NEXT_TIME_H = @NEXT_TIME_H@
NM = @NM@
NMEDIT = @NMEDIT@
OBJEXT = @OBJEXT@
@@ -188,22 +161,12 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
RANLIB = @RANLIB@
READLINE_LIBS = @READLINE_LIBS@
-REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
-REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
-REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
-REPLACE_STRPTIME = @REPLACE_STRPTIME@
-REPLACE_TIMEGM = @REPLACE_TIMEGM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-STDBOOL_H = @STDBOOL_H@
STRIP = @STRIP@
-SYS_TIME_H = @SYS_TIME_H@
-SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
-TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -229,10 +192,6 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
have_df = @have_df@
host = @host@
host_alias = @host_alias@
diff --git a/src/Daemon/RequestHandlers/Makefile.in b/src/Daemon/RequestHandlers/Makefile.in
index 152f907..3de4cbe 100644
--- a/src/Daemon/RequestHandlers/Makefile.in
+++ b/src/Daemon/RequestHandlers/Makefile.in
@@ -37,22 +37,14 @@ subdir = src/Daemon/RequestHandlers
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
- $(top_srcdir)/m4/argz.m4 $(top_srcdir)/m4/ax_lib_mysql.m4 \
- $(top_srcdir)/m4/base64.m4 $(top_srcdir)/m4/cond.m4 \
- $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/extensions.m4 \
- $(top_srcdir)/m4/gettimeofday.m4 \
- $(top_srcdir)/m4/gnulib-common.m4 \
- $(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
+ $(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_thread.m4 \
+ $(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/sys_time_h.m4 \
- $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
- $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -88,6 +80,9 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -106,25 +101,13 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
-EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
-EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
-ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
-ENOLINK_VALUE = @ENOLINK_VALUE@
-EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
-EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
-ERRNO_H = @ERRNO_H@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GSSAPI_LIBS = @GSSAPI_LIBS@
GnuTLS_CFLAGS = @GnuTLS_CFLAGS@
GnuTLS_LIBS = @GnuTLS_LIBS@
-HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
-HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
-HAVE__BOOL = @HAVE__BOOL@
INCLTDL = @INCLTDL@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -137,22 +120,15 @@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@
LIBADD_DLOPEN = @LIBADD_DLOPEN@
LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@
LIBLTDL = @LIBLTDL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTDLDEPS = @LTDLDEPS@
LTDLINCL = @LTDLINCL@
LTDLOPEN = @LTDLOPEN@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
LT_CONFIG_H = @LT_CONFIG_H@
LT_DLLOADERS = @LT_DLLOADERS@
LT_DLPREOPEN = @LT_DLPREOPEN@
@@ -163,9 +139,6 @@ MYSQL_CFLAGS = @MYSQL_CFLAGS@
MYSQL_CONFIG = @MYSQL_CONFIG@
MYSQL_LDFLAGS = @MYSQL_LDFLAGS@
MYSQL_VERSION = @MYSQL_VERSION@
-NEXT_ERRNO_H = @NEXT_ERRNO_H@
-NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
-NEXT_TIME_H = @NEXT_TIME_H@
NM = @NM@
NMEDIT = @NMEDIT@
OBJEXT = @OBJEXT@
@@ -179,22 +152,12 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
RANLIB = @RANLIB@
READLINE_LIBS = @READLINE_LIBS@
-REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
-REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
-REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
-REPLACE_STRPTIME = @REPLACE_STRPTIME@
-REPLACE_TIMEGM = @REPLACE_TIMEGM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-STDBOOL_H = @STDBOOL_H@
STRIP = @STRIP@
-SYS_TIME_H = @SYS_TIME_H@
-SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
-TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -220,10 +183,6 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
have_df = @have_df@
host = @host@
host_alias = @host_alias@
diff --git a/src/Daemon/Requests/Makefile.in b/src/Daemon/Requests/Makefile.in
index 67261b0..0f16855 100644
--- a/src/Daemon/Requests/Makefile.in
+++ b/src/Daemon/Requests/Makefile.in
@@ -37,22 +37,14 @@ subdir = src/Daemon/Requests
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
- $(top_srcdir)/m4/argz.m4 $(top_srcdir)/m4/ax_lib_mysql.m4 \
- $(top_srcdir)/m4/base64.m4 $(top_srcdir)/m4/cond.m4 \
- $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/extensions.m4 \
- $(top_srcdir)/m4/gettimeofday.m4 \
- $(top_srcdir)/m4/gnulib-common.m4 \
- $(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
+ $(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_thread.m4 \
+ $(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/sys_time_h.m4 \
- $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
- $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -88,6 +80,9 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -106,25 +101,13 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
-EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
-EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
-ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
-ENOLINK_VALUE = @ENOLINK_VALUE@
-EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
-EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
-ERRNO_H = @ERRNO_H@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GSSAPI_LIBS = @GSSAPI_LIBS@
GnuTLS_CFLAGS = @GnuTLS_CFLAGS@
GnuTLS_LIBS = @GnuTLS_LIBS@
-HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
-HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
-HAVE__BOOL = @HAVE__BOOL@
INCLTDL = @INCLTDL@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -137,22 +120,15 @@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@
LIBADD_DLOPEN = @LIBADD_DLOPEN@
LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@
LIBLTDL = @LIBLTDL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTDLDEPS = @LTDLDEPS@
LTDLINCL = @LTDLINCL@
LTDLOPEN = @LTDLOPEN@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
LT_CONFIG_H = @LT_CONFIG_H@
LT_DLLOADERS = @LT_DLLOADERS@
LT_DLPREOPEN = @LT_DLPREOPEN@
@@ -163,9 +139,6 @@ MYSQL_CFLAGS = @MYSQL_CFLAGS@
MYSQL_CONFIG = @MYSQL_CONFIG@
MYSQL_LDFLAGS = @MYSQL_LDFLAGS@
MYSQL_VERSION = @MYSQL_VERSION@
-NEXT_ERRNO_H = @NEXT_ERRNO_H@
-NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
-NEXT_TIME_H = @NEXT_TIME_H@
NM = @NM@
NMEDIT = @NMEDIT@
OBJEXT = @OBJEXT@
@@ -179,22 +152,12 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
RANLIB = @RANLIB@
READLINE_LIBS = @READLINE_LIBS@
-REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
-REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
-REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
-REPLACE_STRPTIME = @REPLACE_STRPTIME@
-REPLACE_TIMEGM = @REPLACE_TIMEGM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-STDBOOL_H = @STDBOOL_H@
STRIP = @STRIP@
-SYS_TIME_H = @SYS_TIME_H@
-SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
-TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -220,10 +183,6 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
have_df = @have_df@
host = @host@
host_alias = @host_alias@
diff --git a/src/Makefile.in b/src/Makefile.in
index c431af6..a6e80f2 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -41,22 +41,14 @@ bin_PROGRAMS = mad$(EXEEXT) madc$(EXEEXT) mad-server$(EXEEXT)
subdir = src
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
- $(top_srcdir)/m4/argz.m4 $(top_srcdir)/m4/ax_lib_mysql.m4 \
- $(top_srcdir)/m4/base64.m4 $(top_srcdir)/m4/cond.m4 \
- $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/extensions.m4 \
- $(top_srcdir)/m4/gettimeofday.m4 \
- $(top_srcdir)/m4/gnulib-common.m4 \
- $(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
+ $(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_thread.m4 \
+ $(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/sys_time_h.m4 \
- $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
- $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -133,6 +125,9 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -151,25 +146,13 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
-EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
-EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
-ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
-ENOLINK_VALUE = @ENOLINK_VALUE@
-EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
-EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
-ERRNO_H = @ERRNO_H@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GSSAPI_LIBS = @GSSAPI_LIBS@
GnuTLS_CFLAGS = @GnuTLS_CFLAGS@
GnuTLS_LIBS = @GnuTLS_LIBS@
-HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
-HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
-HAVE__BOOL = @HAVE__BOOL@
INCLTDL = @INCLTDL@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -182,22 +165,15 @@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@
LIBADD_DLOPEN = @LIBADD_DLOPEN@
LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@
LIBLTDL = @LIBLTDL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTDLDEPS = @LTDLDEPS@
LTDLINCL = @LTDLINCL@
LTDLOPEN = @LTDLOPEN@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
LT_CONFIG_H = @LT_CONFIG_H@
LT_DLLOADERS = @LT_DLLOADERS@
LT_DLPREOPEN = @LT_DLPREOPEN@
@@ -208,9 +184,6 @@ MYSQL_CFLAGS = @MYSQL_CFLAGS@
MYSQL_CONFIG = @MYSQL_CONFIG@
MYSQL_LDFLAGS = @MYSQL_LDFLAGS@
MYSQL_VERSION = @MYSQL_VERSION@
-NEXT_ERRNO_H = @NEXT_ERRNO_H@
-NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
-NEXT_TIME_H = @NEXT_TIME_H@
NM = @NM@
NMEDIT = @NMEDIT@
OBJEXT = @OBJEXT@
@@ -224,22 +197,12 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
RANLIB = @RANLIB@
READLINE_LIBS = @READLINE_LIBS@
-REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
-REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
-REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
-REPLACE_STRPTIME = @REPLACE_STRPTIME@
-REPLACE_TIMEGM = @REPLACE_TIMEGM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-STDBOOL_H = @STDBOOL_H@
STRIP = @STRIP@
-SYS_TIME_H = @SYS_TIME_H@
-SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
-TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -265,10 +228,6 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
have_df = @have_df@
host = @host@
host_alias = @host_alias@
diff --git a/src/Net/ClientConnection.cpp b/src/Net/ClientConnection.cpp
index e4de735..688dbc7 100644
--- a/src/Net/ClientConnection.cpp
+++ b/src/Net/ClientConnection.cpp
@@ -21,6 +21,8 @@
#include "FdManager.h"
#include "IPAddress.h"
+#include <boost/thread/locks.hpp>
+
#include <cstring>
#include <cerrno>
#include <sys/socket.h>
@@ -56,19 +58,17 @@ void ClientConnection::connectionHeader() {
}
void ClientConnection::connect(const IPAddress &address, bool daemon0) throw(Exception) {
- gl_rwlock_wrlock(stateLock);
+ boost::unique_lock<boost::shared_mutex> lock(stateLock);
daemon = daemon0;
if(_isConnected()) {
- gl_rwlock_unlock(stateLock);
return;
// TODO Error
}
sock = socket(PF_INET, SOCK_STREAM, 0);
if(sock < 0) {
- gl_rwlock_unlock(stateLock);
throw Exception("socket()", Exception::INTERNAL_ERRNO, errno);
}
@@ -81,7 +81,6 @@ void ClientConnection::connect(const IPAddress &address, bool daemon0) throw(Exc
delete peer;
peer = 0;
- gl_rwlock_unlock(stateLock);
throw Exception("connect()", Exception::INTERNAL_ERRNO, errno);
}
@@ -91,7 +90,6 @@ void ClientConnection::connect(const IPAddress &address, bool daemon0) throw(Exc
if(flags < 0) {
close(sock);
- gl_rwlock_unlock(stateLock);
throw Exception("fcntl()", Exception::INTERNAL_ERRNO, errno);
}
@@ -110,7 +108,7 @@ void ClientConnection::connect(const IPAddress &address, bool daemon0) throw(Exc
state = CONNECT;
- gl_rwlock_unlock(stateLock);
+ lock.unlock();
updateEvents();
}
diff --git a/src/Net/Connection.cpp b/src/Net/Connection.cpp
index 2ccfddb..cf675c9 100644
--- a/src/Net/Connection.cpp
+++ b/src/Net/Connection.cpp
@@ -48,50 +48,40 @@ Connection::~Connection() {
gnutls_certificate_free_credentials(x509_cred);
- gl_rwlock_destroy(stateLock);
- gl_lock_destroy(sendLock);
- gl_lock_destroy(receiveLock);
-
if(peer)
delete peer;
}
void Connection::handshake() {
- gl_rwlock_wrlock(stateLock);
- if(state != CONNECT) {
- gl_rwlock_unlock(stateLock);
+ boost::unique_lock<boost::shared_mutex> lock(stateLock);
+ if(state != CONNECT)
return;
- }
state = HANDSHAKE;
- gl_rwlock_unlock(stateLock);
+ lock.unlock();
doHandshake();
}
void Connection::bye() {
- gl_rwlock_wrlock(stateLock);
- if(state != DISCONNECT) {
- gl_rwlock_unlock(stateLock);
+ boost::unique_lock<boost::shared_mutex> lock(stateLock);
+ if(state != DISCONNECT)
return;
- }
state = BYE;
- gl_rwlock_unlock(stateLock);
+ lock.unlock();
doBye();
}
void Connection::doHandshake() {
- gl_rwlock_rdlock(stateLock);
- if(state != HANDSHAKE) {
- gl_rwlock_unlock(stateLock);
+ boost::shared_lock<boost::shared_mutex> lock(stateLock);
+ if(state != HANDSHAKE)
return;
- }
int ret = gnutls_handshake(session);
if(ret < 0) {
- gl_rwlock_unlock(stateLock);
+ lock.unlock();
if(ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN) {
updateEvents();
@@ -104,7 +94,7 @@ void Connection::doHandshake() {
}
state = CONNECTION_HEADER;
- gl_rwlock_unlock(stateLock);
+ lock.unlock();
connectionHeader();
}
@@ -129,18 +119,16 @@ void Connection::doBye() {
}
void Connection::enterReceiveLoop() {
- gl_rwlock_wrlock(stateLock);
+ boost::unique_lock<boost::shared_mutex> lock(stateLock);
- if(!_isConnected() || _isDisconnecting()) {
- gl_rwlock_unlock(stateLock);
+ if(!_isConnected() || _isDisconnecting())
return;
- }
if(_isConnecting())
ThreadManager::get()->pushWork(sigc::mem_fun(connectedSignal, &sigc::signal<void>::emit));
state = PACKET_HEADER;
- gl_rwlock_unlock(stateLock);
+ lock.unlock();
rawReceive(sizeof(Packet::Data), sigc::mem_fun(this, &Connection::packetHeaderReceiveHandler));
}
@@ -187,17 +175,15 @@ void Connection::doReceive() {
if(!isConnected())
return;
- gl_lock_lock(receiveLock);
+ boost::unique_lock<boost::mutex> lock(receiveLock);
- if(_receiveComplete()) {
- gl_lock_unlock(receiveLock);
+ if(_receiveComplete())
return;
- }
ssize_t ret = gnutls_record_recv(session, transR.data+transR.transmitted, transR.length-transR.transmitted);
if(ret < 0) {
- gl_lock_unlock(receiveLock);
+ lock.unlock();
if(ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN)
return;
@@ -213,14 +199,14 @@ void Connection::doReceive() {
uint8_t *data = transR.data;
transR.data = 0;
- gl_lock_unlock(receiveLock);
+ lock.unlock();
transR.notify(data, transR.length);
delete [] data;
}
else {
- gl_lock_unlock(receiveLock);
+ lock.unlock();
}
updateEvents();
@@ -232,18 +218,16 @@ bool Connection::rawReceive(unsigned long length,
if(!isConnected())
return false;
- gl_lock_lock(receiveLock);
- if(!_receiveComplete()) {
- gl_lock_unlock(receiveLock);
+ boost::unique_lock<boost::mutex> lock(receiveLock);
+ if(!_receiveComplete())
return false;
- }
transR.data = new uint8_t[length];
transR.length = length;
transR.transmitted = 0;
transR.notify = notify;
- gl_lock_unlock(receiveLock);
+ lock.unlock();
updateEvents();
@@ -254,13 +238,13 @@ void Connection::doSend() {
if(!isConnected())
return;
- gl_lock_lock(sendLock);
+ boost::unique_lock<boost::mutex> lock(sendLock);
while(!_sendQueueEmpty()) {
ssize_t ret = gnutls_record_send(session, transS.front().data+transS.front().transmitted,
transS.front().length-transS.front().transmitted);
if(ret < 0) {
- gl_lock_unlock(sendLock);
+ lock.unlock();
if(ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN)
return;
@@ -278,7 +262,7 @@ void Connection::doSend() {
}
}
- gl_lock_unlock(sendLock);
+ lock.unlock();
updateEvents();
}
@@ -290,9 +274,9 @@ bool Connection::rawSend(const uint8_t *data, unsigned long length) {
Transmission trans = {length, 0, new uint8_t[length], sigc::slot<void,const void*,unsigned long>()};
std::memcpy(trans.data, data, length);
- gl_lock_lock(sendLock);
+ sendLock.lock();
transS.push(trans);
- gl_lock_unlock(sendLock);
+ sendLock.unlock();
updateEvents();
@@ -333,9 +317,9 @@ void Connection::sendReceive(short events) {
}
bool Connection::send(const Packet &packet) {
- gl_rwlock_rdlock(stateLock);
+ stateLock.lock_shared();
bool err = (!_isConnected() || _isConnecting() || _isDisconnecting());
- gl_rwlock_unlock(stateLock);
+ stateLock.unlock_shared();
if(err)
return false;
@@ -344,21 +328,19 @@ bool Connection::send(const Packet &packet) {
}
void Connection::disconnect() {
- gl_rwlock_wrlock(stateLock);
- if(!_isConnected() || _isDisconnecting()) {
- gl_rwlock_unlock(stateLock);
+ boost::unique_lock<boost::shared_mutex> lock(stateLock);
+ if(!_isConnected() || _isDisconnecting())
return;
- }
state = DISCONNECT;
- gl_rwlock_unlock(stateLock);
+ lock.unlock();
updateEvents();
}
void Connection::doDisconnect() {
- gl_rwlock_wrlock(stateLock);
+ boost::unique_lock<boost::shared_mutex> lock(stateLock);
if(_isConnected()) {
FdManager::get()->unregisterFd(sock);
@@ -372,27 +354,25 @@ void Connection::doDisconnect() {
state = DISCONNECTED;
}
-
- gl_rwlock_unlock(stateLock);
}
void Connection::updateEvents() {
- gl_lock_lock(receiveLock);
+ receiveLock.lock();
short events = (_receiveComplete() ? 0 : POLLIN);
- gl_lock_unlock(receiveLock);
+ receiveLock.unlock();
- gl_lock_lock(sendLock);
+ sendLock.lock();
events |= (_sendQueueEmpty() ? 0 : POLLOUT);
- gl_lock_unlock(sendLock);
+ sendLock.unlock();
- gl_rwlock_rdlock(stateLock);
+ stateLock.lock_shared();
if(state == HANDSHAKE || state == BYE)
events = ((gnutls_record_get_direction(session) == 0) ? POLLIN : POLLOUT);
else if(state == CONNECT || state == DISCONNECT)
events |= POLLOUT;
FdManager::get()->setFdEvents(sock, events);
- gl_rwlock_unlock(stateLock);
+ stateLock.unlock_shared();
}
}
diff --git a/src/Net/Connection.h b/src/Net/Connection.h
index 1176f92..1a3e72b 100644
--- a/src/Net/Connection.h
+++ b/src/Net/Connection.h
@@ -30,7 +30,8 @@
#include <sigc++/signal.h>
#include <poll.h>
-#include "glthread/lock.h"
+#include <boost/thread/mutex.hpp>
+#include <boost/thread/shared_mutex.hpp>
#include <iostream>
@@ -63,10 +64,10 @@ class Connection {
sigc::slot<void,const void*,unsigned long> notify;
};
- gl_lock_t receiveLock;
+ boost::mutex receiveLock;
Transmission transR;
- gl_lock_t sendLock;
+ boost::mutex sendLock;
std::queue<Transmission> transS;
Packet::Data header;
@@ -112,7 +113,7 @@ class Connection {
uint8_t protVerMax;
};
- gl_rwlock_t stateLock;
+ boost::shared_mutex stateLock;
enum State {
DISCONNECTED, CONNECT, HANDSHAKE, CONNECTION_HEADER, PACKET_HEADER, PACKET_DATA, DISCONNECT, BYE
@@ -151,38 +152,25 @@ class Connection {
transR.length = transR.transmitted = 0;
transR.data = 0;
- gl_rwlock_init(stateLock);
- gl_lock_init(sendLock);
- gl_lock_init(receiveLock);
-
gnutls_certificate_allocate_credentials(&x509_cred);
}
virtual ~Connection();
bool isConnected() {
- gl_rwlock_rdlock(stateLock);
- bool ret = _isConnected();
- gl_rwlock_unlock(stateLock);
-
- return ret;
+ boost::shared_lock<boost::shared_mutex> lock(stateLock);
+ return _isConnected();
}
bool isConnecting() {
- gl_rwlock_rdlock(stateLock);
- bool ret = _isConnecting();
- gl_rwlock_unlock(stateLock);
-
- return ret;
+ boost::shared_lock<boost::shared_mutex> lock(stateLock);
+ return _isConnecting();
}
- /*bool isDisconnecting() {
- gl_rwlock_rdlock(stateLock);
- bool ret = (state == DISCONNECT || state == BYE);
- gl_rwlock_unlock(stateLock);
-
- return ret;
- }*/
+ bool isDisconnecting() {
+ boost::shared_lock<boost::shared_mutex> lock(stateLock);
+ return _isDisconnecting();
+ }
const gnutls_datum_t* getCertificate() const {
// TODO Thread-safeness
diff --git a/src/Net/FdManager.cpp b/src/Net/FdManager.cpp
index 499ad62..c7abe73 100644
--- a/src/Net/FdManager.cpp
+++ b/src/Net/FdManager.cpp
@@ -35,10 +35,6 @@ FdManager FdManager::fdManager;
FdManager::FdManager() : running(false) {
- gl_rwlock_init(handlerLock);
- gl_rwlock_init(eventLock);
- gl_rwlock_init(runLock);
-
pipe(interruptPipe);
int flags = fcntl(interruptPipe[0], F_GETFL, 0);
@@ -55,23 +51,19 @@ FdManager::~FdManager() {
close(interruptPipe[0]);
close(interruptPipe[1]);
-
- gl_rwlock_destroy(runLock);
- gl_rwlock_destroy(eventLock);
- gl_rwlock_destroy(handlerLock);
}
bool FdManager::registerFd(int fd, const sigc::slot<void, short> &handler, short events) {
struct pollfd pollfd = {fd, events, 0};
- gl_rwlock_wrlock(handlerLock);
- gl_rwlock_wrlock(eventLock);
+ boost::lock(handlerLock, eventLock);
pollfds.insert(std::make_pair(fd, pollfd));
bool ret = handlers.insert(std::make_pair(fd, handler)).second;
- gl_rwlock_unlock(eventLock);
- gl_rwlock_unlock(handlerLock);
+
+ eventLock.unlock();
+ handlerLock.unlock();
interrupt();
@@ -79,12 +71,11 @@ bool FdManager::registerFd(int fd, const sigc::slot<void, short> &handler, short
}
bool FdManager::unregisterFd(int fd) {
- gl_rwlock_wrlock(handlerLock);
- gl_rwlock_wrlock(eventLock);
+ boost::lock(handlerLock, eventLock);
pollfds.erase(fd);
bool ret = handlers.erase(fd);
- gl_rwlock_unlock(eventLock);
- gl_rwlock_unlock(handlerLock);
+ eventLock.unlock();
+ handlerLock.unlock();
interrupt();
@@ -92,36 +83,30 @@ bool FdManager::unregisterFd(int fd) {
}
bool FdManager::setFdEvents(int fd, short events) {
- gl_rwlock_wrlock(eventLock);
+ boost::unique_lock<boost::shared_mutex> lock(eventLock);
+
std::map<int, struct pollfd>::iterator pollfd = pollfds.find(fd);
- if(pollfd == pollfds.end()) {
- gl_rwlock_unlock(eventLock);
+ if(pollfd == pollfds.end())
return false;
- }
if(pollfd->second.events != events) {
pollfd->second.events = events;
interrupt();
}
- gl_rwlock_unlock(eventLock);
-
return true;
}
short FdManager::getFdEvents(int fd) {
- gl_rwlock_rdlock(eventLock);
+ boost::shared_lock<boost::shared_mutex> lock(eventLock);
std::map<int, struct pollfd>::const_iterator pollfd = pollfds.find(fd);
if(pollfd == pollfds.end())
return -1;
- short ret = pollfd->second.events;
- gl_rwlock_unlock(eventLock);
-
- return ret;
+ return pollfd->second.events;
}
void FdManager::readInterrupt() {
@@ -137,16 +122,15 @@ void FdManager::interrupt() {
}
void FdManager::ioThread() {
- gl_rwlock_wrlock(runLock);
+ runLock.lock();
running = true;
- gl_rwlock_unlock(runLock);
+ runLock.unlock_and_lock_shared();
- gl_rwlock_rdlock(runLock);
while(running) {
- gl_rwlock_unlock(runLock);
+ runLock.unlock_shared();
- gl_rwlock_rdlock(handlerLock);
- gl_rwlock_rdlock(eventLock);
+ handlerLock.lock_shared();
+ eventLock.lock_shared();
readInterrupt();
size_t count = pollfds.size();
@@ -159,11 +143,11 @@ void FdManager::ioThread() {
++pollfd;
}
- gl_rwlock_unlock(eventLock);
- gl_rwlock_unlock(handlerLock);
+ eventLock.unlock_shared();
+ handlerLock.unlock_shared();
if(poll(fdarray, count, -1) > 0) {
- gl_rwlock_rdlock(handlerLock);
+ handlerLock.lock_shared();
std::queue<sigc::slot<void> > calls;
@@ -172,7 +156,7 @@ void FdManager::ioThread() {
calls.push(sigc::bind(handlers[fdarray[n].fd], fdarray[n].revents));
}
- gl_rwlock_unlock(handlerLock);
+ handlerLock.unlock_shared();
while(!calls.empty()) {
calls.front()();
@@ -183,10 +167,10 @@ void FdManager::ioThread() {
delete [] fdarray;
- gl_rwlock_rdlock(runLock);
+ runLock.lock_shared();
}
- gl_rwlock_unlock(runLock);
+ runLock.unlock_shared();
}
}
diff --git a/src/Net/FdManager.h b/src/Net/FdManager.h
index 8c2ec12..406110d 100644
--- a/src/Net/FdManager.h
+++ b/src/Net/FdManager.h
@@ -20,14 +20,11 @@
#ifndef MAD_NET_FDMANAGER_H_
#define MAD_NET_FDMANAGER_H_
-#include <config.h>
-
#include <map>
#include <poll.h>
#include <sigc++/signal.h>
-#include "glthread/lock.h"
-#include "glthread/cond.h"
+#include <boost/thread/shared_mutex.hpp>
namespace Mad {
namespace Net {
@@ -40,7 +37,7 @@ class FdManager {
static FdManager fdManager;
- gl_rwlock_t runLock, handlerLock, eventLock;
+ boost::shared_mutex runLock, handlerLock, eventLock;
bool running;
std::map<int, struct pollfd> pollfds;
@@ -55,9 +52,9 @@ class FdManager {
void ioThread();
void stopIOThread() {
- gl_rwlock_wrlock(runLock);
+ runLock.lock();
running = false;
- gl_rwlock_unlock(runLock);
+ runLock.unlock();
interrupt();
}
diff --git a/src/Net/Makefile.am b/src/Net/Makefile.am
index 65fc504..1bd1d74 100644
--- a/src/Net/Makefile.am
+++ b/src/Net/Makefile.am
@@ -1,6 +1,8 @@
noinst_LTLIBRARIES = libnet.la
libnet_la_SOURCES = ClientConnection.cpp Exception.cpp ServerConnection.cpp Connection.cpp FdManager.cpp IPAddress.cpp \
Listener.cpp Packet.cpp ThreadManager.cpp
+libnet_la_LDFLAGS = $(BOOST_LDFLAGS)
+libnet_la_LIBADD = $(BOOST_THREAD_LIB)
noinst_HEADERS = ClientConnection.h Exception.h ServerConnection.h Connection.h FdManager.h IPAddress.h Listener.h \
Packet.h ThreadManager.h
diff --git a/src/Net/Makefile.in b/src/Net/Makefile.in
index 5d421fb..c51039d 100644
--- a/src/Net/Makefile.in
+++ b/src/Net/Makefile.in
@@ -37,33 +37,29 @@ subdir = src/Net
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
- $(top_srcdir)/m4/argz.m4 $(top_srcdir)/m4/ax_lib_mysql.m4 \
- $(top_srcdir)/m4/base64.m4 $(top_srcdir)/m4/cond.m4 \
- $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/extensions.m4 \
- $(top_srcdir)/m4/gettimeofday.m4 \
- $(top_srcdir)/m4/gnulib-common.m4 \
- $(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
+ $(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_thread.m4 \
+ $(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/sys_time_h.m4 \
- $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
- $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
-libnet_la_LIBADD =
+am__DEPENDENCIES_1 =
+libnet_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_libnet_la_OBJECTS = ClientConnection.lo Exception.lo \
ServerConnection.lo Connection.lo FdManager.lo IPAddress.lo \
Listener.lo Packet.lo ThreadManager.lo
libnet_la_OBJECTS = $(am_libnet_la_OBJECTS)
+libnet_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(libnet_la_LDFLAGS) $(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
am__depfiles_maybe = depfiles
@@ -90,6 +86,9 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -108,25 +107,13 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
-EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
-EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
-ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
-ENOLINK_VALUE = @ENOLINK_VALUE@
-EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
-EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
-ERRNO_H = @ERRNO_H@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GSSAPI_LIBS = @GSSAPI_LIBS@
GnuTLS_CFLAGS = @GnuTLS_CFLAGS@
GnuTLS_LIBS = @GnuTLS_LIBS@
-HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
-HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
-HAVE__BOOL = @HAVE__BOOL@
INCLTDL = @INCLTDL@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -139,22 +126,15 @@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@
LIBADD_DLOPEN = @LIBADD_DLOPEN@
LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@
LIBLTDL = @LIBLTDL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTDLDEPS = @LTDLDEPS@
LTDLINCL = @LTDLINCL@
LTDLOPEN = @LTDLOPEN@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
LT_CONFIG_H = @LT_CONFIG_H@
LT_DLLOADERS = @LT_DLLOADERS@
LT_DLPREOPEN = @LT_DLPREOPEN@
@@ -165,9 +145,6 @@ MYSQL_CFLAGS = @MYSQL_CFLAGS@
MYSQL_CONFIG = @MYSQL_CONFIG@
MYSQL_LDFLAGS = @MYSQL_LDFLAGS@
MYSQL_VERSION = @MYSQL_VERSION@
-NEXT_ERRNO_H = @NEXT_ERRNO_H@
-NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
-NEXT_TIME_H = @NEXT_TIME_H@
NM = @NM@
NMEDIT = @NMEDIT@
OBJEXT = @OBJEXT@
@@ -181,22 +158,12 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
RANLIB = @RANLIB@
READLINE_LIBS = @READLINE_LIBS@
-REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
-REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
-REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
-REPLACE_STRPTIME = @REPLACE_STRPTIME@
-REPLACE_TIMEGM = @REPLACE_TIMEGM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-STDBOOL_H = @STDBOOL_H@
STRIP = @STRIP@
-SYS_TIME_H = @SYS_TIME_H@
-SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
-TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -222,10 +189,6 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
have_df = @have_df@
host = @host@
host_alias = @host_alias@
@@ -269,6 +232,8 @@ noinst_LTLIBRARIES = libnet.la
libnet_la_SOURCES = ClientConnection.cpp Exception.cpp ServerConnection.cpp Connection.cpp FdManager.cpp IPAddress.cpp \
Listener.cpp Packet.cpp ThreadManager.cpp
+libnet_la_LDFLAGS = $(BOOST_LDFLAGS)
+libnet_la_LIBADD = $(BOOST_THREAD_LIB)
noinst_HEADERS = ClientConnection.h Exception.h ServerConnection.h Connection.h FdManager.h IPAddress.h Listener.h \
Packet.h ThreadManager.h
@@ -315,7 +280,7 @@ clean-noinstLTLIBRARIES:
rm -f "$${dir}/so_locations"; \
done
libnet.la: $(libnet_la_OBJECTS) $(libnet_la_DEPENDENCIES)
- $(CXXLINK) $(libnet_la_OBJECTS) $(libnet_la_LIBADD) $(LIBS)
+ $(libnet_la_LINK) $(libnet_la_OBJECTS) $(libnet_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
diff --git a/src/Net/ServerConnection.cpp b/src/Net/ServerConnection.cpp
index aa8042e..c415cb3 100644
--- a/src/Net/ServerConnection.cpp
+++ b/src/Net/ServerConnection.cpp
@@ -21,6 +21,8 @@
#include "FdManager.h"
#include "IPAddress.h"
+#include <boost/thread/locks.hpp>
+
#include <cstring>
#include <cerrno>
#include <sys/socket.h>
@@ -61,7 +63,7 @@ void ServerConnection::connectionHeaderReceiveHandler(const void *data, unsigned
ServerConnection::ServerConnection(int sock0, const IPAddress &address, gnutls_dh_params_t dh_params, const std::string &x905CertFile, const std::string &x905KeyFile)
: daemon(false) {
- gl_rwlock_wrlock(stateLock);
+ boost::unique_lock<boost::shared_mutex> lock(stateLock);
sock = sock0;
@@ -79,7 +81,7 @@ ServerConnection::ServerConnection(int sock0, const IPAddress &address, gnutls_d
state = CONNECT;
- gl_rwlock_unlock(stateLock);
+ lock.unlock();
updateEvents();
}
diff --git a/src/Net/ThreadManager.cpp b/src/Net/ThreadManager.cpp
index 3495196..b1f4d4b 100644
--- a/src/Net/ThreadManager.cpp
+++ b/src/Net/ThreadManager.cpp
@@ -20,12 +20,13 @@
#include "ThreadManager.h"
#include "FdManager.h"
+#include <Common/Logger.h>
+#include <Common/LogManager.h>
+
#include <fcntl.h>
#include <sigc++/bind.h>
#include <sigc++/hide.h>
-#include <ignore-value.h>
-
namespace Mad {
namespace Net {
@@ -34,35 +35,31 @@ ThreadManager ThreadManager::threadManager;
void ThreadManager::workerFunc() {
while(true) {
- gl_lock_lock(runLock);
+ boost::unique_lock<boost::mutex> lock(runLock);
- if(!running || !isThisWorkerThread()) {
- gl_lock_unlock(runLock);
- return;
- }
+ if(!running || !isThisWorkerThread())
+ break;
- gl_lock_unlock(runLock);
+ lock.unlock();
- gl_lock_lock(workLock);
+ boost::unique_lock<boost::mutex> lock2(workLock);
while(work.empty()) {
- gl_cond_wait(workCond, workLock);
+ workCond.wait(lock2);
- if(!running) {
- gl_lock_unlock(workLock);
+ if(!running)
return;
- }
}
sigc::slot<void> nextWork = work.front();
work.pop();
- gl_lock_unlock(workLock);
+ lock2.unlock();
nextWork();
}
// And let the new worker thread join us...
- pushWork(sigc::bind(sigc::mem_fun(this, &ThreadManager::threadFinished), (gl_thread_t)gl_thread_self()));
+ // TODO pushWork(sigc::bind(sigc::mem_fun(this, &ThreadManager::threadFinished), (gl_thread_t)gl_thread_self()));
}
void ThreadManager::detach() {
@@ -71,49 +68,43 @@ void ThreadManager::detach() {
return;
}
- gl_lock_lock(runLock);
+ runLock.lock();
bool isRunning = running;
- gl_lock_unlock(runLock);
+ runLock.unlock();
if(!isRunning) // There's no point in creating a new worker thread when we aren't running anymore
return;
- gl_lock_lock(threadLock);
+ threadLock.lock();
+
+ if(workerThread->get_id() == boost::this_thread::get_id()) {// Already detached?
+ threads.add_thread(workerThread);
- if(workerThread == (gl_thread_t)gl_thread_self()) {// Already detached?
- threads.insert(workerThread);
- workerThread = gl_thread_create(&ThreadManager::workerStart, 0);
+ workerThread = new boost::thread(std::mem_fun(&ThreadManager::workerFunc), this);
}
- gl_lock_unlock(threadLock);
+ threadLock.unlock();
}
void ThreadManager::pushWork(const sigc::slot<void> &newWork) {
- gl_lock_lock(workLock);
-
+ workLock.lock();
work.push(newWork);
+ workLock.unlock();
- gl_cond_signal(workCond);
- gl_lock_unlock(workLock);
+ workCond.notify_one();
}
void ThreadManager::doInit() {
- gl_lock_init(threadLock);
- gl_lock_init(runLock);
-
- gl_lock_init(workLock);
- gl_cond_init(workCond);
-
running = true;
- gl_lock_lock(threadLock);
+ threadLock.lock();
- mainThread = (gl_thread_t)gl_thread_self();
- workerThread = gl_thread_create(&ThreadManager::workerStart, 0);
- loggerThread = gl_thread_create(&ThreadManager::loggerStart, 0);
- ioThread = gl_thread_create(&ThreadManager::ioStart, 0);
+ mainThreadId = boost::this_thread::get_id();
+ workerThread = new boost::thread(std::mem_fun(&ThreadManager::workerFunc), this);
+ loggerThread = new boost::thread(std::mem_fun(&Common::LogManager::loggerThread), Common::LogManager::get());
+ ioThread = new boost::thread(std::mem_fun(&FdManager::ioThread), FdManager::get());
- gl_lock_unlock(threadLock);
+ threadLock.unlock();
}
void ThreadManager::doDeinit() {
@@ -123,44 +114,30 @@ void ThreadManager::doDeinit() {
}
// First set running = false so the worker threads quit
- gl_lock_lock(runLock);
- gl_lock_lock(workLock);
-
+ boost::lock(runLock, workLock);
running = false;
- gl_cond_signal(workCond);
- gl_lock_unlock(workLock);
- gl_lock_unlock(runLock);
+ workLock.unlock();
+ runLock.unlock();
+
+ workCond.notify_one();
// We don't have to lock threadLock as detach() won't change workerThread when running is false
- gl_thread_join(workerThread, 0);
+ workerThread->join();
+ delete workerThread;
// Now wait for all detached threads
- gl_lock_lock(threadLock);
- while(!threads.empty()) {
- gl_thread_t thread = *threads.begin();
- gl_lock_unlock(threadLock);
-
- gl_thread_join(thread, 0);
-
- gl_lock_lock(threadLock);
- threads.erase(thread);
- }
- gl_lock_unlock(threadLock);
+ threads.join_all();
// IO thread is next
FdManager::get()->stopIOThread();
- gl_thread_join(ioThread, 0);
+ ioThread->join();
+ delete ioThread;
// Finally, the logger thread has to die
Common::LogManager::get()->stopLoggerThread();
- gl_thread_join(loggerThread, 0);
-
- gl_cond_destroy(workCond);
- gl_lock_destroy(workLock);
-
- gl_lock_destroy(runLock);
- gl_lock_destroy(threadLock);
+ loggerThread->join();
+ delete loggerThread;
}
}
diff --git a/src/Net/ThreadManager.h b/src/Net/ThreadManager.h
index 327ba67..9394329 100644
--- a/src/Net/ThreadManager.h
+++ b/src/Net/ThreadManager.h
@@ -22,63 +22,47 @@
#include <config.h>
-#include "FdManager.h"
-
#include <Common/Initializable.h>
-#include <Common/LogManager.h>
#include <queue>
#include <set>
#include <sigc++/slot.h>
-#include "glthread/thread.h"
-#include "glthread/lock.h"
-#include "glthread/cond.h"
+#include <boost/thread/thread.hpp>
+#include <boost/thread/condition_variable.hpp>
+#include <boost/thread/locks.hpp>
namespace Mad {
namespace Net {
class ThreadManager : public Common::Initializable {
private:
- gl_thread_t mainThread, workerThread, loggerThread, ioThread;
- std::set<gl_thread_t> threads;
+ boost::thread::id mainThreadId;
+ boost::thread *workerThread, *loggerThread, *ioThread;
+ boost::thread_group threads;
- gl_lock_t threadLock;
+ boost::mutex threadLock;
- gl_lock_t runLock;
+ boost::mutex runLock;
bool running;
- gl_lock_t workLock;
- gl_cond_t workCond;
+ boost::mutex workLock;
+ boost::condition_variable workCond;
std::queue<sigc::slot<void> > work;
static ThreadManager threadManager;
ThreadManager() {}
- static void* workerStart(void*) {
- threadManager.workerFunc();
- return 0;
- }
-
- static void* loggerStart(void*) {
- Common::LogManager::get()->loggerThread();
- return 0;
- }
-
- static void* ioStart(void*) {
- FdManager::get()->ioThread();
- return 0;
- }
-
void workerFunc();
- void threadFinished(gl_thread_t thread) {
- gl_lock_lock(threadLock);
- threads.erase(thread);
- gl_lock_unlock(threadLock);
+ void threadFinished(boost::thread *thread) {
+ threadLock.lock();
+ threads.remove_thread(thread);
+ threadLock.unlock();
- gl_thread_join(thread, 0);
+ thread->join();
+ delete thread;
}
protected:
@@ -87,14 +71,12 @@ class ThreadManager : public Common::Initializable {
public:
bool isThisMainThread() {
- return (mainThread == (gl_thread_t)gl_thread_self());
+ return (mainThreadId == boost::this_thread::get_id());
}
bool isThisWorkerThread() {
- gl_lock_lock(threadLock);
- bool ret = (workerThread == (gl_thread_t)gl_thread_self());
- gl_lock_unlock(threadLock);
- return ret;
+ boost::lock_guard<boost::mutex> lock(threadLock);
+ return (workerThread->get_id() == boost::this_thread::get_id());
}
void detach();
diff --git a/src/Server/Makefile.in b/src/Server/Makefile.in
index 6e94f54..66a02a0 100644
--- a/src/Server/Makefile.in
+++ b/src/Server/Makefile.in
@@ -37,22 +37,14 @@ subdir = src/Server
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
- $(top_srcdir)/m4/argz.m4 $(top_srcdir)/m4/ax_lib_mysql.m4 \
- $(top_srcdir)/m4/base64.m4 $(top_srcdir)/m4/cond.m4 \
- $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/extensions.m4 \
- $(top_srcdir)/m4/gettimeofday.m4 \
- $(top_srcdir)/m4/gnulib-common.m4 \
- $(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
+ $(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_thread.m4 \
+ $(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/sys_time_h.m4 \
- $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
- $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -99,6 +91,9 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -117,25 +112,13 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
-EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
-EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
-ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
-ENOLINK_VALUE = @ENOLINK_VALUE@
-EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
-EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
-ERRNO_H = @ERRNO_H@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GSSAPI_LIBS = @GSSAPI_LIBS@
GnuTLS_CFLAGS = @GnuTLS_CFLAGS@
GnuTLS_LIBS = @GnuTLS_LIBS@
-HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
-HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
-HAVE__BOOL = @HAVE__BOOL@
INCLTDL = @INCLTDL@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -148,22 +131,15 @@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@
LIBADD_DLOPEN = @LIBADD_DLOPEN@
LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@
LIBLTDL = @LIBLTDL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTDLDEPS = @LTDLDEPS@
LTDLINCL = @LTDLINCL@
LTDLOPEN = @LTDLOPEN@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
LT_CONFIG_H = @LT_CONFIG_H@
LT_DLLOADERS = @LT_DLLOADERS@
LT_DLPREOPEN = @LT_DLPREOPEN@
@@ -174,9 +150,6 @@ MYSQL_CFLAGS = @MYSQL_CFLAGS@
MYSQL_CONFIG = @MYSQL_CONFIG@
MYSQL_LDFLAGS = @MYSQL_LDFLAGS@
MYSQL_VERSION = @MYSQL_VERSION@
-NEXT_ERRNO_H = @NEXT_ERRNO_H@
-NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
-NEXT_TIME_H = @NEXT_TIME_H@
NM = @NM@
NMEDIT = @NMEDIT@
OBJEXT = @OBJEXT@
@@ -190,22 +163,12 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
RANLIB = @RANLIB@
READLINE_LIBS = @READLINE_LIBS@
-REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
-REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
-REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
-REPLACE_STRPTIME = @REPLACE_STRPTIME@
-REPLACE_TIMEGM = @REPLACE_TIMEGM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-STDBOOL_H = @STDBOOL_H@
STRIP = @STRIP@
-SYS_TIME_H = @SYS_TIME_H@
-SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
-TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -231,10 +194,6 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
have_df = @have_df@
host = @host@
host_alias = @host_alias@
diff --git a/src/Server/RequestHandlers/Makefile.in b/src/Server/RequestHandlers/Makefile.in
index 7f1bfa3..4d0d9ce 100644
--- a/src/Server/RequestHandlers/Makefile.in
+++ b/src/Server/RequestHandlers/Makefile.in
@@ -37,22 +37,14 @@ subdir = src/Server/RequestHandlers
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
- $(top_srcdir)/m4/argz.m4 $(top_srcdir)/m4/ax_lib_mysql.m4 \
- $(top_srcdir)/m4/base64.m4 $(top_srcdir)/m4/cond.m4 \
- $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/extensions.m4 \
- $(top_srcdir)/m4/gettimeofday.m4 \
- $(top_srcdir)/m4/gnulib-common.m4 \
- $(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
+ $(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_thread.m4 \
+ $(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/sys_time_h.m4 \
- $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
- $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -92,6 +84,9 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -110,25 +105,13 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
-EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
-EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
-ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
-ENOLINK_VALUE = @ENOLINK_VALUE@
-EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
-EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
-ERRNO_H = @ERRNO_H@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GSSAPI_LIBS = @GSSAPI_LIBS@
GnuTLS_CFLAGS = @GnuTLS_CFLAGS@
GnuTLS_LIBS = @GnuTLS_LIBS@
-HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
-HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
-HAVE__BOOL = @HAVE__BOOL@
INCLTDL = @INCLTDL@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -141,22 +124,15 @@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@
LIBADD_DLOPEN = @LIBADD_DLOPEN@
LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@
LIBLTDL = @LIBLTDL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTDLDEPS = @LTDLDEPS@
LTDLINCL = @LTDLINCL@
LTDLOPEN = @LTDLOPEN@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
LT_CONFIG_H = @LT_CONFIG_H@
LT_DLLOADERS = @LT_DLLOADERS@
LT_DLPREOPEN = @LT_DLPREOPEN@
@@ -167,9 +143,6 @@ MYSQL_CFLAGS = @MYSQL_CFLAGS@
MYSQL_CONFIG = @MYSQL_CONFIG@
MYSQL_LDFLAGS = @MYSQL_LDFLAGS@
MYSQL_VERSION = @MYSQL_VERSION@
-NEXT_ERRNO_H = @NEXT_ERRNO_H@
-NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
-NEXT_TIME_H = @NEXT_TIME_H@
NM = @NM@
NMEDIT = @NMEDIT@
OBJEXT = @OBJEXT@
@@ -183,22 +156,12 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
RANLIB = @RANLIB@
READLINE_LIBS = @READLINE_LIBS@
-REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
-REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
-REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
-REPLACE_STRPTIME = @REPLACE_STRPTIME@
-REPLACE_TIMEGM = @REPLACE_TIMEGM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-STDBOOL_H = @STDBOOL_H@
STRIP = @STRIP@
-SYS_TIME_H = @SYS_TIME_H@
-SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
-TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -224,10 +187,6 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
have_df = @have_df@
host = @host@
host_alias = @host_alias@
diff --git a/src/Server/Requests/Makefile.in b/src/Server/Requests/Makefile.in
index 4780982..428400d 100644
--- a/src/Server/Requests/Makefile.in
+++ b/src/Server/Requests/Makefile.in
@@ -37,22 +37,14 @@ subdir = src/Server/Requests
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
- $(top_srcdir)/m4/argz.m4 $(top_srcdir)/m4/ax_lib_mysql.m4 \
- $(top_srcdir)/m4/base64.m4 $(top_srcdir)/m4/cond.m4 \
- $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/extensions.m4 \
- $(top_srcdir)/m4/gettimeofday.m4 \
- $(top_srcdir)/m4/gnulib-common.m4 \
- $(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
+ $(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_thread.m4 \
+ $(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/sys_time_h.m4 \
- $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
- $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -89,6 +81,9 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -107,25 +102,13 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
-EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
-EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
-ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
-ENOLINK_VALUE = @ENOLINK_VALUE@
-EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
-EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
-ERRNO_H = @ERRNO_H@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GSSAPI_LIBS = @GSSAPI_LIBS@
GnuTLS_CFLAGS = @GnuTLS_CFLAGS@
GnuTLS_LIBS = @GnuTLS_LIBS@
-HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
-HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
-HAVE__BOOL = @HAVE__BOOL@
INCLTDL = @INCLTDL@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -138,22 +121,15 @@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@
LIBADD_DLOPEN = @LIBADD_DLOPEN@
LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@
LIBLTDL = @LIBLTDL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTDLDEPS = @LTDLDEPS@
LTDLINCL = @LTDLINCL@
LTDLOPEN = @LTDLOPEN@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
LT_CONFIG_H = @LT_CONFIG_H@
LT_DLLOADERS = @LT_DLLOADERS@
LT_DLPREOPEN = @LT_DLPREOPEN@
@@ -164,9 +140,6 @@ MYSQL_CFLAGS = @MYSQL_CFLAGS@
MYSQL_CONFIG = @MYSQL_CONFIG@
MYSQL_LDFLAGS = @MYSQL_LDFLAGS@
MYSQL_VERSION = @MYSQL_VERSION@
-NEXT_ERRNO_H = @NEXT_ERRNO_H@
-NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
-NEXT_TIME_H = @NEXT_TIME_H@
NM = @NM@
NMEDIT = @NMEDIT@
OBJEXT = @OBJEXT@
@@ -180,22 +153,12 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
RANLIB = @RANLIB@
READLINE_LIBS = @READLINE_LIBS@
-REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
-REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
-REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
-REPLACE_STRPTIME = @REPLACE_STRPTIME@
-REPLACE_TIMEGM = @REPLACE_TIMEGM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-STDBOOL_H = @STDBOOL_H@
STRIP = @STRIP@
-SYS_TIME_H = @SYS_TIME_H@
-SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
-TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -221,10 +184,6 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
have_df = @have_df@
host = @host@
host_alias = @host_alias@
diff --git a/src/madc.cpp b/src/madc.cpp
index e6fc3f0..04f55b2 100644
--- a/src/madc.cpp
+++ b/src/madc.cpp
@@ -22,6 +22,7 @@
#include "Net/ThreadManager.h"
#include "Common/ClientConnection.h"
#include "Common/ConfigManager.h"
+#include "Common/Logger.h"
#include "Common/RequestManager.h"
#include "Client/CommandParser.h"
#include "Client/InformationManager.h"
diff --git a/src/modules/Makefile.in b/src/modules/Makefile.in
index be26080..077c7bb 100644
--- a/src/modules/Makefile.in
+++ b/src/modules/Makefile.in
@@ -40,22 +40,14 @@ subdir = src/modules
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
- $(top_srcdir)/m4/argz.m4 $(top_srcdir)/m4/ax_lib_mysql.m4 \
- $(top_srcdir)/m4/base64.m4 $(top_srcdir)/m4/cond.m4 \
- $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/extensions.m4 \
- $(top_srcdir)/m4/gettimeofday.m4 \
- $(top_srcdir)/m4/gnulib-common.m4 \
- $(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
+ $(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_thread.m4 \
+ $(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/sys_time_h.m4 \
- $(top_srcdir)/m4/thread.m4 $(top_srcdir)/m4/threadlib.m4 \
- $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -129,6 +121,9 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -147,25 +142,13 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
-EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
-EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
-ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
-ENOLINK_VALUE = @ENOLINK_VALUE@
-EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
-EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
-ERRNO_H = @ERRNO_H@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GSSAPI_LIBS = @GSSAPI_LIBS@
GnuTLS_CFLAGS = @GnuTLS_CFLAGS@
GnuTLS_LIBS = @GnuTLS_LIBS@
-HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
-HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
-HAVE__BOOL = @HAVE__BOOL@
INCLTDL = @INCLTDL@
-INCLUDE_NEXT = @INCLUDE_NEXT@
-INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -178,22 +161,15 @@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@
LIBADD_DLOPEN = @LIBADD_DLOPEN@
LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@
LIBLTDL = @LIBLTDL@
-LIBMULTITHREAD = @LIBMULTITHREAD@
LIBOBJS = @LIBOBJS@
-LIBPTH = @LIBPTH@
-LIBPTH_PREFIX = @LIBPTH_PREFIX@
LIBS = @LIBS@
-LIBTHREAD = @LIBTHREAD@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTDLDEPS = @LTDLDEPS@
LTDLINCL = @LTDLINCL@
LTDLOPEN = @LTDLOPEN@
-LTLIBMULTITHREAD = @LTLIBMULTITHREAD@
LTLIBOBJS = @LTLIBOBJS@
-LTLIBPTH = @LTLIBPTH@
-LTLIBTHREAD = @LTLIBTHREAD@
LT_CONFIG_H = @LT_CONFIG_H@
LT_DLLOADERS = @LT_DLLOADERS@
LT_DLPREOPEN = @LT_DLPREOPEN@
@@ -204,9 +180,6 @@ MYSQL_CFLAGS = @MYSQL_CFLAGS@
MYSQL_CONFIG = @MYSQL_CONFIG@
MYSQL_LDFLAGS = @MYSQL_LDFLAGS@
MYSQL_VERSION = @MYSQL_VERSION@
-NEXT_ERRNO_H = @NEXT_ERRNO_H@
-NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
-NEXT_TIME_H = @NEXT_TIME_H@
NM = @NM@
NMEDIT = @NMEDIT@
OBJEXT = @OBJEXT@
@@ -220,22 +193,12 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
-PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
RANLIB = @RANLIB@
READLINE_LIBS = @READLINE_LIBS@
-REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
-REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
-REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
-REPLACE_STRPTIME = @REPLACE_STRPTIME@
-REPLACE_TIMEGM = @REPLACE_TIMEGM@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
-STDBOOL_H = @STDBOOL_H@
STRIP = @STRIP@
-SYS_TIME_H = @SYS_TIME_H@
-SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
-TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -261,10 +224,6 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
have_df = @have_df@
host = @host@
host_alias = @host_alias@