+++ /dev/null
-diff --git a/lib/logsource.c b/lib/logsource.c
-index 3f38b66e8b..83c61a8e93 100644
---- a/lib/logsource.c
-+++ b/lib/logsource.c
-@@ -633,7 +633,20 @@ log_source_queue(LogPipe *s, LogMessage *msg, const LogPathOptions *path_options
- evt_tag_printf("msg", "%p", msg));
-
- msg_set_context(NULL);
-+}
-+
-+static void
-+_initialize_window(LogSource *self, gint init_window_size)
-+{
-+ self->window_initialized = TRUE;
-+ window_size_counter_set(&self->window_size, init_window_size);
-+ self->full_window_size = init_window_size;
-+}
-
-+static gboolean
-+_is_window_initialized(LogSource *self)
-+{
-+ return self->window_initialized;
- }
-
- void
-@@ -645,11 +658,9 @@ log_source_set_options(LogSource *self, LogSourceOptions *options,
- * configuration and we received a SIGHUP. This means that opened
- * connections will not have their window_size changed. */
-
-- if ((gint)window_size_counter_get(&self->window_size, NULL) == -1)
-- {
-- window_size_counter_set(&self->window_size, options->init_window_size);
-- self->full_window_size = options->init_window_size;
-- }
-+ if (!_is_window_initialized(self))
-+ _initialize_window(self, options->init_window_size);
-+
- self->options = options;
- if (self->stats_id)
- g_free(self->stats_id);
-@@ -679,7 +690,7 @@ log_source_init_instance(LogSource *self, GlobalConfig *cfg)
- self->super.free_fn = log_source_free;
- self->super.init = log_source_init;
- self->super.deinit = log_source_deinit;
-- window_size_counter_set(&self->window_size, (gsize)-1);
-+ self->window_initialized = FALSE;
- self->ack_tracker = NULL;
- }
-
-@@ -696,7 +707,9 @@ log_source_free(LogPipe *s)
-
- ack_tracker_free(self->ack_tracker);
- self->ack_tracker = NULL;
-- _release_dynamic_window(self);
-+
-+ if (G_UNLIKELY(dynamic_window_is_enabled(&self->dynamic_window)))
-+ _release_dynamic_window(self);
- }
-
- void
-diff --git a/lib/logsource.h b/lib/logsource.h
-index 370842efc2..75d4926046 100644
---- a/lib/logsource.h
-+++ b/lib/logsource.h
-@@ -71,6 +71,7 @@ struct _LogSource
- gchar *stats_instance;
- WindowSizeCounter window_size;
- DynamicWindow dynamic_window;
-+ gboolean window_initialized;
- /* full_window_size = static + dynamic */
- gsize full_window_size;
- atomic_gssize window_size_to_be_reclaimed;
+++ /dev/null
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 python3_{5,6,7} )
-inherit autotools python-single-r1 systemd
-
-MY_PV_MM=$(ver_cut 1-2)
-DESCRIPTION="syslog replacement with advanced filtering features"
-HOMEPAGE="https://syslog-ng.com/open-source-log-management"
-SRC_URI="https://github.com/balabit/syslog-ng/releases/download/${P}/${P}.tar.gz"
-
-LICENSE="GPL-2+ LGPL-2.1+"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86"
-IUSE="amqp caps dbi geoip geoip2 http ipv6 json kafka libressl mongodb pacct python redis smtp snmp spoof-source systemd tcpd"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-# unit tests require https://github.com/Snaipe/Criterion with additional deps
-RESTRICT="test"
-
-RDEPEND="
- >=dev-libs/glib-2.10.1:2
- >=dev-libs/ivykis-0.42.4
- >=dev-libs/libpcre-6.1:=
- !dev-libs/eventlog
- amqp? ( >=net-libs/rabbitmq-c-0.8.0:=[ssl] )
- caps? ( sys-libs/libcap )
- dbi? ( >=dev-db/libdbi-0.9.0 )
- geoip? ( >=dev-libs/geoip-1.5.0 )
- geoip2? ( dev-libs/libmaxminddb:= )
- http? ( net-misc/curl )
- json? ( >=dev-libs/json-c-0.9:= )
- kafka? ( >=dev-libs/librdkafka-1.0.0:= )
- mongodb? ( >=dev-libs/mongo-c-driver-1.2.0 )
- python? ( ${PYTHON_DEPS} )
- redis? ( >=dev-libs/hiredis-0.11.0:= )
- smtp? ( net-libs/libesmtp )
- snmp? ( net-analyzer/net-snmp )
- spoof-source? ( net-libs/libnet:1.1= )
- systemd? ( sys-apps/systemd:= )
- tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl:0= )"
-DEPEND="${RDEPEND}"
-BDEPEND="
- sys-devel/flex
- virtual/pkgconfig"
-
-DOCS=( AUTHORS NEWS.md CONTRIBUTING.md contrib/syslog-ng.conf.{HP-UX,RedHat,SunOS,doc}
- contrib/syslog2ng "${T}/syslog-ng.conf.gentoo.hardened"
- "${T}/syslog-ng.logrotate.hardened" "${FILESDIR}/README.hardened" )
-
-# bug #695176
-PATCHES=( "${FILESDIR}/patches/${PN}-3.23.1-fix-sigabrt.patch" )
-
-pkg_setup() {
- use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- local f
-
- use python && python_fix_shebang .
-
- # remove bundled libs
- rm -r lib/ivykis || die
-
- # drop scl modules requiring json
- if use !json; then
- sed -i -r '/cim|elasticsearch|ewmm|graylog2|loggly|logmatic|netskope|nodejs|osquery|slack/d' scl/Makefile.am || die
- fi
-
- # drop scl modules requiring http
- if use !http; then
- sed -i -r '/slack|telegram/d' scl/Makefile.am || die
- fi
-
- # use gentoo default path
- if use systemd; then
- sed -e 's@/etc/syslog-ng.conf@/etc/syslog-ng/syslog-ng.conf@g;s@/var/run@/run@g' \
- -i contrib/systemd/syslog-ng@default || die
- fi
-
- for f in syslog-ng.logrotate.hardened.in syslog-ng.logrotate.in; do
- sed \
- -e "s#@GENTOO_RESTART@#$(usex systemd "systemctl kill -s HUP syslog-ng@default" \
- "/etc/init.d/syslog-ng reload")#g" \
- "${FILESDIR}/${f}" > "${T}/${f/.in/}" || die
- done
-
- for f in syslog-ng.conf.gentoo.hardened.in \
- syslog-ng.conf.gentoo.in; do
- sed -e "s/@SYSLOGNG_VERSION@/${MY_PV_MM}/g" "${FILESDIR}/${f}" > "${T}/${f/.in/}" || die
- done
-
- default
- eautoreconf
-}
-
-src_configure() {
- local myconf=(
- --disable-docs
- --disable-java
- --disable-java-modules
- --disable-riemann
- --enable-manpages
- --localstatedir=/var/lib/syslog-ng
- --sysconfdir=/etc/syslog-ng
- --with-embedded-crypto
- --with-ivykis=system
- --with-module-dir=/usr/$(get_libdir)/syslog-ng
- --with-pidfile-dir=/var/run
- --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
- $(use_enable amqp)
- $(usex amqp --with-librabbitmq-client=system --without-librabbitmq-client)
- $(use_enable caps linux-caps)
- $(use_enable dbi sql)
- $(use_enable geoip)
- $(use_enable geoip2)
- $(use_enable http)
- $(use_enable ipv6)
- $(use_enable json)
- $(use_enable kafka)
- $(use_enable mongodb)
- $(usex mongodb --with-mongoc=system "--without-mongoc --disable-legacy-mongodb-options")
- $(use_enable pacct)
- $(use_enable python)
- $(use_enable redis)
- $(use_enable smtp)
- $(use_enable snmp snmp-dest)
- $(use_enable spoof-source)
- $(use_enable systemd)
- $(use_enable tcpd tcp-wrapper)
- )
-
- econf "${myconf[@]}"
-}
-
-src_install() {
- default
-
- # Install default configuration
- insinto /etc/default
- doins contrib/systemd/syslog-ng@default
-
- insinto /etc/syslog-ng
- newins "${T}/syslog-ng.conf.gentoo" syslog-ng.conf
-
- insinto /etc/logrotate.d
- newins "${T}/syslog-ng.logrotate" syslog-ng
-
- newinitd "${FILESDIR}/syslog-ng.rc" syslog-ng
- newconfd "${FILESDIR}/syslog-ng.confd" syslog-ng
- keepdir /etc/syslog-ng/patterndb.d /var/lib/syslog-ng
- find "${D}" -name '*.la' -delete || die
-
- use python && python_optimize
-}
-
-pkg_postinst() {
- # bug #355257
- if ! has_version app-admin/logrotate ; then
- elog "It is highly recommended that app-admin/logrotate be emerged to"
- elog "manage the log files. ${PN} installs a file in /etc/logrotate.d"
- elog "for logrotate to use."
- fi
-
- if use systemd; then
- ewarn "The service file for systemd has changed to support multiple instances."
- ewarn "To start the default instance issue:"
- ewarn "# systemctl start syslog-ng@default"
- fi
-}