summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/gitblit/git/RepositoryResolver.java
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2013-05-03 19:06:50 -0400
committerJames Moger <james.moger@gitblit.com>2013-05-03 19:09:25 -0400
commit40aa84507640cd2a980757e7910a63310474eb87 (patch)
tree088278936eb8722e4f162f2b77b91bbbffaeec87 /src/main/java/com/gitblit/git/RepositoryResolver.java
parent9985ed23ae251c1d024a223f9ea8372b75a122f2 (diff)
downloadgitblit-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.java18
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;