WordPress.org

Ready to get started?Download WordPress

Forums

Download Monitor
Download Monitor behind proxy (1 post)

  1. fantapop
    Member
    Posted 7 months ago #

    Download-Monitor doesn't currently support remote downloads if your wordpress instance is behind a proxy. In the end I won't end up using this code because we decided to host our downloads locally but I thought I'd put this snippet up in case it helps someone else:

    in the file includes/class-dlm-download-handler.php, function readfile_chunked:

    -  $handle    = fopen( $file, 'r' );
    +  $context   = null;
    +
    +  // obey proxy rules if trying to grab a file via http or https
    +  if (constant(WP_USEPROXY) && strpos($file, "http://") === 0 || strpos($file, "https://") === 0))
    +  {
    +    $domain = parse_url($file, PHP_URL_HOST);
    +    $proxy_string = "tcp://" . WP_PROXY_HOST . ":" . WP_PROXY_PORT;
    +    $opts = array(
    +        'http' => array( 'proxy' => $proxy_string ),
    +        'ssl' => array( 'SNI_enabled' => true, 'SNI_server_name' => $domain));
    +    $context = stream_context_create($opts);
    +  }
    +
    +  $handle    = fopen( $file, 'r', false, $context );

    *) Caution: I've tested this using an https ended point only despite that the code checks for either https or http.
    *) in theory it could work with some other contexts as well with some minor tweaks (i.e. ftp)
    *) there's a bit more work to be done for a proxy that uses authentication. some details about that can be found here: http://brugbart.com/php-http-request-proxy-server
    https://wordpress.org/plugins/download-monitor/

Reply

You must log in to post.

About this Plugin

About this Topic