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;
}