Networking
Bonjour Support
New Zero-Configuration networking classes using Bonjour:
- TBonjourRecord
- TBonjourRegistrar
- TBonjourBrowser
- TBonjourResolver
Zeroconf is meant to solve the problem of finding services and connecting
to them. Instead of having to know a machine's IP address and port number
for the service, a machine offering a service simply announces that it
offers the service. Clients who want to use a service ask for all the
machines that are offering it and then the user decides which one to
connect to.
Traditionally, you would have to make sure that each machine is configured
correctly and on the network. Zeroconf takes care of all of this for you
for a local area network. Lots of new hardware, such as printers with
networking support or wireless routers, come with their own Zeroconf server
to allow easy network configuration. On Mac OS X, many applications take
advantage of Bonjour to advertise services, such as the ssh server,
iTunes shares, or iChat availability. Zeroconf is a powerful way of
simplifying your applications, and there are implementations available
for most operating systems.
If you have Mac OS X, you already have Bonjour installed; otherwise, you
can download the source code from the Apple website
(http://developer.apple.com/Bonjour) and build and install Bonjour in
relatively short order. Most modern Linux distributions come with Avahi,
an LGPL implementation of Zeroconf with a compatibibility API for Bonjour.
The ROOT Bonjour classes were tested to work with both Apple's Bonjour
implementation and Avahi's Bonjour compatibility layer.
Service discovery consists of three steps: registering a service, browsing
for available services, and resolving the service to an actual address.
A server will register its services with the Bonjour daemon. Clients will
browse for services to get a list to provide to the user. Finally, when it
is time to connect to a service, the client will resolve the selected
service to an actual IP address and port and then connect to the service
provide using TCP/IP.
XROOTD
- New version 20090610-0430
- Improvements
- Add the possibility of using the xrd command line from
batch scripts
- Add support for Adler32 checksum calculation of
a local unix file (including stdin) and file on a remote xrootd data
server.
- Add support for the so-called Xtreme copy, allowing xrdcp
to read multiple chunks from several servers, in parallel.
- Add possibility to use a different version of a given C++
compiler or linker (--with-cxx=..., etc)
- Increase flexibility in configuring openssl and openafs
support
- In GSI authentication, automatize the loading of CRL; the
information
about the URI is looked for either in the dedicated extension on the CA
certificate or from the file "<CA hash>.crl_url" and the
file
automatically downloaded and transformed in PEM format
- Fixes
- Fix wrong reporting of the refresh option for Locate
- Fix incorrect propagation of selected nodes
- Prevent potential long duration loop (15 mins) after client disconnections
- Avoid potential deadlocks when trying to remove a node from a cluster
- Correct matching of incoming connection with previously dropped connection
- Correct export of cluster identification
- Correctly propagate information about files that could not be staged
- Prevent endsess deadlock when parallel streams stall due to large WAN RTT
- Fix infinite wait for primary login that will never
happen if you are a manager without a meta-manager
- Prevent annoying (but not deadly) infinite loop should a
server go offline that is subject to a locate request display.
- Better handling of errno, especially for parallel streams
- Allow the client to cycle through all the remaining valid security protocols in the list of protocols returned by the server
- Make the readahead strategy more conservative
- Fix a rare race condition happening when destroying instances with outstanding open requests
- Enforce cache coherency in the case of reads+writes in the same file
- Correctly guess the filesize of a file opened for writing in sync mode
- Make server host name check more flexible for GSI authentication
- Fix some relevant issues with cache handling on the client, including a rare but fatal bug in
determining the cache holes list and the end of a cache lookup
- More complete detection of async read errors
- General
- Fix problem in handling the return code
of X509_REQ_verify
in XrdCryptosslX509Req.cc
- Avoid SEGV when doing an lsd admin command with
authenticated xrootd clients
- Close race conditions that allowed a supervisor/manager
to subscribe without declaring a data port. Initialize nostage state in
XrdCmsState to prevent erroneous state declaration during
initialization.
- Fix a problem with the subject name of proxies of level
> 1; this was creating a failure when a Globus application was
trying to use the proxy certificate
- Fix a problem with cache refreshing in XrdSutCache
affecting automatic reloading of password files
- For now, turn off IPV6 processing as it seems to create
several problems.
- Fix a few issues with the available releases of gcc 4.4
- Fix a few issues with the 'icc' compiler
- Fix several issues in GSI and PWD authentication modules
- New features
- New File Residency Manager (frm), replacement for the MPS scripts
- Scripts are now provided to
- automatically donwload a CRL certificate
(utils/getCRLcert)
- install the recommended verion of OpenSSL and build it
with the options optimal for usage in XROOTD/SCALLA
(utils/installOpenSSL.sh)
- install the recommended verion of OpenAFS and build it
with the options optimal for usage in
XROOTD/SCALLA (utils/installOpenAFS.sh)
- Miscellanea
- TokenAuthz and CS2 modules are no longer part of the main
built; they have to be built externally