Merge pull request #103 from axrt/no_ssl
Add a --no-ssl flag that switches off certificate verification
This commit is contained in:
commit
9485a9f46c
2 changed files with 21 additions and 3 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -15,3 +15,4 @@ README.md.toc.*
|
||||||
.DS_Store
|
.DS_Store
|
||||||
*.vimspector.log
|
*.vimspector.log
|
||||||
support/test/csharp/*.exe*
|
support/test/csharp/*.exe*
|
||||||
|
.neomake.log
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ import sys
|
||||||
import json
|
import json
|
||||||
import functools
|
import functools
|
||||||
import time
|
import time
|
||||||
|
import ssl
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from io import BytesIO # for Python 3
|
from io import BytesIO # for Python 3
|
||||||
|
|
@ -484,7 +485,7 @@ def UrlOpen( *args, **kwargs ):
|
||||||
return urllib2.urlopen( *args, **kwargs )
|
return urllib2.urlopen( *args, **kwargs )
|
||||||
|
|
||||||
|
|
||||||
def DownloadFileTo( url, destination, file_name = None, checksum = None ):
|
def DownloadFileTo( url, destination, file_name = None, checksum = None, sslcheck = True):
|
||||||
if not file_name:
|
if not file_name:
|
||||||
file_name = url.split( '/' )[ -1 ]
|
file_name = url.split( '/' )[ -1 ]
|
||||||
|
|
||||||
|
|
@ -509,7 +510,15 @@ def DownloadFileTo( url, destination, file_name = None, checksum = None ):
|
||||||
|
|
||||||
print( "Downloading {} to {}/{}".format( url, destination, file_name ) )
|
print( "Downloading {} to {}/{}".format( url, destination, file_name ) )
|
||||||
|
|
||||||
with contextlib.closing( UrlOpen( r ) ) as u:
|
if not sslcheck:
|
||||||
|
context = ssl.create_default_context()
|
||||||
|
context.check_hostname = False
|
||||||
|
context.verify_mode = ssl.CERT_NONE
|
||||||
|
kwargs = { "context": context }
|
||||||
|
else:
|
||||||
|
kwargs = {}
|
||||||
|
|
||||||
|
with contextlib.closing( UrlOpen( r, **kwargs ) ) as u:
|
||||||
with open( file_path, 'wb' ) as f:
|
with open( file_path, 'wb' ) as f:
|
||||||
f.write( u.read() )
|
f.write( u.read() )
|
||||||
|
|
||||||
|
|
@ -662,6 +671,12 @@ for name, gadget in GADGETS.items():
|
||||||
help = "Don't install the {} debug adapter for {} support "
|
help = "Don't install the {} debug adapter for {} support "
|
||||||
'(when supplying --all)'.format( name, lang ) )
|
'(when supplying --all)'.format( name, lang ) )
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"--no-check-certificate",
|
||||||
|
action = "store_true",
|
||||||
|
help = "Do not verify SSL certificates for file downloads."
|
||||||
|
)
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if args.force_all and not args.all:
|
if args.force_all and not args.all:
|
||||||
|
|
@ -693,12 +708,14 @@ for name, gadget in GADGETS.items():
|
||||||
destination = os.path.join( gadget_dir, 'download', name, v[ 'version' ] )
|
destination = os.path.join( gadget_dir, 'download', name, v[ 'version' ] )
|
||||||
|
|
||||||
url = string.Template( gadget[ 'download' ][ 'url' ] ).substitute( v )
|
url = string.Template( gadget[ 'download' ][ 'url' ] ).substitute( v )
|
||||||
|
verify_cert_off = args.no_check_certificate
|
||||||
|
|
||||||
file_path = DownloadFileTo(
|
file_path = DownloadFileTo(
|
||||||
url,
|
url,
|
||||||
destination,
|
destination,
|
||||||
file_name = gadget[ 'download' ].get( 'target' ),
|
file_name = gadget[ 'download' ].get( 'target' ),
|
||||||
checksum = v.get( 'checksum' ) )
|
checksum = v.get( 'checksum' ),
|
||||||
|
sslcheck = not verify_cert_off)
|
||||||
root = os.path.join( destination, 'root' )
|
root = os.path.join( destination, 'root' )
|
||||||
ExtractZipTo( file_path,
|
ExtractZipTo( file_path,
|
||||||
root,
|
root,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue