// Is the link up?
if ((!isCrackerTrackerDatabaseLinkUp()) && (!empty($GLOBALS['ctracker_host'])) && (!empty($GLOBALS['ctracker_dbname'])) && (!empty($GLOBALS['ctracker_user']))) {
// Then connect to the database
- $GLOBALS['ctracker_link'] = mysql_connect($GLOBALS['ctracker_host'], $GLOBALS['ctracker_user'], $GLOBALS['ctracker_password']) or crackerTrackerDatabaseError(__FUNCTION__, __LINE__);
+ $GLOBALS['ctracker_link'] = mysqli_connect($GLOBALS['ctracker_host'], $GLOBALS['ctracker_user'], $GLOBALS['ctracker_password'], $GLOBALS['ctracker_dbname']) or crackerTrackerDatabaseError(__FUNCTION__, __LINE__);
- // Select the database
- if (!mysql_select_db($GLOBALS['ctracker_dbname'], $GLOBALS['ctracker_link'])) {
- // Attempt has failed
+ // Check on connection and config table
+ if (!isCrackerTrackerDatabaseLinkUp()) {
+ // Connect didn't work
crackerTrackerDatabaseError(__FUNCTION__, __LINE__);
} elseif (isCrackerTrackerTableCreated('ctracker_config')) {
// Load the config
crackerTrackerLoadConfig();
- }
+ } // END - if
} else {
// Init fake config
crackerTrackerInitFakeConfig();
// Checks if the link is up
function isCrackerTrackerDatabaseLinkUp () {
- return ((isset($GLOBALS['ctracker_link'])) && (is_resource($GLOBALS['ctracker_link'])));
+ // Is the instance at least set?
+ if (isset($GLOBALS['ctracker_link'])) {
+ // Debug message
+ //* DEBUG: */ error_log('isset='.intval(isset($GLOBALS['ctracker_link'])) . ',is_object=' . intval(is_object($GLOBALS['ctracker_link'])) . ',mysqli_connect_errno=' . mysqli_connect_errno());
+ } else {
+ // Not set!
+ //* DEBUG: */ error_log('ctracker_link not set.');
+ }
+
+ return ((isset($GLOBALS['ctracker_link'])) && (is_object($GLOBALS['ctracker_link'])) && (mysqli_connect_errno() == 0));
}
// Database error detected
// Output error
print 'Function : ' . $F . '<br />';
print 'Line : ' . $L . '<br />';
- print 'MySQL error : ' . mysql_error() . '<br />';
+ if (isset($GLOBALS['ctracker_link'])) {
+ print 'MySQL error : ' . mysqli_error($GLOBALS['ctracker_link']) . '<br />';
+ } else {
+ print 'No MySQLi available.<br />';
+ }
print 'Last SQL : '. $GLOBALS['ctracker_last_sql'] . '<br />';
} // END - if
// Is the link up?
if (isCrackerTrackerDatabaseLinkUp()) {
// Did it work?
- if (!mysql_close($GLOBALS['ctracker_link'])) {
- // Remove all data from global space
- unsetCtrackerData();
-
+ if (!mysqli_close($GLOBALS['ctracker_link'])) {
// Attempt has failed
crackerTrackerDatabaseError(__FUNCTION__, __LINE__);
} // END - if
} // END - if
-
- // Remove all data from global space
- unsetCtrackerData();
}
// Inserts given array, if IP/check_worm combination was not found
runCrackerTrackerSql($SQL, __FUNCTION__, __LINE__);
// Remember the last insert id
- $GLOBALS['ctracker_last_insert_id'] = mysql_insert_id($GLOBALS['ctracker_link']) or crackerTrackerDatabaseError(__FUNCTION__, __LINE__);
+ $GLOBALS['ctracker_last_insert_id'] = mysqli_insert_id($GLOBALS['ctracker_link']) or crackerTrackerDatabaseError(__FUNCTION__, __LINE__);
} else {
// Only update the entry
updateCrackerTrackerEntry($rowData);
$SQL = 'SELECT `id` FROM `ctracker_data` WHERE (`remote_addr`="' . crackerTrackerEscapeString($rowData['remote_addr']) . '" OR `proxy_addr`="' . crackerTrackerEscapeString($rowData['proxy_addr']) . '") AND `check_worm` = "' . crackerTrackerEscapeString($rowData['check_worm']) . '" AND `server_name`="' . crackerTrackerEscapeString($rowData['server_name']) . '" LIMIT 1';
// Run the SQL and check if we have one line
- return ((isCrackerTrackerDatabaseLinkUp()) && (mysql_num_rows(runCrackerTrackerSql($SQL, __FUNCTION__, __LINE__)) == 1));
+ return ((isCrackerTrackerDatabaseLinkUp()) && (mysqli_num_rows(runCrackerTrackerSql($SQL, __FUNCTION__, __LINE__)) == 1));
}
// Escapes the string
function crackerTrackerEscapeString ($string) {
// Is the link up?
if (!isCrackerTrackerDatabaseLinkUp()) {
- // Then we cant use mysql_real_escape_string!
+ // Then we cant use mysqli_real_escape_string!
$string = addslashes($string);
- } elseif (function_exists('mysql_real_escape_string')) {
- // Use mysql_real_escape_string()
- $string = mysql_real_escape_string($string, $GLOBALS['ctracker_link']);
- } elseif (function_exists('mysql_escape_string')) {
- // Use deprecated function
- $string = mysql_escape_string($string, $GLOBALS['ctracker_link']);
+ } elseif (function_exists('mysqli_real_escape_string')) {
+ // Use mysqli_real_escape_string()
+ $string = mysqli_real_escape_string($GLOBALS['ctracker_link'], $string);
} else {
// Use fall-back (bad!)
$string = addslashes($string);
$GLOBALS['ctracker_last_sql'] = $SQL;
// Run the query
- $GLOBALS['ctracker_last_result'] = mysql_query($SQL, $GLOBALS['ctracker_link']) or crackerTrackerDatabaseError(__FUNCTION__, __LINE__);
+ $GLOBALS['ctracker_last_result'] = mysqli_query($GLOBALS['ctracker_link'], $SQL) or crackerTrackerDatabaseError(__FUNCTION__, __LINE__);
// And return it
return $GLOBALS['ctracker_last_result'];
$result = runCrackerTrackerSql('SHOW TABLES', __FUNCTION__, __LINE__);
// Is our table there?
- while (list($tab) = mysql_fetch_row($result)) {
+ while (list($tab) = mysqli_fetch_row($result)) {
+ // Debug message
+ //* NOISY-DEBUG: */ error_log('tab=' . $tab);
+
// Is the table there?
if ($tab == $table) {
// Okay, found. So abort
} // END - if
// Free result
- mysql_free_result($result) or crackerTrackerDatabaseError(__FUNCTION__, __LINE__);
+ freeCrackerTrackerResult($result);
// Return result
return $found;
$result = runCrackerTrackerSql('SELECT * FROM `ctracker_config` WHERE `ctracker_config`=1 LIMIT 1', __FUNCTION__, __LINE__);
// And get it
- $GLOBALS['ctracker_config'] = mysql_fetch_array($result);
+ $GLOBALS['ctracker_config'] = mysqli_fetch_array($result);
// Free result
- mysql_free_result($result) or crackerTrackerDatabaseError(__FUNCTION__, __LINE__);
+ freeCrackerTrackerResult($result);
}
// Getter for config
$result = runCrackerTrackerSql("SELECT COUNT(`id`) AS `cnt` FROM `ctracker_data` USE INDEX (`remote_proxy_last`) WHERE `remote_addr`='" . determineCrackerTrackerRealRemoteAddress() . "' OR `proxy_addr`='" . getenv('REMOTE_ADDR') . "' LIMIT 1", __FUNCTION__, __LINE__);
// Get row count
- list($rows) = mysql_fetch_row($result);
+ list($rows) = mysqli_fetch_row($result);
// Is there one entry?
$found = ($rows > 0);
$result = runCrackerTrackerSql("SELECT SQL_SMALL_RESULT * FROM `ctracker_data` USE INDEX (`remote_proxy_last`) WHERE `remote_addr`='" . determineCrackerTrackerRealRemoteAddress() . "' OR `proxy_addr`='" . getenv('REMOTE_ADDR') . "' ORDER BY `last_attempt` DESC LIMIT 1", __FUNCTION__, __LINE__);
// Cache the entry
- $GLOBALS['ctracker_last_suspicious_entry'] = mysql_fetch_array($result);
+ $GLOBALS['ctracker_last_suspicious_entry'] = mysqli_fetch_array($result);
} // END - if
// Free result
- mysql_free_result($result) or crackerTrackerDatabaseError(__FUNCTION__, __LINE__);
+ freeCrackerTrackerResult($result);
// Return the result
return $found;
$result = runCrackerTrackerSql("SELECT * FROM `ctracker_ticket` WHERE `ctracker_ticket_remote_addr`='" . determineCrackerTrackerRealRemoteAddress() . "' OR `ctracker_ticket_proxy_addr`='" . getenv('REMOTE_ADDR') . "' LIMIT 1", __FUNCTION__, __LINE__);
// Do we have a ticket?
- $found = (mysql_num_rows($result) == 1);
+ $found = (mysqli_num_rows($result) == 1);
// And again?
if ($found === TRUE) {
// Cache the ticket data
- $GLOBALS['ctracker_last_ticket'] = mysql_fetch_array($result);
+ $GLOBALS['ctracker_last_ticket'] = mysqli_fetch_array($result);
} // END - if
// Free result
- mysql_free_result($result) or crackerTrackerDatabaseError(__FUNCTION__, __LINE__);
+ freeCrackerTrackerResult($result);
// Return the result
return $found;
}
}
+// Frees given result instance
+function freeCrackerTrackerResult (mysqli_result $result) {
+ // Free result
+ $result->free();
+}
+
// [EOF]
?>