From eecaad8b8e2c447429c31a01d49260ddd6b4ee03 Mon Sep 17 00:00:00 2001 From: Paul Martin <paul@paulsputer.com> Date: Sat, 16 Apr 2016 17:35:32 -0400 Subject: [PATCH] Proof of concept #1026 --- src/main/java/com/gitblit/transport/ssh/commands/SshCommand.java | 18 ++++++++++++------ 1 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/gitblit/transport/ssh/commands/SshCommand.java b/src/main/java/com/gitblit/transport/ssh/commands/SshCommand.java index 7385022..02764db 100644 --- a/src/main/java/com/gitblit/transport/ssh/commands/SshCommand.java +++ b/src/main/java/com/gitblit/transport/ssh/commands/SshCommand.java @@ -27,6 +27,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.gitblit.IStoredSettings; import com.gitblit.Keys; import com.gitblit.manager.IGitblit; import com.gitblit.utils.StringUtils; @@ -73,17 +74,22 @@ protected String getRepositoryUrl(String repository) { String username = getContext().getClient().getUsername(); - String hostname = getHostname(); - int port = getContext().getGitblit().getSettings().getInteger(Keys.git.sshPort, 0); - if (port == 22) { + IStoredSettings settings = getContext().getGitblit().getSettings(); + String displayHostname = settings.getString(Keys.git.sshAdvertisedHost, ""); + if(displayHostname.isEmpty()) { + displayHostname = getHostname(); + } + int port = settings.getInteger(Keys.git.sshPort, 0); + int displayPort = settings.getInteger(Keys.git.sshAdvertisedPort, port); + if (displayPort == 22) { // standard port - return MessageFormat.format("{0}@{1}/{2}.git", username, hostname, repository); + return MessageFormat.format("{0}@{1}/{2}.git", username, displayHostname, repository); } else { // non-standard port return MessageFormat.format("ssh://{0}@{1}:{2,number,0}/{3}", - username, hostname, port, repository); + username, displayHostname, displayPort, repository); } } - protected abstract void run() throws UnloggedFailure, Failure, Exception; + protected abstract void run() throws Failure, Exception; } -- Gitblit v1.9.1