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; } }
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; } }