diff options
Diffstat (limited to 'src')
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@ |