@@ -42,7 +42,7 @@ def getWmsRequestUrl(WMS_Capabilities, reqType, urlObj):
4242 except :
4343 return urllib .parse .urlunparse (urlObj )
4444
45- def resolve_external_layer (resource , logger , crs = None ):
45+ def resolve_external_layer (resource , logger , timeout , crs = None ):
4646 cpos = resource .find (':' )
4747 hpos = resource .rfind ('#' )
4848 if hpos == - 1 :
@@ -63,20 +63,20 @@ def resolve_external_layer(resource, logger, crs=None):
6363 urlobj = urlobj ._replace (query = urllib .parse .urlencode (params ))
6464 url = urllib .parse .urlunparse (urlobj )
6565
66- return get_external_wms_layer (resource , url , layername , infoFormat , logger )
66+ return get_external_wms_layer (resource , url , layername , infoFormat , logger , timeout )
6767 elif type == "wmts" :
6868 if not crs :
6969 urlobj = urllib .parse .urlparse (url )
7070 params = dict (urllib .parse .parse_qsl (urlobj .query ))
7171 crs = params .get ('crs' , 'EPSG:3857' )
72- return get_external_wmts_layer (resource , url , layername , crs , logger )
72+ return get_external_wmts_layer (resource , url , layername , crs , logger , timeout )
7373 elif type == "mvt" :
7474 return get_extermal_mvt_layer (resource , url , layername )
7575 else :
7676 logger .warn ("Unknown external layer: %s" % resource )
7777 return None
7878
79- def get_external_wms_layer (resource , url , layerName , infoFormat , logger ):
79+ def get_external_wms_layer (resource , url , layerName , infoFormat , logger , timeout ):
8080
8181 global capabilites_cache
8282
@@ -106,7 +106,7 @@ def get_external_wms_layer(resource, url, layerName, infoFormat, logger):
106106
107107 if not capabilites_cache .lookup (capabilitiesUrl ):
108108 try :
109- response = urllib .request .urlopen (capabilitiesUrl )
109+ response = urllib .request .urlopen (capabilitiesUrl , timeout = timeout )
110110 except :
111111 logger .warn ("Failed to download capabilities for external layer %s" % resource )
112112 return None
@@ -198,13 +198,13 @@ def get_external_wms_layer(resource, url, layerName, infoFormat, logger):
198198 }
199199
200200
201- def get_external_wmts_layer (resource , capabilitiesUrl , layerName , crs , logger ):
201+ def get_external_wmts_layer (resource , capabilitiesUrl , layerName , crs , logger , timeout ):
202202
203203 global capabilites_cache
204204
205205 if not capabilites_cache .lookup (capabilitiesUrl ):
206206 try :
207- response = urllib .request .urlopen (capabilitiesUrl )
207+ response = urllib .request .urlopen (capabilitiesUrl , timeout = timeout )
208208 except :
209209 logger .warn ("Failed to download capabilities for external layer %s" % resource )
210210 return None
0 commit comments