Ticket #3990: apache_mod_proxy.patch

File apache_mod_proxy.patch, 1.9 KB (added by bradley.kite@…, 13 years ago)

Fix video_url function to return correct URL's when going via an Apache/mod_proxy server

  • mythweb/includes/utils.php

     
    336336        if (!$ext && $_SESSION['file_url_override'])
    337337            return 'file://'.$_SESSION['file_url_override'].str_replace('%2F', '/', rawurlencode(basename($show->filename)));
    338338    // Which protocol should we use for downloads?
     339
     340        $host = $_SERVER['HTTP_HOST'];
     341       if (isset($_SERVER['HTTP_X_FORWARDED_HOST']))
     342           $host = $_SERVER['HTTP_X_FORWARDED_HOST'];
     343
    339344        $url = (($_SESSION['stream']['force_http'] || !isset($_SERVER['HTTPS']))
    340                  ? 'http://' .$_SERVER['HTTP_HOST'].':'._or($_SESSION['stream']['force_http_port'], '80')
    341                  : 'https://'.$_SERVER['HTTP_HOST'].':'._or($_SESSION['stream']['force_http_port'], '443')
     345                 ? 'http://' .$host.':'._or($_SESSION['stream']['force_http_port'], '80')
     346                 : 'https://'.$host.':'._or($_SESSION['stream']['force_http_port'], '443')
    342347               )
    343348               .root."pl/stream/$show->chanid/$show->recstartts";
    344349    // Handle specific file extension modes
     
    356361    // Windows likely gets a myth:// url -- grab the master host and port
    357362        global $Master_Host, $Master_Port;
    358363    // Is either the browser xor the master in an rfc 1918 zone?
     364        $remoteaddr = $_SERVER['REMOTE_ADDR'];
     365       if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
     366           $remoteaddr = $_SERVER['HTTP_X_FORWARDED_FOR'];
    359367        if (preg_match('/^(?:10|192\.168|172\.(?:1[6-9]|2[0-9]|3[0-6]))\./', $Master_Host)
    360                 xor preg_match('/^(?:10|192\.168|172\.(?:1[6-9]|2[0-9]|3[0-6]))\./', $_SERVER['REMOTE_ADDR'])) {
     368                xor preg_match('/^(?:10|192\.168|172\.(?:1[6-9]|2[0-9]|3[0-6]))\./', $remoteaddr)) {
    361369            return $url;
    362370        }
    363371    // Send the myth url