bindlexer.l \
bindparser.cc \
cachecleaner.hh \
+ circular_buffer.hh \
comment.hh \
common_startup.cc common_startup.hh \
communicator.cc communicator.hh \
bindlexer.l \
bindparser.yy \
cachecleaner.hh \
+ circular_buffer.hh \
dbdnsseckeeper.cc \
dnsbackend.cc \
dns.cc \
--- /dev/null
+/*
+ * This file is part of PowerDNS or dnsdist.
+ * Copyright -- PowerDNS.COM B.V. and its contributors
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * In addition, for the avoidance of any doubt, permission is granted to
+ * link this program with OpenSSL and to (re)distribute the binaries
+ * produced as the result of such linking.
+ *
+ * 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, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+#pragma once
+
+#ifndef BOOST_CB_ENABLE_DEBUG
+#define BOOST_CB_ENABLE_DEBUG 0
+#endif
+
+#if BOOST_CB_ENABLE_DEBUG
+// https://github.com/boostorg/circular_buffer/pull/9
+// https://svn.boost.org/trac10/ticket/6277
+#error Building with BOOST_CB_ENABLE_DEBUG prevents accessing a boost::circular_buffer from two threads at once
+#endif /* BOOST_CB_ENABLE_DEBUG */
+
+#include <boost/circular_buffer.hpp>
#include <time.h>
#include <unordered_map>
-#include <boost/circular_buffer.hpp>
#include <boost/variant.hpp>
+#include "circular_buffer.hh"
#include "dnsname.hh"
#include "iputils.hh"
#include <unistd.h>
#include <unordered_map>
-#include <boost/circular_buffer.hpp>
#include <boost/variant.hpp>
#include "bpf-filter.hh"
#include "capabilities.hh"
+#include "circular_buffer.hh"
#include "dnscrypt.hh"
#include "dnsdist-cache.hh"
#include "dnsdist-dynbpf.hh"
bpf-filter.cc bpf-filter.hh \
cachecleaner.hh \
capabilities.cc capabilities.hh \
+ circular_buffer.hh \
dns.cc dns.hh \
dnscrypt.cc dnscrypt.hh \
dnsdist.cc dnsdist.hh \
test-iputils_hh.cc \
test-mplexer.cc \
cachecleaner.hh \
+ circular_buffer.hh \
dnsdist.hh \
dnsdist-cache.cc dnsdist-cache.hh \
dnsdist-ecs.cc dnsdist-ecs.hh \
+ dnsdist-rings.hh \
dnsdist-xpf.cc dnsdist-xpf.hh \
dnscrypt.cc dnscrypt.hh \
dnslabeltext.cc \
--- /dev/null
+../circular_buffer.hh
\ No newline at end of file
#include <fstream>
#include "config.h"
+#include "circular_buffer.hh"
#include "dolog.hh"
#include "iputils.hh"
#include "lock.hh"
#include <openssl/rand.h>
#include <openssl/ssl.h>
-#include <boost/circular_buffer.hpp>
-
#include "libssl.hh"
/* From rfc5077 Section 4. Recommended Ticket Construction */
base64.cc base64.hh \
cachecleaner.hh \
capabilities.cc capabilities.hh \
+ circular_buffer.hh \
comment.hh \
dns.hh dns.cc \
dns_random.hh dns_random.cc \
arguments.cc \
base32.cc \
base64.cc base64.hh \
+ circular_buffer.hh \
dns.cc dns.hh \
dns_random.cc dns_random.hh \
dnslabeltext.cc \
--- /dev/null
+../circular_buffer.hh
\ No newline at end of file
#include <thread>
#include "iputils.hh"
-#include <boost/circular_buffer.hpp>
+#include "circular_buffer.hh"
/* Writes can be submitted and they are atomically accepted. Either the whole write
ends up in the buffer or nothing ends up in the buffer.
#include "lock.hh"
#include "namespaces.hh"
#include "iputils.hh"
-#include <boost/circular_buffer.hpp>
+#include "circular_buffer.hh"
#include "misc.hh"
#include "lwres.hh"
#include <boost/optional.hpp>
-#include <boost/circular_buffer.hpp>
#include <boost/utility.hpp>
+#include "circular_buffer.hh"
#include "sstuff.hh"
#include "recursor_cache.hh"
#include "recpacketcache.hh"
#endif
#include <boost/tokenizer.hpp>
-#include <boost/circular_buffer.hpp>
#include "namespaces.hh"
#include "ws-api.hh"
#include "json.hh"