From 182fa9a5cd3107f115d5f87ce3394ffc1970d2e3 Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Fri, 20 May 2016 08:53:53 -0400 Subject: [PATCH] revert the bulk of the merge_db_connects changes. --- scripts/ZoneMinder/lib/ZoneMinder.pm | 5 -- .../ZoneMinder/lib/ZoneMinder/Config.pm.in | 73 ++++++++----------- scripts/ZoneMinder/lib/ZoneMinder/Database.pm | 19 +++-- scripts/ZoneMinder/lib/ZoneMinder/Logger.pm | 58 +++++++++------ scripts/zmdc.pl.in | 2 - scripts/zmsystemctl.pl.in | 2 +- scripts/zmupdate.pl.in | 9 ++- 7 files changed, 84 insertions(+), 84 deletions(-) diff --git a/scripts/ZoneMinder/lib/ZoneMinder.pm b/scripts/ZoneMinder/lib/ZoneMinder.pm index 6d8b3bfc8..87a6b14b7 100644 --- a/scripts/ZoneMinder/lib/ZoneMinder.pm +++ b/scripts/ZoneMinder/lib/ZoneMinder.pm @@ -81,11 +81,6 @@ our @EXPORT = ( @EXPORT_OK ); our $VERSION = $ZoneMinder::Base::VERSION; -BEGIN { - ZoneMinder::Config::zmConfigLoad(); - ZoneMinder::Database::zmDbConnect(); -} - 1; __END__ diff --git a/scripts/ZoneMinder/lib/ZoneMinder/Config.pm.in b/scripts/ZoneMinder/lib/ZoneMinder/Config.pm.in index 754e4a591..06f3656c7 100644 --- a/scripts/ZoneMinder/lib/ZoneMinder/Config.pm.in +++ b/scripts/ZoneMinder/lib/ZoneMinder/Config.pm.in @@ -30,8 +30,6 @@ use warnings; require Exporter; require ZoneMinder::Base; -require ZoneMinder::Database; -use ZoneMinder::ConfigData qw(:all); our @ISA = qw(Exporter ZoneMinder::Base); @@ -70,48 +68,39 @@ use constant ZM_CONFIG => "@ZM_CONFIG@"; # Path to the ZoneMinder config file use Carp; # Load the config from the database into the symbol table -sub zmConfigLoad { - %Config = (); +BEGIN +{ + my $config_file = ZM_CONFIG; + open( my $CONFIG, "<", $config_file ) + or croak( "Can't open config file '$config_file': $!" ); + foreach my $str ( <$CONFIG> ) + { + next if ( $str =~ /^\s*$/ ); + next if ( $str =~ /^\s*#/ ); + my ( $name, $value ) = $str =~ /^\s*([^=\s]+)\s*=\s*(.*?)\s*$/; + if ( ! $name ) { + print( STDERR "Warning, bad line in $config_file: $str\n" ); + next; + } # end if + $name =~ tr/a-z/A-Z/; + $Config{$name} = $value; + } + close( $CONFIG ); - my $config_file = ZM_CONFIG; - open( my $CONFIG, "<", $config_file ) - or croak( "Can't open config file '$config_file': $!" ); - foreach my $str ( <$CONFIG> ) { - next if ( $str =~ /^\s*$/ ); - next if ( $str =~ /^\s*#/ ); - my ( $name, $value ) = $str =~ /^\s*([^=\s]+)\s*=\s*(.*?)\s*$/; - if ( ! $name ) { - print( STDERR "Warning, bad line in $config_file: $str\n" ); - next; - } # end if - $name =~ tr/a-z/A-Z/; - $Config{$name} = $value; - } - close( $CONFIG ); - - my $dbh = ZoneMinder::Database::zmDbConnect() or croak( "Can't connect to db" ); - my $sql = 'select * from Config'; - my $sth = $dbh->prepare_cached( $sql ) or croak( "Can't prepare '$sql': ".$dbh->errstr() ); - my $res = $sth->execute() or croak( "Can't execute: ".$sth->errstr() ); - while( my $config = $sth->fetchrow_hashref() ) { - $Config{$config->{Name}} = $config->{Value}; - } - $sth->finish(); - - if ( ! exists $Config{ZM_SERVER_ID} ) { - $Config{ZM_SERVER_ID} = undef; - $sth = $dbh->prepare_cached( 'SELECT * FROM Servers WHERE Name=?' ); - if ( $Config{ZM_SERVER_NAME} ) { - $res = $sth->execute( $Config{ZM_SERVER_NAME} ); - my $result = $sth->fetchrow_hashref(); - $Config{ZM_SERVER_ID} = $$result{Id}; - } elsif ( $Config{ZM_SERVER_HOST} ) { - $res = $sth->execute( $Config{ZM_SERVER_HOST} ); - my $result = $sth->fetchrow_hashref(); - $Config{ZM_SERVER_ID} = $$result{Id}; + use DBI; + my $dbh = DBI->connect( "DBI:mysql:database=".$Config{ZM_DB_NAME} + .";host=".$Config{ZM_DB_HOST} + , $Config{ZM_DB_USER} + , $Config{ZM_DB_PASS} + ) or croak( "Can't connect to db" ); + my $sql = 'select * from Config'; + my $sth = $dbh->prepare_cached( $sql ) or croak( "Can't prepare '$sql': ".$dbh->errstr() ); + my $res = $sth->execute() or croak( "Can't execute: ".$sth->errstr() ); + while( my $config = $sth->fetchrow_hashref() ) { + $Config{$config->{Name}} = $config->{Value}; } $sth->finish(); - } + #$dbh->disconnect(); } sub loadConfigFromDB { @@ -228,8 +217,6 @@ sub saveConfigToDB { $dbh->{AutoCommit} = $ac; } -1; -__END__ 1; __END__ diff --git a/scripts/ZoneMinder/lib/ZoneMinder/Database.pm b/scripts/ZoneMinder/lib/ZoneMinder/Database.pm index 574c382f5..7dfe0654b 100644 --- a/scripts/ZoneMinder/lib/ZoneMinder/Database.pm +++ b/scripts/ZoneMinder/lib/ZoneMinder/Database.pm @@ -27,11 +27,9 @@ package ZoneMinder::Database; use 5.006; use strict; use warnings; -use DBI; require Exporter; require ZoneMinder::Base; -require ZoneMinder::Config; our @ISA = qw(Exporter ZoneMinder::Base); @@ -66,6 +64,7 @@ our $VERSION = $ZoneMinder::Base::VERSION; # ========================================================================== use ZoneMinder::Logger qw(:all); +use ZoneMinder::Config qw(:all); use Carp; @@ -80,23 +79,23 @@ sub zmDbConnect } if ( !defined( $dbh ) ) { - my ( $host, $port ) = ( $ZoneMinder::Config::Config{ZM_DB_HOST} =~ /^([^:]+)(?::(.+))?$/ ); + my ( $host, $port ) = ( $Config{ZM_DB_HOST} =~ /^([^:]+)(?::(.+))?$/ ); if ( defined($port) ) { - $dbh = DBI->connect( "DBI:mysql:database=".$ZoneMinder::Config::Config{ZM_DB_NAME} + $dbh = DBI->connect( "DBI:mysql:database=".$Config{ZM_DB_NAME} .";host=".$host .";port=".$port - , $ZoneMinder::Config::Config{ZM_DB_USER} - , $ZoneMinder::Config::Config{ZM_DB_PASS} + , $Config{ZM_DB_USER} + , $Config{ZM_DB_PASS} ); } else { - $dbh = DBI->connect( "DBI:mysql:database=".$ZoneMinder::Config::Config{ZM_DB_NAME} - .";host=".$ZoneMinder::Config::Config{ZM_DB_HOST} - , $ZoneMinder::Config::Config{ZM_DB_USER} - , $ZoneMinder::Config::Config{ZM_DB_PASS} + $dbh = DBI->connect( "DBI:mysql:database=".$Config{ZM_DB_NAME} + .";host=".$Config{ZM_DB_HOST} + , $Config{ZM_DB_USER} + , $Config{ZM_DB_PASS} ); } $dbh->trace( 0 ); diff --git a/scripts/ZoneMinder/lib/ZoneMinder/Logger.pm b/scripts/ZoneMinder/lib/ZoneMinder/Logger.pm index 7366ada90..a6a82db87 100644 --- a/scripts/ZoneMinder/lib/ZoneMinder/Logger.pm +++ b/scripts/ZoneMinder/lib/ZoneMinder/Logger.pm @@ -30,9 +30,6 @@ use warnings; require Exporter; require ZoneMinder::Base; -require ZoneMinder::Database; -require ZoneMinder::Config; - our @ISA = qw(Exporter ZoneMinder::Base); @@ -89,6 +86,8 @@ our $VERSION = $ZoneMinder::Base::VERSION; # # ========================================================================== +use ZoneMinder::Config qw(:all); + use DBI; use Carp; use POSIX; @@ -152,7 +151,7 @@ sub new $this->{hasTerm} = -t STDERR; ( $this->{fileName} = $0 ) =~ s|^.*/||; - $this->{logPath} = $ZoneMinder::Config::Config{ZM_PATH_LOGS}; + $this->{logPath} = $Config{ZM_PATH_LOGS}; $this->{logFile} = $this->{logPath}."/".$this->{id}.".log"; $this->{trace} = 0; @@ -165,7 +164,7 @@ sub BEGIN { # Fake the config variables that are used in case they are not defined yet # Only really necessary to support upgrade from previous version - if ( !eval('defined($ZoneMinder::Config::Config{ZM_LOG_DEBUG})') ) + if ( !eval('defined($Config{ZM_LOG_DEBUG})') ) { no strict 'subs'; no strict 'refs'; @@ -223,7 +222,7 @@ sub initialise( @ ) } else { - $tempDatabaseLevel = $ZoneMinder::Config::Config{ZM_LOG_LEVEL_DATABASE}; + $tempDatabaseLevel = $Config{ZM_LOG_LEVEL_DATABASE}; } if ( defined($options{fileLevel}) ) { @@ -231,7 +230,7 @@ sub initialise( @ ) } else { - $tempFileLevel = $ZoneMinder::Config::Config{ZM_LOG_LEVEL_FILE}; + $tempFileLevel = $Config{ZM_LOG_LEVEL_FILE}; } if ( defined($options{syslogLevel}) ) { @@ -239,7 +238,7 @@ sub initialise( @ ) } else { - $tempSyslogLevel = $ZoneMinder::Config::Config{ZM_LOG_LEVEL_SYSLOG}; + $tempSyslogLevel = $Config{ZM_LOG_LEVEL_SYSLOG}; } if ( defined($ENV{'LOG_PRINT'}) ) @@ -255,9 +254,9 @@ sub initialise( @ ) $tempFileLevel = $level if ( defined($level = $this->getTargettedEnv('LOG_LEVEL_FILE')) ); $tempSyslogLevel = $level if ( defined($level = $this->getTargettedEnv('LOG_LEVEL_SYSLOG')) ); - if ( $ZoneMinder::Config::Config{ZM_LOG_DEBUG} ) + if ( $Config{ZM_LOG_DEBUG} ) { - foreach my $target ( split( /\|/, $ZoneMinder::Config::Config{ZM_LOG_DEBUG_TARGET} ) ) + foreach my $target ( split( /\|/, $Config{ZM_LOG_DEBUG_TARGET} ) ) { if ( $target eq $this->{id} || $target eq "_".$this->{id} @@ -266,12 +265,12 @@ sub initialise( @ ) || $target eq "" ) { - if ( $ZoneMinder::Config::Config{ZM_LOG_DEBUG_LEVEL} > NOLOG ) + if ( $Config{ZM_LOG_DEBUG_LEVEL} > NOLOG ) { - $tempLevel = $this->limit( $ZoneMinder::Config::Config{ZM_LOG_DEBUG_LEVEL} ); - if ( $ZoneMinder::Config::Config{ZM_LOG_DEBUG_FILE} ne "" ) + $tempLevel = $this->limit( $Config{ZM_LOG_DEBUG_LEVEL} ); + if ( $Config{ZM_LOG_DEBUG_FILE} ne "" ) { - $tempLogFile = $ZoneMinder::Config::Config{ZM_LOG_DEBUG_FILE}; + $tempLogFile = $Config{ZM_LOG_DEBUG_FILE}; $tempFileLevel = $tempLevel; } } @@ -461,14 +460,32 @@ sub databaseLevel { if ( !$this->{dbh} ) { - $this->{dbh} = ZoneMinder::Database::zmDbConnect(); + my ( $host, $port ) = ( $Config{ZM_DB_HOST} =~ /^([^:]+)(?::(.+))?$/ ); + + if ( defined($port) ) + { + $this->{dbh} = DBI->connect( "DBI:mysql:database=".$Config{ZM_DB_NAME} + .";host=".$host + .";port=".$port + , $Config{ZM_DB_USER} + , $Config{ZM_DB_PASS} + ); + } + else + { + $this->{dbh} = DBI->connect( "DBI:mysql:database=".$Config{ZM_DB_NAME} + .";host=".$Config{ZM_DB_HOST} + , $Config{ZM_DB_USER} + , $Config{ZM_DB_PASS} + ); + } if ( !$this->{dbh} ) { $databaseLevel = NOLOG; Error( "Unable to write log entries to DB, can't connect to database '" - .$ZoneMinder::Config::Config{ZM_DB_NAME} + .$Config{ZM_DB_NAME} ."' on host '" - .$ZoneMinder::Config::Config{ZM_DB_HOST} + .$Config{ZM_DB_HOST} ."'" ); } @@ -488,8 +505,7 @@ sub databaseLevel { if ( $this->{dbh} ) { - # $this->dbh is now the global dbh, so don't close it. - #$this->{dbh}->disconnect(); + $this->{dbh}->disconnect(); undef($this->{dbh}); } } @@ -566,8 +582,8 @@ sub openFile { $LOGFILE->autoflush() if ( $this->{autoFlush} ); - my $webUid = (getpwnam( $ZoneMinder::Config::Config{ZM_WEB_USER} ))[2]; - my $webGid = (getgrnam( $ZoneMinder::Config::Config{ZM_WEB_GROUP} ))[2]; + my $webUid = (getpwnam( $Config{ZM_WEB_USER} ))[2]; + my $webGid = (getgrnam( $Config{ZM_WEB_GROUP} ))[2]; if ( $> == 0 ) { chown( $webUid, $webGid, $this->{logFile} ) diff --git a/scripts/zmdc.pl.in b/scripts/zmdc.pl.in index 1046c1b91..e70c4d568 100644 --- a/scripts/zmdc.pl.in +++ b/scripts/zmdc.pl.in @@ -459,8 +459,6 @@ sub start } elsif ( defined($cpid ) ) { - # Force reconnection to the db. - zmDbConnect(1); logReinit(); dPrint( ZoneMinder::Logger::INFO, "'".join( ' ', ( $daemon, @args ) ) diff --git a/scripts/zmsystemctl.pl.in b/scripts/zmsystemctl.pl.in index b6753fa26..75acae242 100644 --- a/scripts/zmsystemctl.pl.in +++ b/scripts/zmsystemctl.pl.in @@ -48,7 +48,7 @@ use bytes; use autouse 'Pod::Usage'=>qw(pod2usage); @EXTRA_PERL_LIB@ -use ZoneMinder; +use ZoneMinder::Logger qw(:all); my $command = $ARGV[0]; diff --git a/scripts/zmupdate.pl.in b/scripts/zmupdate.pl.in index 176de10a6..ccc76ba02 100644 --- a/scripts/zmupdate.pl.in +++ b/scripts/zmupdate.pl.in @@ -67,7 +67,12 @@ use constant CHECK_INTERVAL => (1*24*60*60); # Interval between version checks # ========================================================================== @EXTRA_PERL_LIB@ -use ZoneMinder; +use ZoneMinder::Base qw(:all); +use ZoneMinder::Config qw(:all); +use ZoneMinder::Logger qw(:all); +use ZoneMinder::General qw(:all); +use ZoneMinder::Database qw(:all); +use ZoneMinder::ConfigAdmin qw( :functions ); use POSIX; use DBI; use Getopt::Long; @@ -364,8 +369,8 @@ if ( $interactive ) { my $sql = "ALTER TABLE $_ ENGINE = InnoDB"; my $sth = $dbh->prepare_cached( $sql ) or die( "Can't prepare '$sql': ".$dbh->errstr() ); my $res = $sth->execute() or die( "Can't execute: ".$sth->errstr() ); + $sth->finish(); } - $sth->finish(); $dbh->do(q|SET sql_mode=''|); # Set mode back to default } }