diff options
author | Christian Faulhammer <opfer@gentoo.org> | 2008-03-22 10:54:50 +0000 |
---|---|---|
committer | Christian Faulhammer <opfer@gentoo.org> | 2008-03-22 10:54:50 +0000 |
commit | 3e21ef8ed15aa47dc3e8728101df3e20bf98e066 (patch) | |
tree | ad40d3d89fe99498dfe56f441c2d0b79dd38599f /net-misc/siproxd | |
parent | Add longdescription to metadata. (diff) | |
download | gentoo-2-3e21ef8ed15aa47dc3e8728101df3e20bf98e066.tar.gz gentoo-2-3e21ef8ed15aa47dc3e8728101df3e20bf98e066.tar.bz2 gentoo-2-3e21ef8ed15aa47dc3e8728101df3e20bf98e066.zip |
version bump, taken from voip overlay. Fixes bugs 205766 and 205765, both reported by Georgi Georgiev <chutz AT gg3 DOT net>
(Portage version: 2.1.4.4)
Diffstat (limited to 'net-misc/siproxd')
-rw-r--r-- | net-misc/siproxd/ChangeLog | 12 | ||||
-rw-r--r-- | net-misc/siproxd/files/siproxd-0.7.0-guide.diff | 11 | ||||
-rw-r--r-- | net-misc/siproxd/files/siproxd-0.7.0-libosip-3.1.0.diff | 213 | ||||
-rw-r--r-- | net-misc/siproxd/siproxd-0.7.0.ebuild | 57 |
4 files changed, 291 insertions, 2 deletions
diff --git a/net-misc/siproxd/ChangeLog b/net-misc/siproxd/ChangeLog index 4427d3bbcb09..35b39f48d39f 100644 --- a/net-misc/siproxd/ChangeLog +++ b/net-misc/siproxd/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for net-misc/siproxd -# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/siproxd/ChangeLog,v 1.8 2007/11/02 04:07:04 beandog Exp $ +# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/siproxd/ChangeLog,v 1.9 2008/03/22 10:54:49 opfer Exp $ + +*siproxd-0.7.0 (22 Mar 2008) + + 22 Mar 2008; Christian Faulhammer <opfer@gentoo.org> + +files/siproxd-0.7.0-guide.diff, +files/siproxd-0.7.0-libosip-3.1.0.diff, + +siproxd-0.7.0.ebuild: + version bump, taken from voip overlay. Fixes bugs 205766 and 205765, both + reported by Georgi Georgiev <chutz AT gg3 DOT net> 02 Nov 2007; Steve Dibb <beandog@gentoo.org> siproxd-0.5.13.ebuild: amd64 stable, bug 197384 diff --git a/net-misc/siproxd/files/siproxd-0.7.0-guide.diff b/net-misc/siproxd/files/siproxd-0.7.0-guide.diff new file mode 100644 index 000000000000..9e1af6361ecf --- /dev/null +++ b/net-misc/siproxd/files/siproxd-0.7.0-guide.diff @@ -0,0 +1,11 @@ +diff -ur a/doc/siproxd_guide.sgml b/doc/siproxd_guide.sgml +--- a/doc/siproxd_guide.sgml 2007-05-23 22:51:54.000000000 +0200 ++++ b/doc/siproxd_guide.sgml 2008-01-22 16:30:42.000000000 +0100 +@@ -74,6 +74,7 @@ + "helping technologies" WILL DO CONFLICT with siproxd and result + in a mess.</para> + </sect1> ++ </chapter> + + <!-- Chapter 1: Overview --> + <chapter label="1" id="Overview"> diff --git a/net-misc/siproxd/files/siproxd-0.7.0-libosip-3.1.0.diff b/net-misc/siproxd/files/siproxd-0.7.0-libosip-3.1.0.diff new file mode 100644 index 000000000000..f486c865de6f --- /dev/null +++ b/net-misc/siproxd/files/siproxd-0.7.0-libosip-3.1.0.diff @@ -0,0 +1,213 @@ +diff -ur a/src/auth.c b/src/auth.c +--- a/src/auth.c 2008-01-19 17:07:14.000000000 +0100 ++++ b/src/auth.c 2008-02-24 22:01:53.346694612 +0100 +@@ -367,25 +367,25 @@ + OUT HASHHEX SessionKey + ) + { +- MD5_CTX Md5Ctx; ++ osip_MD5_CTX Md5Ctx; + HASH HA1; + +- MD5Init(&Md5Ctx); +- if (pszUserName) MD5Update(&Md5Ctx, pszUserName, strlen(pszUserName)); +- MD5Update(&Md5Ctx, ":", 1); +- if (pszRealm) MD5Update(&Md5Ctx, pszRealm, strlen(pszRealm)); +- MD5Update(&Md5Ctx, ":", 1); +- if (pszPassword) MD5Update(&Md5Ctx, pszPassword, strlen(pszPassword)); +- MD5Final(HA1, &Md5Ctx); ++ osip_MD5Init(&Md5Ctx); ++ if (pszUserName) osip_MD5Update(&Md5Ctx, pszUserName, strlen(pszUserName)); ++ osip_MD5Update(&Md5Ctx, ":", 1); ++ if (pszRealm) osip_MD5Update(&Md5Ctx, pszRealm, strlen(pszRealm)); ++ osip_MD5Update(&Md5Ctx, ":", 1); ++ if (pszPassword) osip_MD5Update(&Md5Ctx, pszPassword, strlen(pszPassword)); ++ osip_MD5Final(HA1, &Md5Ctx); + + if ((pszAlg!=NULL) && (osip_strcasecmp(pszAlg, "md5-sess") == 0)) { +- MD5Init(&Md5Ctx); +- MD5Update(&Md5Ctx, HA1, HASHLEN); +- MD5Update(&Md5Ctx, ":", 1); +- if (pszNonce) MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce)); +- MD5Update(&Md5Ctx, ":", 1); +- if (pszCNonce) MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce)); +- MD5Final(HA1, &Md5Ctx); ++ osip_MD5Init(&Md5Ctx); ++ osip_MD5Update(&Md5Ctx, HA1, HASHLEN); ++ osip_MD5Update(&Md5Ctx, ":", 1); ++ if (pszNonce) osip_MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce)); ++ osip_MD5Update(&Md5Ctx, ":", 1); ++ if (pszCNonce) osip_MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce)); ++ osip_MD5Final(HA1, &Md5Ctx); + }; + CvtHex(HA1, SessionKey); + } +@@ -403,57 +403,57 @@ + OUT HASHHEX Response /* request-digest or response-digest */ + ) + { +- MD5_CTX Md5Ctx; ++ osip_MD5_CTX Md5Ctx; + HASH HA2; + HASH RespHash; + HASHHEX HA2Hex; + + /* calculate H(A2) */ +- MD5Init(&Md5Ctx); +- if (pszMethod) MD5Update(&Md5Ctx, pszMethod, strlen(pszMethod)); +- MD5Update(&Md5Ctx, ":", 1); +- if (pszDigestUri)MD5Update(&Md5Ctx, pszDigestUri, strlen(pszDigestUri)); ++ osip_MD5Init(&Md5Ctx); ++ if (pszMethod) osip_MD5Update(&Md5Ctx, pszMethod, strlen(pszMethod)); ++ osip_MD5Update(&Md5Ctx, ":", 1); ++ if (pszDigestUri)osip_MD5Update(&Md5Ctx, pszDigestUri, strlen(pszDigestUri)); + + if (pszQop!=NULL) { + goto auth_withqop; + }; + + /* auth_withoutqop: */ +- MD5Final(HA2, &Md5Ctx); ++ osip_MD5Final(HA2, &Md5Ctx); + CvtHex(HA2, HA2Hex); + + /* calculate response */ +- MD5Init(&Md5Ctx); +- MD5Update(&Md5Ctx, HA1, HASHHEXLEN); +- MD5Update(&Md5Ctx, ":", 1); +- if (pszNonce) MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce)); +- MD5Update(&Md5Ctx, ":", 1); ++ osip_MD5Init(&Md5Ctx); ++ osip_MD5Update(&Md5Ctx, HA1, HASHHEXLEN); ++ osip_MD5Update(&Md5Ctx, ":", 1); ++ if (pszNonce) osip_MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce)); ++ osip_MD5Update(&Md5Ctx, ":", 1); + + goto end; + + auth_withqop: + +- MD5Update(&Md5Ctx, ":", 1); +- MD5Update(&Md5Ctx, HEntity, HASHHEXLEN); +- MD5Final(HA2, &Md5Ctx); ++ osip_MD5Update(&Md5Ctx, ":", 1); ++ osip_MD5Update(&Md5Ctx, HEntity, HASHHEXLEN); ++ osip_MD5Final(HA2, &Md5Ctx); + CvtHex(HA2, HA2Hex); + + /* calculate response */ +- MD5Init(&Md5Ctx); +- MD5Update(&Md5Ctx, HA1, HASHHEXLEN); +- MD5Update(&Md5Ctx, ":", 1); +- if (pszNonce) MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce)); +- MD5Update(&Md5Ctx, ":", 1); +- if (pszNonceCount)MD5Update(&Md5Ctx, pszNonceCount, strlen(pszNonceCount)); +- MD5Update(&Md5Ctx, ":", 1); +- if (pszCNonce) MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce)); +- MD5Update(&Md5Ctx, ":", 1); +- if (pszQop) MD5Update(&Md5Ctx, pszQop, strlen(pszQop)); +- MD5Update(&Md5Ctx, ":", 1); ++ osip_MD5Init(&Md5Ctx); ++ osip_MD5Update(&Md5Ctx, HA1, HASHHEXLEN); ++ osip_MD5Update(&Md5Ctx, ":", 1); ++ if (pszNonce) osip_MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce)); ++ osip_MD5Update(&Md5Ctx, ":", 1); ++ if (pszNonceCount)osip_MD5Update(&Md5Ctx, pszNonceCount, strlen(pszNonceCount)); ++ osip_MD5Update(&Md5Ctx, ":", 1); ++ if (pszCNonce) osip_MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce)); ++ osip_MD5Update(&Md5Ctx, ":", 1); ++ if (pszQop) osip_MD5Update(&Md5Ctx, pszQop, strlen(pszQop)); ++ osip_MD5Update(&Md5Ctx, ":", 1); + + end: +- MD5Update(&Md5Ctx, HA2Hex, HASHHEXLEN); +- MD5Final(RespHash, &Md5Ctx); ++ osip_MD5Update(&Md5Ctx, HA2Hex, HASHHEXLEN); ++ osip_MD5Final(RespHash, &Md5Ctx); + CvtHex(RespHash, Response); + } + +diff -ur a/src/sip_utils.c b/src/sip_utils.c +--- a/src/sip_utils.c 2008-01-19 17:07:14.000000000 +0100 ++++ b/src/sip_utils.c 2008-02-24 22:01:53.346694612 +0100 +@@ -773,13 +773,13 @@ + if (strncmp(param->gvalue, magic_cookie, + strlen(magic_cookie))==0) { + /* calculate MD5 hash */ +- MD5_CTX Md5Ctx; ++ osip_MD5_CTX Md5Ctx; + HASH HA1; + +- MD5Init(&Md5Ctx); +- MD5Update(&Md5Ctx, param->gvalue, ++ osip_MD5Init(&Md5Ctx); ++ osip_MD5Update(&Md5Ctx, param->gvalue, + strlen(param->gvalue)); +- MD5Final(HA1, &Md5Ctx); ++ osip_MD5Final(HA1, &Md5Ctx); + CvtHex(HA1, hashstring); + + DEBUGC(DBCLASS_BABBLE, "existing branch -> branch hash [%s]", +@@ -799,53 +799,53 @@ + */ + if (hashstring[0] == '\0') { + /* calculate MD5 hash */ +- MD5_CTX Md5Ctx; ++ osip_MD5_CTX Md5Ctx; + HASH HA1; + char *tmp; + +- MD5Init(&Md5Ctx); ++ osip_MD5Init(&Md5Ctx); + + /* topmost via */ + osip_via_to_str(via, &tmp); + if (tmp) { +- MD5Update(&Md5Ctx, tmp, strlen(tmp)); ++ osip_MD5Update(&Md5Ctx, tmp, strlen(tmp)); + osip_free(tmp); + } + + /* Tag in To header */ + osip_to_get_tag(sip_msg->to, ¶m); + if (param && param->gvalue) { +- MD5Update(&Md5Ctx, param->gvalue, strlen(param->gvalue)); ++ osip_MD5Update(&Md5Ctx, param->gvalue, strlen(param->gvalue)); + } + + /* Tag in From header */ + osip_from_get_tag(sip_msg->from, ¶m); + if (param && param->gvalue) { +- MD5Update(&Md5Ctx, param->gvalue, strlen(param->gvalue)); ++ osip_MD5Update(&Md5Ctx, param->gvalue, strlen(param->gvalue)); + } + + /* Call-ID */ + call_id = osip_message_get_call_id(sip_msg); + osip_call_id_to_str(call_id, &tmp); + if (tmp) { +- MD5Update(&Md5Ctx, tmp, strlen(tmp)); ++ osip_MD5Update(&Md5Ctx, tmp, strlen(tmp)); + osip_free(tmp); + } + + /* CSeq number (but not method) */ + tmp = osip_cseq_get_number(sip_msg->cseq); + if (tmp) { +- MD5Update(&Md5Ctx, tmp, strlen(tmp)); ++ osip_MD5Update(&Md5Ctx, tmp, strlen(tmp)); + } + + /* Request URI */ + osip_uri_to_str(sip_msg->req_uri, &tmp); + if (tmp) { +- MD5Update(&Md5Ctx, tmp, strlen(tmp)); ++ osip_MD5Update(&Md5Ctx, tmp, strlen(tmp)); + osip_free(tmp); + } + +- MD5Final(HA1, &Md5Ctx); ++ osip_MD5Final(HA1, &Md5Ctx); + CvtHex(HA1, hashstring); + + DEBUGC(DBCLASS_BABBLE, "non-existing branch -> branch hash [%s]", diff --git a/net-misc/siproxd/siproxd-0.7.0.ebuild b/net-misc/siproxd/siproxd-0.7.0.ebuild new file mode 100644 index 000000000000..f553ef78d2c3 --- /dev/null +++ b/net-misc/siproxd/siproxd-0.7.0.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/siproxd/siproxd-0.7.0.ebuild,v 1.1 2008/03/22 10:54:49 opfer Exp $ + +inherit eutils autotools + +DESCRIPTION="masquerading SIP proxy" +HOMEPAGE="http://siproxd.sourceforge.net/" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="static doc" + +DEPEND=">=net-libs/libosip-3.1 + doc? ( app-text/docbook-sgml-utils ~app-text/docbook-sgml-dtd-4.2 )" + +pkg_setup() { + enewgroup siproxd + enewuser siproxd -1 -1 /dev/null siproxd +} + +src_unpack() { + unpack ${A} + + cd "${S}" + epatch "${FILESDIR}"/${PN}-0.5.11-configure-docs.diff + epatch "${FILESDIR}"/${P}-guide.diff + epatch "${FILESDIR}"/${P}-libosip-3.1.0.diff + + eautoreconf || die "autoreconf failed" + + # Make the daemon run as user 'siproxd' by default + sed -i -e "s:nobody:siproxd:" doc/siproxd.conf.example +} + +src_compile() { + econf \ + $(use_enable doc docs) \ + $(use static && use_enable static) \ + || die "configure failed" + # --disable-static won't work, see bug 205765 + emake || die "make failed" +} + +src_install() { + emake DESTDIR="${D}" install || die "make install failed" + + newinitd "${FILESDIR}"/siproxd.rc6 siproxd || die + + dodoc AUTHORS ChangeLog INSTALL NEWS README TODO RELNOTES + + # Set up siproxd directories + keepdir /var/{lib,run}/siproxd + fowners siproxd:siproxd /var/{lib,run}/siproxd +} |