*** //fspaka02/userdata7a$/al12459/Documents/Utils.ps1 Sun Nov 8 12:30:38 2015 --- //fspaka02/userdata7a$/al12459/Documents/WindowsPowerShell/Modules/posh-gvm/Utils.ps1 Thu Nov 12 12:36:53 2015 *************** *** 33,38 **** --- 33,65 ---- } } + function Acquire-Proxy { + $proxy = [System.Net.WebRequest]::GetSystemWebProxy() + if($proxy) { + $proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials + } + return $proxy + } + + function Invoke-ProxiedRestMethod($URL, $OutFile) { + $proxy = Acquire-Proxy + if ($proxy) { + $proxyUri = $proxy.GetProxy("$server$url") + Write-Verbose "Attempting proxy @ $proxyUri" + if ($OutFile) { + return Invoke-RestMethod -ProxyUseDefaultCredentials -Proxy $proxyUri $URL -OutFile $OutFile + } else { + return Invoke-RestMethod -ProxyUseDefaultCredentials -Proxy $proxyUri $URL + } + } else { + if ($OutFile) { + return Invoke-RestMethod $URL -OutFile $OutFile + } else { + return Invoke-RestMethod $URL + } + } + } + function Check-GVM-API-Version() { Write-Verbose 'Checking GVM-API version' try { *************** *** 69,75 **** function Is-New-Posh-GVM-Version-Available() { try { $localVersion = Get-Posh-Gvm-Version ! $currentVersion = Invoke-RestMethod $Script:PGVM_VERSION_SERVICE return ( $currentVersion -gt $localVersion ) } catch { --- 96,103 ---- function Is-New-Posh-GVM-Version-Available() { try { $localVersion = Get-Posh-Gvm-Version ! ! $currentVersion = Invoke-ProxiedRestMethod $Script:PGVM_VERSION_SERVICE return ( $currentVersion -gt $localVersion ) } catch { *************** *** 110,116 **** try { $target = "$Script:PGVM_BROADCAST_SERVICE/broadcast/latest" Write-Verbose "Broadcast API call to: $target" ! return Invoke-RestMethod $target } catch { Write-Verbose "Could not reached broadcast API" $Script:GVM_AVAILABLE = $false --- 138,144 ---- try { $target = "$Script:PGVM_BROADCAST_SERVICE/broadcast/latest" Write-Verbose "Broadcast API call to: $target" ! return Invoke-ProxiedRestMethod $target } catch { Write-Verbose "Could not reached broadcast API" $Script:GVM_AVAILABLE = $false *************** *** 298,307 **** $target = "$Script:PGVM_SERVICE/$Path" if ( $FileTarget ) { ! return Invoke-RestMethod $target -OutFile $FileTarget } ! return Invoke-RestMethod $target } catch { $Script:GVM_AVAILABLE = $false if ( ! ($IgnoreFailure) ) { --- 326,335 ---- $target = "$Script:PGVM_SERVICE/$Path" if ( $FileTarget ) { ! return Invoke-ProxiedRestMethod $target -OutFile $FileTarget } ! return Invoke-ProxiedRestMethod $target } catch { $Script:GVM_AVAILABLE = $false if ( ! ($IgnoreFailure) ) { *************** *** 457,464 **** --- 485,495 ---- #> Write-Verbose "Try to download $Url with HttpWebRequest" $uri = New-Object "System.Uri" $Url + $request = [System.Net.HttpWebRequest]::Create($uri) + $request.Proxy = Acquire-Proxy $request.set_Timeout(15000) + $response = $request.GetResponse() $totalLength = [System.Math]::Floor($response.get_ContentLength()/1024) $responseStream = $response.GetResponseStream() *************** *** 466,475 **** $buffer = new-object byte[] 10KB $count = $responseStream.Read($buffer,0,$buffer.length) $downloadedBytes = $count while ($count -gt 0) { ! [System.Console]::CursorLeft = 0 ! [System.Console]::Write("Downloaded {0}K of {1}K", [System.Math]::Floor($downloadedBytes/1024), $totalLength) $targetStream.Write($buffer, 0, $count) $count = $responseStream.Read($buffer,0,$buffer.length) $downloadedBytes = $downloadedBytes + $count --- 497,520 ---- $buffer = new-object byte[] 10KB $count = $responseStream.Read($buffer,0,$buffer.length) $downloadedBytes = $count + $isInferior = $false while ($count -gt 0) { ! ! try { ! if ($isInferior -eq $false) { ! [System.Console]::CursorLeft = 0 ! } ! } catch { ! $isInferior = $true ! } ! ! if ($isInferior) { ! [System.Console]::Write("Downloaded {0}K of {1}K", [System.Math]::Floor($downloadedBytes/1024), $totalLength) ! } else { ! [System.Console]::WriteLine("Downloaded {0}K of {1}K", [System.Math]::Floor($downloadedBytes/1024), $totalLength) ! } ! $targetStream.Write($buffer, 0, $count) $count = $responseStream.Read($buffer,0,$buffer.length) $downloadedBytes = $downloadedBytes + $count