diff --git a/experimental/ftrace/ftrace.go b/experimental/ftrace/ftrace.go index 95952c3bd..4335ab715 100644 --- a/experimental/ftrace/ftrace.go +++ b/experimental/ftrace/ftrace.go @@ -181,6 +181,8 @@ func (f *Ftrace) events(out chan<- *syscall) { func (f *Ftrace) start() error { for _, e := range []struct{ class, event string }{ + {"syscalls", "sys_enter_socket"}, + {"syscalls", "sys_exit_socket"}, {"syscalls", "sys_enter_connect"}, {"syscalls", "sys_exit_connect"}, {"syscalls", "sys_enter_accept"}, diff --git a/experimental/ftrace/main.go b/experimental/ftrace/main.go index fe7789678..16058cf37 100644 --- a/experimental/ftrace/main.go +++ b/experimental/ftrace/main.go @@ -69,7 +69,15 @@ func main() { syscalls := make(chan *syscall, 100) go ftrace.events(syscalls) + onSocket := func(s *syscall) { + + } + onConnection := func(s *syscall) { + if s.returnCode != 0 { + return + } + fdStr, ok := s.args["fd"] if !ok { panic("no pid") @@ -105,6 +113,8 @@ func main() { case s := <-syscalls: switch s.name { + case "socket": + onSocket(s) case "connect": onConnection(s) case "accept", "accept4":