]> Cypherpunks repositories - gostls13.git/commitdiff
net: add Listen system call hook for testing
authorMikio Hara <mikioh.mikioh@gmail.com>
Wed, 8 Apr 2015 11:21:24 +0000 (20:21 +0900)
committerMikio Hara <mikioh.mikioh@gmail.com>
Wed, 15 Apr 2015 11:47:49 +0000 (11:47 +0000)
Change-Id: I63053c45081f47ba736720a78d85c31c13767891
Reviewed-on: https://go-review.googlesource.com/8642
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/net/hook_unix.go
src/net/hook_windows.go
src/net/main_test.go
src/net/main_unix_test.go
src/net/main_windows_test.go
src/net/sock_posix.go

index bb198e0228bc44776a3eb1a653cd797ce7ad3d13..361ca5980c38b24abc526e8a346fa6c2c0114efa 100644 (file)
@@ -15,6 +15,7 @@ var (
        socketFunc        func(int, int, int) (int, error)         = syscall.Socket
        closeFunc         func(int) error                          = syscall.Close
        connectFunc       func(int, syscall.Sockaddr) error        = syscall.Connect
+       listenFunc        func(int, int) error                     = syscall.Listen
        acceptFunc        func(int) (int, syscall.Sockaddr, error) = syscall.Accept
        getsockoptIntFunc func(int, int, int) (int, error)         = syscall.GetsockoptInt
 )
index 59c32d2c984b4f43f4f6e5b7459dc333420f51e0..126b0ebdd10ebcef2d3bb4f0af8f2ad08713c5c9 100644 (file)
@@ -17,4 +17,5 @@ var (
        closeFunc     func(syscall.Handle) error                                                                = syscall.Closesocket
        connectFunc   func(syscall.Handle, syscall.Sockaddr) error                                              = syscall.Connect
        connectExFunc func(syscall.Handle, syscall.Sockaddr, *byte, uint32, *uint32, *syscall.Overlapped) error = syscall.ConnectEx
+       listenFunc    func(syscall.Handle, int) error                                                           = syscall.Listen
 )
index e9d14658f43c63a18a425db34dc7d506fcf1282e..1cafd2e85c97a0f4cd67401bfc84c869f7274e02 100644 (file)
@@ -142,7 +142,7 @@ func printLeakedSockets() {
        }
        fmt.Fprintf(os.Stderr, "Leaked sockets:\n")
        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")
 }
@@ -154,7 +154,7 @@ func printSocketStats() {
        }
        fmt.Fprintf(os.Stderr, "Socket statistical information:\n")
        for _, st := range sts {
-               fmt.Fprintf(os.Stderr, "%+v\n", st)
+               fmt.Fprintf(os.Stderr, "%v\n", st)
        }
        fmt.Fprintf(os.Stderr, "\n")
 }
index 637ac3dbc243a1467942b2efd3e7d109486117d3..bfb4cd0065c937abd5360728192fad5d085ac7f1 100644 (file)
@@ -11,6 +11,7 @@ var (
        origSocket        = socketFunc
        origClose         = closeFunc
        origConnect       = connectFunc
+       origListen        = listenFunc
        origAccept        = acceptFunc
        origGetsockoptInt = getsockoptIntFunc
 
@@ -22,6 +23,7 @@ func installTestHooks() {
        socketFunc = sw.Socket
        closeFunc = sw.Close
        connectFunc = sw.Connect
+       listenFunc = sw.Listen
        acceptFunc = sw.Accept
        getsockoptIntFunc = sw.GetsockoptInt
 
@@ -34,6 +36,7 @@ func uninstallTestHooks() {
        socketFunc = origSocket
        closeFunc = origClose
        connectFunc = origConnect
+       listenFunc = origListen
        acceptFunc = origAccept
        getsockoptIntFunc = origGetsockoptInt
 
index 03c3796a502f3a343b6423e128095cb8e38d7d05..2d829743ec5beac9a3bebc87a7242ca055992417 100644 (file)
@@ -10,6 +10,7 @@ var (
        origClosesocket = closeFunc
        origConnect     = connectFunc
        origConnectEx   = connectExFunc
+       origListen      = listenFunc
 )
 
 func installTestHooks() {
@@ -17,6 +18,7 @@ func installTestHooks() {
        closeFunc = sw.Closesocket
        connectFunc = sw.Connect
        connectExFunc = sw.ConnectEx
+       listenFunc = sw.Listen
 }
 
 func uninstallTestHooks() {
@@ -24,6 +26,7 @@ func uninstallTestHooks() {
        closeFunc = origClosesocket
        connectFunc = origConnect
        connectExFunc = origConnectEx
+       listenFunc = origListen
 }
 
 func forceCloseSockets() {
index bbab11bc46c2d2185a5606e3bf7ff37d82c9a399..2634a6b6460937a2b7d8b602f3e3db800ce694d8 100644 (file)
@@ -163,7 +163,7 @@ func (fd *netFD) listenStream(laddr sockaddr, backlog int) error {
                        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)
        }
        if err := fd.init(); err != nil {