summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media-sound/murmur/files/strict_version.patch38
-rw-r--r--media-sound/murmur/murmur-scm.ebuild18
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' \