Properly parse urls for ssh-keyscan use
Previously, the get_fqdn() function in known_hosts.py only worked with urls that started with git@, and ignored any urls that started with a normal schema type (ie. http:// or ssh://). This patch corrects that by using urlparse to parse the hostname portion out of urls that have a proper schema. Fixes #7474pull/4420/head
parent
ac349dce96
commit
3fb3e7e6dc
|
@ -27,6 +27,7 @@
|
||||||
# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
import hmac
|
import hmac
|
||||||
|
import urlparse
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from hashlib import sha1
|
from hashlib import sha1
|
||||||
|
@ -56,7 +57,8 @@ def get_fqdn(repo_url):
|
||||||
""" chop the hostname out of a giturl """
|
""" chop the hostname out of a giturl """
|
||||||
|
|
||||||
result = None
|
result = None
|
||||||
if "@" in repo_url and not repo_url.startswith("http"):
|
if "@" in repo_url and "://" not in repo_url:
|
||||||
|
# most likely a git@ or ssh+git@ type URL
|
||||||
repo_url = repo_url.split("@", 1)[1]
|
repo_url = repo_url.split("@", 1)[1]
|
||||||
if ":" in repo_url:
|
if ":" in repo_url:
|
||||||
repo_url = repo_url.split(":")[0]
|
repo_url = repo_url.split(":")[0]
|
||||||
|
@ -64,6 +66,11 @@ def get_fqdn(repo_url):
|
||||||
elif "/" in repo_url:
|
elif "/" in repo_url:
|
||||||
repo_url = repo_url.split("/")[0]
|
repo_url = repo_url.split("/")[0]
|
||||||
result = repo_url
|
result = repo_url
|
||||||
|
elif "://" in repo_url:
|
||||||
|
# this should be something we can parse with urlparse
|
||||||
|
parts = urlparse.urlparse(repo_url)
|
||||||
|
if parts[1] != '':
|
||||||
|
result = parts[1]
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue