diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-19 15:00:02 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-19 15:00:02 +0300 |
| commit | 71ef23ae16b0e310e66f3bf622cebefb9ec6b208 (patch) | |
| tree | d61bc007207fbd3f4e21de34874de0248692b9b2 /internal/generate/bpfhandler.go | |
| parent | 9cc2c7b3c4c7a1f1837a4a5260f11ccea5814c83 (diff) | |
v6: add KindAccept and wire accept/accept4
Diffstat (limited to 'internal/generate/bpfhandler.go')
| -rw-r--r-- | internal/generate/bpfhandler.go | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/internal/generate/bpfhandler.go b/internal/generate/bpfhandler.go index 50917e7..bada317 100644 --- a/internal/generate/bpfhandler.go +++ b/internal/generate/bpfhandler.go @@ -77,6 +77,8 @@ func generateExtra(tp GeneratedTracepoint, isEnter bool) string { return generateExtraSocket() case KindSocketpair: return generateExtraSocketpair(isEnter) + case KindAccept: + return generateExtraAccept(isEnter) case KindOpen: return generateExtraOpen(f) case KindPathname: @@ -164,6 +166,13 @@ func generateExtraSocketpair(isEnter bool) string { return " __s32 family = -1;\n __s32 type = -1;\n __s32 protocol = -1;\n __s32 sv0 = -1;\n __s32 sv1 = -1;\n struct socketpair_ctx *pending = bpf_map_lookup_elem(&socketpair_ctx_map, &tid);\n if (pending) {\n family = pending->family;\n type = pending->type;\n protocol = pending->protocol;\n if (ctx->ret == 0 && pending->usockvec != 0) {\n int sv[2];\n if (bpf_probe_read_user(&sv, sizeof(sv), (void *)pending->usockvec) == 0) {\n sv0 = (__s32)sv[0];\n sv1 = (__s32)sv[1];\n }\n }\n bpf_map_delete_elem(&socketpair_ctx_map, &tid);\n }\n ev->family = family;\n ev->type = type;\n ev->protocol = protocol;\n ev->sv0 = sv0;\n ev->sv1 = sv1;\n ev->ret = ctx->ret;\n" } +func generateExtraAccept(isEnter bool) string { + if isEnter { + return " ev->fd = (__s32)ctx->args[0];\n ev->ret = -1;\n" + } + return " ev->fd = -1;\n ev->ret = ctx->ret;\n" +} + // eventStructName returns the C struct name for a TracepointKind. The mapping // is driven by kindRegistry so adding a new kind only requires a registry entry. func eventStructName(kind TracepointKind) string { |
