Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(1396)

Side by Side Diff: src/pkg/net/sock_posix.go

Issue 120820043: code review 120820043: net: prevent spurious on-connect events via epoll on linux (Closed)
Patch Set: diff -r cd8dbfda7b87 https://code.google.com/p/go Created 9 years, 8 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/pkg/net/fd_windows.go ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2009 The Go Authors. All rights reserved. 1 // Copyright 2009 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style 2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file. 3 // license that can be found in the LICENSE file.
4 4
5 // +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows 5 // +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows
6 6
7 package net 7 package net
8 8
9 import ( 9 import (
10 "os" 10 "os"
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 var lsa syscall.Sockaddr 100 var lsa syscall.Sockaddr
101 if laddr != nil { 101 if laddr != nil {
102 if lsa, err = laddr.sockaddr(fd.family); err != nil { 102 if lsa, err = laddr.sockaddr(fd.family); err != nil {
103 return err 103 return err
104 } else if lsa != nil { 104 } else if lsa != nil {
105 if err := syscall.Bind(fd.sysfd, lsa); err != nil { 105 if err := syscall.Bind(fd.sysfd, lsa); err != nil {
106 return os.NewSyscallError("bind", err) 106 return os.NewSyscallError("bind", err)
107 } 107 }
108 } 108 }
109 } 109 }
110 if err := fd.init(); err != nil {
111 return err
112 }
113 var rsa syscall.Sockaddr 110 var rsa syscall.Sockaddr
114 if raddr != nil { 111 if raddr != nil {
115 if rsa, err = raddr.sockaddr(fd.family); err != nil { 112 if rsa, err = raddr.sockaddr(fd.family); err != nil {
116 return err 113 return err
117 » » } else if rsa != nil { 114 » » }
118 » » » if !deadline.IsZero() { 115 » » if err := fd.connect(lsa, rsa, deadline); err != nil {
119 » » » » fd.setWriteDeadline(deadline) 116 » » » return err
120 » » » } 117 » » }
121 » » » if err := fd.connect(lsa, rsa); err != nil { 118 » » fd.isConnected = true
122 » » » » return err 119 » } else {
123 » » » } 120 » » if err := fd.init(); err != nil {
124 » » » fd.isConnected = true 121 » » » return err
125 » » » if !deadline.IsZero() {
126 » » » » fd.setWriteDeadline(noDeadline)
127 » » » }
128 } 122 }
129 } 123 }
130 lsa, _ = syscall.Getsockname(fd.sysfd) 124 lsa, _ = syscall.Getsockname(fd.sysfd)
131 if rsa, _ = syscall.Getpeername(fd.sysfd); rsa != nil { 125 if rsa, _ = syscall.Getpeername(fd.sysfd); rsa != nil {
132 fd.setAddr(toAddr(lsa), toAddr(rsa)) 126 fd.setAddr(toAddr(lsa), toAddr(rsa))
133 } else { 127 } else {
134 fd.setAddr(toAddr(lsa), raddr) 128 fd.setAddr(toAddr(lsa), raddr)
135 } 129 }
136 return nil 130 return nil
137 } 131 }
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 return os.NewSyscallError("bind", err) 183 return os.NewSyscallError("bind", err)
190 } 184 }
191 } 185 }
192 if err := fd.init(); err != nil { 186 if err := fd.init(); err != nil {
193 return err 187 return err
194 } 188 }
195 lsa, _ := syscall.Getsockname(fd.sysfd) 189 lsa, _ := syscall.Getsockname(fd.sysfd)
196 fd.setAddr(toAddr(lsa), nil) 190 fd.setAddr(toAddr(lsa), nil)
197 return nil 191 return nil
198 } 192 }
OLDNEW
« no previous file with comments | « src/pkg/net/fd_windows.go ('k') | no next file » | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b