summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Alexander <wired@gentoo.org>2014-04-18 07:25:45 +0000
committerAlex Alexander <wired@gentoo.org>2014-04-18 07:25:45 +0000
commit13f0b7ef045fab8f63fc03928735ca890431e0a0 (patch)
tree46b659c7c7f6d749dfc0e3102c7c91843d0cd5d4 /net-irc
parentAdd ruby21. (diff)
downloadhistorical-13f0b7ef045fab8f63fc03928735ca890431e0a0.tar.gz
historical-13f0b7ef045fab8f63fc03928735ca890431e0a0.tar.bz2
historical-13f0b7ef045fab8f63fc03928735ca890431e0a0.zip
security fix: webadmin/add channel: correctly handle channel names. bug #507794
Package-Manager: portage-2.2.10/cvs/Linux x86_64 Manifest-Sign-Key: 0xEB9B4AFA
Diffstat (limited to 'net-irc')
-rw-r--r--net-irc/znc/ChangeLog11
-rw-r--r--net-irc/znc/Manifest30
-rw-r--r--net-irc/znc/files/znc-1.2-webadmin-correctly-handle-channel-names.patch73
-rw-r--r--net-irc/znc/znc-1.2-r1.ebuild165
4 files changed, 263 insertions, 16 deletions
diff --git a/net-irc/znc/ChangeLog b/net-irc/znc/ChangeLog
index 7c281cbef6d7..8fbf1d7fc330 100644
--- a/net-irc/znc/ChangeLog
+++ b/net-irc/znc/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for net-irc/znc
-# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-irc/znc/ChangeLog,v 1.69 2013/11/14 11:35:35 wired Exp $
+# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/net-irc/znc/ChangeLog,v 1.70 2014/04/18 07:25:40 wired Exp $
+
+*znc-1.2-r1 (18 Apr 2014)
+
+ 18 Apr 2014; Alex Alexander <wired@gentoo.org> +znc-1.2-r1.ebuild,
+ +files/znc-1.2-webadmin-correctly-handle-channel-names.patch:
+ security fix: webadmin/add channel: correctly handle channel names. bug
+ #507794
*znc-1.2 (14 Nov 2013)
diff --git a/net-irc/znc/Manifest b/net-irc/znc/Manifest
index ff659819458e..359563fe1135 100644
--- a/net-irc/znc/Manifest
+++ b/net-irc/znc/Manifest
@@ -3,30 +3,32 @@ Hash: SHA256
AUX znc-1.0-systemwideconfig.patch 4252 SHA256 1ddd5e95b299ef3c2293ce89829bae290a5c8fdc8e260ff09ae7f22264b8fbc9 SHA512 4527317f8b45c77e329167cedd792eb7886b85eeb9cb0b39f7bb117edff9bdde406d3fc4aa81410a3b1f9f7957e8ac312cdd168469fdaefd234ddbbae279341e WHIRLPOOL 3556fef6a5a840657ed50e5e283d913ab441c73b3becdfd5e05661dd312cf9670677407734ec5ba8d4254a1e22a6d3274563ab8ff81b04b16fadc9c16029e933
AUX znc-1.0-webadmin-null-pointer-dereference-fix.patch 1620 SHA256 2684bed1046b5a1d46f7f8aaa5deb75d051ce7b79b9d8089502fc6726036252c SHA512 60a7b960781c5fd0a06f0da3ef69fce821cf001c75a6c646cf87c16a22493a73adfef2e5bdf9bc350481b34a650dc1e9264502db90dec75394e58e41ca480d8f WHIRLPOOL 7ed241a4575adbebc3d83b5b6e2ad4418eb2a1cccd35b4abfb8821d4f7370203a126bdab6c8023ea2a6eb3b3bf2f5335007f07ab724940558dfe43f3f779b8ed
+AUX znc-1.2-webadmin-correctly-handle-channel-names.patch 2702 SHA256 81fd252774f76ca792f560c350e80e2809130bb674da2c611ff682f532e8aaf9 SHA512 020925a94b2bbe0bab4eb54ad28c7ccd163545d6092a52c3e47311ac895b0cfe6de4dd3fffd6d54640d5f6df1f5fecaf9371355b3d80875f8ad017c93cffd17c WHIRLPOOL b4d19ed5a26f5f77db2053c10b0245101e2805eec7b53bd15846aa3a36a05f72f9da76d404c6df29ae9cc605e4dda438474d1f068ddfff41b258e289824ed402
AUX znc.confd 123 SHA256 be3155e79e6ed13be88fbf9d99f6889b3ee8425837120c448c827b8302672063 SHA512 352f18d64cbfbd5970c859f2ae2290c0ddafcbd8f1bb5d74f33976bc8388f65a75f8a9a73a093fbac12f2d243d4bcf74380bbb3aaab8d68f7bf4eab7ce3bea46 WHIRLPOOL 24e8272f1d94ff39cb748c9c280761437e2f6527ffa26e4972d83c99cde62e2f70d0c99639f4a8aabb4464fd85ee4856eb8086d3196e12286e3989d8e19c544b
AUX znc.initd 910 SHA256 9df9e738efca0e6ace045bdb6a1419082408119ba92c032566c6d4a61b1844b5 SHA512 0d1b9bf71cde1b803e9deddc64006528778dc628603bb4ba8cca17098dcb6b8fc34dcb43eca7de7dec61ce84832dd07d76c7ccb2d9175f859d5aee2a349e8045 WHIRLPOOL 0640b8c30c7ff64b772998c86f06fcaae06759a5af7e0384a5ffbd1a1c4c85923c9d87362720a2ae6fb5a164d1a298d12e4493617a1e66813f3dfee0b40d04ce
DIST znc-1.0.tar.gz 1222361 SHA256 a85539da42697b26e4d46205def36bb799f83d6aeef401d53c49ee674142062a SHA512 4219cdd32296e5851f6cd99a8ac6e14d2579df10e8e111bb09d6c3789e400e2fcdc173968afd54808d286f0fb4945aa57d2d0f3b62a20e761de64500c8938e35 WHIRLPOOL 864c45762f8508c8d724246153345554b660336789a5340e9633b83aed249c901f976d2aa6207a82ce8e7836d680fc30fca03cafbc8942932745c6f1584e99cc
DIST znc-1.2.tar.gz 1235150 SHA256 d9a2cd2a484ff23e6fc9cbde8dd8a43efbcd8d288afca7b1268914ca0d18701d SHA512 dff24e56127e5599d64b4c62de967d5d48d8ebf23ca8597d33bf0b3622640512db7a462bfa7c2031cd8307f402bab8efa345f6d1fc813e78eb0dcae581de3cf7 WHIRLPOOL b0810eb66e63be762f74f04eb2289e3634b18d6ecbd36d55f6a6772697e0397637d59b9ea01eaf62ef1cbe5f6e65b06432a254f4ada35194aa06b65c4a2f7994
EBUILD znc-1.0-r1.ebuild 4005 SHA256 ac5a45427e1abadb896d54364a263bb7fab26b936b0b9215e123b1b0a91ddc39 SHA512 52b8c3e0dc73e7fc5b592443b43a279ca65f906dc49a4d3dc8c368465cfb16610c8c3d01f0806b7afe27d25561375379549d59a052adc13592fb1ea197219e47 WHIRLPOOL d876c45bdd8bab52f8cd6120fd7552cafcd9d711ad3bebef11ada750f43c0601ef913bb0def531d22aab491d751b067489e60b18a03d73f98a57a68218f3c7c2
EBUILD znc-1.0-r2.ebuild 4069 SHA256 16b45848820b3015557ca71659ef9a3a4d7eeb05c8341c0add0c66e1def7dda1 SHA512 bc2553ec94e31c061fb2cf79b8ba1a1883ba617a9c3270bf77c5cb4e9677c386d3aa69bacb312626817bd0240473c2937e22ced2ebc464dc803b8cf09247bd7c WHIRLPOOL 134fce69e6bd20d25b225f978a7d754bad45bc39b6c59b14e58764f0dfc1f86de803a24d5567da7083169f0a41cc78b6ce03bf7a0449ab0c373bbd3966a41e8d
+EBUILD znc-1.2-r1.ebuild 4291 SHA256 ae1f23916a922f0c34fa5024020fe0269bdb7fc5c7d27b78cad48d1724bb066d SHA512 a4973c21f88e7423eee2c963f2d988d90ee1895ad034b359de5f1d2cf2291b1192cf4d55ddd377104c0e09a2233cf297eee1ceec2c87701c66aaf22e078ea7c1 WHIRLPOOL 347444b5712e6e1bf62a62876bec35393a0521930b11686f43a2522674a4c60e7861b559ac71e7578ac793b975f875b7107d3c2df9b16bff97e92266399622ec
EBUILD znc-1.2.ebuild 4222 SHA256 5253afc49362d9388ca6763aa910aca0875b94e63b382356b4bdcfa554138e7e SHA512 b9be656963356d9b881d57183fbcf84533f5eef81302f7f0043a7c0e522d9f97ea33a687e862bec84f478d7d2135173111dd89a7d93d45bbacfd4f75de5bc107 WHIRLPOOL 5fd08de9ebaf2fb1a05d594d155b7a5eef05a1aa33ca9df3a6aad4257a9d7df65bd29ec61389fa79b53075463811494004f0102ff03c5bfa30a0f9eb24336cab
EBUILD znc-9999.ebuild 4223 SHA256 99bb226b0cbd24bfb41334acc50e42e7fac086c82f9867b7d1fc66c9148ea31f SHA512 1eb70d8a34093d4c16b2fe81d044d60555e0673785b2913d1f5fda874d395df4d2ac4ab206126802c0d778b05e3f323362a6f7347045acdcac30dd2b104a9501 WHIRLPOOL 3f802236a112e6ec986277e7ad1f9db6f75e00294043d394e9ea06259d4dd171bf3f2f98d7c0ef3a4c9ec025354742dd68cb8d3cf9ecd0b2afd6d0d15c65f3b4
-MISC ChangeLog 10104 SHA256 5132e36543f01ed88171cbbc37b7a6a7aeab7d523775e56804000e76332a2af2 SHA512 481d94387781c1859fda4e3fb36775a069ad0083229940b554d16934640ae56a6726c887367344bb26b3ed63bff45273efe4c561c737680fc3129a17ac8c959d WHIRLPOOL a31d25eee70e038c28688f24f0acff200ac2a917323781226c61bc79b0e9d03525bf674456c24fa39ff110bea9895e8d729cb8ae2c2a95b911629bb4bace0ee2
+MISC ChangeLog 10349 SHA256 2a9dc5c14ede85398ebcd0ea12fb8f993658f53357be21eb075de865ace2e3b2 SHA512 c337ae11cd738b2ae567d84c98639d21b20c9da3e8eaaca77e25340a5d4281673d4c81b7f416dbf19f16e93ad78fb9b12005693b426f319e3e00a02328078268 WHIRLPOOL a1563df9812ab55a32538acd0fc1accd4d34131bc23475787a1f2b8b47e12099d4e0fe9b55d282916ab0ce5020a6f9ca92f92d4c9e1f5fcd1a2c50b618fc965e
MISC metadata.xml 387 SHA256 864beefb6d435cf17de251ce82df948cb7af8181bd1ddbdf0d18106f0cb042ed SHA512 37de68d3d350980d0ced5ee9f46e6a6422a4341ca8aeba05fd6eb539081935c26feafabdb103e44470b5da76ef73fd08018662b9d85579b00395292a5bf77054 WHIRLPOOL c2ca27a67d989fc4b0b6f346409a5bd756400be9c4c3616ea548e4caff577c060508e3edc546c9b341d513ba9afa42e3dcec0bd4b40c416177c09e75fa8a3491
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
-iQIcBAEBCAAGBQJShLXzAAoJEDZF8K7rm0r62Q8P/A0Slx/meYlB+dxHly46is71
-o3REBkxh0r4tM2MK4ldW4bza/LADkSiyMD/nRncNBkTQM0Y8opoVx1dKOWKhj/bw
-H/+ze7pDGrpRSBAgB87S6ckUidnb9OSeDZUB7k65oDijbmVuQiV1o9gkSib+FZ5y
-pV5Er7n8ZbKyz/z4PmHaX8nFeclC2JrQwfG1QkXEWX6F1j9ND695cKJvCTxsGChI
-InLRsYSLO/PCjjVKFPuwi1ciB+61Z1yUFccuJsj4NUVLP6WrDJ9mvxRw1EWD+kDy
-BqO+mmqBigaAZkjSepsovGTeQIhP7irQmXft4K9w0rSZE0TPqy362WOoxpfEO4A+
-HMzrPnORoXgXD/mPDDfxYmcEobwapj0qCGdZiOho3nZ20C5C4nwA0J4VB5shvMwU
-fOqE67VSGq4r0QQM+eSXNsfd9xvpb1SXfAEXAtFvHUBpVgGw6CeCkrQE7IX9mxH0
-760jYRaPh/K05iGCV7Nok9nkStcO+rXvcOHo147iMIZxuYjsds1sm+RZWgmuj6k0
-3DP+jhGQ98mFbn4YbkVU6PYq//bVKBjeXfRULWx2lPUabKGBvYPG86hJ79ZyYTwf
-X1PK6fiecIlEgrYs8qttu+P/JC1FUHVyXfUsPwbyhSZSNtEiobLuWsOmTIZaEuQU
-9PewBRngZjBAM5wv7SKQ
-=asOE
+iQIcBAEBCAAGBQJTUNN5AAoJEDZF8K7rm0r6IgQP/2M0l3FoZP7PoVh+xkemgL3L
+zysOSE1iAli4a3aDHTjQ+OFxfdW2rR2C+i71FlXRklWJXohaE8pnL1IuzLkrTFjp
+wLIpwAZNKepTl22VEB9dt8HmuP6LOiJreC2hkYs01qGV1t8Cf0wxbnDAvQtj+R2a
+pTCkv+92MJvzbzbhrL1P6kXy5JYIccV37O2gShUAeHV9ddGf79ue2XB610eWZ2Xv
+b9pP24t9/EbjfuFsMMyDbawPss/ph8jhwYFgwByoAd58Yrax2jAM3vHzM+UY6aAT
+I5Kl10g4dUzLBpug5B6knbaSF/YkzYfZQmVc7Idn47zRmf3/clyPerg28zTHLDMg
+JhkvKlCDAhrFWwt2kJ/nuAiCZMV4gMCoG3JrbsoXivkFG50Tm29QjkBmDAhdg8Vn
+a4/hoRB4mHvStfsU4Jo26B+NWDG359DlnH+lHsl17QFTh05sxtt+cq1DdHA4i6uo
+b4wZqE/nkzP0+FnHGbYKM+dLT/0i4MEbV/A+wRraPZi9cIgGS6dX6oldTtrQfGtk
+V3A7npJCMHXoiBnOzcGOcfybSD+NJ6qCq0BZnJDtyF6+6MKdH2YKP3aAsim1tvek
+Cf8Sog1k6EeWNw12iaTqW/u9va+IuxjYasSixPsfeSCMGKOYLqZv1ZvLDEnPHyfx
+mnhtP7AB7v8ipyCQeSPd
+=ZwVY
-----END PGP SIGNATURE-----
diff --git a/net-irc/znc/files/znc-1.2-webadmin-correctly-handle-channel-names.patch b/net-irc/znc/files/znc-1.2-webadmin-correctly-handle-channel-names.patch
new file mode 100644
index 000000000000..93705f77ecb3
--- /dev/null
+++ b/net-irc/znc/files/znc-1.2-webadmin-correctly-handle-channel-names.patch
@@ -0,0 +1,73 @@
+https://bugs.gentoo.org/show_bug.cgi?id=507794
+
+From 5e6e3be32acfeadeaf1fb3bb17bada08aec6432f Mon Sep 17 00:00:00 2001
+From: Uli Schlachter <psychon@znc.in>
+Date: Sun, 13 Apr 2014 20:36:55 +0200
+Subject: [PATCH] webadmin/add channel: Correctly handle channel names
+
+The CChan constructor makes sure that the channel name begins with a valid
+channel prefix. Thus, this could change the name of the resulting channel.
+
+When you edited an irc network which already had a channel "#foo", were
+connected to IRC (so ZNC knows which prefixes are valid) and added a channel
+"foo", this would lead to a problem:
+
+Webadmin checks and sees that there is no channel "foo" yet. Webadmin creates a
+new CChan instance for "foo". The CChan constructor notices that "f" is not a
+valid channel prefix and instead calls itself "#foo". Then,
+CIRCNetwork::AddChan() would see that this channel already exists, delete the
+given channel and return false.
+
+However, webadmin didn't check this result and would continue changing settings
+on an already destroyed CChan instance.
+
+Fix this by checking if the channel exists after CChan had its chance to mess
+with the channel name. Also handle failures from CIRCNetwork::AddChan().
+
+Fixes #528.
+
+Signed-off-by: Uli Schlachter <psychon@znc.in>
+---
+ modules/webadmin.cpp | 16 +++++++++++-----
+ 1 file changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/modules/webadmin.cpp b/modules/webadmin.cpp
+index 40a28d3..90ddfd2 100644
+--- a/modules/webadmin.cpp
++++ b/modules/webadmin.cpp
+@@ -668,13 +668,19 @@ class CWebAdminMod : public CModule {
+ return true;
+ }
+
+- if (pNetwork->FindChan(sChanName.Token(0))) {
+- WebSock.PrintErrorPage("Channel [" + sChanName.Token(0) + "] already exists");
++ // This could change the channel name and e.g. add a "#" prefix
++ pChan = new CChan(sChanName, pNetwork, true);
++
++ if (pNetwork->FindChan(pChan->GetName())) {
++ WebSock.PrintErrorPage("Channel [" + pChan->GetName() + "] already exists");
++ delete pChan;
+ return true;
+ }
+
+- pChan = new CChan(sChanName, pNetwork, true);
+- pNetwork->AddChan(pChan);
++ if (!pNetwork->AddChan(pChan)) {
++ WebSock.PrintErrorPage("Could not add channel [" + pChan->GetName() + "]");
++ return true;
++ }
+ }
+
+ pChan->SetBufferCount(WebSock.GetParam("buffercount").ToUInt(), spSession->IsAdmin());
+@@ -700,7 +706,7 @@ class CWebAdminMod : public CModule {
+
+ CTemplate TmplMod;
+ TmplMod["User"] = pUser->GetUserName();
+- TmplMod["ChanName"] = sChanName;
++ TmplMod["ChanName"] = pChan->GetName();
+ TmplMod["WebadminAction"] = "change";
+ FOR_EACH_MODULE(it, pNetwork) {
+ (*it)->OnEmbeddedWebRequest(WebSock, "webadmin/channel", TmplMod);
+--
+1.9.1
+
diff --git a/net-irc/znc/znc-1.2-r1.ebuild b/net-irc/znc/znc-1.2-r1.ebuild
new file mode 100644
index 000000000000..9b65bd7e3f35
--- /dev/null
+++ b/net-irc/znc/znc-1.2-r1.ebuild
@@ -0,0 +1,165 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-irc/znc/znc-1.2-r1.ebuild,v 1.1 2014/04/18 07:25:40 wired Exp $
+
+EAPI=5
+
+PYTHON_COMPAT=( python{3_2,3_3} )
+inherit base python-single-r1 user
+
+MY_PV=${PV/_/-}
+DESCRIPTION="An advanced IRC Bouncer"
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-2
+ EGIT_REPO_URI=${EGIT_REPO_URI:-"git://github.com/znc/znc.git"}
+ SRC_URI=""
+ KEYWORDS=""
+else
+ SRC_URI="http://znc.in/releases/${PN}-${MY_PV}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+HOMEPAGE="http://znc.in"
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="daemon debug ipv6 perl python ssl sasl tcl"
+
+RDEPEND="
+ perl? ( >=dev-lang/perl-5.10 )
+ sasl? ( >=dev-libs/cyrus-sasl-2 )
+ ssl? ( >=dev-libs/openssl-0.9.7d )
+ tcl? ( dev-lang/tcl )
+"
+DEPEND="
+ virtual/pkgconfig
+ perl? ( dev-lang/swig )
+ python? (
+ >=dev-lang/swig-2.0.8
+ >=dev-lang/perl-5.10
+ )
+ ${RDEPEND}
+"
+
+S=${WORKDIR}/${PN}-${MY_PV}
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.0-systemwideconfig.patch"
+ "${FILESDIR}/${P}-webadmin-correctly-handle-channel-names.patch"
+)
+
+CONFDIR="/var/lib/znc"
+
+pkg_setup() {
+ if use python; then
+ python-single-r1_pkg_setup
+ fi
+ if use daemon; then
+ enewgroup ${PN}
+ enewuser ${PN} -1 -1 /dev/null ${PN}
+ fi
+}
+
+src_prepare() {
+ if [[ ${PV} == *9999* ]]; then
+ ./autogen.sh
+ fi
+
+ base_src_prepare
+}
+
+src_configure() {
+ econf \
+ $(use_enable debug) \
+ $(use_enable ipv6) \
+ $(use_enable perl) \
+ $(use python && echo "--enable-python=python3") \
+ $(use_enable sasl cyrus) \
+ $(use_enable ssl openssl) \
+ $(use_enable tcl tcl)
+}
+
+src_install() {
+ emake install DESTDIR="${D}"
+ dodoc NOTICE README.md
+ if use daemon; then
+ newinitd "${FILESDIR}"/znc.initd znc
+ newconfd "${FILESDIR}"/znc.confd znc
+ fi
+}
+
+pkg_postinst() {
+ if use !daemon; then
+ elog
+ elog "Run 'znc --makeconf' as the user you want to run ZNC as"
+ elog "to make a configuration file"
+ elog "If you are using SSL you should also run 'znc --makepem'"
+ elog
+ else
+ elog
+ elog "An init-script was installed in /etc/init.d"
+ elog "A config file was installed in /etc/conf.d"
+ if [[ ! -d "${EROOT}${CONFDIR}" ]]; then
+ elog
+ elog "Run 'emerge --config znc' to configure ZNC"
+ elog "as a system-wide daemon."
+ elog
+ elog "If you are using SSL you should also run:"
+ elog " znc --system-wide-config-as znc --makepem -d ${CONFDIR}"
+ elog "as root"
+ elog
+ elog "If migrating from a user-based install"
+ elog "you can use your existing config files:"
+ elog " mkdir ${CONFDIR}"
+ elog " mv /home/\$USER/.znc/* ${CONFDIR}"
+ elog " rm -rf /home/\$USER/.znc"
+ elog " chown -R znc:znc ${CONFDIR}"
+ elog
+ elog "If you already have znc set up and want take advantage of the"
+ elog "init script but skip of all the above, you can also edit"
+ elog " /etc/conf.d/znc"
+ elog "and adjust the variables to your current znc user and config"
+ elog "location."
+ if [[ -d "${EROOT}"/etc/znc ]]; then
+ elog
+ ewarn "/etc/znc exists on your system."
+ ewarn "Due to the nature of the contents of that folder,"
+ ewarn "we have changed the default configuration to use"
+ ewarn " /var/lib/znc"
+ ewarn "please move /etc/znc to /var/lib/znc"
+ ewarn "or adjust /etc/conf.d/znc"
+ fi
+ else
+ elog "Existing config detected in ${CONFDIR}"
+ elog "You're good to go :)"
+ fi
+ elog
+ fi
+}
+
+pkg_config() {
+ if use daemon && ! [[ -d "${EROOT}${CONFDIR}" ]]; then
+ einfo "Press ENTER to interactively create a new configuration file for znc."
+ einfo "To abort, press Control-C"
+ read
+ mkdir -p "${EROOT}${CONFDIR}" || die
+ chown -R ${PN}:${PN} "${EROOT}${CONFDIR}" ||
+ die "Setting permissions failed"
+ "${EROOT}"/usr/bin/znc --system-wide-config-as znc -c -r -d "${EROOT}${CONFDIR}" ||
+ die "Config failed"
+ echo
+ einfo "To start znc, run '/etc/init.d/znc start'"
+ einfo "or add znc to a runlevel:"
+ einfo " rc-update add znc default"
+ else
+ if use daemon; then
+ ewarn "${CONFDIR} already exists, aborting to avoid damaging"
+ ewarn "any existing configuration. If you are sure you want"
+ ewarn "to generate a new configuration, remove the folder"
+ ewarn "and try again."
+ else
+ ewarn "To configure znc as a system-wide daemon you have to"
+ ewarn "enable the 'daemon' use flag."
+ fi
+ fi
+}