static __always_inline int bind_prog(struct bpf_sock_addr *ctx, int family)
{ struct bpf_sock *sk;
sk = ctx->sk; if (!sk) return 0;
if (sk->family != family) return 0;
if (ctx->type != SOCK_STREAM) return 0;
/* Return 1 OR'ed with the first bit set to indicate * that CAP_NET_BIND_SERVICE should be bypassed.
*/ if (ctx->user_port == bpf_htons(111)) return (1 | 2);
return 1;
}
SEC("cgroup/bind4") int bind_v4_prog(struct bpf_sock_addr *ctx)
{ return bind_prog(ctx, AF_INET);
}
SEC("cgroup/bind6") int bind_v6_prog(struct bpf_sock_addr *ctx)
{ return bind_prog(ctx, AF_INET6);
}
char _license[] SEC("license") = "GPL";
Messung V0.5
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.