tags 479613 +patch
thanks
it looks like libosip renamed it's md5 functions/types (probablly to
avoid symbol conflicts) causing this failure.
I have attatched a patch to make siproxd use the new functions, this can
be dropped straight into the debian/patches directory (the package uses
cdbs with simple-patchsys).
The build-dep on libosip2-dev should also be bumped to >= 3.1.0-1 since
with this patch applied the code will no longer build with versions of
that package that have the old function names.
diff -Nur -x '*.orig' -x '*~' siproxd-0.7.0/src/auth.c siproxd-0.7.0.new/src/auth.c
--- siproxd-0.7.0/src/auth.c 2008-01-19 16:07:14.000000000 +0000
+++ siproxd-0.7.0.new/src/auth.c 2008-05-06 21:14:39.000000000 +0000
@@ -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 -Nur -x '*.orig' -x '*~' siproxd-0.7.0/src/sip_utils.c siproxd-0.7.0.new/src/sip_utils.c
--- siproxd-0.7.0/src/sip_utils.c 2008-01-19 16:07:14.000000000 +0000
+++ siproxd-0.7.0.new/src/sip_utils.c 2008-05-06 21:14:23.000000000 +0000
@@ -42,6 +42,7 @@
#include "digcalc.h"
#include "log.h"
+
static char const ident[]="$Id: sip_utils.c,v 1.56 2008/01/19 16:07:14 hb9xar Exp $";
@@ -773,13 +774,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 +800,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]",