We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
看过 流量录制拦截点选择 可知,golang的录制是在语言标准库层面做的拦截。
同理,流量回放也是在语言标准库层面做的拦截。修改系统调用 syscall.Connect 方法,将原本的socket地址sa替换为Mock Server地址。
func Connect(fd int, sa Sockaddr) (err error) { ptr, n, err := sa.sockaddr() if err != nil { return err } return connect(fd, ptr, n) }
实现上面修改的正是 sharingan/replayer 包,基于开源 gomonkey 库mock syscall.Connect 方法,解决了回放的第一个问题。