release 0.3.0
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
0.2.9
|
||||
0.3.0
|
||||
=====
|
||||
- 29-May-2003: - released 0.3.0
|
||||
- supports libosip2 (automatically detect osip1/osip2)
|
||||
- redone authentication - now should work with libosip2
|
||||
libosip0.8.8 has a bug (fails in parse_msg)
|
||||
- 28-May-2003: - changes in rewriting SIP messages - not everything
|
||||
is blindly rewritten now (e.g. SUBSCRIBE is NOT)
|
||||
- fixed resource leak (sockets) in get_ip_by_ifname
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Release Notes for siproxd-0.2.9
|
||||
Release Notes for siproxd-0.3.0
|
||||
===============================
|
||||
|
||||
- Fli4l OPT_SIP (still experimental) available, see
|
||||
- Fli4l OPT_SIP (still experimental) available, check
|
||||
http://home.arcor.de/jsffm/fli4l/
|
||||
- supports Linux and FreeBSD (other BSD derivates not yet tested)
|
||||
- SIP (RFC3261) Proxy for SIP based softphones hidden behind a
|
||||
@@ -29,14 +29,14 @@ Release Notes for siproxd-0.2.9
|
||||
Requirements:
|
||||
- pthreads
|
||||
- glibc2 / libc5 / uClibc
|
||||
- libosip 0.8.8 (using libosip 0.9.6, proxy authentication does *not*
|
||||
work. Unclear if this is a bug in libosip or not)
|
||||
- builds with libosip>0.8.8 / libosip2
|
||||
- prebuild binaries (RPMs) require libosip2 to be installed
|
||||
|
||||
Currently tested on:
|
||||
- Redhat 6.0 (Kernel 2.2.x, Glibc)
|
||||
- Redhat 7.2 (Kernel 2.4.x, Glibc)
|
||||
- SUSE 5.3 (kernel 2.0.x, libc5)
|
||||
- Redhat 7.2 build against uClibc
|
||||
- Redhat 7.2 build against uClibc (Fli4l use)
|
||||
- should run on others Linux distributions as well.
|
||||
- FreeBSD 4.7-STABLE (compilation)
|
||||
|
||||
@@ -50,21 +50,24 @@ Reported interoperability (tested with softphones):
|
||||
- MSN messenger 4.6 (remote and local UA)
|
||||
|
||||
Known bugs:
|
||||
- using libosip-0.9.3, the proxy authentication does *NOT* work.
|
||||
Yet is is unclear to me if this is a bug in libosip or siproxd.
|
||||
libosip-0.8.8 works.
|
||||
- with kphone 3.1 & libosip-0.*, authentication does NOT work at
|
||||
all (due to 'parse error' in libosip)
|
||||
- libosip2-1.99 has the same problem (kphone bug?)
|
||||
all (due to 'parse error' in libosip) - use libosip2, this works fine
|
||||
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.2.9.tar.gz:
|
||||
md5sum for siproxd-0.2.9-1rh60.i386.rpm:
|
||||
md5sum for siproxd-0.2.9-1rh72.i386.rpm:
|
||||
md5sum for siproxd-0.2.9-1.src.rpm:
|
||||
md5sum for siproxd-0.3.0.tar.gz: 3a69d2a3a62c47e04f36dab2e5262fac
|
||||
md5sum for siproxd-0.3.0-1rh60.i386.rpm:d42b3a9ee72ff1a94f3243e01f3debb8
|
||||
md5sum for siproxd-0.3.0-1rh72.i386.rpm:fb44e9922d56e7f62a982fe9100fca9d
|
||||
md5sum for siproxd-0.3.0-1.src.rpm: 8f39f69b8d736816ce44b00c08c17ce7
|
||||
|
||||
GnuPG signature for siproxd-0.2.9.tar.gz archive:
|
||||
GnuPG signature for siproxd-0.3.0.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.0.5 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAj6FibIACgkQPOYHDi42pIqAZQCeNzjNS4g885bGsjtbQF0MI5AY
|
||||
tGkAoMYgF+RBbVDgXO/9dc8Yf8iidvP+
|
||||
=0/eL
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -23,8 +23,8 @@ dnl
|
||||
dnl Release Version
|
||||
dnl
|
||||
SPD_MAJOR_VERSION=0
|
||||
SPD_MINOR_VERSION=2
|
||||
SPD_MICRO_VERSION=9
|
||||
SPD_MINOR_VERSION=3
|
||||
SPD_MICRO_VERSION=0
|
||||
|
||||
SPD_VERSION=$SPD_MAJOR_VERSION.$SPD_MINOR_VERSION.$SPD_MICRO_VERSION
|
||||
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
%define name siproxd
|
||||
%define ver 0.2.9
|
||||
%define ver 0.3.0
|
||||
%define release 1
|
||||
%define serial 1
|
||||
%define prefix %{_prefix}
|
||||
@@ -17,8 +17,8 @@ URL: http://siproxd.sourceforge.net/
|
||||
BuildRoot: %{_tmppath}/%{name}-%{ver}-root
|
||||
Docdir: %{_docdir}
|
||||
|
||||
Requires: libosip >= 0.8.0
|
||||
BuildRequires: libosip >= 0.8.0
|
||||
Requires: libosip2 >= 1.99.0
|
||||
BuildRequires: libosip2 >= 1.99.0
|
||||
|
||||
Vendor: Thomas Ries
|
||||
|
||||
|
||||
+23
-35
@@ -96,34 +96,23 @@ int authenticate_proxy(sip_t *request) {
|
||||
*
|
||||
* RETURNS
|
||||
* STS_SUCCESS
|
||||
* STS_FAILURE
|
||||
*/
|
||||
int auth_include_authrq(sip_t *response) {
|
||||
int sts;
|
||||
char str[256];
|
||||
proxy_authenticate_t *p_auth;
|
||||
|
||||
/*
|
||||
Example of an Proxy-Authenticate header:
|
||||
Proxy-Authenticate: Digest realm="atlanta.com",
|
||||
domain="sip:ss1.carrier.com", qop="auth",
|
||||
nonce="f84f1cec41e6cbe5aea9c8e88d359",
|
||||
opaque="", stale=FALSE, algorithm=MD5
|
||||
*/
|
||||
if (proxy_authenticate_init(&p_auth) != 0) {
|
||||
ERROR("proxy_authenticate_init failed");
|
||||
return STS_FAILURE;
|
||||
}
|
||||
|
||||
/* 40static + 32nonce + \0 -> max 183 */
|
||||
sprintf(str, "Digest realm=\"%.180s\", "
|
||||
"nonce=\"%s\", "
|
||||
"algorithm=MD5",
|
||||
configuration.proxy_auth_realm,
|
||||
auth_generate_nonce());
|
||||
proxy_authenticate_setauth_type(p_auth, sgetcopy("Digest"));
|
||||
proxy_authenticate_setnonce(p_auth, sgetcopy(auth_generate_nonce()));
|
||||
proxy_authenticate_setrealm(p_auth, sgetcopy(configuration.proxy_auth_realm));
|
||||
|
||||
DEBUGC(DBCLASS_AUTH,"msg_setproxy_authenticate [%s]",str);
|
||||
sts = msg_setproxy_authenticate(response, str);
|
||||
/*
|
||||
this does not work with libosip 0.9.3 - msg_setproxy_authenticate
|
||||
fails with sts=-1 there. Bug ?
|
||||
*/
|
||||
list_add (response->proxy_authenticates, p_auth, -1);
|
||||
|
||||
DEBUGC(DBCLASS_AUTH,"msg_setproxy_authenticate sts=%i",sts);
|
||||
DEBUGC(DBCLASS_AUTH,"added authentication header");
|
||||
|
||||
return STS_SUCCESS;
|
||||
}
|
||||
@@ -208,7 +197,6 @@ static int auth_check(proxy_authorization_t *proxy_auth) {
|
||||
|
||||
if (password == NULL) password="";
|
||||
|
||||
|
||||
DEBUGC(DBCLASS_BABBLE," username=\"%s\"",Username );
|
||||
DEBUGC(DBCLASS_BABBLE," realm =\"%s\"",Realm );
|
||||
DEBUGC(DBCLASS_BABBLE," nonce =\"%s\"",Nonce );
|
||||
@@ -377,20 +365,20 @@ void DigestCalcHA1(
|
||||
HASH HA1;
|
||||
|
||||
MD5Init(&Md5Ctx);
|
||||
MD5Update(&Md5Ctx, pszUserName, strlen(pszUserName));
|
||||
if (pszUserName) MD5Update(&Md5Ctx, pszUserName, strlen(pszUserName));
|
||||
MD5Update(&Md5Ctx, ":", 1);
|
||||
MD5Update(&Md5Ctx, pszRealm, strlen(pszRealm));
|
||||
if (pszRealm) MD5Update(&Md5Ctx, pszRealm, strlen(pszRealm));
|
||||
MD5Update(&Md5Ctx, ":", 1);
|
||||
MD5Update(&Md5Ctx, pszPassword, strlen(pszPassword));
|
||||
if (pszPassword) MD5Update(&Md5Ctx, pszPassword, strlen(pszPassword));
|
||||
MD5Final(HA1, &Md5Ctx);
|
||||
|
||||
if ((pszAlg!=NULL)&&strcasecmp(pszAlg, "md5-sess") == 0) {
|
||||
MD5Init(&Md5Ctx);
|
||||
MD5Update(&Md5Ctx, HA1, HASHLEN);
|
||||
MD5Update(&Md5Ctx, ":", 1);
|
||||
MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce));
|
||||
if (pszNonce) MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce));
|
||||
MD5Update(&Md5Ctx, ":", 1);
|
||||
MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce));
|
||||
if (pszCNonce) MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce));
|
||||
MD5Final(HA1, &Md5Ctx);
|
||||
};
|
||||
CvtHex(HA1, SessionKey);
|
||||
@@ -416,9 +404,9 @@ void DigestCalcResponse(
|
||||
|
||||
/* calculate H(A2) */
|
||||
MD5Init(&Md5Ctx);
|
||||
MD5Update(&Md5Ctx, pszMethod, strlen(pszMethod));
|
||||
if (pszMethod) MD5Update(&Md5Ctx, pszMethod, strlen(pszMethod));
|
||||
MD5Update(&Md5Ctx, ":", 1);
|
||||
MD5Update(&Md5Ctx, pszDigestUri, strlen(pszDigestUri));
|
||||
if (pszDigestUri)MD5Update(&Md5Ctx, pszDigestUri, strlen(pszDigestUri));
|
||||
|
||||
if (pszQop!=NULL) {
|
||||
goto auth_withqop;
|
||||
@@ -432,7 +420,7 @@ void DigestCalcResponse(
|
||||
MD5Init(&Md5Ctx);
|
||||
MD5Update(&Md5Ctx, HA1, HASHHEXLEN);
|
||||
MD5Update(&Md5Ctx, ":", 1);
|
||||
MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce));
|
||||
if (pszNonce) MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce));
|
||||
MD5Update(&Md5Ctx, ":", 1);
|
||||
|
||||
goto end;
|
||||
@@ -448,13 +436,13 @@ void DigestCalcResponse(
|
||||
MD5Init(&Md5Ctx);
|
||||
MD5Update(&Md5Ctx, HA1, HASHHEXLEN);
|
||||
MD5Update(&Md5Ctx, ":", 1);
|
||||
MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce));
|
||||
if (pszNonce) MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce));
|
||||
MD5Update(&Md5Ctx, ":", 1);
|
||||
MD5Update(&Md5Ctx, pszNonceCount, strlen(pszNonceCount));
|
||||
if (pszNonceCount)MD5Update(&Md5Ctx, pszNonceCount, strlen(pszNonceCount));
|
||||
MD5Update(&Md5Ctx, ":", 1);
|
||||
MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce));
|
||||
if (pszCNonce) MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce));
|
||||
MD5Update(&Md5Ctx, ":", 1);
|
||||
MD5Update(&Md5Ctx, pszQop, strlen(pszQop));
|
||||
if (pszQop) MD5Update(&Md5Ctx, pszQop, strlen(pszQop));
|
||||
MD5Update(&Md5Ctx, ":", 1);
|
||||
|
||||
end:
|
||||
|
||||
Reference in New Issue
Block a user