Как изменить экспоненциальную отсрочку повторной передачи SYN по умолчанию в Linux?

[ ! %an = "my own user name" ]всегда верно, потому что %anникогда не будет равно вашему имени пользователя или любому другому имени пользователя в этом отношении :единственное, чему оно равно, это %an, потому что это просто буквальная строка, насколько Баш обеспокоен. Он имеет только особое значение ("имя автора")в git .

Возможно, есть умный способ сделать то, что вы хотите, но я не могу придумать ни одного банкомата. И я не думаю, что вы можете сделать это, смешав bash и git, как вы пытаетесь сделать. Если есть такое решение, оно, скорее всего, будет крайне неуклюжим :вам в основном придется прыгать между уровнем bash и уровнем git, при этом git перебирает все коммиты, но каким-то образом сообщает bash имя автора на каждый коммит, чтобы уровень bash мог указать git, какой цвет использовать.

Если это можно сделать, я думаю, что это, вероятно, будет чистое решение git, а не смесь bash и git.

1
24.11.2020, 19:29
1 ответ

Я понял.

См. эту запись в блоге о том, как создать программу eBPF, которая будет переопределять тайм-аут.

Короче нужно загрузить эту sockopsпрограмму:

#include<linux/bpf.h>
#define SEC(NAME) __attribute__((section(NAME), used))

// TODO: assumes little-endian (x86, amd64)
#define bpf_ntohl(x)  __builtin_bswap32(x)

SEC("sockops")
int bpf_sockmap(struct bpf_sock_ops *skops)
{
  const int op = (int) skops->op;
  if (op == BPF_SOCK_OPS_TIMEOUT_INIT) {
     // TODO: this is in jiffies, and despite `getconf CLK_TCK` return 100, HZ is clearly 25 on my kernel.
     // 5000 / 250 = 20 seconds
     skops->reply = 5000;
     return 1;
  }
  return 0;
}
char _license[] __attribute((section("license"),used)) = "GPL";
int _version SEC("version") = 1;

Вы можете скомпилировать и загрузить его с помощью:

clang $CFLAGS -target bpf  -Wall -g -O2 -c set_rto.c -o set_rto.o
sudo bpftool prog load set_rto.o  /sys/fs/bpf/bpf_sockop
sudo bpftool cgroup attach /sys/fs/cgroup/unified/ sock_ops pinned /sys/fs/bpf/set_rto
0
18.03.2021, 22:47

Теги

Похожие вопросы