diff options
author | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2017-10-03 06:05:55 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2017-10-03 06:05:55 +0300 |
commit | f5bc822e9ebb51b55b1c70412e311caf75549144 (patch) | |
tree | 5ebddc9044059b3989edede0a29b1c5dee5b746c /media-sound/murmur | |
parent | 442e1848beb74698381355d65fb01de8b97ea694 (diff) |
murmur: force clients to use at least 1.3.0 version
Diffstat (limited to 'media-sound/murmur')
-rw-r--r-- | media-sound/murmur/files/strict_version.patch | 38 | ||||
-rw-r--r-- | media-sound/murmur/murmur-scm.ebuild | 18 |
2 files changed, 48 insertions, 8 deletions
diff --git a/media-sound/murmur/files/strict_version.patch b/media-sound/murmur/files/strict_version.patch new file mode 100644 index 0000000..544e9fd --- /dev/null +++ b/media-sound/murmur/files/strict_version.patch @@ -0,0 +1,38 @@ +diff --git a/src/murmur/Messages.cpp b/src/murmur/Messages.cpp +index f8472fa3..97d4de2a 100644 +--- a/src/murmur/Messages.cpp ++++ b/src/murmur/Messages.cpp +@@ -1492,8 +1492,14 @@ void Server::msgContextAction(ServerUser *uSource, MumbleProto::ContextAction &m + } + + void Server::msgVersion(ServerUser *uSource, MumbleProto::Version &msg) { ++ bool ok = true; + if (msg.has_version()) + uSource->uiVersion=msg.version(); ++ else ++ ok = false; ++ if(ok) ++ if(msg.version() < 0x010300) ++ ok = false; + if (msg.has_release()) + uSource->qsRelease = u8(msg.release()); + if (msg.has_os()) { +@@ -1501,6 +1507,18 @@ void Server::msgVersion(ServerUser *uSource, MumbleProto::Version &msg) { + if (msg.has_os_version()) + uSource->qsOSVersion = u8(msg.os_version()); + } ++ if (! ok) { ++ QString reason = "worng version"; ++ log(uSource, QString("Rejected connection from %1: %2") ++ .arg(addressToString(uSource->peerAddress(), uSource->peerPort()), reason)); ++ MumbleProto::Reject mpr; ++ mpr.set_reason(u8(reason)); ++ mpr.set_type(MumbleProto::Reject::RejectType::Reject_RejectType_WrongVersion); ++ sendMessage(uSource, mpr); ++ uSource->disconnectSocket(); ++ return; ++ } ++ + + log(uSource, QString("Client version %1 (%2: %3)").arg(MumbleVersion::toString(uSource->uiVersion)).arg(uSource->qsOS).arg(uSource->qsRelease)); + } diff --git a/media-sound/murmur/murmur-scm.ebuild b/media-sound/murmur/murmur-scm.ebuild index 9365d1e..789d08f 100644 --- a/media-sound/murmur/murmur-scm.ebuild +++ b/media-sound/murmur/murmur-scm.ebuild @@ -2,10 +2,10 @@ # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/media-sound/murmur/murmur-1.2.8.ebuild,v 1.1 2014/10/30 21:34:30 tgurr Exp $ -EAPI="5" +EAPI="6" -inherit eutils systemd user readme.gentoo git-r3 qmake-utils +inherit eutils systemd user readme.gentoo-r1 git-r3 qmake-utils DESCRIPTION="Mumble is an open source, low-latency, high quality voice chat software" @@ -35,10 +35,13 @@ DEPEND="${RDEPEND} virtual/pkgconfig" -#PATCHES=( -# "${FILESDIR}"/${PN}-1.2.4-ice-3.5.0-compat.patch -# "${FILESDIR}"/${PN}-1.2.4-ice-3.5.1-compat.patch -#) +PATCHES=( + "${FILESDIR}/strict_version.patch" + "${FILESDIR}/acl_edit_log.patch" + "${FILESDIR}/force_tls12.patch" + + +) DOC_CONTENTS=" Useful scripts are located in /usr/share/doc/${PF}/scripts.\n @@ -56,8 +59,7 @@ pkg_setup() { } src_prepare() { - epatch "${FILESDIR}/acl_edit_log.patch" - epatch "${FILESDIR}/force_tls12.patch" + default sed \ -e 's:mumble-server:murmur:g' \ |