rutil: ServerProcess: better logging about startup failures

git-svn-id: https://svn.resiprocate.org/rep/resiprocate/main@10085 ddefafc4-47db-0310-ae44-fa13212b10f2
reTurn: add support for dropping privileges, necessary for starting as root to run on port 443

git-svn-id: https://svn.resiprocate.org/rep/resiprocate/main@10086 ddefafc4-47db-0310-ae44-fa13212b10f2
-change to Helper::isClientBehindNAT to ensure we don't pass hostnames that
 might be Via host (ie: web-rtc) to a Tuple constructor


git-svn-id: https://svn.resiprocate.org/rep/resiprocate/main@10087 ddefafc4-47db-0310-ae44-fa13212b10f2
-add returnServer.config to VS2010 project file

git-svn-id: https://svn.resiprocate.org/rep/resiprocate/main@10088 ddefafc4-47db-0310-ae44-fa13212b10f2
-don't assert in Tuple constructors that take printable addresses, since
 these addresses can come from the wire or from configuration
-removed some TABs in the Tuple source

git-svn-id: https://svn.resiprocate.org/rep/resiprocate/main@10089 ddefafc4-47db-0310-ae44-fa13212b10f2
-fixing ClientRegistration issue (client registration can end on transport
 switchover):
 Consider the case where we are registered over TCP due to DNS SRV record
 configuration.  Let's say an administrator reconfigures the DNS records to
 now make UDP the preferred transport.  When we re-register we will now
 send the re-registration message over UDP.  This will cause our contact
 address to be changed (ie: ;tranport=tcp will no longer exist).  So for a
 short period of time the registrar will return two contacts to us, both 
 belonging to us, one for TCP and one for UDP.  The TCP one will expire in
 a short amount of time, and if we return this expiry to the dispatch() 
 method then it will cause the ClientRegistration to end (see logic in 
 dispatch() that prints out the error "Server is using an unreasonably low 
 expiry: "...
 To fix this, I modified calculateExpiry to track two things:
 1. expiry - the lowest expiration value of all of our contacts
 2. reasonableExpiry - the lowest expiration value of all of our contacts
                       that is above the UnreasonablyLowExpirationThreshold 
                       (7 seconds)
 Before we return, if expiry is less than UnreasonablyLowExpirationThreshold
 but we had another contact that had a reasonable expiry value, then return
 that value instead.


git-svn-id: https://svn.resiprocate.org/rep/resiprocate/main@10090 ddefafc4-47db-0310-ae44-fa13212b10f2
merge from trunk/main (from r10083 up to r10090)

git-svn-id: https://svn.resiprocate.org/rep/resiprocate/branches/b-webrtc@10091 ddefafc4-47db-0310-ae44-fa13212b10f2