diff options
author | James Moger <james.moger@gitblit.com> | 2013-05-03 19:06:50 -0400 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2013-05-03 19:09:25 -0400 |
commit | 40aa84507640cd2a980757e7910a63310474eb87 (patch) | |
tree | 088278936eb8722e4f162f2b77b91bbbffaeec87 /src/main/java/com/gitblit/git/RepositoryResolver.java | |
parent | 9985ed23ae251c1d024a223f9ea8372b75a122f2 (diff) | |
download | gitblit-40aa84507640cd2a980757e7910a63310474eb87.tar.gz gitblit-40aa84507640cd2a980757e7910a63310474eb87.zip |
Revised Git Daemon to improve thread stopping and to eliminate repository name hack
Diffstat (limited to 'src/main/java/com/gitblit/git/RepositoryResolver.java')
-rw-r--r-- | src/main/java/com/gitblit/git/RepositoryResolver.java | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/main/java/com/gitblit/git/RepositoryResolver.java b/src/main/java/com/gitblit/git/RepositoryResolver.java index fb5db712..21a83760 100644 --- a/src/main/java/com/gitblit/git/RepositoryResolver.java +++ b/src/main/java/com/gitblit/git/RepositoryResolver.java @@ -23,7 +23,6 @@ import javax.servlet.http.HttpServletRequest; import org.eclipse.jgit.errors.RepositoryNotFoundException; import org.eclipse.jgit.lib.Repository; -import org.eclipse.jgit.transport.DaemonClient; import org.eclipse.jgit.transport.resolver.FileResolver; import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException; import org.slf4j.Logger; @@ -54,10 +53,19 @@ public class RepositoryResolver<X> extends FileResolver<X> { public Repository open(final X req, final String name) throws RepositoryNotFoundException, ServiceNotEnabledException { Repository repo = super.open(req, name); - // XXX Set repository name for the pack factories + + // Set repository name for the pack factories // We do this because the JGit API does not have a consistent way to // retrieve the repository name from the pack factories or the hooks. - repo.getConfig().setString("gitblit", null, "repositoryName", name); + if (req instanceof HttpServletRequest) { + // http/https request + HttpServletRequest client = (HttpServletRequest) req; + client.setAttribute("gitblitRepositoryName", name); + } else if (req instanceof GitDaemonClient) { + // git request + GitDaemonClient client = (GitDaemonClient) req; + client.setRepositoryName(name); + } return repo; } @@ -72,10 +80,10 @@ public class RepositoryResolver<X> extends FileResolver<X> { UserModel user = null; String origin = null; - if (req instanceof DaemonClient) { + if (req instanceof GitDaemonClient) { // git daemon request // this is an anonymous/unauthenticated protocol - DaemonClient client = (DaemonClient) req; + GitDaemonClient client = (GitDaemonClient) req; scheme = "git"; origin = client.getRemoteAddress().toString(); user = UserModel.ANONYMOUS; |