Skip to content

Commit 4598e3c

Browse files
authored
ws,wsutil: more explicit returns (#167)
1 parent 2e49e1b commit 4598e3c

File tree

8 files changed

+23
-24
lines changed

8 files changed

+23
-24
lines changed

dialer.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ type Dialer struct {
146146
func (d Dialer) Dial(ctx context.Context, urlstr string) (conn net.Conn, br *bufio.Reader, hs Handshake, err error) {
147147
u, err := url.ParseRequestURI(urlstr)
148148
if err != nil {
149-
return
149+
return nil, nil, hs, err
150150
}
151151

152152
// Prepare context to dial with. Initially it is the same as original, but
@@ -164,7 +164,7 @@ func (d Dialer) Dial(ctx context.Context, urlstr string) (conn net.Conn, br *buf
164164
}
165165
}
166166
if conn, err = d.dial(dialctx, u); err != nil {
167-
return conn, br, hs, err
167+
return conn, nil, hs, err
168168
}
169169
defer func() {
170170
if err != nil {
@@ -229,7 +229,7 @@ func (d Dialer) dial(ctx context.Context, u *url.URL) (conn net.Conn, err error)
229229
hostname, addr := hostport(u.Host, ":443")
230230
conn, err = dial(ctx, "tcp", addr)
231231
if err != nil {
232-
return
232+
return nil, err
233233
}
234234
tlsClient := d.TLSClient
235235
if tlsClient == nil {

http.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ func httpParseRequestLine(line []byte) (req httpRequestLine, err error) {
9191
req.major, req.minor, ok = httpParseVersion(proto)
9292
if !ok {
9393
err = ErrMalformedRequest
94-
return req, err
9594
}
9695
return req, err
9796
}
@@ -127,25 +126,25 @@ func httpParseVersion(bts []byte) (major, minor int, ok bool) {
127126
case bytes.Equal(bts, httpVersion1_1):
128127
return 1, 1, true
129128
case len(bts) < 8:
130-
return
129+
return 0, 0, false
131130
case !bytes.Equal(bts[:5], httpVersionPrefix):
132-
return
131+
return 0, 0, false
133132
}
134133

135134
bts = bts[5:]
136135

137136
dot := bytes.IndexByte(bts, '.')
138137
if dot == -1 {
139-
return
138+
return 0, 0, false
140139
}
141140
var err error
142141
major, err = asciiToInt(bts[:dot])
143142
if err != nil {
144-
return
143+
return major, 0, false
145144
}
146145
minor, err = asciiToInt(bts[dot+1:])
147146
if err != nil {
148-
return
147+
return major, minor, false
149148
}
150149

151150
return major, minor, true
@@ -156,7 +155,7 @@ func httpParseVersion(bts []byte) (major, minor int, ok bool) {
156155
func httpParseHeaderLine(line []byte) (k, v []byte, ok bool) {
157156
colon := bytes.IndexByte(line, ':')
158157
if colon == -1 {
159-
return
158+
return nil, nil, false
160159
}
161160

162161
k = btrim(line[:colon])

read.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ func ReadHeader(r io.Reader) (h Header, err error) {
8484
copy(h.Mask[:], bts)
8585
}
8686

87-
return h, err
87+
return h, nil
8888
}
8989

9090
// ReadFrame reads a frame from r.

server.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -451,12 +451,12 @@ func (u Upgrader) Upgrade(conn io.ReadWriter) (hs Handshake, err error) {
451451
// Read HTTP request line like "GET /ws HTTP/1.1".
452452
rl, err := readLine(br)
453453
if err != nil {
454-
return
454+
return hs, err
455455
}
456456
// Parse request line data like HTTP version, uri and method.
457457
req, err := httpParseRequestLine(rl)
458458
if err != nil {
459-
return
459+
return hs, err
460460
}
461461

462462
// Prepare stack-based handshake header list.
@@ -640,7 +640,7 @@ func (u Upgrader) Upgrade(conn io.ReadWriter) (hs Handshake, err error) {
640640
httpWriteResponseError(bw, err, code, header.WriteTo)
641641
// Do not store Flush() error to not override already existing one.
642642
_ = bw.Flush()
643-
return
643+
return hs, err
644644
}
645645

646646
httpWriteResponseUpgrade(bw, nonce, hs, header.WriteTo)

server_test.s

Whitespace-only changes.

wsflate/cbuf.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func (c *cbuf) split(p []byte) (head, tail []byte) {
4545
x := n - len(c.buf)
4646
head = p[:x]
4747
tail = p[x:]
48-
return
48+
return head, tail
4949
}
5050
return nil, p
5151
}

wsflate/extension.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,20 @@ type Extension struct {
2727
// nil error.
2828
func (n *Extension) Negotiate(opt httphead.Option) (accept httphead.Option, err error) {
2929
if !bytes.Equal(opt.Name, ExtensionNameBytes) {
30-
return
30+
return accept, nil
3131
}
3232
if n.accepted {
3333
// Negotiate might be called multiple times during upgrade.
3434
// We stick to first one accepted extension since they must be passed
3535
// in ordered by preference.
36-
return
36+
return accept, nil
3737
}
3838

3939
want := n.Parameters
4040

4141
// NOTE: Parse() resets params inside, so no worries.
42-
if err = n.params.Parse(opt); err != nil {
43-
return
42+
if err := n.params.Parse(opt); err != nil {
43+
return accept, err
4444
}
4545
{
4646
offer := n.params.ServerMaxWindowBits
@@ -49,7 +49,7 @@ func (n *Extension) Negotiate(opt httphead.Option) (accept httphead.Option, err
4949
// A server declines an extension negotiation offer
5050
// with this parameter if the server doesn't support
5151
// it.
52-
return
52+
return accept, nil
5353
}
5454
}
5555
{
@@ -60,14 +60,14 @@ func (n *Extension) Negotiate(opt httphead.Option) (accept httphead.Option, err
6060
offer := n.params.ClientMaxWindowBits
6161
want := want.ClientMaxWindowBits
6262
if want > offer {
63-
return
63+
return accept, nil
6464
}
6565
}
6666
{
6767
offer := n.params.ServerNoContextTakeover
6868
want := want.ServerNoContextTakeover
6969
if offer && !want {
70-
return
70+
return accept, nil
7171
}
7272
}
7373

wsutil/reader.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ func (r *Reader) Read(p []byte) (n int, err error) {
111111

112112
n, err = r.frame.Read(p)
113113
if err != nil && err != io.EOF {
114-
return
114+
return n, err
115115
}
116116
if err == nil && r.raw.N != 0 {
117117
return n, nil
@@ -215,7 +215,7 @@ func (r *Reader) NextFrame() (hdr ws.Header, err error) {
215215
// Ensure that src is empty.
216216
_, err = io.Copy(ioutil.Discard, &r.raw)
217217
}
218-
return
218+
return hdr, err
219219
}
220220
} else {
221221
r.opCode = hdr.OpCode

0 commit comments

Comments
 (0)