> I really have no idea about Apache-AuthenNTLM but to make it working
> again you could apply the patch below and rebuilt your mod-perl.

> As far
> as I can tell from the last mail from Stas it's going to be
> read/writeable in future if one volunteers to write tests :-).

I originally suggested that change as a result of reviewing the map
structures after running into this same problem on a different method of a
read only accessor breaking an existing module.  So I am due some flak
here for suggesting other methods be read-only, as it has broken something
else.  Maybe I can volunteer to write tests for those methods as a way of
making amends.

Here's a patch for AuthenNTLM.pm which uses $conn->notes, instead of
modifying $conn->remote_host, to compare the connections.  I don't have a
working NTLM setup but maybe give this a go and see how it works.


--- AuthenNTLM.pm  2004-09-20 12:44:03.028383768 -0400
+++ AuthenNTLM.pm  2004-09-20 12:58:02.975692368 -0400
@@ -542,14 +542,23 @@
     # The check is done by slightly changing the remote_host member, which
     # persists as long as the connection does
     # This has to be reworked to work with Apache 2.0
-    if (ref ($cache) ne $class || $$conn != $cache -> {connectionid} ||
$conn ->
remote_host ne $cache->{remote_host})
-        {
-       $conn -> remote_host ($conn -> remote_host . ' ') ;
-        $self = {connectionid => $$conn, remote_host => $conn ->
remote_host} ;
-        bless $self, $class ;
-       $cache = $self ;
-       print STDERR "[$$] AuthenNTLM: Setup new object\n" if ($debug) ;
+    if (ref ($cache) ne $class || $$conn != $cache->{connectionid} ||
+        (!MP2 && $conn->remote_host ne $cache->{remote_host}) ||
+        (MP2 && $conn->notes ne $cache->{notes}))
+    {
+        if (!MP2) {
+            $conn->remote_host ($conn -> remote_host . ' ') ;
+            $self = {connectionid => $$conn,
+                     remote_host => $conn -> remote_host} ;
         }
+        elsif (MP2) {
+            $conn->notes($$self);
+            $self = {connectionid => $$conn, notes => $conn->notes};
+        }
+        bless $self, $class ;
+        $cache = $self ;
+        print STDERR "[$$] AuthenNTLM: Setup new object\n" if ($debug) ;
+    }
     else
         {
         $self = $cache ;


-- 
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html

Reply via email to