* $Author:: $ *
* -------------------------------------------------------------------- *
* Copyright (c) 2003 - 2009 by Roland Haeder *
- * Copyright (c) 2009 - 2012 by Mailer Developer Team *
+ * Copyright (c) 2009 - 2013 by Mailer Developer Team *
* For more information visit: http://mxchange.org *
* *
* This program is free software; you can redistribute it and/or modify *
die();
} // END - if
-// Inserts a given email (pattern) in blacklist if not found
-function insertEmailInBlacklist ($email, $id) {
- // Is this feature turned on and is the URL not there?
- if (!isEmailBlacklistEnabled()) {
- // Not enabled, then please don't call this function
- reportBug(__FUNCTION__, __LINE__, 'URL blacklisting is disabled, email=' . $email . ',id=' . $id);
- } elseif (!isEmailBlacklisted($email)) {
- // Did not find a record so we can add it... :)
- SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_blacklist` (`data`, `pool_id`, `type`) VALUES ('%s', %s, 'EMAIL')",
- array(
- $email,
- $id
- ), __FUNCTION__, __LINE__);
- } // END - if
-}
-
// Checks whether given email is blacklisted
function isEmailBlacklisted ($email) {
+ // Call inner function
+ return isGenericBlacklisted('email', $email);
+}
+
+// Checks whether given IP is blacklisted
+function isIpBlacklisted ($ip) {
+ // Call inner function
+ return isGenericBlacklisted('ip', $ip);
+}
+
+// Checks whether given URL is blacklisted
+function isUrlBlacklisted ($url) {
+ // Call inner function
+ return isGenericBlacklisted('url', $email);
+}
+
+// Checks whether given data is blacklisted
+function isGenericBlacklisted ($type, $data) {
// Mark it as not listed by default
$listed = FALSE;
// Is black-listing enbaled?
- if (!isEmailBlacklistEnabled()) {
+ if (!isGenericBlacklistEnabled($type)) {
// No, then all emails are not in this list
return FALSE;
- } elseif (!isset($GLOBALS['blacklist_data']['email'][$email])) {
+ } elseif (!isset($GLOBALS['blacklist_data'][$type][$data])) {
// Check black-list for given email
- $result = SQL_QUERY_ESC("SELECT UNIX_TIMESTAMP(`added`) AS `added` FROM `{?_MYSQL_PREFIX?}_blacklist` WHERE '%s' REGEXP `data` AND `type`='EMAIL' LIMIT 1",
- array($email), __FUNCTION__, __LINE__);
+ $result = sqlQueryEscaped("SELECT
+ `id`,
+ `data`,
+ `pool_id`,
+ `provider`,
+ `type`,
+ UNIX_TIMESTAMP(`added`) AS `added`
+FROM
+ `{?_MYSQL_PREFIX?}_blacklist`
+WHERE
+ '%s' REGEXP `data` AND
+ `type`='%s'
+LIMIT 1",
+ array(
+ $data,
+ strtoupper($type)
+ ), __FUNCTION__, __LINE__);
// Is there an entry?
- if (SQL_NUMROWS($result) == 1) {
+ if (sqlNumRows($result) == 1) {
// Jupp, we got one listed
- $GLOBALS['blacklist_data']['email'][$email] = SQL_FETCHARRAY($result);
+ $GLOBALS['blacklist_data'][$type][$data] = sqlFetchArray($result);
// Mark it as listed
$listed = TRUE;
} // END - if
// Free result
- SQL_FREERESULT($result);
+ sqlFreeResult($result);
} else {
// Is found in cache -> black-listed
$listed = TRUE;
return $listed;
}
+// Inserts a given email (pattern) in blacklist if not found
+function insertEmailInBlacklist ($email, $provider = 'BLACKLIST') {
+ // Call inner function
+ return insertGenericInBlacklist ('email', $email, NULL, $provider);
+}
+
+// Inserts a given IP (pattern) in blacklist if not found
+function insertIpInBlacklist ($ip, $provider = 'BLACKLIST') {
+ // Call inner function
+ return insertGenericInBlacklist ('ip', $ip, NULL, $provider);
+}
+
+// Inserts a given URL (pattern) in blacklist if not found
+function insertUrlInBlacklist ($url, $poolId, $provider = 'BLACKLIST') {
+ // Call inner function
+ return insertGenericInBlacklist ('url', $url, $poolId, $provider);
+}
+
// Inserts a given URL in blacklist if not found
-function insertUrlInBlacklist ($url, $id) {
+function insertGenericInBlacklist ($type, $data, $poolId = NULL, $provider = 'BLACKLIST') {
// Is this feature turned on and is the URL not there?
- if (!isUrlBlacklistEnabled()) {
+ if (!isGenericBlacklistEnabled($type)) {
// Not enabled, then please don't call this function
- reportBug(__FUNCTION__, __LINE__, 'URL blacklisting is disabled, url=' . $url . ',id=' . $id);
- } elseif (!isUrlBlacklisted($url)) {
+ reportBug(__FUNCTION__, __LINE__, 'Blacklisting of type ' . $type . ' is disabled, data=' . $data . ',poolId=' . convertZeroToNull($poolId));
+ } elseif (!isUrlBlacklisted($data)) {
// Did not find a record so we can add it... :)
- SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_blacklist` (`data`, `pool_id`, `type`) VALUES ('%s', %s, 'URL')",
- array(
- $url,
- $id
- ), __FUNCTION__, __LINE__);
+ sqlQueryEscaped("INSERT INTO
+ `{?_MYSQL_PREFIX?}_blacklist`
+(
+ `data`,
+ `pool_id`,
+ `provider`,
+ `type`
+) VALUES (
+ '%s',
+ %s,
+ '%s',
+ '%s'
+)",
+ array(
+ $data,
+ convertZeroToNull($poolId),
+ $provider,
+ strtoupper($type)
+ ), __FUNCTION__, __LINE__);
} // END - if
-}
-// Checks whether given URL is blacklisted
-function isUrlBlacklisted ($url) {
- // Mark it as not listed by default
- $listed = FALSE;
+ // Return insert id for debugging/reporting pursposes
+ return getSqlInsertId();
+}
- // Is black-listing enbaled?
- if (!isUrlBlacklistEnabled()) {
- // No, then all URLs are not in this list
- return FALSE;
- } elseif (!isset($GLOBALS['blacklist_data']['url'][$url])) {
- // Check black-list for given URL
- $result = SQL_QUERY_ESC("SELECT UNIX_TIMESTAMP(`added`) AS `added`, `pool_id` FROM `{?_MYSQL_PREFIX?}_blacklist` WHERE `data`='%s' AND `type`='URL' LIMIT 1",
- array($url), __FUNCTION__, __LINE__);
+// ----------------------------------------------------------------------------
+// Configuration wrapper functions
+// ----------------------------------------------------------------------------
- // Is there an entry?
- if (SQL_NUMROWS($result) == 1) {
- // Jupp, we got one listed
- $GLOBALS['blacklist_data']['url'][$url] = SQL_FETCHARRAY($result);
+// Generic wrapper
+function isGenericBlacklistEnabled ($type) {
+ // Is there cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = (getConfig($type . '_blacklist') == 'Y');
+ } // END - if
- // Mark it as listed
- $listed = TRUE;
- } // END - if
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
- // Free result
- SQL_FREERESULT($result);
- } else {
- // Is found in cache -> black-listed
- $listed = TRUE;
- }
+// Getter for url_blacklist
+function getUrlBlacklist () {
+ // Is there cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('url_blacklist');
+ } // END - if
- // Return result
- return $listed;
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
}
-// ----------------------------------------------------------------------------
-// Configuration wrapper functions
-// ----------------------------------------------------------------------------
-
// Wrapper to check if url_blacklist is enabled
function isUrlBlacklistEnabled () {
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__])) {
// Determine it
- $GLOBALS[__FUNCTION__] = (getConfig('url_blacklist') == 'Y');
+ $GLOBALS[__FUNCTION__] = (getUrlBlacklist() == 'Y');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for email_blacklist
+function getEmailBlacklist () {
+ // Is there cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('email_blacklist');
} // END - if
// Return cache
// Is there cache?
if (!isset($GLOBALS[__FUNCTION__])) {
// Determine it
- $GLOBALS[__FUNCTION__] = (getConfig('email_blacklist') == 'Y');
+ $GLOBALS[__FUNCTION__] = (getEmailBlacklist() == 'Y');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for ip_blacklist
+function getIpBlacklist () {
+ // Is there cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = getConfig('ip_blacklist');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Wrapper to check if ip_blacklist is enabled
+function isIpBlacklistEnabled () {
+ // Is there cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = (getIpBlacklist() == 'Y');
} // END - if
// Return cache