/** * Check to see if this impression contains the valid domain. * * @param string $limitation The domain limitation. * @param string $op The string operator. * @param array $aParams An array of additional parameters to be checked. * @return boolean Whether this impression's domain passes this limitation's test. */ function MAX_checkClient_Domain($limitation, $op, $aParams = array()) { if (empty($aParams)) { $aParams = $GLOBALS['_MAX']['CLIENT']; } if ($limitation == '') { return true; } $host = $_SERVER['REMOTE_HOST']; if (MAX_limitationsIsOperatorRegexp($op)) { $domain = $host; } else { $domain = substr($host, -strlen($limitation)); } return MAX_limitationsMatchStringValue($domain, $limitation, $op); }
/** * Returns an array with downgraded format of operator and data * for string-based delivery limitations. * The old operator is stored in ['op'] field, * the data in ['data'] field. * * @param string $op A new operator. * @param string $sData A new data specification. * @return array An array which contains an old operator in the ['op'] field * and an old data in ['data'] field. */ function MAX_limitationsGetADowngradeForString($op, $sData) { $aResult['op'] = MAX_limitationsIsOperatorPositive($op) ? '==' : '!='; if (MAX_limitationsIsOperatorRegexp($op)) { if (substr($sData, 0, 1) == '^') { $sData = substr($sData, 1); } if (substr($sData, strlen($sData) - 1) == '$') { $sData = substr($sData, 0, strlen($sData) - 1); } $sData = str_replace('.*', '*', $sData); $sData = str_replace('\\(', '(', $sData); $sData = str_replace('\\)', ')', $sData); $sData = str_replace('\\.', '.', $sData); $aResult['data'] = $sData; } elseif (MAX_limitationsIsOperatorContains($op)) { $aResult['data'] = "*{$sData}*"; } else { $aResult['data'] = $sData; } return $aResult; }