0

我正在尝试编辑来自 Envoy 的字符串(https://github.com/envoyproxy/envoy/blob/main/source/common/formatter/substitution_formatter.cc#L1068),但是当我使用更改代码测试构建时已编译,但出现以下错误:

警告不健康的 108s (x2 over 112s) kubelet, Readiness probe failed: Get "http://*****(IP but private)/healthz/ready": dial tcp *****(IP private): connect:拒绝连接

我想要做的是用另一个字符串(poz)替换(val)字符串的一部分。我只需要在 %REQ(X-FORWARDED-FOR)% 命令运算符之前和之后添加标签,所以我认为只需替换就可以了。当我尝试使用 C++ 编译器时,它工作正常,但是当我尝试使用 Envoy 代码时,它给了我上述错误消息。

absl::optional<std::string> HeaderFormatter::format(const Http::HeaderMap& headers) const {
  const Http::HeaderEntry* header = findHeader(headers);
  if (!header) {
    return absl::nullopt;
  }

  std::string val = std::string(header->value().getStringView());
  truncate(val, max_length_);
  std::size_t poz = val.find("%REQ(X-FORWARDED-FOR)%"); 
  std::string val_find = "%REQ(X-FORWARDED-FOR)%";
  std::string shtesa = "[tag]%REQ(X-FORWARDED-FOR)%[/tag]";

  if ( 0 <= poz < val.length()) {

    val.replace(poz, 21, shtesa);
    return val;
  }
  return val;
}
4

0 回答 0