protected ModelAndView doHandle()

in server/src/main/java/jetbrains/buildServer/torrent/web/TrackerController.java [50:72]


  protected ModelAndView doHandle(@NotNull HttpServletRequest request, @NotNull final HttpServletResponse response) throws Exception {
    try {
      if (myTrackerManager.isTrackerUsesDedicatedPort() || !myTrackerManager.isTrackerRunning()) {
        response.setStatus(HttpServletResponse.SC_NOT_FOUND); // return 404, if tracker uses dedicated port or not started
        return null;
      }
      if ("POST".equalsIgnoreCase(request.getMethod())) {
        final String body = request.getReader().lines().collect(Collectors.joining("\n"));
        myMultiAnnounceRequestProcessor.process(body, request.getRequestURL().toString(), request.getRemoteAddr(), getRequestHandler(response));
      } else {
        final String queryString = request.getQueryString();
        if (queryString == null) {
          return null;
        }
        final String uri = request.getRequestURL().append("?").append(queryString).toString();
        myTrackerManager.getTrackerService().process(uri, request.getRemoteAddr(), getRequestHandler(response));
      }
    } catch (Throwable e) {
      Loggers.SERVER.warnAndDebugDetails("error in processing torrent announce. Request: " + request, e);
      response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
    }
    return null;
  }