[reSIProcate] Fwd: Repro Capuchin (repro 0.2 RC1)
Those of you subscribed to resiprocate commits can't have missed the
flurry over the last
few days. Here's why it was happening:
Begin forwarded message:
From: Robert Sparks <rjsparks@xxxxxxxxxxx>
Date: February 20, 2006 5:54:56 PM CST
To: Repro Developers <repro-devel@xxxxxxxxxxxxxxxxxxx>, repro-
users@xxxxxxxxxxxxxxxxxxx
Subject: Repro Capuchin (repro 0.2 RC1)
There is a candidate for a new release of repro available at
SIPFoundry.
We had a coding party in Boston last week to push and polish.
Please join me in thanking
the participants for contributing several very intense days of effort:
Byron Campen
Martin Hoffmann
Scott Godin
Scott Lawrence
Rohan Mahy
Dan Petrie
Adam Roach
Ofir Roval
David Schwartz
Robert Sparks
Brocha Strous
Dale Worley
A special thanks go to Scott Lawrence and Pingtel for arranging the
room and network.
There are details about what we got done at
http://wiki.resiprocate.org/wiki/index.php?title=Repro_Releases
along with a great deal of new documentation for repro, and a
roadmap for where we're taking the project next.
This is RC1 for Repro Capuchin. Binaries are available at
http://www.sipfoundry.org/pub/repro
Enjoy,
RjS
---------
The Capuchin Readme (see http://wiki.resiprocate.org/wiki/index.php?
title=Capuchin_Readme)
This is Repro.
The current release of Repro is 0.2 (Capuchin) RC1, based on
version 6030 of the reSIProcate repository.
There have been many, many changes since the 0.1 builds.
At the Feb 16-18 coding session (and the weeks leading to it), we
pushed to polish repro for this release. The changes made include
* A reworked Request Processor chain that allows multiple
processors to bookmark and post timers. Implemented general q-value
processing, parallel forking to targets of equal q-value,
sequential forking between different q-values. Added command-line
control of this q-value processing
* Implementing Trusted Node Access Control Lists (ACLs) for
incoming, paying attention to either source IP address or the
peer's certificate provided during TLS connections
* Responding correctly to OPTIONS when Max-Forwards runs out
* Made it possible to change the Web Administration account's
password
* Version information is available from the command line, and
contained in the HTTP Server header field
* Tightened up forwarding of stray responses. Repro will not
forward non-200/INVITE responses without a matching transaction.
(200/INVITEs will be stopped once we correct the INVITE transaction
to keep state long enough to do so correctly)
* Better handling of Security exceptions when processing
Identity. Identity-Info is no longer added unless Identity can be
* Moving TCP reuse code into a general SetTargetConnection
request processor (monkey) in preparation for future outbound/
connection-reuse work
* Turning off digest challenges for BYE.
* More graceful exit when startup conditions are broken (can't
aquire ports, start webserver, reach database)
* Memory usage scrub: removed many issues
o removed a static initialization order bug that was not
expressing itself well on most platforms
o cleaning up after popt
o handling some edge cases in ares
o fixed some inappropriate use of non-existant header
field values
o better protection against Berkeley database files
containing junk or malicious content
o proper cleanup of SipMessage memory when handling stray
responses and other edge conditions
o removal of leak in the Security framework
* Assert scrub/Code review
o Started the process of removing asserts in the codepath
of information taken from the wire or other external sources. We've
made significant progress on this task, but more attention is
needed still.
* Started the infrastructure for general decoration of outgoing
messages to support improved record-routing behavior in the future.
(Proper handling of record-route when traversing a TLS/UDP boundary
is still incomplete in this release. A branch has been formed to
finish this effort.)
* Added release building tools for RedHat-like Linuxes, Debian,
and Microsoft Windows
* Implemented correct clean and distclean targets for the
entire resiprocate tree. Improved efficiency of clean (the system
doesn't build dependencies just to delete them now)
* Created a man page, added significant documentation to the
tree and the wiki
* Improved the test framework for repro
o Added many tests to the tfm repro sanityTests
o Made tfm work under Windows
o Added BADTEST and BUGTEST macros to help organize tests
we know are bad (the test itself is broken), or a test that
highlights a known bug in repro.
o Started to better organize the tests
o Made the tfm output easer to mechanically digest
There have also been many improvements in the reSIProcate stack
since the 0.1 builds. Please see the subversion logs for details.
At the highest level, this release of repro takes advantage of:
* improved non-INVITE transaction handling
* improved RFC 3263 DNS failover, along with caching of
failures to avoid the Non-INVITE failure trap