On Mon, 20 Sep 2004, Chris Hughes wrote:
> I'm also not exactly sure why there are three checks (ie. that there is a
> cache object, that the cache object connection id is the same as the
> current, and then that the (altered) remote host name is the same in
> both). I would have thought it would be enought to compare the
> connectionid, but this seems to stay the same between connections..?
Apols to following up to myself, but I seem to have deleted Fred's email.
That patch didn't work (for me) as notes() expects an APR::Table object.
I've appended a patch that changes the way this works a little. It seems
that all this trouble is just so that the AuthenNTLM module can tell if a
request comes from the same connection as the previous one (so it can
complete the NTLM 'hand-shake' or just Apache::OK if it has already been
successfully authenticated.
So the below patch just pops a value into connection->notes() and checks
if it is there. Would be interested in any comments.
My question is why isn't the connection->id() used for this purpose? It
loks like this value isn't unique between connections, so what does it do?
http://perl.apache.org/docs/2.0/api/Apache/Connection.html#C_id_
ta,
Chris
545,558c545,548
< my $table = $conn->notes();
< if (ref ($cache) ne $class || $$conn != $cache->{connectionid} ||
< (!MP2 && $conn->remote_host ne $cache->{remote_host}) ||
< (MP2 && $table->get('status') ne "AUTHSTARTED"))
< {
< if (!MP2) {
< $conn->remote_host ($conn->remote_host . ' ');
< $self = {connectionid => $$conn, remote_host => $conn -> remote_host}
;
< } elsif (MP2) {
< my $table = $conn->notes();
< $table->add('status','AUTHSTARTED');
< $conn->notes($table);
< $self = {connectionid => $$conn } ;
< }
---
> 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}
;
--
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
|