Browse Source

Merge "Fix error handling in RepositoryFilter"

stable-1.0
Chris Aniszczyk 14 years ago committed by Code Review
parent
commit
eb9dba2fde
  1. 9
      org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/RepositoryFilter.java

9
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/RepositoryFilter.java

@ -154,10 +154,8 @@ public class RepositoryFilter implements Filter {
static void sendError(int statusCode, HttpServletRequest req,
HttpServletResponse rsp) throws IOException {
String svc = req.getParameter("service");
String accept = req.getHeader(HDR_ACCEPT);
if (svc != null && svc.startsWith("git-") && accept != null
&& accept.contains("application/x-" + svc + "-advertisement")) {
if (req.getRequestURI().endsWith("/info/refs") && isService(svc)) {
// Smart HTTP service request, use an ERR response.
rsp.setContentType("application/x-" + svc + "-advertisement");
@ -170,6 +168,7 @@ public class RepositoryFilter implements Filter {
return;
}
String accept = req.getHeader(HDR_ACCEPT);
if (accept != null && accept.contains(UploadPackServlet.RSP_TYPE)) {
// An upload-pack wants ACK or NAK, return ERR
// and the client will print this instead.
@ -188,6 +187,10 @@ public class RepositoryFilter implements Filter {
rsp.sendError(statusCode);
}
private static boolean isService(String svc) {
return "git-upload-pack".equals(svc) || "git-receive-pack".equals(svc);
}
private static String translate(int statusCode) {
switch (statusCode) {
case SC_NOT_FOUND:

Loading…
Cancel
Save