diff options
author | ivan <ivan> | 2009-02-07 19:34:10 +0000 |
---|---|---|
committer | ivan <ivan> | 2009-02-07 19:34:10 +0000 |
commit | 1411da26cb9204d8f239ace310d2c4da503046b2 (patch) | |
tree | 6b51c17d908be39c925529cd2066dd97e5f73870 | |
parent | 0bd7bcd14f955f99fd0a63213a022fb1ea92145e (diff) |
don't look up encryption config every search, this should help perf a lot with database config in 1.9
-rw-r--r-- | FS/FS/Record.pm | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm index b856aea10..cbd6ad860 100644 --- a/FS/FS/Record.pm +++ b/FS/FS/Record.pm @@ -2,7 +2,7 @@ package FS::Record; use strict; use vars qw( $AUTOLOAD @ISA @EXPORT_OK $DEBUG - $conf $me + $conf $conf_encryption $me %virtual_fields_cache $nowarn_identical $no_update_diff $no_check_foreign ); @@ -44,10 +44,13 @@ my $rsa_loaded; my $rsa_encrypt; my $rsa_decrypt; +$conf = ''; +$conf_encryption = ''; FS::UID->install_callback( sub { eval "use FS::Conf;"; die $@ if $@; $conf = FS::Conf->new; + $conf_encryption = $conf->exists('encryption'); $File::CounterFile::DEFAULT_DIR = $conf->base_dir . "/counters.". datasrc; } ); @@ -403,10 +406,8 @@ sub qsearch { # Check for encrypted fields and decrypt them. ## only in the local copy, not the cached object - if ( $conf && $conf->exists('encryption') # $conf doesn't exist when doing - # the initial search for - # access_user - && eval 'defined(@FS::'. $table . '::encrypted_fields)') { + if ( $conf_encryption + && eval 'defined(@FS::'. $table . '::encrypted_fields)' ) { foreach my $record (@return) { foreach my $field (eval '@FS::'. $table . '::encrypted_fields') { # Set it directly... This may cause a problem in the future... |