I have implemented all the changes that resulted from distcc list feedback,
but there are two new modifications that will need to be reviewed.
Firstly, GSS-API authentication is no longer specified via an environment
variable, but is now a per host option. As a result hosts.c and lock.c
have been modified.
Secondly, the resolution for the log file timestamps has been increased to
include microseconds.
With regard to the python tests, instead of having a separate class to test
for the presence of the GSS-API and an underlying security mechanism, I have
overridden the startDaemon method to handle GSS-API errors for those tests
that need them.
To answer an outstanding question:
On Thu, 5 Mar 2009, Fergus Henderson wrote:
>
> BTW, what happens if you specify --show-principle without --auth? Does that
> work?
>
--show-principal will show the current GSS-API principal and exit, and
therefore should be used on its own.
Thanks
Ian
This patch includes integration tests for CERN based modifications.
These include testing for the correct behaviour of both client and
server for all command line options, mutual authentication, and
blacklist/whitelist functionality.
Tests will only be performed if distcc/distccd where built with
GSS-API support and there is an underlying security mechanism.
Index: quilt-distcc-3.1/distcc-3.1/test/testdistcc.py
===================================================================
--- quilt-distcc-3.1.orig/distcc-3.1/test/testdistcc.py
+++ quilt-distcc-3.1/distcc-3.1/test/testdistcc.py
+class AuthEnabledDaemon_Case(SimpleDistCC_Case):
+ """Test handling of --auth daemon option.
+ The daemon may fail to run if valid credentials cannot
+ be obtained, however, the daemon should still attempt to
+ acquire credentials which should show up in the log."""
+
+ def runtest(self):
+ result, out, err = self.runcmd_unchecked("distccd --version")
+ if not re.search("Built with GSS-API support for mutual authentication.", out):
+ raise comfychair.NotRunError("distcc/distccd not built with GSS-API support.")
+
+ self.runcmd_unchecked(self.distccd() +
+ "--auth --verbose --lifetime=10 --daemon "
+class MutualAuthentication_Case(CompileHello_Case):
+ """Test mutual authentication between client and daemon.
+ This will only complete successfully if both the client and
+ daemon can obtain credentials."""
+
+ hostname = ""
+
+ def setup(self):
+ CompileHello_Case.setup(self)
I'm going to address the two minor issues below myself, and then I'll apply this patch.On Sun, Jun 28, 2009 at 1:44 PM, Fergus Henderson <fergus.h...@gmail.com> wrote:
On Thu, May 7, 2009 at 7:50 AM, <Ian....@cern.ch> wrote:
This patch includes integration tests for CERN based modifications.
These include testing for the correct behaviour of both client and
server for all command line options, mutual authentication, and
blacklist/whitelist functionality.
Tests will only be performed if distcc/distccd where built with
GSS-API support and there is an underlying security mechanism.
It's plausible to me, but best if Ian chimes in as well.
craig