diff -urN ../base-1.4.5.orig/base_db_common.php ./base_db_common.php --- ../base-1.4.5.orig/base_db_common.php 2010-03-05 10:06:16.000000000 -0500 +++ ./base_db_common.php 2014-03-12 15:00:22.000000000 -0400 @@ -80,7 +80,7 @@ " "._ERRPHPERROR2.""; } - if ( ($DBtype == "mysql") || ($DBtype == "mysqlt") ) + if ( ($DBtype == "mysql") || ($DBtype == "mysqlt") || ($DBtype == "mysqli")) { if ( !(function_exists("mysql_connect")) ) { diff -urN ../base-1.4.5.orig/base_graph_display.php ./base_graph_display.php --- ../base-1.4.5.orig/base_graph_display.php 2010-03-05 10:06:17.000000000 -0500 +++ ./base_graph_display.php 2014-03-12 14:59:57.000000000 -0400 @@ -114,7 +114,7 @@ else { // Create the graph area, legends on bottom -- Alejandro - $Graph =& new Image_Graph(array('driver'=>'gd', + $Graph = new Image_Graph(array('driver'=>'gd', 'width'=>$width, 'height'=>$height)); } @@ -320,27 +320,27 @@ // special case '"I0" => "private network (rfc 1918)"' and // '"** (private network) " => "private network (rfc 1918)"' - if (ereg("rfc 1918", $tmp, $substring) || (ereg("[*][*] \(private network\) ", $tmp_lower, $substring))) + if (preg_match("/rfc 1918/", $tmp, $substring) || (preg_match("/[*][*] \(private network\) /", $tmp_lower, $substring))) { $Dataset->addPoint("private network (rfc 1918)", $xdata[$i][1]); } // special case '?? (Not Found) ' => 'unknown' - elseif(ereg("[?][?][ \t]+\(Not Found\)[ \t]*", $tmp, $substring)) + elseif(preg_match("/[?][?][ \t]+\(Not Found\)[ \t]*/", $tmp, $substring)) { $Dataset->addPoint("unknown", $xdata[$i][1]); } // anything inside parentheses, following a 2-letter TLD: - elseif (ereg("^[-a-zA-Z0-9]{2}[ \t]\((.+)\)[ \t]*$", $tmp, $substring)) + elseif (preg_match("/^[-a-zA-Z0-9]{2}[ \t]\((.+)\)[ \t]*$/", $tmp, $substring)) { $Dataset->addPoint($substring[1], $xdata[$i][1]); } // anything after two-letter top level domain names and after one space or tab: - elseif (ereg("[ \t]*[-a-zA-Z0-9]{2}[ \t]([-a-zA-Z0-9]+[-a-zA-Z0-9 ]*)", $tmp, $substring)) + elseif (preg_match("/[ \t]*[-a-zA-Z0-9]{2}[ \t]([-a-zA-Z0-9]+[-a-zA-Z0-9 ]*)/", $tmp, $substring)) { $Dataset->addPoint($substring[1], $xdata[$i][1]); } // two-letter top level domain names right at the beginning: - elseif (ereg("[ \t]*([-a-zA-Z0-9]{2})[ \t]", $tmp_lower, $substring)) + elseif (preg_match("/[ \t]*([-a-zA-Z0-9]{2})[ \t]/", $tmp_lower, $substring)) { $Dataset->addPoint($substring[1], $xdata[$i][1]); } diff -urN ../base-1.4.5.orig/base_qry_common.php ./base_qry_common.php --- ../base-1.4.5.orig/base_qry_common.php 2010-03-05 10:06:17.000000000 -0500 +++ ./base_qry_common.php 2014-03-12 14:59:53.000000000 -0400 @@ -773,10 +773,10 @@ } } /* if have chosen the address type to be both source and destination */ - if ( ereg("ip_both", $tmp) ) + if ( preg_match("/ip_both/", $tmp) ) { - $tmp_src = ereg_replace("ip_both","ip_src",$tmp); - $tmp_dst = ereg_replace("ip_both","ip_dst",$tmp); + $tmp_src = preg_replace("/ip_both/","ip_src",$tmp); + $tmp_dst = preg_replace("/ip_both/","ip_dst",$tmp); if ( $ip_addr[$i][2] == '=' ) $tmp = "(".$tmp_src.') OR ('.$tmp_dst.')'; diff -urN ../base-1.4.5.orig/base_qry_sqlcalls.php ./base_qry_sqlcalls.php --- ../base-1.4.5.orig/base_qry_sqlcalls.php 2010-03-05 10:06:17.000000000 -0500 +++ ./base_qry_sqlcalls.php 2014-03-12 14:59:53.000000000 -0400 @@ -259,9 +259,9 @@ $line = split (" ", $current_sig_txt); foreach ($line as $ps_element) { - if ( ereg("[0-9]*\.[0-9]*\.[0-9]*\.[0-9]", $ps_element) ) + if ( preg_match("/[0-9]*\.[0-9]*\.[0-9]*\.[0-9]/", $ps_element) ) { - $ps_element = ereg_replace (":", "", $ps_element); + $ps_element = preg_replace ("/:/", "", $ps_element); qroPrintEntry("". $ps_element.""); } diff -urN ../base-1.4.5.orig/base_stat_common.php ./base_stat_common.php --- ../base-1.4.5.orig/base_stat_common.php 2010-03-05 10:06:17.000000000 -0500 +++ ./base_stat_common.php 2014-03-12 15:00:16.000000000 -0400 @@ -312,7 +312,7 @@ if (!stristr($where, "WHERE") && $where != "") $where = " WHERE $where "; - if ( $db->DB_type == "mysql" ) + if ( $db->DB_type == "mysql" || $db->DB_type == "mysqli" ) { if ( $join == "" && $where == "") $result = $db->baseExecute("SELECT COUNT(DISTINCT acid_event.ip_src, acid_event.ip_dst, acid_event.ip_proto) FROM acid_event"); diff -urN ../base-1.4.5.orig/base_stat_ipaddr.php ./base_stat_ipaddr.php --- ../base-1.4.5.orig/base_stat_ipaddr.php 2010-03-05 10:06:17.000000000 -0500 +++ ./base_stat_ipaddr.php 2014-03-12 14:59:53.000000000 -0400 @@ -135,7 +135,7 @@ print "
\n"; */ - if(ereg($ip, $contents)) { + if(preg_match("/$ip/", $contents)) { $total++; if( $total % 2 == 0 ) { $color="DDDDDD"; @@ -143,7 +143,7 @@ $color="FFFFFF"; } - $contents = ereg_replace(" ", " ", $contents); + $contents = preg_replace("/ /", " ", $contents); $elements = explode(" ", $contents); echo ''. @@ -183,7 +183,7 @@ print ""; /* - ereg("([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*):([0-9]*)",$elements[3],$store); + preg_match("/([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*):([0-9]*)/",$elements[3],$store); $source_ip = $store[1]; $source_port = $store[2]; if (empty($source_ip)) @@ -197,7 +197,7 @@ echo '' . $source_ip . ''; echo '' . $source_port . ''; - ereg("([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*):([0-9]*)",$elements[5],$store); + preg_match("/([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*):([0-9]*)/",$elements[5],$store); $destination_ip = $store[1]; $destination_port = $store[2]; if (empty($destination_ip)) diff -urN ../base-1.4.5.orig/includes/base_db.inc.php ./includes/base_db.inc.php --- ../base-1.4.5.orig/includes/base_db.inc.php 2010-03-05 10:06:18.000000000 -0500 +++ ./includes/base_db.inc.php 2014-03-12 15:00:09.000000000 -0400 @@ -77,7 +77,16 @@ { GLOBAL $sql_trace_mode, $sql_trace_file; - $this->DB = NewADOConnection(); + // If they have mysqli, use it. Otherwise, fall back to the older "mysql" extension. + if ($this->DB_type == 'mysql') { + if (extension_loaded('mysqli')) { + $this->DB_type = 'mysqli'; + } else { + $this->DB_type = 'mysql'; + } + } + + $this->DB = NewADOConnection($this->DB_type); $this->DB_name = $database; $this->DB_host = $host; $this->DB_port = $port; @@ -108,7 +117,7 @@ /* Set the database schema version number */ $sql = "SELECT vseq FROM schema"; - if ($this->DB_type == "mysql") $sql = "SELECT vseq FROM `schema`"; + if ($this->DB_type == "mysql" || $this->DB_type == "mysqli") $sql = "SELECT vseq FROM `schema`"; if ($this->DB_type == "mssql") $sql = "SELECT vseq FROM [schema]"; $result = $this->DB->Execute($sql); @@ -138,8 +147,17 @@ function basePConnect($database, $host, $port, $username, $password) { GLOBAL $sql_trace_mode, $sql_trace_file; + + // If they have mysqli, use it. Otherwise, fall back to the older "mysql" extension. + if ($this->DB_type == 'mysql') { + if (extension_loaded('mysqli')) { + $this->DB_type = 'mysqli'; + } else { + $this->DB_type = 'mysql'; + } + } - $this->DB = NewADOConnection(); + $this->DB = NewADOConnection($this->DB_type); $this->DB_name = $database; $this->DB_host = $host; $this->DB_port = $port; @@ -171,7 +189,7 @@ /* Set the database schema version number */ $sql = "SELECT vseq FROM schema"; if ($this->DB_type == "mssql") $sql = "SELECT vseq FROM [schema]"; - if ($this->DB_type == "mysql") $sql = "SELECT vseq FROM `schema`"; + if ($this->DB_type == "mysql" || $this->DB_type == "mysqli") $sql = "SELECT vseq FROM `schema`"; $result = $this->DB->Execute($sql); if ( $this->baseErrorMessage() != "" ) @@ -209,7 +227,7 @@ /* ** Begin DB specific SQL fix-up ** */ if ($this->DB_type == "mssql") { - $sql = eregi_replace("''", "NULL", $sql); + $sql = preg_replace("/''/i", "NULL", $sql); } if ($this->DB_type == "oci8") @@ -231,7 +249,7 @@ $rs = new baseRS($this->DB->Execute($sql), $this->DB_type); else { - if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || + if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "mysqli") || ($this->DB_type == "maxsql") ) { $rs = new baseRS($this->DB->Execute($sql." LIMIT ".$start_row.", ".$num_rows), @@ -321,7 +339,7 @@ * the current point, so it can't be here and needs to be in the actual script after calling this function * -- srh (02/01/2001) */ - if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || + if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "mysqli") || ($this->DB_type == "maxsql") || ($this->DB_type == "mssql")) return $this->DB->Insert_ID(); else if ($this->DB_type == "postgres" ||($this->DB_type == "oci8")) @@ -336,7 +354,7 @@ function baseSQL_YEAR($func_param, $op, $timestamp) { - if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || + if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "mysqli") || ($this->DB_type == "maxsql") || ($this->DB_type == "mssql") ) return " YEAR($func_param) $op $timestamp "; else if( $this->DB_type == "oci8" ) @@ -347,7 +365,7 @@ function baseSQL_MONTH($func_param, $op, $timestamp) { - if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || + if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "mysqli") || ($this->DB_type == "maxsql") || ($this->DB_type == "mssql") ) return " MONTH($func_param) $op $timestamp "; else if( $this->DB_type == "oci8" ) @@ -358,7 +376,7 @@ function baseSQL_DAY($func_param, $op, $timestamp) { - if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "maxsql") ) + if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "mysqli") || ($this->DB_type == "maxsql") ) return " DAYOFMONTH($func_param) $op $timestamp "; else if($this->DB_type == "oci8") return " to_number( to_char( $func_param, 'DD' ) ) $op $timestamp "; @@ -370,7 +388,7 @@ function baseSQL_HOUR($func_param, $op, $timestamp) { - if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "maxsql") ) + if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "mysqli") || ($this->DB_type == "maxsql") ) return " HOUR($func_param) $op $timestamp "; else if($this->DB_type == "oci8") return " to_number( to_char( $func_param, 'HH' ) ) $op $timestamp "; @@ -382,7 +400,7 @@ function baseSQL_MINUTE($func_param, $op, $timestamp) { - if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "maxsql") ) + if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "mysqli") || ($this->DB_type == "maxsql") ) return " MINUTE($func_param) $op $timestamp "; else if($this->DB_type == "oci8") return " to_number( to_char( $func_param, 'MI' ) ) $op $timestamp "; @@ -394,7 +412,7 @@ function baseSQL_SECOND($func_param, $op, $timestamp) { - if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "maxsql") ) + if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "mysqli") || ($this->DB_type == "maxsql") ) return " SECOND($func_param) $op $timestamp "; else if($this->DB_type == "oci8") return " to_number( to_char( $func_param, 'SS' ) ) $op $timestamp "; @@ -406,7 +424,7 @@ function baseSQL_UNIXTIME($func_param, $op, $timestamp) { - if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "maxsql") ) + if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "mysqli") || ($this->DB_type == "maxsql") ) { return " UNIX_TIMESTAMP($func_param) $op $timestamp "; } @@ -432,7 +450,7 @@ function baseSQL_TIMESEC($func_param, $op, $timestamp) { - if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "maxsql") ) + if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "mysqli") || ($this->DB_type == "maxsql") ) return " TIME_TO_SEC($func_param) $op $timestamp "; else if($this->DB_type == "oci8") return " to_number( $func_param ) $op $timestamp "; @@ -549,7 +567,7 @@ // Is This if statement necessary? -- Kevin /* MS SQL Server 7, MySQL, Sybase, and Postgres natively support this function */ - if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "maxsql") || + if ( ($this->DB_type == "mysql") || ($this->DB_type == "mysqlt") || ($this->DB_type == "mysqli") || ($this->DB_type == "maxsql") || ($this->DB_type == "mssql") || ($this->DB_type == "sybase") || ($this->DB_type == "postgres") || ($this->DB_type == "oci8")) return $this->row->RecordCount(); @@ -623,6 +641,7 @@ if ( !( ($type == "mysql") || ($type == "mysqlt") || + ($type == "mysqli") || ($type == "maxsql") || ($type == "postgres") || ($type == "mssql") || diff -urN ../base-1.4.5.orig/includes/base_net.inc.php ./includes/base_net.inc.php --- ../base-1.4.5.orig/includes/base_net.inc.php 2010-03-05 10:06:18.000000000 -0500 +++ ./includes/base_net.inc.php 2014-03-12 14:59:53.000000000 -0400 @@ -391,7 +391,7 @@ $line = explode(" ", $response_l[$i]); for ($j=0; $j < sizeof($line); $j++ ) { - if ( eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $line[$j]) ) + if ( preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", $line[$j]) ) { if ( $email == "" ) $email = $line[$j]; diff -urN ../base-1.4.5.orig/includes/base_signature.inc.php ./includes/base_signature.inc.php --- ../base-1.4.5.orig/includes/base_signature.inc.php 2010-03-05 10:06:18.000000000 -0500 +++ ./includes/base_signature.inc.php 2014-03-12 14:59:53.000000000 -0400 @@ -139,7 +139,7 @@ { if ($tmp_ref_system_name == "snort") { - if (ereg("([0-9]+):([0-9]+)", $ref_tag, $backref)) + if (preg_match("/([0-9]+):([0-9]+)/", $ref_tag, $backref)) { if ($backref[1] == "1") { diff -urN ../base-1.4.5.orig/includes/base_state_citems.inc.php ./includes/base_state_citems.inc.php --- ../base-1.4.5.orig/includes/base_state_citems.inc.php 2010-03-05 10:06:18.000000000 -0500 +++ ./includes/base_state_citems.inc.php 2014-03-12 14:59:53.000000000 -0400 @@ -963,7 +963,7 @@ for ( $i = 0; $i < $this->criteria_cnt; $i++ ) { if ( (isset ($this->criteria[$i][3])) && - (ereg("([0-9]*)\.([0-9]*)\.([0-9]*)\.([0-9]*)", $this->criteria[$i][3])) ) + (preg_match("/([0-9]*)\.([0-9]*)\.([0-9]*)\.([0-9]*)/", $this->criteria[$i][3])) ) { $tmp_ip_str = $this->criteria[$i][7] = $this->criteria[$i][3]; $this->criteria[$i][3] = strtok($tmp_ip_str, "."); diff -urN ../base-1.4.5.orig/includes/base_state_common.inc.php ./includes/base_state_common.inc.php --- ../base-1.4.5.orig/includes/base_state_common.inc.php 2010-03-05 10:06:18.000000000 -0500 +++ ./includes/base_state_common.inc.php 2014-03-12 14:59:53.000000000 -0400 @@ -181,7 +181,7 @@ if ( ($valid_data & VAR_SCORE) > 0 ) $regex_mask = $regex_mask . "\-"; - return ereg_replace("[^".$regex_mask."]", "", $item); + return preg_replace("/[^".$regex_mask."]/", "", $item); } /* *********************************************************************** diff -urN ../base-1.4.5.orig/includes/base_state_criteria.inc.php ./includes/base_state_criteria.inc.php --- ../base-1.4.5.orig/includes/base_state_criteria.inc.php 2010-03-05 10:06:18.000000000 -0500 +++ ./includes/base_state_criteria.inc.php 2014-03-12 14:59:53.000000000 -0400 @@ -252,7 +252,7 @@ if ( isset($_POST['current_view']) ) $query_string .= "&current_view=".$_POST['current_view']; if ( isset($_POST['submit']) ) $query_string .= "&submit=".$_POST['submit']; - $query_string = ereg_replace("back=1&", "", CleanVariable($query_string, VAR_PERIOD | VAR_DIGIT | VAR_PUNC | VAR_LETTER)); + $query_string = preg_replace("/back=1&/", "", CleanVariable($query_string, VAR_PERIOD | VAR_DIGIT | VAR_PUNC | VAR_LETTER)); ++$_SESSION['back_list_cnt']; $_SESSION['back_list'][$_SESSION['back_list_cnt']] = diff -urN ../base-1.4.5.orig/setup/setup2.php ./setup/setup2.php --- ../base-1.4.5.orig/setup/setup2.php 2010-03-05 10:06:18.000000000 -0500 +++ ./setup/setup2.php 2014-03-12 15:00:05.000000000 -0400 @@ -68,6 +68,15 @@ $arcdbpasswd = ImportHTTPVar("arcdbpasswd"); $arcdbname = ImportHTTPVar("arcdbname", VAR_ALPHA | VAR_SCORE | VAR_USCORE); + // If they have mysqli, use it. Otherwise, fall back to the older "mysql" extension. + if ($dbtype == 'mysql') { + if (extension_loaded('mysqli')) { + $dbtype = 'mysqli'; + } else { + $dbtype = 'mysql'; + } + } + $db = NewADOConnection($dbtype); $dbconnect = $db->Connect( ( ( $dbport == "") ? $dbhost : ($dbhost.":".$dbport) ), $dbusername, $dbpasswd, $dbname); diff -urN ../base-1.4.5.orig/setup/setup_db.inc.php ./setup/setup_db.inc.php --- ../base-1.4.5.orig/setup/setup_db.inc.php 2010-03-05 10:06:18.000000000 -0500 +++ ./setup/setup_db.inc.php 2014-03-12 15:00:01.000000000 -0400 @@ -45,7 +45,7 @@ } if ( !$tblBaseAG_present ) { - if ( $db->DB_type == "mysql" ) { + if ( $db->DB_type == "mysql" || $db->DB_type == "mysqli") { $sql = 'CREATE TABLE acid_ag ( ag_id INT UNSIGNED NOT NULL AUTO_INCREMENT, ag_name VARCHAR(40), ag_desc TEXT, @@ -114,7 +114,7 @@ } if ( !$tblBaseAGAlert_present ) { - if ( $db->DB_type == "mysql" ) { + if ( $db->DB_type == "mysql" || $db->DB_type == "mysqli") { $sql = 'CREATE TABLE acid_ag_alert( ag_id INT UNSIGNED NOT NULL, ag_sid INT UNSIGNED NOT NULL, ag_cid INT UNSIGNED NOT NULL, @@ -151,7 +151,7 @@ } if ( !$tblBaseIPCache_present ) { - if ( $db->DB_type == "mysql" ) { + if ( $db->DB_type == "mysql" || $db->DB_type == "mysqli") { $sql = 'CREATE TABLE acid_ip_cache( ipc_ip INT UNSIGNED NOT NULL, ipc_fqdn VARCHAR(50), ipc_dns_timestamp DATETIME, @@ -193,7 +193,7 @@ } if ( !$tblBaseEvent_present ) { - if ( $db->DB_type == "mysql" ) { + if ( $db->DB_type == "mysql" || $db->DB_type == "mysqli") { if ( $db->baseGetDBversion() < 100 ) $sig_ddl = "signature VARCHAR(255) NOT NULL,"; else @@ -319,7 +319,7 @@ /* Added for base_roles and base_users -- Kevin */ if ( !$tblBaseRoles_present ) { - if ( $db->DB_type == "mysql" ) { + if ( $db->DB_type == "mysql" || $db->DB_type == "mysqli") { $sql = 'CREATE TABLE base_roles ( role_id int(11) NOT NULL, role_name varchar(20) NOT NULL, role_desc varchar(75) NOT NULL, @@ -385,7 +385,7 @@ } if ( !$tblBaseUsers_present ) { - if ( $db->DB_type == "mysql" ) { + if ( $db->DB_type == "mysql" || $db->DB_type == "mysqli") { $sql = 'CREATE TABLE base_users ( usr_id int(11) NOT NULL, usr_login varchar(25) NOT NULL, usr_pwd varchar(32) NOT NULL,