Release 0.2.5
This commit is contained in:
parent
1a50659b63
commit
051c9dab99
10
ChangeLog
10
ChangeLog
@ -1,8 +1,12 @@
|
||||
0.2.5
|
||||
=====
|
||||
- 2-Dec-2002: - fixed a bug in check_vialoop. It wrongly claimed
|
||||
to have detected a loop when using the old-style
|
||||
IP address based inboud/outboud definitions.
|
||||
- 6-Dec-2002: - released 0.2.5 (major bugfixes)
|
||||
- Bugfix: MSN messenger 4.6 caused a segfault due to
|
||||
non supplied username in contact header during
|
||||
registration. (Credits to Dhiraj Bhuyan for the hint)
|
||||
Included additional tests in that area.
|
||||
- 4-Dec-2002: - fixed a major (but stupid) bug in check_vialoop. Siproxd
|
||||
wrongly claimed to have detected a loop...
|
||||
|
||||
0.2.4
|
||||
=====
|
||||
|
||||
16
RELNOTES
16
RELNOTES
@ -1,5 +1,8 @@
|
||||
Release Notes for siproxd-0.2.5
|
||||
===============================
|
||||
This release mainly fixes some annoying (and stupid) bugs.
|
||||
See the ChangeLog for details.
|
||||
|
||||
- supports Linux and FreeBSD (other BSD derivates not tested)
|
||||
- SIP Proxy for SIP based softphones hidden behind a masquerading firewall
|
||||
- Includes an RTP data stream proxy for *incomming* audio data
|
||||
@ -30,17 +33,26 @@ Reported to build on:
|
||||
- OpenBSD 2.9
|
||||
|
||||
|
||||
Interoperability (tested with softphones):
|
||||
Reported interoperability (tested with softphones):
|
||||
- Linphone (http://www.linphone.org)
|
||||
- Kphone (http://www.wirlab.net/kphone/)
|
||||
- MSN messenger 4.6
|
||||
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.2.5.tar.gz:
|
||||
md5sum for siproxd-0.2.5.tar.gz: 042986602efeaaa77a14bb0b1a416083
|
||||
md5sum for siproxd-0.2.5-1rh60.i386.rpm:
|
||||
md5sum for siproxd-0.2.5-1rh72.i386.rpm:
|
||||
md5sum for siproxd-0.2.5-1.src.rpm:
|
||||
|
||||
GnuPG signature for siproxd-0.2.5.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.0.5 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAj3v6zkACgkQPOYHDi42pIppDACfc0Bw3vcNFE5+qSHIzMacdHow
|
||||
kGgAn11c69ibc9bLd+la9j0otqxhAWIK
|
||||
=OZ6c
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
|
||||
@ -170,7 +170,8 @@ int proxy_request (sip_t *request) {
|
||||
/* found a mapping entry */
|
||||
if (i<URLMAP_SIZE) {
|
||||
DEBUGC(DBCLASS_PROXY, "rewrote Contact header %s@%s -> %s@%s",
|
||||
contact->url->username, contact->url->host,
|
||||
(contact->url->username) ? contact->url->username : "*NULL*",
|
||||
(contact->url->host) ? contact->url->host : "*NULL*",
|
||||
urlmap[i].masq_url->username, urlmap[i].masq_url->host);
|
||||
/* remove old entry */
|
||||
list_remove(request->contacts,0);
|
||||
@ -365,7 +366,8 @@ int proxy_response (sip_t *response) {
|
||||
/* found a mapping entry */
|
||||
if (i<URLMAP_SIZE) {
|
||||
DEBUGC(DBCLASS_PROXY, "rewrote Contact header %s@%s -> %s@%s",
|
||||
contact->url->username, contact->url->host,
|
||||
(contact->url->username) ? contact->url->username : "*NULL*",
|
||||
(contact->url->host) ? contact->url->host : "*NULL*",
|
||||
urlmap[i].masq_url->username, urlmap[i].masq_url->host);
|
||||
/* remove old entry */
|
||||
list_remove(response->contacts,0);
|
||||
|
||||
@ -128,10 +128,10 @@ int register_client(sip_t *my_msg) {
|
||||
url2_contact=urlmap[i].true_url;
|
||||
|
||||
if ( (compare_url(url1_to, url2_to)==STS_SUCCESS) &&
|
||||
(strcmp(url1_contact->username, url2_contact->username)==0) &&
|
||||
(strcmp(url1_contact->host, url2_contact->host )==0) ) {
|
||||
(compare_url(url1_contact, url2_contact)==STS_SUCCESS) ) {
|
||||
DEBUGC(DBCLASS_REG, "found entry for %s@%s at slot=%i, exp=%li",
|
||||
url1_contact->username,url1_contact->host,
|
||||
(url1_contact->username) ? url1_contact->username : "*NULL*",
|
||||
(url1_contact->host) ? url1_contact->host : "*NULL*",
|
||||
i, urlmap[i].expires-time_now);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -196,7 +196,7 @@ int main (int argc, char *argv[])
|
||||
|
||||
/* integrity checks */
|
||||
sts=security_check(buff, i);
|
||||
if (sts != 0) continue; /* there are no resources to free */
|
||||
if (sts != STS_SUCCESS) continue; /* there are no resources to free */
|
||||
|
||||
/* parse the received message */
|
||||
sts=msg_init(&my_msg);
|
||||
|
||||
22
src/utils.c
22
src/utils.c
@ -118,7 +118,7 @@ int check_vialoop (sip_t *my_msg) {
|
||||
via_t *via;
|
||||
via = (via_t *) list_get (my_msg->vias, pos);
|
||||
sts = is_via_local (via);
|
||||
if (sts == 1) found_own_via=1;
|
||||
if (sts == STS_TRUE) found_own_via=1;
|
||||
pos++;
|
||||
}
|
||||
return (found_own_via)? STS_TRUE : STS_FALSE;
|
||||
@ -307,17 +307,27 @@ int compare_url(url_t *url1, url_t *url2) {
|
||||
ERROR("compare_url: NULL ptr: url1=0x%p, url2=0x%p",url1, url2);
|
||||
return STS_FAILURE;
|
||||
}
|
||||
if ((url1->username == NULL) || (url2->username == NULL)) {
|
||||
ERROR("compare_url: NULL ptr: url1->username=0x%p, url2->username=0x%p",
|
||||
url1->username, url2->username);
|
||||
return STS_FAILURE;
|
||||
}
|
||||
if ((url1->host == NULL) || (url2->host == NULL)) {
|
||||
ERROR("compare_url: NULL ptr: url1->host=0x%p, url2->host=0x%p",
|
||||
url1->host, url2->host);
|
||||
return STS_FAILURE;
|
||||
}
|
||||
if ((url1->username == NULL) || (url2->username == NULL)) {
|
||||
/* Broken(?) MSN messenger - does not supply a user name part.
|
||||
So we simply compare the host part then */
|
||||
WARN("compare_url: NULL username pointer: MSN messenger is known to "
|
||||
"trigger this one! [url1->username=0x%p, url2->username=0x%p]",
|
||||
url1->username, url2->username);
|
||||
DEBUGC(DBCLASS_BABBLE, "comparing broken urls (no user): %s -> %s",
|
||||
url1->host, url2->host);
|
||||
if (strcmp(url1->host, url2->host)==0) {
|
||||
sts = STS_SUCCESS;
|
||||
} else {
|
||||
sts = STS_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
/* we have a proper URL */
|
||||
/* comparison of hosts should be based on IP addresses, no? */
|
||||
DEBUGC(DBCLASS_BABBLE, "comparing urls: %s@%s -> %s@%s",
|
||||
url1->username, url1->host, url2->username, url2->host);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user