Ejegg has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/180894

Change subject: Use Composer-managed Stomp and Minfraud classes
......................................................................

Use Composer-managed Stomp and Minfraud classes

Note that this also updates Minfraud's api to 1.60

Change-Id: I4ffad6f45ea2a3b749804a14309379285715ac39
---
M DonationInterface.php
D activemq_stomp/Stomp.php
D activemq_stomp/Stomp/Exception.php
D activemq_stomp/Stomp/Frame.php
D activemq_stomp/Stomp/Message.php
D activemq_stomp/Stomp/Message/Bytes.php
D activemq_stomp/Stomp/Message/Map.php
M activemq_stomp/activemq_stomp.php
D extras/custom_filters/filters/minfraud/ccfd/COPYING
D extras/custom_filters/filters/minfraud/ccfd/Changes
D extras/custom_filters/filters/minfraud/ccfd/README.md
D extras/custom_filters/filters/minfraud/ccfd/composer.json
D extras/custom_filters/filters/minfraud/ccfd/src/CreditCardFraudDetection.php
D extras/custom_filters/filters/minfraud/ccfd/src/HTTPBase.php
D extras/custom_filters/filters/minfraud/ccfd/src/TelephoneVerification.php
M extras/custom_filters/filters/minfraud/minfraud.body.php
16 files changed, 4 insertions(+), 2,017 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/DonationInterface 
refs/changes/94/180894/1

diff --git a/DonationInterface.php b/DonationInterface.php
index 7ea87e8..876bc5d 100644
--- a/DonationInterface.php
+++ b/DonationInterface.php
@@ -35,6 +35,9 @@
        $wgDonationInterfaceTestMode = false;
 }
 
+// 3rd party dependencies managed by Composer, such as Stomp and Minfraud
+include_once( 'vendor/autoload.php' );
+
 /**
  * Figure out what we've got enabled.
  */
@@ -100,31 +103,11 @@
  */
 $wgDonationInterfaceClassMap = array();
 
-$wgAutoloadClasses['CurrencyRates'] = $donationinterface_dir . 
'gateway_common/CurrencyRates.php';
-$wgAutoloadClasses['DonationData'] = $donationinterface_dir . 
'gateway_common/DonationData.php';
-$wgAutoloadClasses['EncodingMangler'] = $donationinterface_dir . 
'gateway_common/EncodingMangler.php';
-$wgAutoloadClasses['GatewayAdapter'] = $donationinterface_dir . 
'gateway_common/gateway.adapter.php';
-$wgAutoloadClasses['GatewayPage'] = $donationinterface_dir . 
'gateway_common/GatewayPage.php';
-$wgAutoloadClasses['GatewayType'] = $donationinterface_dir . 
'gateway_common/gateway.adapter.php';
-$wgAutoloadClasses['DataValidator'] = $donationinterface_dir . 
'gateway_common/DataValidator.php';
-$wgAutoloadClasses['PaymentMethod'] = $donationinterface_dir . 
'gateway_common/PaymentMethod.php';
 $wgAutoloadClasses['StateAbbreviations'] = $donationinterface_dir . 
'gateway_forms/includes/stateAbbreviations.inc';
-$wgAutoloadClasses['WmfFramework_Mediawiki'] = $donationinterface_dir . 
'gateway_common/WmfFramework.mediawiki.php';
-require_once( 'gateway_common/WmfFramework.php' );
 
 //load all possible form classes
 $wgAutoloadClasses['Gateway_Form'] = $donationinterface_dir . 
'gateway_forms/Form.php';
 $wgAutoloadClasses['Gateway_Form_RapidHtml'] = $donationinterface_dir . 
'gateway_forms/RapidHtml.php';
-
-//GlobalCollect gateway classes
-if ( $optionalParts['GlobalCollect'] === true ){
-       $wgDonationInterfaceClassMap['globalcollect'] = 'GlobalCollectAdapter';
-       $wgAutoloadClasses['GlobalCollectGateway'] = $donationinterface_dir . 
'globalcollect_gateway/globalcollect_gateway.body.php';
-       $wgAutoloadClasses['GlobalCollectGatewayResult'] = 
$donationinterface_dir . 
'globalcollect_gateway/globalcollect_resultswitcher.body.php';
-
-       $wgAutoloadClasses['GlobalCollectAdapter'] = $donationinterface_dir . 
'globalcollect_gateway/globalcollect.adapter.php';
-       $wgAutoloadClasses['GlobalCollectOrphanAdapter'] = __DIR__ . 
'/globalcollect_gateway/scripts/orphan_adapter.php';
-}
 
 //PayflowPro gateway classes
 if ( $optionalParts['PayflowPro'] === true ){
@@ -133,33 +116,8 @@
        $wgAutoloadClasses['PayflowProAdapter'] = $donationinterface_dir . 
'payflowpro_gateway/payflowpro.adapter.php';
 }
 
-if ( $optionalParts['Amazon'] === true ){
-       $wgDonationInterfaceClassMap['amazon'] = 'AmazonAdapter';
-       $wgAutoloadClasses['AmazonGateway'] = $donationinterface_dir . 
'amazon_gateway/amazon_gateway.body.php';
-       $wgAutoloadClasses['AmazonAdapter'] = $donationinterface_dir . 
'amazon_gateway/amazon.adapter.php';
-}
-
-if ( $optionalParts['Adyen'] === true ){
-       $wgDonationInterfaceClassMap['adyen'] = 'AdyenAdapter';
-       $wgAutoloadClasses['AdyenGateway'] = $donationinterface_dir . 
'adyen_gateway/adyen_gateway.body.php';
-       $wgAutoloadClasses['AdyenGatewayResult'] = $donationinterface_dir . 
'adyen_gateway/adyen_resultswitcher.body.php';
-       $wgAutoloadClasses['AdyenAdapter'] = $donationinterface_dir . 
'adyen_gateway/adyen.adapter.php';
-}
-
-if ( $optionalParts['Paypal'] === true ){
-       $wgDonationInterfaceClassMap['paypal'] = 'PaypalAdapter';
-       $wgAutoloadClasses['PaypalGateway'] = $donationinterface_dir . 
'paypal_gateway/paypal_gateway.body.php';
-       $wgAutoloadClasses['PaypalGatewayResult'] = $donationinterface_dir . 
'paypal_gateway/paypal_resultswitcher.body.php';
-       $wgAutoloadClasses['PaypalAdapter'] = $donationinterface_dir . 
'paypal_gateway/paypal.adapter.php';
-}
-
 if ( $optionalParts['WorldPay'] === true ){
-       $wgDonationInterfaceClassMap['worldpay'] = 'WorldPayAdapter';
-       $wgAutoloadClasses['WorldPayGateway'] = $donationinterface_dir . 
'worldpay_gateway/worldpay_gateway.body.php';
-       $wgAutoloadClasses['WorldPayAdapter'] = $donationinterface_dir . 
'worldpay_gateway/worldpay.adapter.php';
-
        $wgAPIModules['di_wp_validate'] = 'WorldPayValidateApi';
-       $wgAutoloadClasses['WorldPayValidateApi'] = $donationinterface_dir . 
'worldpay_gateway/worldpay.api.php';
 }
 
 
@@ -1104,7 +1062,6 @@
 //---Stomp functions---
 if ($optionalParts['Stomp'] === true){
        require_once( $donationinterface_dir . 
'activemq_stomp/activemq_stomp.php'  );
-       $wgAutoloadClasses['Stomp'] = $donationinterface_dir . 
'activemq_stomp/Stomp.php';
 }
 
 function efDonationInterfaceUnitTests( &$files ) {
diff --git a/activemq_stomp/Stomp.php b/activemq_stomp/Stomp.php
deleted file mode 100644
index bc8c0fc..0000000
--- a/activemq_stomp/Stomp.php
+++ /dev/null
@@ -1,606 +0,0 @@
-<?php
-/**
- *
- * Copyright 2005-2006 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* vim: set expandtab tabstop=3 shiftwidth=3: */
-
-require_once 'Stomp/Frame.php';
-
-/**
- * A Stomp Connection
- *
- *
- * @package Stomp
- * @author Hiram Chirino <[email protected]>
- * @author Dejan Bosanac <[email protected]>
- * @author Michael Caplan <[email protected]>
- * @version $Revision: 43 $
- */
-class Stomp
-{
-    /**
-     * Perform request synchronously
-     *
-     * @var boolean
-     */
-    public $sync = false;
-
-    /**
-     * Default prefetch size
-     *
-     * @var int
-     */
-       public $prefetchSize = 1;
-
-       /**
-     * Client id used for durable subscriptions
-     *
-     * @var string
-     */
-       public $clientId = null;
-
-    protected $_brokerUri = null;
-    protected $_socket = null;
-    protected $_hosts = array();
-    protected $_params = array();
-    protected $_subscriptions = array();
-    protected $_defaultPort = 61613;
-    protected $_currentHost = - 1;
-    protected $_attempts = 10;
-    protected $_username = '';
-    protected $_password = '';
-    protected $_sessionId;
-    protected $_read_timeout_seconds = 60;
-    protected $_read_timeout_milliseconds = 0;
-
-    /**
-     * Constructor
-     *
-     * @param string $brokerUri Broker URL
-     * @throws Stomp_Exception
-     */
-    public function __construct ( $brokerUri )
-    {
-        $this->_brokerUri = $brokerUri;
-        $this->_init();
-    }
-    /**
-     * Initialize connection
-     *
-     * @throws Stomp_Exception
-     */
-    protected function _init ()
-    {
-        $pattern = 
"|^(([a-zA-Z]+)://)+\(*([a-zA-Z0-9\.:/i,-]+)\)*\??([a-zA-Z0-9=]*)$|i";
-        if ( preg_match( $pattern, $this->_brokerUri, $regs ) ) {
-            $scheme = $regs[2];
-            $hosts = $regs[3];
-            $params = $regs[4];
-            if ( $scheme != "failover" ) {
-                $this->_processUrl( $this->_brokerUri );
-            } else {
-                $urls = explode( ",", $hosts );
-                foreach ( $urls as $url ) {
-                    $this->_processUrl( $url );
-                }
-            }
-            if ( $params != null ) {
-                parse_str( $params, $this->_params );
-            }
-        } else {
-            require_once 'Stomp/Exception.php';
-            throw new Stomp_Exception( "Bad Broker URL {$this->_brokerUri}" );
-        }
-    }
-    /**
-     * Process broker URL
-     *
-     * @param string $url Broker URL
-     * @throws Stomp_Exception
-     * @return boolean
-     */
-    protected function _processUrl ( $url )
-    {
-        $parsed = parse_url( $url );
-        if ( $parsed ) {
-               $parsed['port'] = isset( $parsed['port'] ) ? $parsed['port'] : 
null;
-            array_push( $this->_hosts, array( $parsed['host'] , 
$parsed['port'] , $parsed['scheme'] ) );
-        } else {
-            require_once 'Stomp/Exception.php';
-            throw new Stomp_Exception( "Bad Broker URL $url" );
-        }
-    }
-    /**
-     * Make socket connection to the server
-     *
-     * @throws Stomp_Exception
-     */
-    protected function _makeConnection ()
-    {
-        if ( count( $this->_hosts ) == 0 ) {
-            require_once 'Stomp/Exception.php';
-            throw new Stomp_Exception( "No broker defined" );
-        }
-
-        // force disconnect, if previous established connection exists
-        $this->disconnect();
-
-        $i = $this->_currentHost;
-        $att = 0;
-        $connected = false;
-        while ( ! $connected && $att ++ < $this->_attempts ) {
-            if ( isset( $this->_params['randomize'] ) && 
$this->_params['randomize'] == 'true' ) {
-                $i = rand( 0, count( $this->_hosts ) - 1 );
-            } else {
-                $i = ( $i + 1 ) % count( $this->_hosts );
-            }
-            $broker = $this->_hosts[$i];
-            $host = $broker[0];
-            $port = $broker[1];
-            $scheme = $broker[2];
-            if ( $port == null ) {
-                $port = $this->_defaultPort;
-            }
-            if ( $this->_socket != null ) {
-                fclose( $this->_socket );
-                $this->_socket = null;
-            }
-            $this->_socket = @fsockopen( $scheme . '://' . $host, $port );
-            if ( !is_resource( $this->_socket ) && $att >= $this->_attempts && 
!array_key_exists( $i + 1, $this->_hosts ) ) {
-                require_once 'Stomp/Exception.php';
-                throw new Stomp_Exception( "Could not connect to $host:$port 
($att/{$this->_attempts})" );
-            } elseif ( is_resource( $this->_socket ) ) {
-                $connected = true;
-                $this->_currentHost = $i;
-                break;
-            }
-        }
-        if ( ! $connected ) {
-            require_once 'Stomp/Exception.php';
-            throw new Stomp_Exception( "Could not connect to a broker" );
-        }
-    }
-    /**
-     * Connect to server
-     *
-     * @param string $username
-     * @param string $password
-     * @return boolean
-     * @throws Stomp_Exception
-     */
-    public function connect ( $username = '', $password = '' )
-    {
-        $this->_makeConnection();
-        if ( $username != '' ) {
-            $this->_username = $username;
-        }
-        if ( $password != '' ) {
-            $this->_password = $password;
-        }
-               $headers = array( 'login' => $this->_username , 'passcode' => 
$this->_password );
-               if ( $this->clientId != null ) {
-                       $headers["client-id"] = $this->clientId;
-               }
-               $frame = new Stomp_Frame( "CONNECT", $headers );
-        $this->_writeFrame( $frame );
-        $frame = $this->readFrame();
-        if ( $frame instanceof Stomp_Frame && $frame->command == 'CONNECTED' ) 
{
-            $this->_sessionId = $frame->headers["session"];
-            return true;
-        } else {
-            require_once 'Stomp/Exception.php';
-            if ( $frame instanceof Stomp_Frame ) {
-                throw new Stomp_Exception( "Unexpected command: 
{$frame->command}", 0, $frame->body );
-            } else {
-                throw new Stomp_Exception( "Connection not acknowledged" );
-            }
-        }
-    }
-
-    /**
-     * Check if client session has ben established
-     *
-     * @return boolean
-     */
-    public function isConnected ()
-    {
-        return !empty( $this->_sessionId ) && is_resource( $this->_socket );
-    }
-    /**
-     * Current stomp session ID
-     *
-     * @return string
-     */
-    public function getSessionId()
-    {
-        return $this->_sessionId;
-    }
-    /**
-     * Send a message to a destination in the messaging system
-     *
-     * @param string $destination Destination queue
-     * @param string|Stomp_Frame $msg Message
-     * @param array $properties
-     * @param boolean $sync Perform request synchronously
-     * @return boolean
-     */
-    public function send ( $destination, $msg, $properties = null, $sync = 
null )
-    {
-        if ( $msg instanceof Stomp_Frame ) {
-            $msg->headers['destination'] = $destination;
-            $msg->headers = array_merge( $msg->headers, $properties );
-            $frame = $msg;
-        } else {
-            $headers = $properties;
-            $headers['destination'] = $destination;
-            $frame = new Stomp_Frame( 'SEND', $headers, $msg );
-        }
-        $this->_prepareReceipt( $frame, $sync );
-        $this->_writeFrame( $frame );
-        return $this->_waitForReceipt( $frame, $sync );
-    }
-    /**
-     * Prepair frame receipt
-     *
-     * @param Stomp_Frame $frame
-     * @param boolean $sync
-     */
-    protected function _prepareReceipt ( Stomp_Frame $frame, $sync )
-    {
-        $receive = $this->sync;
-        if ( $sync !== null ) {
-            $receive = $sync;
-        }
-        if ( $receive == true ) {
-            $frame->headers['receipt'] = md5( microtime() );
-        }
-    }
-    /**
-     * Wait for receipt
-     *
-     * @param Stomp_Frame $frame
-     * @param boolean $sync
-     * @return boolean
-     * @throws Stomp_Exception
-     */
-    protected function _waitForReceipt ( Stomp_Frame $frame, $sync )
-    {
-
-        $receive = $this->sync;
-        if ( $sync !== null ) {
-            $receive = $sync;
-        }
-        if ( $receive == true ) {
-            $id = ( isset( $frame->headers['receipt'] ) ) ? 
$frame->headers['receipt'] : null;
-            if ( $id == null ) {
-                return true;
-            }
-            $frame = $this->readFrame();
-            if ( $frame instanceof Stomp_Frame && $frame->command == 'RECEIPT' 
) {
-                if ( $frame->headers['receipt-id'] == $id ) {
-                    return true;
-                } else {
-                    require_once 'Stomp/Exception.php';
-                    throw new Stomp_Exception( "Unexpected receipt id 
{$frame->headers['receipt-id']}", 0, $frame->body );
-                }
-            } else {
-                require_once 'Stomp/Exception.php';
-                if ( $frame instanceof Stomp_Frame ) {
-                    throw new Stomp_Exception( "Unexpected command 
{$frame->command}", 0, $frame->body );
-                } else {
-                    throw new Stomp_Exception( "Receipt not received" );
-                }
-            }
-        }
-        return true;
-    }
-    /**
-     * Register to listen to a given destination
-     *
-     * @param string $destination Destination queue
-     * @param array $properties
-     * @param boolean $sync Perform request synchronously
-     * @return boolean
-     * @throws Stomp_Exception
-     */
-    public function subscribe ( $destination, $properties = null, $sync = null 
)
-    {
-        $headers = array( 'ack' => 'client' );
-               $headers['activemq.prefetchSize'] = $this->prefetchSize;
-               if ( $this->clientId != null ) {
-                       $headers["activemq.subcriptionName"] = $this->clientId;
-               }
-        if ( isset( $properties ) ) {
-            foreach ( $properties as $name => $value ) {
-                $headers[$name] = $value;
-            }
-        }
-        $headers['destination'] = $destination;
-        $frame = new Stomp_Frame( 'SUBSCRIBE', $headers );
-        $this->_prepareReceipt( $frame, $sync );
-        $this->_writeFrame( $frame );
-        if ( $this->_waitForReceipt( $frame, $sync ) == true ) {
-            $this->_subscriptions[$destination] = $properties;
-            return true;
-        } else {
-            return false;
-        }
-    }
-    /**
-     * Remove an existing subscription
-     *
-     * @param string $destination
-     * @param array $properties
-     * @param boolean $sync Perform request synchronously
-     * @return boolean
-     * @throws Stomp_Exception
-     */
-    public function unsubscribe ( $destination, $properties = null, $sync = 
null )
-    {
-        $headers = array();
-        if ( isset( $properties ) ) {
-            foreach ( $properties as $name => $value ) {
-                $headers[$name] = $value;
-            }
-        }
-        $headers['destination'] = $destination;
-        $frame = new Stomp_Frame( 'UNSUBSCRIBE', $headers );
-        $this->_prepareReceipt( $frame, $sync );
-        $this->_writeFrame( $frame );
-        if ( $this->_waitForReceipt( $frame, $sync ) == true ) {
-            unset( $this->_subscriptions[$destination] );
-            return true;
-        } else {
-            return false;
-        }
-    }
-    /**
-     * Start a transaction
-     *
-     * @param string $transactionId
-     * @param boolean $sync Perform request synchronously
-     * @return boolean
-     * @throws Stomp_Exception
-     */
-    public function begin ( $transactionId = null, $sync = null )
-    {
-        $headers = array();
-        if ( isset( $transactionId ) ) {
-            $headers['transaction'] = $transactionId;
-        }
-        $frame = new Stomp_Frame( 'BEGIN', $headers );
-        $this->_prepareReceipt( $frame, $sync );
-        $this->_writeFrame( $frame );
-        return $this->_waitForReceipt( $frame, $sync );
-    }
-    /**
-     * Commit a transaction in progress
-     *
-     * @param string $transactionId
-     * @param boolean $sync Perform request synchronously
-     * @return boolean
-     * @throws Stomp_Exception
-     */
-    public function commit ( $transactionId = null, $sync = null )
-    {
-        $headers = array();
-        if ( isset( $transactionId ) ) {
-            $headers['transaction'] = $transactionId;
-        }
-        $frame = new Stomp_Frame( 'COMMIT', $headers );
-        $this->_prepareReceipt( $frame, $sync );
-        $this->_writeFrame( $frame );
-        return $this->_waitForReceipt( $frame, $sync );
-    }
-    /**
-     * Roll back a transaction in progress
-     *
-     * @param string $transactionId
-     * @param boolean $sync Perform request synchronously
-     */
-    public function abort ( $transactionId = null, $sync = null )
-    {
-        $headers = array();
-        if ( isset( $transactionId ) ) {
-            $headers['transaction'] = $transactionId;
-        }
-        $frame = new Stomp_Frame( 'ABORT', $headers );
-        $this->_prepareReceipt( $frame, $sync );
-        $this->_writeFrame( $frame );
-        return $this->_waitForReceipt( $frame, $sync );
-    }
-    /**
-     * Acknowledge consumption of a message from a subscription
-        * Note: This operation is always asynchronous
-     *
-     * @param string|Stomp_Frame $message Message ID
-     * @param string $transactionId
-     * @return boolean
-     * @throws Stomp_Exception
-     */
-    public function ack ( $message, $transactionId = null )
-    {
-        if ( $message instanceof Stomp_Frame ) {
-            $frame = new Stomp_Frame( 'ACK', $message->headers );
-            $this->_writeFrame( $frame );
-            return true;
-        } else {
-            $headers = array();
-            if ( isset( $transactionId ) ) {
-                $headers['transaction'] = $transactionId;
-            }
-            $headers['message-id'] = $message;
-            $frame = new Stomp_Frame( 'ACK', $headers );
-            $this->_writeFrame( $frame );
-            return true;
-        }
-    }
-    /**
-     * Graceful disconnect from the server
-     *
-     */
-    public function disconnect ()
-    {
-               if ( $this->clientId != null ) {
-                       $headers["client-id"] = $this->clientId;
-               } else {
-                       $headers = array();
-               }
-
-        if ( is_resource( $this->_socket ) ) {
-            $this->_writeFrame( new Stomp_Frame( 'DISCONNECT', $headers ) );
-            fclose( $this->_socket );
-        }
-        $this->_socket = null;
-        $this->_sessionId = null;
-        $this->_currentHost = -1;
-        $this->_subscriptions = array();
-        $this->_username = '';
-        $this->_password = '';
-    }
-
-       /**
-        * Write frame to server
-        *
-        * @param Stomp_Frame $stompFrame
-        * @throws Stomp_Exception
-        */
-    protected function _writeFrame ( Stomp_Frame $stompFrame )
-    {
-        if ( !is_resource( $this->_socket ) ) {
-            require_once 'Stomp/Exception.php';
-            throw new Stomp_Exception( 'Socket connection hasn\'t been 
established' );
-        }
-
-        $data = $stompFrame->__toString();
-
-        $r = fwrite( $this->_socket, $data, strlen( $data ) );
-        if ( $r === false || $r == 0 ) {
-            $this->_reconnect();
-            $this->_writeFrame( $stompFrame );
-        }
-    }
-
-    /**
-     * Set timeout to wait for content to read
-     *
-     * @param int $seconds  Seconds to wait for a frame
-     * @param int $milliseconds Milliseconds to wait for a frame
-     */
-    public function setReadTimeout( $seconds, $milliseconds = 0 )
-    {
-        $this->_read_timeout_seconds = $seconds;
-        $this->_read_timeout_milliseconds = $milliseconds;
-    }
-
-    /**
-     * Read responce frame from server
-     *
-     * @return Stomp_Frame|Stomp_Message_Map|boolean False when no frame to 
read
-     */
-    public function readFrame ()
-    {
-        if ( !$this->hasFrameToRead() ) {
-            return false;
-        }
-
-        stream_set_timeout( $this->_socket, 5 );
-        $rb = 1024;
-        $data = '';
-        do {
-            $read = fgets( $this->_socket, $rb );
-            $info = stream_get_meta_data( $this->_socket );
-            if ( $info['timed_out'] ) {
-              return FALSE;
-            }
-            // if ($read === false) {
-            //    $this->_reconnect();
-            //    return $this->readFrame();
-            // }
-            $data .= $read;
-            $len = strlen( $data );
-        } while ( $read && ( $len < 2 || ! ( $data[$len - 2] == "\x00" && 
$data[$len - 1] == "\n" ) ) );
-
-        list ( $header, $body ) = explode( "\n\n", $data, 2 );
-        $header = explode( "\n", $header );
-        $headers = array();
-        $command = null;
-        foreach ( $header as $v ) {
-            if ( isset( $command ) ) {
-                list ( $name, $value ) = explode( ':', $v, 2 );
-                $headers[$name] = $value;
-            } else {
-                $command = $v;
-            }
-        }
-        $frame = new Stomp_Frame( $command, $headers, trim( $body ) );
-
-        if ( isset( $frame->headers['amq-msg-type'] ) && 
$frame->headers['amq-msg-type'] == 'MapMessage' ) {
-            require_once 'Stomp/Message/Map.php';
-            return new Stomp_Message_Map( $frame );
-        } else {
-            return $frame;
-        }
-    }
-
-    /**
-     * Check if there is a frame to read
-     *
-     * @return boolean
-     */
-    public function hasFrameToRead()
-    {
-        return true; // http://bugs.php.net/bug.php?id=46024
-
-        /*$read = array($this->_socket);
-        $write = null;
-        $except = null;
-
-        $has_frame_to_read = stream_select($read, $write, $except, 
$this->_read_timeout_seconds, $this->_read_timeout_milliseconds);
-
-        if ($has_frame_to_read === false) {
-            throw new Stomp_Exception('Check failed to determin if the socket 
is readable');
-        } elseif ($has_frame_to_read > 0) {
-            return true;
-        } else {
-            return false;
-        }*/
-    }
-
-    /**
-     * Reconnects and renews subscriptions (if there were any)
-     * Call this method when you detect connection problems
-     */
-    protected function _reconnect ()
-    {
-        $subscriptions = $this->_subscriptions;
-
-        $this->connect( $this->_username, $this->_password );
-        foreach ( $subscriptions as $dest => $properties ) {
-            $this->subscribe( $dest, $properties );
-        }
-    }
-    /**
-     * Graceful object desruction
-     *
-     */
-    public function __destruct()
-    {
-        $this->disconnect();
-    }
-}
-?>
diff --git a/activemq_stomp/Stomp/Exception.php 
b/activemq_stomp/Stomp/Exception.php
deleted file mode 100644
index 72f684e..0000000
--- a/activemq_stomp/Stomp/Exception.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-/**
- *
- * Copyright 2005-2006 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* vim: set expandtab tabstop=3 shiftwidth=3: */
-
-/**
- * A Stomp Connection
- *
- *
- * @package Stomp
- * @author Michael Caplan <[email protected]>
- * @version $Revision: 23 $
- */
-class Stomp_Exception extends Exception
-{
-    protected $_details;
-
-    /**
-     * Constructor
-     *
-     * @param string $message Error message
-     * @param int $code Error code
-     * @param string $details Stomp server error details
-     */
-    public function __construct( $message = null, $code = 0, $details = '' )
-    {
-        $this->_details = $details;
-        //$message = "Stomp Error.  Check host connection.  Details suppressed 
for security.";
-        parent::__construct( $message, $code );
-    }
-
-    /**
-     * Stomp server error details
-     *
-     * @return string
-     */
-    public function getDetails()
-    {
-        return $this->_details;
-
-    }
-
-}
-?>
\ No newline at end of file
diff --git a/activemq_stomp/Stomp/Frame.php b/activemq_stomp/Stomp/Frame.php
deleted file mode 100644
index efe8116..0000000
--- a/activemq_stomp/Stomp/Frame.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-/**
- *
- * Copyright 2005-2006 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* vim: set expandtab tabstop=3 shiftwidth=3: */
-
-/**
- * Stomp Frames are messages that are sent and received on a StompConnection.
- *
- * @package Stomp
- * @author Hiram Chirino <[email protected]>
- * @author Dejan Bosanac <[email protected]>
- * @author Michael Caplan <[email protected]>
- * @version $Revision: 36 $
- */
-class Stomp_Frame
-{
-    public $command;
-    public $headers = array();
-    public $body;
-
-    /**
-     * Constructor
-     *
-     * @param string $command
-     * @param array $headers
-     * @param string $body
-     */
-    public function __construct ( $command = null, $headers = null, $body = 
null )
-    {
-        $this->_init( $command, $headers, $body );
-    }
-
-    protected function _init ( $command = null, $headers = null, $body = null )
-    {
-        $this->command = $command;
-        if ( $headers != null ) {
-            $this->headers = $headers;
-        }
-        $this->body = $body;
-
-        if ( $this->command == 'ERROR' ) {
-            require_once 'Exception.php';
-            throw new Stomp_Exception( $this->headers['message'], 0, 
$this->body );
-        }
-    }
-
-    /**
-     * Convert frame to transportable string
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        $data = $this->command . "\n";
-
-        foreach ( $this->headers as $name => $value ) {
-            $data .= $name . ": " . $value . "\n";
-        }
-
-        $data .= "\n";
-        $data .= $this->body;
-        return $data . "\x00\n";
-    }
-}
-?>
diff --git a/activemq_stomp/Stomp/Message.php b/activemq_stomp/Stomp/Message.php
deleted file mode 100644
index 0dc4678..0000000
--- a/activemq_stomp/Stomp/Message.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- *
- * Copyright 2005-2006 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* vim: set expandtab tabstop=3 shiftwidth=3: */
-
-require_once 'Stomp/Frame.php';
-
-/**
- * Basic text stomp message
- *
- * @package Stomp
- * @author Dejan Bosanac <[email protected]>
- * @version $Revision: 23 $
- */
-class Stomp_Message extends Stomp_Frame
-{
-    public function __construct ( $body, $headers = null )
-    {
-        $this->_init( "SEND", $headers, $body );
-    }
-}
-?>
\ No newline at end of file
diff --git a/activemq_stomp/Stomp/Message/Bytes.php 
b/activemq_stomp/Stomp/Message/Bytes.php
deleted file mode 100644
index 7ec8c16..0000000
--- a/activemq_stomp/Stomp/Message/Bytes.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-/**
- *
- * Copyright 2005-2006 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* vim: set expandtab tabstop=3 shiftwidth=3: */
-
-require_once 'Stomp/Message.php';
-
-/**
- * Message that contains a stream of uninterpreted bytes
- *
- * @package Stomp
- * @author Dejan Bosanac <[email protected]>
- * @version $Revision: 23 $
- */
-class Stomp_Message_Bytes extends Stomp_Message
-{
-    /**
-     * Constructor
-     *
-     * @param string $body
-     * @param array $headers
-     */
-    function __construct ( $body, $headers = null )
-    {
-        $this->_init( "SEND", $headers, $body );
-        if ( $this->headers == null ) {
-            $this->headers = array();
-        }
-        $this->headers['content-length'] = count( $body );
-    }
-}
-?>
\ No newline at end of file
diff --git a/activemq_stomp/Stomp/Message/Map.php 
b/activemq_stomp/Stomp/Message/Map.php
deleted file mode 100644
index 9d7d4b2..0000000
--- a/activemq_stomp/Stomp/Message/Map.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-/**
- *
- * Copyright 2005-2006 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* vim: set expandtab tabstop=3 shiftwidth=3: */
-
-require_once 'Stomp/Message.php';
-
-/**
- * Message that contains a set of name-value pairs
- *
- * @package Stomp
- * @author Dejan Bosanac <[email protected]>
- * @version $Revision: 23 $
- */
-class Stomp_Message_Map extends Stomp_Message
-{
-    public $map;
-
-    /**
-     * Constructor
-     *
-     * @param Stomp_Frame|string $msg
-     * @param array $headers
-     */
-    function __construct ( $msg, $headers = null )
-    {
-        if ( $msg instanceof Stomp_Frame ) {
-            $this->_init( $msg->command, $msg->headers, $msg->body );
-            $this->map = json_decode( $msg->body );
-        } else {
-            $this->_init( "SEND", $headers, $msg );
-            if ( $this->headers == null ) {
-                $this->headers = array();
-            }
-            $this->headers['amq-msg-type'] = 'MapMessage';
-            $this->body = json_encode( $msg );
-        }
-    }
-}
-?>
\ No newline at end of file
diff --git a/activemq_stomp/activemq_stomp.php 
b/activemq_stomp/activemq_stomp.php
index f1a926c..828bfb9 100644
--- a/activemq_stomp/activemq_stomp.php
+++ b/activemq_stomp/activemq_stomp.php
@@ -1,4 +1,5 @@
 <?php
+use FuseSource\Stomp;
 
 # Alert the user that this is not a valid entry point to MediaWiki if they try 
to access the special pages file directly.
 if ( !defined( 'MEDIAWIKI' ) ) {
diff --git a/extras/custom_filters/filters/minfraud/ccfd/COPYING 
b/extras/custom_filters/filters/minfraud/ccfd/COPYING
deleted file mode 100644
index 84f5523..0000000
--- a/extras/custom_filters/filters/minfraud/ccfd/COPYING
+++ /dev/null
@@ -1,504 +0,0 @@
-                 GNU LESSER GENERAL PUBLIC LICENSE
-                      Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-                 GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-                           NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/extras/custom_filters/filters/minfraud/ccfd/Changes 
b/extras/custom_filters/filters/minfraud/ccfd/Changes
deleted file mode 100644
index e09f6e3..0000000
--- a/extras/custom_filters/filters/minfraud/ccfd/Changes
+++ /dev/null
@@ -1,62 +0,0 @@
-Revision history for MaxMind CreditCardFraudDetection PHP API
-
-1.54 Sept 1st 2013
-
-    - Remove custom DNS cache support. ( Boris Zentner )
-    - Fixed Composer require issue. ( james-lsn )
-
-1.53 Jun 24th 2013
-    - Removed deprecated use of `ereg`.
-    - Added Composer support.
-    - Reorganized source package.
-
-1.52 Aug 8th 2012
-    - Allow all input fields supported by minFraud 1.4 (Boris Zentner)
-    - Remove LocationVerification example and API (Boris Zentner)
-
-1.50 March 13th 2012
-    - Check countryMatch instead of score. Score is not avail as of
-      minfraud_version 1.3 and might be empty. (Boris Zentner)
-
-1.49 Februar 19th 2009
-    - Add minfraud3.maxmind.com to the server list ( Boris Zentner )
-
-1.48 October 3th 2008
-    - Add new optional fields user_agent and accept_language for CCFD requests 
( Boris Zentner )
-
-1.47 April 25th 2008
-    - Changed license from GPL to LGPL
-
-1.46 October 4th 2007
-    - Replaced www.maxmind.com and www2.maxmind.com with minfraud1.maxmind.com 
and minfraud2.maxmind.com
-
-1.43 October 3rd 2006
-    - Added support for new input fields, usernameMD5 and passwordMD5
-    - Changed require ("HTTPBase.php") to require_once ("HTTPBase.php")
-        in case both CCFD and Telephone Verification files are used (Mike 
Mallinson)
-
-1.4  August 8th 2005
-    - Added support for Telephone Verification
-    - Use POST method instead of GET method, fixes bug where query string
-        was truncated
-    - Added support for bypassing DNS using IP addresses
-    - Added shipCity shipRegion shipPostal shipCountry to list of input fields
-
-1.3  February 9th 2005
-    - Added requested_type, forwardedIP, emailMD5, shipAddr,
-        txnID, sessionID to list of input fields
-    - Added LocationVerification.php
-    - Replaced global variables with class fields (David Recordon)
-
-1.2  July 2nd 2004
-    - Added binName, binPhone, custPhone to list of input fields
-
-1.1  June 8th 2004
-    - Replaced h1 and h2 servers with www and www2 (all ending with 
maxmind.com)
-    - Fixed URL encoding bug
-    - Fixed curl code
-    - Added debug and timeout options
-    - Failover if score field not set
-
-1.0  May 5st 2004
-    - original version
diff --git a/extras/custom_filters/filters/minfraud/ccfd/README.md 
b/extras/custom_filters/filters/minfraud/ccfd/README.md
deleted file mode 100644
index a5fee58..0000000
--- a/extras/custom_filters/filters/minfraud/ccfd/README.md
+++ /dev/null
@@ -1,124 +0,0 @@
-# Maxmind minFraud PHP API #
-
-## Installing with Composer ##
-
-### Define Your Dependencies ###
-
-We recommend installing this package with [Composer](http://getcomposer.org/).
-To do this, add ```minfraud/http``` to your ```composer.json``` file.
-
-```json
-{
-    "require": {
-        "minfraud/http": "~1.54"
-    }
-}
-```
-
-### Install Composer ###
-
-Run in your project root:
-
-```
-curl -s http://getcomposer.org/installer | php
-```
-
-### Install Dependencies ###
-
-Run in your project root:
-
-```
-php composer.phar install
-```
-
-### Require Autoloader ###
-
-You can autoload all dependencies by adding this to your code:
-```
-require 'vendor/autoload.php';
-```
-
-## Installing without Composer ##
-
-Place the files in the `src` directory in the `include_path` as specified in
-your `php.ini` file or place them in the same directory as your PHP scripts.
-
-## Example Scripts ##
-
-See `examples/minfraud.php` for complete example how to use this API with the
-minFraud service.
-
-See `examples/telephone-verification.php` for complete example how to use
-this API with the Telephone Verification service.
-
-These scripts can be run from the shell.
-
-## Usage ##
-
-```php
-<?php
-require_once 'vendor/autoload.php';
-
-$inputs = array(
-    "license_key" => "YOUR_LICENSE_KEY_HERE",
-    "i"           => "24.24.24.24",
-    "city"        => "New York",
-    "region"      => "NY",
-    "postal"      => "11434",
-    "country"     => "US",
-    // Other inputs from http://dev.maxmind.com/minfraud/
-);
-
-$ccfs = new CreditCardFraudDetection;
-$ccfs->input($inputs);
-$ccfs->query();
-$outputs = $ccfs->output();
-
-print_r($outputs)
-```
-### $ccfs->isSecure ###
-
-If isSecure is set to 0 then it uses regular HTTP. If isSecure is set to 1
-then it uses Secure HTTPS (requires Curl PHP binding)
-
-### $ccfs->input($hash) ###
-
-Takes a hash and uses it as input for the server. See
-http://dev.maxmind.com/minfraud/ for details on input fields.
-
-### $ccfs->query() ###
-  Queries the server with the fields passed to the input method
-  and stores the output.
-
-### $ccfs->output();
-
-Returns the output from the server. See http://dev.maxmind.com/minfraud/
-for details on output fields.
-
-## Secure HTTPS ##
-
-Secure HTTPS is off by default. If you want secure HTTPS then you need to have
-the Curl PHP binding, the curl library and the OpenSSL library.
-
-You can download the curl libary at:
-http://curl.haxx.se/download.html
-http://curl.haxx.se/docs/install.html for installation details
-
-It is recommended that you install these packages in this order:
-
-1. OpenSSL library
-2. Curl library
-3. Curl PHP binding
-
-Once you have installed these, you can turn on Secure HTTPS by setting:
-
-```php
-$ccfs->isSecure = 1;
-```
-where `$ccfs` is the CreditCardFraudDetection object.
-
-===============================
-Copyright (c) 2013, MaxMind, Inc
-
-All rights reserved.  This package is licensed under the LGPL.  For details
-see the COPYING file.
diff --git a/extras/custom_filters/filters/minfraud/ccfd/composer.json 
b/extras/custom_filters/filters/minfraud/ccfd/composer.json
deleted file mode 100644
index 6dc3dfc..0000000
--- a/extras/custom_filters/filters/minfraud/ccfd/composer.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-    "name": "minfraud/http",
-    "description": "MaxMind minFraud HTTP API",
-    "keywords": [ "fraud", "minfraud", "maxmind" ],
-    "homepage": "https://github.com/maxmind/ccfd-api-php";,
-    "type": "library",
-    "license": "LGPL-2.1+",
-    "authors": [
-        {
-            "name": "MaxMind, Inc.",
-            "email": "[email protected]",
-            "homepage": "http://www.maxmind.com/";
-        }
-    ],
-    "autoload": {
-        "files": [
-            "src/HTTPBase.php",
-            "src/CreditCardFraudDetection.php",
-            "src/TelephoneVerification.php"
-        ]
-    }
-}
diff --git 
a/extras/custom_filters/filters/minfraud/ccfd/src/CreditCardFraudDetection.php 
b/extras/custom_filters/filters/minfraud/ccfd/src/CreditCardFraudDetection.php
deleted file mode 100644
index 5b6b5ba..0000000
--- 
a/extras/custom_filters/filters/minfraud/ccfd/src/CreditCardFraudDetection.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-/* CreditCardFraudDetection.php
- *
- * Copyright (C) 2008 MaxMind, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-require_once ("HTTPBase.php");
-class CreditCardFraudDetection extends HTTPBase {
-  public $server;
-  public $numservers;
-  public $API_VERSION;
-
-  function CreditCardFraudDetection() {
-    $this->HTTPBase();
-    $this->isSecure = 1;    // use HTTPS by default
-
-    //set the allowed_fields hash
-    $this->allowed_fields["i"] = 1;
-    $this->allowed_fields["domain"] = 1;
-    $this->allowed_fields["city"] = 1;
-    $this->allowed_fields["region"] = 1;
-    $this->allowed_fields["postal"] = 1;
-    $this->allowed_fields["country"] = 1;
-    $this->allowed_fields["bin"] = 1;
-    $this->allowed_fields["binName"] = 1;
-    $this->allowed_fields["binPhone"] = 1;
-    $this->allowed_fields["custPhone"] = 1;
-    $this->allowed_fields["license_key"] = 1;
-    $this->allowed_fields["requested_type"] = 1;
-    $this->allowed_fields["forwardedIP"] = 1;
-    $this->allowed_fields["emailMD5"] = 1;
-    $this->allowed_fields["shipAddr"] = 1;
-    $this->allowed_fields["shipCity"] = 1;
-    $this->allowed_fields["shipRegion"] = 1;
-    $this->allowed_fields["shipPostal"] = 1;
-    $this->allowed_fields["shipCountry"] = 1;
-    $this->allowed_fields["txnID"] = 1;
-    $this->allowed_fields["sessionID"] = 1;
-    $this->allowed_fields["usernameMD5"] = 1;
-    $this->allowed_fields["passwordMD5"] = 1;
-    $this->allowed_fields["user_agent"] = 1;
-    $this->allowed_fields["accept_language"] = 1;
-    $this->allowed_fields["avs_result"] = 1;
-    $this->allowed_fields["cvv_result"] = 1;
-    $this->allowed_fields["order_amount"] = 1;
-    $this->allowed_fields["order_currency"] = 1;
-    $this->allowed_fields["shopID"] = 1;
-    $this->allowed_fields["txn_type"] = 1;
-
-    $this->num_allowed_fields = count($this->allowed_fields);
-
-    //set the url of the web service
-    $this->url = "app/ccv2r";
-    $this->check_field = "countryMatch";
-    $this->server = array( "minfraud.maxmind.com", 
"minfraud-us-east.maxmind.com", "minfraud-us-west.maxmind.com");
-    $this->numservers = count($this->server);
-    $this->API_VERSION = 'PHP/1.54';
-  }
-
-  function filter_field($key, $value) {
-    if ($key == 'emailMD5'){
-      if (strpos($value, '@') !== false){
-        return md5(strtolower($value));
-      }
-    } else if ($key == 'usernameMD5' || $key == 'passwordMD5') {
-      if (strlen($value) != 32) {
-        return md5(strtolower($value));
-      }
-    }
-    return $value;
-  }
-}
-?>
diff --git a/extras/custom_filters/filters/minfraud/ccfd/src/HTTPBase.php 
b/extras/custom_filters/filters/minfraud/ccfd/src/HTTPBase.php
deleted file mode 100644
index cf24457..0000000
--- a/extras/custom_filters/filters/minfraud/ccfd/src/HTTPBase.php
+++ /dev/null
@@ -1,259 +0,0 @@
-<?php
-
-/* HTTPBase.php
- *
- * Copyright (C) 2008 MaxMind, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-class HTTPBase{
-  public $server;
-  public $numservers;
-  public $url;
-  public $queries;
-  public $allowed_fields;
-  public $num_allowed_fields;
-  public $outputstr;
-  public $isSecure;
-  public $timeout;
-  public $debug;
-  public $check_field;
-  function HTTPBase() {
-    $this->isSecure = 0;
-    $this->debug = 0;
-    $this->timeout = 0;
-    // use countryMatch to validate the results. It is avail in all minfraud 
answeres
-    $this->check_field = "countryMatch";
-  }
-
-  // this function sets the checked field
-  function set_check_field($f) {
-    $this->check_field = $f;
-  }
-
-  // this function sets the allowed fields
-  function set_allowed_fields($i) {
-    $this->allowed_fields = $i;
-    $this->num_allowed_fields = count($i);
-  }
-
-  //this function queries the servers
-  function query() {
-
-    // query every server using its domain name
-    for ($i = 0; $i < $this->numservers; $i++ ) {
-      $result = $this->querySingleServer($this->server[$i]);
-      if ($this->debug == 1) {
-        print "server: " . $this->server[$i] . "\nresult: " . $result . "\n";
-      }
-      if ($result) {
-        return $result;
-      }
-    }
-    return 0;
-  }
-
-  // this function takes a input hash and stores it in the hash named queries
-  function input($vars) {
-    $numinputkeys = count($vars);  // get the number of keys in the input hash
-    $inputkeys = array_keys($vars);   // get a array of keys in the input hash
-    for ($i = 0; $i < $numinputkeys; $i++) {
-      $key = $inputkeys[$i];
-      if ($this->allowed_fields[$key] == 1) {
-        //if key is a allowed field then store it in
-        //the hash named queries
-        $this->queries[$key] = urlencode($this->filter_field($key, 
$vars[$key]));
-      } else {
-        print "invalid input $key - perhaps misspelled field?";
-        return 0;
-      }
-    }
-    $this->queries["clientAPI"] = $this->API_VERSION;
-  }
-
-  //sub-class should override this if it needs to filter inputs
-  function filter_field($key, $value) {
-    return $value;
-  }
-
-  //this function returns the output from the server
-  function output() {
-    return $this->outputstr;
-  }
-
-  // this function queries a single server
-  function querySingleServer($server) {
-    // check if we using the Secure HTTPS proctol
-    if ($this->isSecure == 1) {
-      $scheme = "https://";;  // Secure HTTPS proctol
-    } else {
-      $scheme = "http://";;   // Regular HTTP proctol
-    }
-
-    // build a query string from the hash called queries
-    $numquerieskeys = count($this->queries); // get the number of keys in the 
hash called queries
-    $querieskeys = array_keys($this->queries); // get a array of keys in the 
hash called queries
-    if ($this->debug == 1) {
-      print "number of query keys " + $numquerieskeys + "\n";
-    }
-
-    $query_string = "";
-
-    for ($i = 0; $i < $numquerieskeys; $i++) {
-      //for each element in the hash called queries
-      //append the key and value of the element to the query string
-      $key = $querieskeys[$i];
-      $value = $this->queries[$key];
-      //encode the key and value before adding it to the string
-      //$key = urlencode($key);
-      //$value = urlencode($value);
-      if ($this->debug == 1) {
-        print " query key " . $key . " query value " . $value . "\n";
-      }
-      $query_string = $query_string . $key . "=" . $value;
-      if ($i < $numquerieskeys - 1) {
-        $query_string = $query_string . "&";
-      }
-    }
-
-    $content = "";
-
-    //check if the curl module exists
-    if (extension_loaded('curl')) {
-      //use curl
-      if ($this->debug == 1) {
-        print "using curl\n";
-      }
-
-      //open curl
-      $ch = curl_init();
-
-      $url = $scheme . $server . "/" . $this->url;
-
-      //set curl options
-      if ($this->debug == 1){
-        print "url " . $url . "\n";
-      }
-      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
-      curl_setopt($ch, CURLOPT_URL, $url);
-      curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeout);
-      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
-
-      //this option lets you store the result in a string
-      curl_setopt($ch, CURLOPT_POST,          1);
-      curl_setopt($ch, CURLOPT_POSTFIELDS,    $query_string);
-
-      //get the content
-      $content = curl_exec($ch);
-
-      // For some reason curl_errno returns an error even when function works
-      // Until we figure this out, will ignore curl errors - (not good i know)
-//      $e = curl_errno($ch);//get error or sucess
-
-//      if (($e == 1) & ($this->isSecure == 1)) {
-        // HTTPS does not work print error message
-//          print "error: this version of curl does not support HTTPS try 
build curl with SSL or specify \$ccfs->isSecure = 0\n";
-//      }
-//      if ($e > 0) {
-        //we get a error msg print it
-//        print "Received error message $e from curl: " . curl_error($ch) . 
"\n";
-//        return 0;
-//      }
-      //close curl
-      curl_close($ch);
-    } else {
-      //curl does not exist
-      //use the fsockopen function,
-      //the fgets function and the fclose function
-      if ($this->debug == 1) {
-        print "using fsockopen for querySingleServer\n";
-      }
-
-      $url = $scheme . $server . "/" . $this->url . "?" . $query_string;
-      if ($this->debug == 1) {
-        print "url " . $url . " " . "\n";
-      }
-
-      //now check if we are using regular HTTP
-      if ($this->isSecure == 0) {
-        //we using regular HTTP
-
-        //parse the url to get
-        //host, path and query
-        $url3 = parse_url($url);
-        $host = $url3["host"];
-        $path = $url3["path"];
-        $query =  $url3["query"];
-
-        //open the connection
-        $fp = fsockopen ($host, 80, $errno, $errstr, $this->timeout);
-        if ($fp) {
-          //send the request
-          $post = "POST $path HTTP/1.0\nHost: " . $host . "\nContent-type: 
application/x-www-form-urlencoded\nUser-Agent: Mozilla 4.0\nContent-length: " . 
strlen($query) . "\nConnection: close\n\n$query";
-          fputs ($fp, $post);
-          while (!feof($fp)) {
-            $buf .= fgets($fp, 128);
-          }
-          $lines = split("\n", $buf);
-          // get the content
-          $content = $lines[count($lines)-1];
-          //close the connection
-          fclose($fp);
-        } else {
-          return 0;
-        }
-      } else {
-        //secure HTTPS requires CURL
-        print "error: you need to install curl if you want secure HTTPS or 
specify the variable to be $ccfs->isSecure = 0";
-        return 0;
-      }
-    }
-
-    if ($this->debug == 1) {
-      print "content = " . $content . "\n";
-    }
-    // get the keys and values from
-    // the string content and store them
-    // the hash named outputstr
-
-    // split content into pairs containing both
-    // the key and the value
-    $keyvaluepairs = explode(";",$content);
-
-    //get the number of key and value pairs
-    $numkeyvaluepairs = count($keyvaluepairs);
-
-    //for each pair store key and value into the
-    //hash named outputstr
-    $this->outputstr = array();
-    for ($i = 0; $i < $numkeyvaluepairs; $i++) {
-      //split the pair into a key and a value
-      list($key,$value) = explode("=",$keyvaluepairs[$i]);
-      if ($this->debug == 1) {
-        print " output " . $key . " = " . $value . "\n";
-      }
-      //store the key and the value into the
-      //hash named outputstr
-      $this->outputstr[$key] = $value;
-    }
-    //one other way to do it
-    if (!array_key_exists($this->check_field,$this->outputstr)) {
-      return 0;
-    }
-    return 1;
-  }
-}
-?>
diff --git 
a/extras/custom_filters/filters/minfraud/ccfd/src/TelephoneVerification.php 
b/extras/custom_filters/filters/minfraud/ccfd/src/TelephoneVerification.php
deleted file mode 100644
index 5845475..0000000
--- a/extras/custom_filters/filters/minfraud/ccfd/src/TelephoneVerification.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-require_once ("HTTPBase.php");
-class TelephoneVerification extends HTTPBase {
-  public $server;
-  public $numservers;
-  public $API_VERSION;
-  function TelephoneVerification(){
-    $this->HTTPBase();
-    $this->isSecure = 1;    // use HTTPS by default
-
-    //set the allowed_fields hash
-    $this->allowed_fields["l"] = 1;
-    $this->allowed_fields["phone"] = 1;
-    $this->allowed_fields["verify_code"] = 1;
-    $this->num_allowed_fields = count($this->allowed_fields);
-
-    //set the url of the web service
-    $this->url = "app/telephone_http";
-    $this->check_field = "refid";
-    $this->server = array("www.maxmind.com", "www2.maxmind.com");
-    $this->numservers = count($this->server);
-    $this->API_VERSION = 'PHP/1.4';
-    $this->timeout = 30;
-  }
-}
-?>
diff --git a/extras/custom_filters/filters/minfraud/minfraud.body.php 
b/extras/custom_filters/filters/minfraud/minfraud.body.php
index 1100bfa..d82ed9c 100644
--- a/extras/custom_filters/filters/minfraud/minfraud.body.php
+++ b/extras/custom_filters/filters/minfraud/minfraud.body.php
@@ -91,8 +91,6 @@
 
                $this->cfo = &$custom_filter_object;
 
-               require_once( dirname( __FILE__ ) . 
"/ccfd/src/CreditCardFraudDetection.php" );
-
                global $wgMinFraudLicenseKey;
 
                // set the minfraud license key, go no further if we don't have 
it

-- 
To view, visit https://gerrit.wikimedia.org/r/180894
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4ffad6f45ea2a3b749804a14309379285715ac39
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Ejegg <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to