7c1157f9544922e96945196b47b95664b1e39108.diff 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. diff --git a/src/net/hook_windows.go b/src/net/hook_windows.go
  2. index ab8656cbbf343..28c49cc6de7e7 100644
  3. --- a/src/net/hook_windows.go
  4. +++ b/src/net/hook_windows.go
  5. @@ -14,7 +14,6 @@ var (
  6. testHookDialChannel = func() { time.Sleep(time.Millisecond) } // see golang.org/issue/5349
  7. // Placeholders for socket system calls.
  8. - socketFunc func(int, int, int) (syscall.Handle, error) = syscall.Socket
  9. wsaSocketFunc func(int32, int32, int32, *syscall.WSAProtocolInfo, uint32, uint32) (syscall.Handle, error) = windows.WSASocket
  10. connectFunc func(syscall.Handle, syscall.Sockaddr) error = syscall.Connect
  11. listenFunc func(syscall.Handle, int) error = syscall.Listen
  12. diff --git a/src/net/internal/socktest/main_test.go b/src/net/internal/socktest/main_test.go
  13. index 0197feb3f199a..967ce6795aedb 100644
  14. --- a/src/net/internal/socktest/main_test.go
  15. +++ b/src/net/internal/socktest/main_test.go
  16. @@ -2,7 +2,7 @@
  17. // Use of this source code is governed by a BSD-style
  18. // license that can be found in the LICENSE file.
  19. -//go:build !js && !plan9 && !wasip1
  20. +//go:build !js && !plan9 && !wasip1 && !windows
  21. package socktest_test
  22. diff --git a/src/net/internal/socktest/main_windows_test.go b/src/net/internal/socktest/main_windows_test.go
  23. deleted file mode 100644
  24. index df1cb97784b51..0000000000000
  25. --- a/src/net/internal/socktest/main_windows_test.go
  26. +++ /dev/null
  27. @@ -1,22 +0,0 @@
  28. -// Copyright 2015 The Go Authors. All rights reserved.
  29. -// Use of this source code is governed by a BSD-style
  30. -// license that can be found in the LICENSE file.
  31. -
  32. -package socktest_test
  33. -
  34. -import "syscall"
  35. -
  36. -var (
  37. - socketFunc func(int, int, int) (syscall.Handle, error)
  38. - closeFunc func(syscall.Handle) error
  39. -)
  40. -
  41. -func installTestHooks() {
  42. - socketFunc = sw.Socket
  43. - closeFunc = sw.Closesocket
  44. -}
  45. -
  46. -func uninstallTestHooks() {
  47. - socketFunc = syscall.Socket
  48. - closeFunc = syscall.Closesocket
  49. -}
  50. diff --git a/src/net/internal/socktest/sys_windows.go b/src/net/internal/socktest/sys_windows.go
  51. index 8c1c862f33c9b..1c42e5c7f34b7 100644
  52. --- a/src/net/internal/socktest/sys_windows.go
  53. +++ b/src/net/internal/socktest/sys_windows.go
  54. @@ -9,38 +9,6 @@ import (
  55. "syscall"
  56. )
  57. -// Socket wraps syscall.Socket.
  58. -func (sw *Switch) Socket(family, sotype, proto int) (s syscall.Handle, err error) {
  59. - sw.once.Do(sw.init)
  60. -
  61. - so := &Status{Cookie: cookie(family, sotype, proto)}
  62. - sw.fmu.RLock()
  63. - f, _ := sw.fltab[FilterSocket]
  64. - sw.fmu.RUnlock()
  65. -
  66. - af, err := f.apply(so)
  67. - if err != nil {
  68. - return syscall.InvalidHandle, err
  69. - }
  70. - s, so.Err = syscall.Socket(family, sotype, proto)
  71. - if err = af.apply(so); err != nil {
  72. - if so.Err == nil {
  73. - syscall.Closesocket(s)
  74. - }
  75. - return syscall.InvalidHandle, err
  76. - }
  77. -
  78. - sw.smu.Lock()
  79. - defer sw.smu.Unlock()
  80. - if so.Err != nil {
  81. - sw.stats.getLocked(so.Cookie).OpenFailed++
  82. - return syscall.InvalidHandle, so.Err
  83. - }
  84. - nso := sw.addLocked(s, family, sotype, proto)
  85. - sw.stats.getLocked(nso.Cookie).Opened++
  86. - return s, nil
  87. -}
  88. -
  89. // WSASocket wraps [syscall.WSASocket].
  90. func (sw *Switch) WSASocket(family, sotype, proto int32, protinfo *syscall.WSAProtocolInfo, group uint32, flags uint32) (s syscall.Handle, err error) {
  91. sw.once.Do(sw.init)
  92. diff --git a/src/net/main_windows_test.go b/src/net/main_windows_test.go
  93. index 07f21b72eb1fc..bc024c0bbd82d 100644
  94. --- a/src/net/main_windows_test.go
  95. +++ b/src/net/main_windows_test.go
  96. @@ -8,7 +8,6 @@ import "internal/poll"
  97. var (
  98. // Placeholders for saving original socket system calls.
  99. - origSocket = socketFunc
  100. origWSASocket = wsaSocketFunc
  101. origClosesocket = poll.CloseFunc
  102. origConnect = connectFunc
  103. @@ -18,7 +17,6 @@ var (
  104. )
  105. func installTestHooks() {
  106. - socketFunc = sw.Socket
  107. wsaSocketFunc = sw.WSASocket
  108. poll.CloseFunc = sw.Closesocket
  109. connectFunc = sw.Connect
  110. @@ -28,7 +26,6 @@ func installTestHooks() {
  111. }
  112. func uninstallTestHooks() {
  113. - socketFunc = origSocket
  114. wsaSocketFunc = origWSASocket
  115. poll.CloseFunc = origClosesocket
  116. connectFunc = origConnect
  117. diff --git a/src/net/sock_windows.go b/src/net/sock_windows.go
  118. index fa11c7af2e727..5540135a2c43e 100644
  119. --- a/src/net/sock_windows.go
  120. +++ b/src/net/sock_windows.go
  121. @@ -19,21 +19,6 @@ func maxListenerBacklog() int {
  122. func sysSocket(family, sotype, proto int) (syscall.Handle, error) {
  123. s, err := wsaSocketFunc(int32(family), int32(sotype), int32(proto),
  124. nil, 0, windows.WSA_FLAG_OVERLAPPED|windows.WSA_FLAG_NO_HANDLE_INHERIT)
  125. - if err == nil {
  126. - return s, nil
  127. - }
  128. - // WSA_FLAG_NO_HANDLE_INHERIT flag is not supported on some
  129. - // old versions of Windows, see
  130. - // https://msdn.microsoft.com/en-us/library/windows/desktop/ms742212(v=vs.85).aspx
  131. - // for details. Just use syscall.Socket, if windows.WSASocket failed.
  132. -
  133. - // See ../syscall/exec_unix.go for description of ForkLock.
  134. - syscall.ForkLock.RLock()
  135. - s, err = socketFunc(family, sotype, proto)
  136. - if err == nil {
  137. - syscall.CloseOnExec(s)
  138. - }
  139. - syscall.ForkLock.RUnlock()
  140. if err != nil {
  141. return syscall.InvalidHandle, os.NewSyscallError("socket", err)
  142. }
  143. diff --git a/src/syscall/exec_windows.go b/src/syscall/exec_windows.go
  144. index 0a93bc0a80d4e..06e684c7116b4 100644
  145. --- a/src/syscall/exec_windows.go
  146. +++ b/src/syscall/exec_windows.go
  147. @@ -14,6 +14,7 @@ import (
  148. "unsafe"
  149. )
  150. +// ForkLock is not used on Windows.
  151. var ForkLock sync.RWMutex
  152. // EscapeArg rewrites command line argument s as prescribed