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 #7474
This commit is contained in:
parent
ac349dce96
commit
3fb3e7e6dc
1 changed files with 8 additions and 1 deletions
|
@ -27,6 +27,7 @@
|
|||
# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import hmac
|
||||
import urlparse
|
||||
|
||||
try:
|
||||
from hashlib import sha1
|
||||
|
@ -56,7 +57,8 @@ def get_fqdn(repo_url):
|
|||
""" chop the hostname out of a giturl """
|
||||
|
||||
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]
|
||||
if ":" in repo_url:
|
||||
repo_url = repo_url.split(":")[0]
|
||||
|
@ -64,6 +66,11 @@ def get_fqdn(repo_url):
|
|||
elif "/" in repo_url:
|
||||
repo_url = repo_url.split("/")[0]
|
||||
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
|
||||
|
||||
|
|
Loading…
Reference in a new issue