Ejemplo n.º 1
0
function ewww_image_optimizer_cloud_verify($cache = true, $api_key = '')
{
    global $ewww_debug;
    global $ewww_cloud_ip;
    global $ewww_cloud_transport;
    $ewww_debug .= "<b>ewww_image_optimizer_cloud_verify()</b><br>";
    if (empty($api_key)) {
        $api_key = ewww_image_optimizer_get_option('ewww_image_optimizer_cloud_key');
    }
    if (empty($api_key)) {
        update_site_option('ewww_image_optimizer_cloud_jpg', '');
        update_site_option('ewww_image_optimizer_cloud_png', '');
        update_site_option('ewww_image_optimizer_cloud_gif', '');
        update_option('ewww_image_optimizer_cloud_jpg', '');
        update_option('ewww_image_optimizer_cloud_png', '');
        update_option('ewww_image_optimizer_cloud_gif', '');
        return false;
    }
    add_filter('http_headers_useragent', 'ewww_image_optimizer_cloud_useragent');
    $prev_verified = get_option('ewww_image_optimizer_cloud_verified');
    $last_checked = get_option('ewww_image_optimizer_cloud_last');
    $ewww_cloud_ip = get_option('ewww_image_optimizer_cloud_ip');
    if ($cache && $prev_verified && $last_checked + 86400 > time() && !empty($ewww_cloud_ip)) {
        $ewww_debug .= "using cached IP: {$ewww_cloud_ip}<br>";
        if (!ewww_image_optimizer_get_option('ewww_image_optimizer_cloud_jpg') && !ewww_image_optimizer_get_option('ewww_image_optimizer_cloud_png') && !ewww_image_optimizer_get_option('ewww_image_optimizer_cloud_gif')) {
            ewww_image_optimizer_cloud_enable();
        }
        return $prev_verified;
    } else {
        $servers = gethostbynamel('optimize.exactlywww.com');
        if (empty($servers)) {
            $ewww_debug .= "unable to resolve servers<br>";
            return false;
        }
        $ewww_cloud_transport = 'https';
        foreach ($servers as $ip) {
            $url = "{$ewww_cloud_transport}://{$ip}/verify/";
            $result = wp_remote_post($url, array('timeout' => 5, 'sslverify' => false, 'body' => array('api_key' => $api_key)));
            if (is_wp_error($result)) {
                $ewww_cloud_transport = 'http';
                $error_message = $result->get_error_message();
                $ewww_debug .= "verification failed: {$error_message} <br>";
            } elseif (!empty($result['body']) && preg_match('/(great|exceeded)/', $result['body'])) {
                $verified = $result['body'];
                $ewww_cloud_ip = $ip;
                $ewww_debug .= "verification success via: {$ewww_cloud_transport}://{$ip} <br>";
                break;
            } else {
                $ewww_debug .= "verification failed via: {$ip} <br>" . print_r($result, true) . "<br>";
            }
        }
    }
    do_action('ewww_image_optimizer_verify', $result['body']);
    if (empty($verified)) {
        ewwwio_memory(__FUNCTION__);
        return FALSE;
    } else {
        if (!ewww_image_optimizer_get_option('ewww_image_optimizer_cloud_jpg') && !ewww_image_optimizer_get_option('ewww_image_optimizer_cloud_png') && !ewww_image_optimizer_get_option('ewww_image_optimizer_cloud_gif')) {
            ewww_image_optimizer_cloud_enable();
        }
        update_option('ewww_image_optimizer_cloud_verified', $verified);
        update_option('ewww_image_optimizer_cloud_last', time());
        update_option('ewww_image_optimizer_cloud_ip', $ewww_cloud_ip);
        $ewww_debug .= "verification body contents: " . $result['body'] . "<br>";
        ewwwio_memory(__FUNCTION__);
        return $verified;
    }
}
Ejemplo n.º 2
0
function ewww_image_optimizer_cloud_verify( $cache = true, $api_key = '' ) {
	ewwwio_debug_message( '<b>' . __FUNCTION__ . '()</b>' );
	if ( empty( $api_key ) && ! ( ! empty( $_REQUEST['option_page'] ) && $_REQUEST['option_page'] == 'ewww_image_optimizer_options' ) ) {
		$api_key = ewww_image_optimizer_get_option( 'ewww_image_optimizer_cloud_key' );
	} elseif ( empty( $api_key ) && ! empty( $_POST['ewww_image_optimizer_cloud_key'] ) ) {
		$api_key = $_POST['ewww_image_optimizer_cloud_key'];
	}
	if ( empty( $api_key ) ) {
		if ( ewww_image_optimizer_get_option( 'ewww_image_optimizer_jpg_level' ) > 10 ) {
			update_site_option( 'ewww_image_optimizer_jpg_level', 10 );
			update_option( 'ewww_image_optimizer_jpg_level', 10 );
		}
		if ( ewww_image_optimizer_get_option( 'ewww_image_optimizer_png_level' ) > 10 && ewww_image_optimizer_get_option( 'ewww_image_optimizer_png_level' ) != 40 ) {
			update_site_option( 'ewww_image_optimizer_png_level', 10 );
			update_option( 'ewww_image_optimizer_png_level', 10 );
		}
		if ( ewww_image_optimizer_get_option( 'ewww_image_optimizer_pdf_level' ) > 0 ) {
			update_site_option( 'ewww_image_optimizer_pdf_level', 0 );
			update_option( 'ewww_image_optimizer_pdf_level', 0 );
		}
		return false;
	}
	add_filter( 'http_headers_useragent', 'ewww_image_optimizer_cloud_useragent' );
	$ewww_cloud_status = get_transient( 'ewww_image_optimizer_cloud_status' );
	$ewww_cloud_ip = get_transient( 'ewww_image_optimizer_cloud_ip' );
	$ewww_cloud_transport = get_transient( 'ewww_image_optimizer_cloud_transport' );
	if ( ! ewww_image_optimizer_detect_wpsf_location_lock() && $cache && preg_match( '/^(\d{1,3}\.){3}\d{1,3}$/', $ewww_cloud_ip ) && preg_match( '/http/', $ewww_cloud_transport ) && preg_match( '/great/', $ewww_cloud_status ) ) {
		ewwwio_debug_message( 'using cached verification' );
		global $ewwwio_async_key_verification;
		$ewwwio_async_key_verification->dispatch();
		return $ewww_cloud_status;
	}
	if ( $ewww_cloud_transport !== 'https' && $ewww_cloud_transport !== 'http' ) {
		$ewww_cloud_transport = 'https';
	}
	if ( preg_match( '/^(\d{1,3}\.){3}\d{1,3}$/', $ewww_cloud_ip ) ) {
		ewwwio_debug_message( 'using cached ip' );
		$result = ewww_image_optimizer_cloud_post_key( $ewww_cloud_ip, $ewww_cloud_transport, $api_key );
		if ( is_wp_error( $result ) ) {
			$ewww_cloud_transport = 'http';
			$error_message = $result->get_error_message();
			ewwwio_debug_message( "verification failed: $error_message" );
			$result = ewww_image_optimizer_cloud_post_key( $ewww_cloud_ip, $ewww_cloud_transport, $api_key );
		}
		if ( is_wp_error( $result ) ) {
			$error_message = $result->get_error_message();
			ewwwio_debug_message( "verification failed: $error_message" );
		} elseif ( ! empty( $result['body'] ) && preg_match( '/(great|exceeded)/', $result['body'] ) ) {
			$verified = $result['body'];
			ewwwio_debug_message( "verification success via: $ewww_cloud_transport://$ewww_cloud_ip" );
		} else {
			ewwwio_debug_message( "verification failed via: $ewww_cloud_ip" );
			ewwwio_debug_message( print_r( $result, true ) );
		}
	}
	if ( empty( $verified ) ) {
		$ewww_cloud_transport = 'https';
		$servers = gethostbynamel( 'optimize.exactlywww.com' );
		if ( empty ( $servers ) ) {
			ewwwio_debug_message( 'unable to resolve servers' );
			return false;
		}
		foreach ( $servers as $ip ) {
			$result = ewww_image_optimizer_cloud_post_key( $ip, $ewww_cloud_transport, $api_key );
			if ( is_wp_error( $result ) ) {
				$ewww_cloud_transport = 'http';
				$error_message = $result->get_error_message();
				ewwwio_debug_message( "verification failed: $error_message" );
			} elseif ( ! empty( $result['body'] ) && preg_match( '/(great|exceeded)/', $result['body'] ) ) {
				$verified = $result['body'];
				$ewww_cloud_ip = $ip;
				ewwwio_debug_message( "verification success via: $ewww_cloud_transport://$ewww_cloud_ip" );
				break;
			} else {
				ewwwio_debug_message( "verification failed via: $ip" );
				ewwwio_debug_message( print_r( $result, true ) );
			}
		}
	}
	if ( empty( $verified ) ) {
		ewwwio_memory( __FUNCTION__ );
		return FALSE;
	} else {
		set_transient( 'ewww_image_optimizer_cloud_status', $verified, 3600 ); 
		set_transient( 'ewww_image_optimizer_cloud_ip', $ewww_cloud_ip, 3600 );
		set_transient( 'ewww_image_optimizer_cloud_transport', $ewww_cloud_transport, 3600 ); 
		if ( ewww_image_optimizer_get_option( 'ewww_image_optimizer_jpg_level' ) < 20 && ewww_image_optimizer_get_option( 'ewww_image_optimizer_png_level' ) < 20 && ewww_image_optimizer_get_option( 'ewww_image_optimizer_gif_level' ) < 20 && ewww_image_optimizer_get_option( 'ewww_image_optimizer_pdf_level' ) == 0 ) {
			ewww_image_optimizer_cloud_enable();
		}
		ewwwio_debug_message( "verification body contents: {$result['body']}" );
		ewwwio_memory( __FUNCTION__ );
		return $verified;
	}
}
Ejemplo n.º 3
0
function ewww_image_optimizer_cloud_verify($cache = true, $api_key = '')
{
    ewwwio_debug_message('<b>' . __FUNCTION__ . '()</b>');
    if (empty($api_key) && !(!empty($_REQUEST['option_page']) && $_REQUEST['option_page'] == 'ewww_image_optimizer_options')) {
        $api_key = ewww_image_optimizer_get_option('ewww_image_optimizer_cloud_key');
    } elseif (empty($api_key) && !empty($_POST['ewww_image_optimizer_cloud_key'])) {
        $api_key = $_POST['ewww_image_optimizer_cloud_key'];
    }
    if (empty($api_key)) {
        if (ewww_image_optimizer_get_option('ewww_image_optimizer_jpg_level') > 10) {
            update_site_option('ewww_image_optimizer_jpg_level', 10);
            update_option('ewww_image_optimizer_jpg_level', 10);
        }
        if (ewww_image_optimizer_get_option('ewww_image_optimizer_png_level') > 10 && ewww_image_optimizer_get_option('ewww_image_optimizer_png_level') != 40) {
            update_site_option('ewww_image_optimizer_png_level', 10);
            update_option('ewww_image_optimizer_png_level', 10);
        }
        if (ewww_image_optimizer_get_option('ewww_image_optimizer_pdf_level') > 0) {
            update_site_option('ewww_image_optimizer_pdf_level', 0);
            update_option('ewww_image_optimizer_pdf_level', 0);
        }
        return false;
    }
    if (ewww_image_optimizer_get_option('ewww_image_optimizer_cloud_exceeded') > time()) {
        set_transient('ewww_image_optimizer_cloud_status', 'exceeded', 3600);
        ewwwio_debug_message('license exceeded notice has not expired');
        return 'exceeded';
    }
    add_filter('http_headers_useragent', 'ewww_image_optimizer_cloud_useragent');
    $ewww_cloud_status = get_transient('ewww_image_optimizer_cloud_status');
    $ewww_cloud_ip = get_transient('ewww_image_optimizer_cloud_ip');
    $ewww_cloud_transport = get_transient('ewww_image_optimizer_cloud_transport');
    if (!ewww_image_optimizer_detect_wpsf_location_lock() && $cache && preg_match('/^(\\d{1,3}\\.){3}\\d{1,3}$/', $ewww_cloud_ip) && preg_match('/http/', $ewww_cloud_transport) && preg_match('/great/', $ewww_cloud_status)) {
        ewwwio_debug_message('using cached verification');
        global $ewwwio_async_key_verification;
        if (!class_exists('WP_Background_Process')) {
            require_once EWWW_IMAGE_OPTIMIZER_PLUGIN_PATH . 'background.php';
        }
        if (!is_object($ewwwio_async_key_verification)) {
            $ewwwio_async_key_verification = new EWWWIO_Async_Key_Verification();
        }
        $ewwwio_async_key_verification->dispatch();
        return $ewww_cloud_status;
    }
    if ($ewww_cloud_transport !== 'https' && $ewww_cloud_transport !== 'http') {
        $ewww_cloud_transport = 'https';
    }
    if (preg_match('/^(\\d{1,3}\\.){3}\\d{1,3}$/', $ewww_cloud_ip)) {
        ewwwio_debug_message('using cached ip');
        $result = ewww_image_optimizer_cloud_post_key($ewww_cloud_ip, $ewww_cloud_transport, $api_key);
        if (is_wp_error($result)) {
            $ewww_cloud_transport = 'http';
            $error_message = $result->get_error_message();
            ewwwio_debug_message("verification failed: {$error_message}");
            $result = ewww_image_optimizer_cloud_post_key($ewww_cloud_ip, $ewww_cloud_transport, $api_key);
        }
        if (is_wp_error($result)) {
            $error_message = $result->get_error_message();
            ewwwio_debug_message("verification failed: {$error_message}");
        } elseif (!empty($result['body']) && preg_match('/(great|exceeded)/', $result['body'])) {
            $verified = $result['body'];
            ewwwio_debug_message("verification success via: {$ewww_cloud_transport}://{$ewww_cloud_ip}");
        } else {
            ewwwio_debug_message("verification failed via: {$ewww_cloud_ip}");
            ewwwio_debug_message(print_r($result, true));
        }
    }
    if (empty($verified)) {
        $ewww_cloud_transport = 'https';
        $servers = gethostbynamel('optimize.exactlywww.com');
        if (empty($servers)) {
            ewwwio_debug_message('unable to resolve servers');
            return false;
        }
        foreach ($servers as $ip) {
            $result = ewww_image_optimizer_cloud_post_key($ip, $ewww_cloud_transport, $api_key);
            if (is_wp_error($result)) {
                $ewww_cloud_transport = 'http';
                $error_message = $result->get_error_message();
                ewwwio_debug_message("verification failed: {$error_message}");
            } elseif (!empty($result['body']) && preg_match('/(great|exceeded)/', $result['body'])) {
                $verified = $result['body'];
                if (preg_match('/exceeded/', $verified)) {
                    ewww_image_optimizer_set_option('ewww_image_optimizer_cloud_exceeded', time() + 300);
                }
                $ewww_cloud_ip = $ip;
                ewwwio_debug_message("verification success via: {$ewww_cloud_transport}://{$ewww_cloud_ip}");
                break;
            } else {
                ewwwio_debug_message("verification failed via: {$ip}");
                ewwwio_debug_message(print_r($result, true));
            }
        }
    }
    if (empty($verified)) {
        ewwwio_memory(__FUNCTION__);
        return FALSE;
    } else {
        set_transient('ewww_image_optimizer_cloud_status', $verified, 3600);
        set_transient('ewww_image_optimizer_cloud_ip', $ewww_cloud_ip, 3600);
        set_transient('ewww_image_optimizer_cloud_transport', $ewww_cloud_transport, 3600);
        if (ewww_image_optimizer_get_option('ewww_image_optimizer_jpg_level') < 20 && ewww_image_optimizer_get_option('ewww_image_optimizer_png_level') < 20 && ewww_image_optimizer_get_option('ewww_image_optimizer_gif_level') < 20 && ewww_image_optimizer_get_option('ewww_image_optimizer_pdf_level') == 0) {
            ewww_image_optimizer_cloud_enable();
        }
        ewwwio_debug_message("verification body contents: {$result['body']}");
        ewwwio_memory(__FUNCTION__);
        return $verified;
    }
}
Ejemplo n.º 4
0
function ewww_image_optimizer_cloud_verify($cache = true, $api_key = '')
{
    ewwwio_debug_message('<b>' . __FUNCTION__ . '()</b>');
    global $ewww_cloud_ip;
    global $ewww_cloud_transport;
    if (empty($api_key) && !(!empty($_REQUEST['option_page']) && $_REQUEST['option_page'] == 'ewww_image_optimizer_options')) {
        $api_key = ewww_image_optimizer_get_option('ewww_image_optimizer_cloud_key');
        //		ewwwio_debug_message( 'getting key from db' );
    }
    if (empty($api_key)) {
        if (ewww_image_optimizer_get_option('ewww_image_optimizer_jpg_level') > 10) {
            update_site_option('ewww_image_optimizer_jpg_level', 10);
            update_option('ewww_image_optimizer_jpg_level', 10);
        }
        if (ewww_image_optimizer_get_option('ewww_image_optimizer_png_level') > 10 && ewww_image_optimizer_get_option('ewww_image_optimizer_png_level') != 40) {
            update_site_option('ewww_image_optimizer_png_level', 10);
            update_option('ewww_image_optimizer_png_level', 10);
        }
        if (ewww_image_optimizer_get_option('ewww_image_optimizer_pdf_level') > 0) {
            update_site_option('ewww_image_optimizer_pdf_level', 0);
            update_option('ewww_image_optimizer_pdf_level', 0);
        }
        return false;
    }
    add_filter('http_headers_useragent', 'ewww_image_optimizer_cloud_useragent');
    $prev_verified = get_option('ewww_image_optimizer_cloud_verified');
    $last_checked = get_option('ewww_image_optimizer_cloud_last');
    $ewww_cloud_ip = get_option('ewww_image_optimizer_cloud_ip');
    $servers = gethostbynamel('optimize.exactlywww.com');
    if (empty($servers)) {
        ewwwio_debug_message('unable to resolve servers');
        return false;
    }
    $ewww_cloud_transport = 'https';
    foreach ($servers as $ip) {
        $url = "{$ewww_cloud_transport}://{$ip}/verify/";
        $result = wp_remote_post($url, array('timeout' => 5, 'sslverify' => false, 'body' => array('api_key' => $api_key)));
        if (is_wp_error($result)) {
            $ewww_cloud_transport = 'http';
            $error_message = $result->get_error_message();
            ewwwio_debug_message("verification failed: {$error_message}");
        } elseif (!empty($result['body']) && preg_match('/(great|exceeded)/', $result['body'])) {
            $verified = $result['body'];
            $ewww_cloud_ip = $ip;
            ewwwio_debug_message("verification success via: {$ewww_cloud_transport}://{$ip}");
            break;
        } else {
            ewwwio_debug_message("verification failed via: {$ip}");
            ewwwio_debug_message(print_r($result, true));
        }
    }
    if (empty($verified)) {
        ewwwio_memory(__FUNCTION__);
        return FALSE;
    } else {
        if (ewww_image_optimizer_get_option('ewww_image_optimizer_jpg_level') < 20 && ewww_image_optimizer_get_option('ewww_image_optimizer_png_level') < 20 && ewww_image_optimizer_get_option('ewww_image_optimizer_gif_level') < 20 && ewww_image_optimizer_get_option('ewww_image_optimizer_pdf_level') == 0) {
            ewww_image_optimizer_cloud_enable();
        }
        ewwwio_debug_message("verification body contents: {$result['body']}");
        ewwwio_memory(__FUNCTION__);
        return $verified;
    }
}