From: <de...@de...> - 2010-09-22 01:01:49
|
Author: PeterThoeny Date: 2010-09-21 20:01:42 -0500 (Tue, 21 Sep 2010) New Revision: 19485 Trac url: http://develop.twiki.org/trac/changeset/19485 Modified: twiki/branches/TWikiRelease05x00/core/lib/TWiki/Users/HtPasswdUser.pm Log: Item6528: Performance tuning of read .htpasswd file: Move "if" test outside of the tight line loop Modified: twiki/branches/TWikiRelease05x00/core/lib/TWiki/Users/HtPasswdUser.pm =================================================================== --- twiki/branches/TWikiRelease05x00/core/lib/TWiki/Users/HtPasswdUser.pm 2010-09-22 00:43:14 UTC (rev 19484) +++ twiki/branches/TWikiRelease05x00/core/lib/TWiki/Users/HtPasswdUser.pm 2010-09-22 01:01:42 UTC (rev 19485) @@ -126,24 +126,28 @@ || throw Error::Simple( $TWiki::cfg{Htpasswd}{FileName} . ' open failed: ' . $! ); my $line = ''; - while (defined ( $line =<IN_FILE> ) ) { - chomp( $line ); - my @tokens = split( /:/, $line ); - - if ( $TWiki::cfg{Htpasswd}{Encoding} eq 'md5' ) { - # htdigest format: UserName:AuthRealm:password:email1,email2 + if ( $TWiki::cfg{Htpasswd}{Encoding} eq 'md5' ) { + # htdigest format: UserName:AuthRealm:password:email1,email2 + while (defined ( $line =<IN_FILE> ) ) { + chomp( $line ); + my @tokens = split( /:/, $line ); next if( $#tokens < 2 ); $data->{$tokens[0]}->{pass} = $tokens[2] || ''; $data->{$tokens[0]}->{emails} = $tokens[3] || ''; - - } else { - # htpasswd format: UserName:password:email1,email2 + } + } else { + # htpasswd format: UserName:password:email1,email2 + while (defined ( $line =<IN_FILE> ) ) { + chomp( $line ); + my @tokens = split( /:/, $line ); next if( $#tokens < 1 ); $data->{$tokens[0]}->{pass} = $tokens[1] || ''; $data->{$tokens[0]}->{emails} = $tokens[2] || ''; } } close( IN_FILE ); + # use Data::Dumper; + # print STDERR Dumper( $data ); $this->{passworddata} = $data; return $data; |