Cacti / plugin_syslog

Syslog Plugin for Cacti
GNU General Public License v2.0
21 stars 16 forks source link

function syslog_strip_incoming_domains($uniqueID) #205

Closed dream-hunter closed 1 year ago

dream-hunter commented 1 year ago

I've got errors in log:

2022-12-29 08:14:05 - CMDPHP SQL Backtrace: (/plugins/syslog/syslog_process.php[156]:syslog_preprocess_incoming_records(), /plugins/syslog/functions.php[1686]:syslog_strip_incoming_domains(), /plugins/syslog/functions.php[1710]:syslog_db_execute(), /plugins/syslog/database.php[69]:db_execute(), /lib/database.php[272]:db_execute_prepared())

2022-12-29 08:14:05 - CMDPHP ERROR: A DB Exec Failed!, Error: Incorrect database name ''

2022-12-29 08:14:05 - CMDPHP PHP ERROR WARNING Backtrace: (/plugins/syslog/syslog_process.php[156]:syslog_preprocess_incoming_records(), /plugins/syslog/functions.php[1686]:syslog_strip_incoming_domains(), /plugins/syslog/functions.php[1707]:CactiErrorHandler()) 2022-12-29 08:14:05 - ERROR PHP WARNING in Plugin 'syslog': Undefined variable $syslogdb_default in file: /usr/local/share/cacti/plugins/syslog/functions.php on line: 1707

Adding line in to the function syslog_strip_incoming_domains fixes bug:

global $syslogdb_default;

A final variant:

function syslog_strip_incoming_domains($uniqueID) {
        global $syslogdb_default;
        $syslog_domains = read_config_option('syslog_domains');
        if ($syslog_domains != '') {
                $domains = explode(',', trim($syslog_domains));

                foreach($domains as $domain) {
                        syslog_db_execute('UPDATE `' . $syslogdb_default . "`.`syslog_incoming`
                                SET host = SUBSTRING_INDEX(host, '.', 1)
                                WHERE host LIKE '%$domain'
                                AND `status` = $uniqueID");
                }
        }
}
TheWitness commented 1 year ago

Thanks for reporting this. It's been fixed.