Commit 47515e01 authored by Mikio Hara's avatar Mikio Hara

net: add Listen system call hook for testing

Change-Id: I63053c45081f47ba736720a78d85c31c13767891
Reviewed-on: https://go-review.googlesource.com/8642Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent 130e3f9a
...@@ -15,6 +15,7 @@ var ( ...@@ -15,6 +15,7 @@ var (
socketFunc func(int, int, int) (int, error) = syscall.Socket socketFunc func(int, int, int) (int, error) = syscall.Socket
closeFunc func(int) error = syscall.Close closeFunc func(int) error = syscall.Close
connectFunc func(int, syscall.Sockaddr) error = syscall.Connect connectFunc func(int, syscall.Sockaddr) error = syscall.Connect
listenFunc func(int, int) error = syscall.Listen
acceptFunc func(int) (int, syscall.Sockaddr, error) = syscall.Accept acceptFunc func(int) (int, syscall.Sockaddr, error) = syscall.Accept
getsockoptIntFunc func(int, int, int) (int, error) = syscall.GetsockoptInt getsockoptIntFunc func(int, int, int) (int, error) = syscall.GetsockoptInt
) )
...@@ -17,4 +17,5 @@ var ( ...@@ -17,4 +17,5 @@ var (
closeFunc func(syscall.Handle) error = syscall.Closesocket closeFunc func(syscall.Handle) error = syscall.Closesocket
connectFunc func(syscall.Handle, syscall.Sockaddr) error = syscall.Connect connectFunc func(syscall.Handle, syscall.Sockaddr) error = syscall.Connect
connectExFunc func(syscall.Handle, syscall.Sockaddr, *byte, uint32, *uint32, *syscall.Overlapped) error = syscall.ConnectEx connectExFunc func(syscall.Handle, syscall.Sockaddr, *byte, uint32, *uint32, *syscall.Overlapped) error = syscall.ConnectEx
listenFunc func(syscall.Handle, int) error = syscall.Listen
) )
...@@ -142,7 +142,7 @@ func printLeakedSockets() { ...@@ -142,7 +142,7 @@ func printLeakedSockets() {
} }
fmt.Fprintf(os.Stderr, "Leaked sockets:\n") fmt.Fprintf(os.Stderr, "Leaked sockets:\n")
for s, so := range sos { for s, so := range sos {
fmt.Fprintf(os.Stderr, "%v: %+v\n", s, so) fmt.Fprintf(os.Stderr, "%v: %v\n", s, so)
} }
fmt.Fprintf(os.Stderr, "\n") fmt.Fprintf(os.Stderr, "\n")
} }
...@@ -154,7 +154,7 @@ func printSocketStats() { ...@@ -154,7 +154,7 @@ func printSocketStats() {
} }
fmt.Fprintf(os.Stderr, "Socket statistical information:\n") fmt.Fprintf(os.Stderr, "Socket statistical information:\n")
for _, st := range sts { for _, st := range sts {
fmt.Fprintf(os.Stderr, "%+v\n", st) fmt.Fprintf(os.Stderr, "%v\n", st)
} }
fmt.Fprintf(os.Stderr, "\n") fmt.Fprintf(os.Stderr, "\n")
} }
...@@ -11,6 +11,7 @@ var ( ...@@ -11,6 +11,7 @@ var (
origSocket = socketFunc origSocket = socketFunc
origClose = closeFunc origClose = closeFunc
origConnect = connectFunc origConnect = connectFunc
origListen = listenFunc
origAccept = acceptFunc origAccept = acceptFunc
origGetsockoptInt = getsockoptIntFunc origGetsockoptInt = getsockoptIntFunc
...@@ -22,6 +23,7 @@ func installTestHooks() { ...@@ -22,6 +23,7 @@ func installTestHooks() {
socketFunc = sw.Socket socketFunc = sw.Socket
closeFunc = sw.Close closeFunc = sw.Close
connectFunc = sw.Connect connectFunc = sw.Connect
listenFunc = sw.Listen
acceptFunc = sw.Accept acceptFunc = sw.Accept
getsockoptIntFunc = sw.GetsockoptInt getsockoptIntFunc = sw.GetsockoptInt
...@@ -34,6 +36,7 @@ func uninstallTestHooks() { ...@@ -34,6 +36,7 @@ func uninstallTestHooks() {
socketFunc = origSocket socketFunc = origSocket
closeFunc = origClose closeFunc = origClose
connectFunc = origConnect connectFunc = origConnect
listenFunc = origListen
acceptFunc = origAccept acceptFunc = origAccept
getsockoptIntFunc = origGetsockoptInt getsockoptIntFunc = origGetsockoptInt
......
...@@ -10,6 +10,7 @@ var ( ...@@ -10,6 +10,7 @@ var (
origClosesocket = closeFunc origClosesocket = closeFunc
origConnect = connectFunc origConnect = connectFunc
origConnectEx = connectExFunc origConnectEx = connectExFunc
origListen = listenFunc
) )
func installTestHooks() { func installTestHooks() {
...@@ -17,6 +18,7 @@ func installTestHooks() { ...@@ -17,6 +18,7 @@ func installTestHooks() {
closeFunc = sw.Closesocket closeFunc = sw.Closesocket
connectFunc = sw.Connect connectFunc = sw.Connect
connectExFunc = sw.ConnectEx connectExFunc = sw.ConnectEx
listenFunc = sw.Listen
} }
func uninstallTestHooks() { func uninstallTestHooks() {
...@@ -24,6 +26,7 @@ func uninstallTestHooks() { ...@@ -24,6 +26,7 @@ func uninstallTestHooks() {
closeFunc = origClosesocket closeFunc = origClosesocket
connectFunc = origConnect connectFunc = origConnect
connectExFunc = origConnectEx connectExFunc = origConnectEx
listenFunc = origListen
} }
func forceCloseSockets() { func forceCloseSockets() {
......
...@@ -163,7 +163,7 @@ func (fd *netFD) listenStream(laddr sockaddr, backlog int) error { ...@@ -163,7 +163,7 @@ func (fd *netFD) listenStream(laddr sockaddr, backlog int) error {
return os.NewSyscallError("bind", err) return os.NewSyscallError("bind", err)
} }
} }
if err := syscall.Listen(fd.sysfd, backlog); err != nil { if err := listenFunc(fd.sysfd, backlog); err != nil {
return os.NewSyscallError("listen", err) return os.NewSyscallError("listen", err)
} }
if err := fd.init(); err != nil { if err := fd.init(); err != nil {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment