public void onBeginNegotiate()

in src/main/java/com/googlesource/gerrit/plugins/ratelimiter/RateLimitUploadPack.java [58:83]


  public void onBeginNegotiate(
      Repository repository,
      Project project,
      String remoteHost,
      UploadPack up,
      Collection<? extends ObjectId> wants,
      int cntOffered)
      throws ValidationException {
    String key;
    CurrentUser u = user.get();
    if (u.isIdentifiedUser()) {
      key = Integer.toString(u.asIdentifiedUser().getAccountId().get());
    } else {
      key = remoteHost;
    }

    try {
      RateLimiter limiter = uploadPackPerHour.get(key);
      if (limiter != null && !limiter.acquirePermit()) {
        throw new RateLimitException(
            MessageFormat.format(limitExceededMsgFormat, limiter.permitsPerHour()));
      }
    } catch (ExecutionException e) {
      log.warn("Cannot get rate limits for {}: {}", key, e);
    }
  }