Skip to content

Commit 9bc6e34

Browse files
committed
updating to go1.19 and various other files
1 parent 8983b96 commit 9bc6e34

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1373
-736
lines changed

.circleci/config.yml

Lines changed: 0 additions & 70 deletions
This file was deleted.

.editorconfig

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
; https://editorconfig.org/
2+
3+
root = true
4+
5+
[*]
6+
insert_final_newline = true
7+
charset = utf-8
8+
trim_trailing_whitespace = true
9+
indent_style = space
10+
indent_size = 2
11+
12+
[{Makefile,go.mod,go.sum,*.go,.gitmodules}]
13+
indent_style = tab
14+
indent_size = 4
15+
16+
[*.md]
17+
indent_size = 4
18+
trim_trailing_whitespace = false
19+
20+
eclint_indent_style = unset

.github/release-drafter.yml

Lines changed: 0 additions & 7 deletions
This file was deleted.

.github/workflows/issues.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Add issues or pull-requests created to the project.
2+
name: Add issue or pull request to Project
3+
4+
on:
5+
issues:
6+
types:
7+
- opened
8+
pull_request_target:
9+
types:
10+
- opened
11+
- reopened
12+
13+
jobs:
14+
add-to-project:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Add issue to project
18+
uses: actions/[email protected]
19+
with:
20+
project-url: https://github.com/orgs/gorilla/projects/4
21+
github-token: ${{ secrets.ADD_TO_PROJECT_TOKEN }}

.github/workflows/test.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: CI
2+
on:
3+
push:
4+
branches:
5+
- main
6+
pull_request:
7+
branches:
8+
- main
9+
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
verify-and-test:
15+
strategy:
16+
matrix:
17+
go: ['1.19','1.20']
18+
os: [ubuntu-latest, macos-latest, windows-latest]
19+
fail-fast: true
20+
runs-on: ${{ matrix.os }}
21+
steps:
22+
- name: Checkout Code
23+
uses: actions/checkout@v3
24+
25+
- name: Setup Go ${{ matrix.go }}
26+
uses: actions/setup-go@v4
27+
with:
28+
go-version: ${{ matrix.go }}
29+
cache: false
30+
31+
- name: Run GolangCI-Lint
32+
uses: golangci/golangci-lint-action@v3
33+
with:
34+
version: v1.53
35+
args: --timeout=5m
36+
37+
- name: Run GoSec
38+
if: matrix.os == 'ubuntu-latest'
39+
uses: securego/gosec@master
40+
with:
41+
args: -exclude-dir examples ./...
42+
43+
- name: Run GoVulnCheck
44+
uses: golang/govulncheck-action@v1
45+
with:
46+
go-version-input: ${{ matrix.go }}
47+
go-package: ./...
48+
49+
- name: Run Tests
50+
run: go test -race -cover -coverprofile=coverage -covermode=atomic -v ./...
51+
52+
- name: Upload coverage to Codecov
53+
uses: codecov/codecov-action@v3
54+
with:
55+
files: ./coverage

.gitignore

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1 @@
1-
# Compiled Object files, Static and Dynamic libs (Shared Objects)
2-
*.o
3-
*.a
4-
*.so
5-
6-
# Folders
7-
_obj
8-
_test
9-
10-
# Architecture specific extensions/prefixes
11-
*.[568vq]
12-
[568vq].out
13-
14-
*.cgo1.go
15-
*.cgo2.c
16-
_cgo_defun.c
17-
_cgo_gotypes.go
18-
_cgo_export.*
19-
20-
_testmain.go
21-
22-
*.exe
23-
24-
.idea/
25-
*.iml
1+
coverage.coverprofile

.golangci.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
run:
2+
skip-dirs:
3+
- examples/*.go

AUTHORS

Lines changed: 0 additions & 9 deletions
This file was deleted.

LICENSE

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,27 @@
1-
Copyright (c) 2013 The Gorilla WebSocket Authors. All rights reserved.
1+
Copyright (c) 2012-2018 The Gorilla Authors. All rights reserved.
22

33
Redistribution and use in source and binary forms, with or without
4-
modification, are permitted provided that the following conditions are met:
4+
modification, are permitted provided that the following conditions are
5+
met:
56

6-
Redistributions of source code must retain the above copyright notice, this
7-
list of conditions and the following disclaimer.
7+
* Redistributions of source code must retain the above copyright
8+
notice, this list of conditions and the following disclaimer.
9+
* Redistributions in binary form must reproduce the above
10+
copyright notice, this list of conditions and the following disclaimer
11+
in the documentation and/or other materials provided with the
12+
distribution.
13+
* Neither the name of Google Inc. nor the names of its
14+
contributors may be used to endorse or promote products derived from
15+
this software without specific prior written permission.
816

9-
Redistributions in binary form must reproduce the above copyright notice,
10-
this list of conditions and the following disclaimer in the documentation
11-
and/or other materials provided with the distribution.
12-
13-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
14-
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15-
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16-
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
17-
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18-
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19-
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
20-
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
21-
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
17+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2227
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Makefile

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
GO_LINT=$(shell which golangci-lint 2> /dev/null || echo '')
2+
GO_LINT_URI=github.com/golangci/golangci-lint/cmd/golangci-lint@latest
3+
4+
GO_SEC=$(shell which gosec 2> /dev/null || echo '')
5+
GO_SEC_URI=github.com/securego/gosec/v2/cmd/gosec@latest
6+
7+
GO_VULNCHECK=$(shell which govulncheck 2> /dev/null || echo '')
8+
GO_VULNCHECK_URI=golang.org/x/vuln/cmd/govulncheck@latest
9+
10+
.PHONY: golangci-lint
11+
golangci-lint:
12+
$(if $(GO_LINT), ,go install $(GO_LINT_URI))
13+
@echo "##### Running golangci-lint"
14+
golangci-lint run -v
15+
16+
.PHONY: gosec
17+
gosec:
18+
$(if $(GO_SEC), ,go install $(GO_SEC_URI))
19+
@echo "##### Running gosec"
20+
gosec -exclude-dir examples ./...
21+
22+
.PHONY: govulncheck
23+
govulncheck:
24+
$(if $(GO_VULNCHECK), ,go install $(GO_VULNCHECK_URI))
25+
@echo "##### Running govulncheck"
26+
govulncheck ./...
27+
28+
.PHONY: verify
29+
verify: golangci-lint gosec govulncheck
30+
31+
.PHONY: test
32+
test:
33+
@echo "##### Running tests"
34+
go test -race -cover -coverprofile=coverage.coverprofile -covermode=atomic -v ./...

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
# Gorilla WebSocket
22

3-
[![GoDoc](https://godoc.org/github.com/gorilla/websocket?status.svg)](https://godoc.org/github.com/gorilla/websocket)
4-
[![CircleCI](https://circleci.com/gh/gorilla/websocket.svg?style=svg)](https://circleci.com/gh/gorilla/websocket)
3+
![testing](https://github.com/gorilla/websocket/actions/workflows/test.yml/badge.svg)
4+
[![codecov](https://codecov.io/github/gorilla/websocket/branch/main/graph/badge.svg)](https://codecov.io/github/gorilla/websocket)
5+
[![godoc](https://godoc.org/github.com/gorilla/websocket?status.svg)](https://godoc.org/github.com/gorilla/websocket)
6+
[![sourcegraph](https://sourcegraph.com/github.com/gorilla/websocket/-/badge.svg)](https://sourcegraph.com/github.com/gorilla/websocket?badge)
57

68
Gorilla WebSocket is a [Go](http://golang.org/) implementation of the
79
[WebSocket](http://www.rfc-editor.org/rfc/rfc6455.txt) protocol.
@@ -30,4 +32,3 @@ package API is stable.
3032
The Gorilla WebSocket package passes the server tests in the [Autobahn Test
3133
Suite](https://github.com/crossbario/autobahn-testsuite) using the application in the [examples/autobahn
3234
subdirectory](https://github.com/gorilla/websocket/tree/master/examples/autobahn).
33-

client.go

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,16 @@ import (
1111
"errors"
1212
"fmt"
1313
"io"
14-
"io/ioutil"
14+
"log"
15+
1516
"net"
1617
"net/http"
1718
"net/http/httptrace"
1819
"net/url"
1920
"strings"
2021
"time"
22+
23+
"golang.org/x/net/proxy"
2124
)
2225

2326
// ErrBadHandshake is returned when the server response to opening handshake is
@@ -290,7 +293,9 @@ func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader h
290293
}
291294
err = c.SetDeadline(deadline)
292295
if err != nil {
293-
c.Close()
296+
if err := c.Close(); err != nil {
297+
log.Printf("websocket: failed to close network connection: %v", err)
298+
}
294299
return nil, err
295300
}
296301
return c, nil
@@ -304,7 +309,7 @@ func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader h
304309
return nil, nil, err
305310
}
306311
if proxyURL != nil {
307-
dialer, err := proxy_FromURL(proxyURL, netDialerFunc(netDial))
312+
dialer, err := proxy.FromURL(proxyURL, netDialerFunc(netDial))
308313
if err != nil {
309314
return nil, nil, err
310315
}
@@ -330,7 +335,9 @@ func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader h
330335

331336
defer func() {
332337
if netConn != nil {
333-
netConn.Close()
338+
if err := netConn.Close(); err != nil {
339+
log.Printf("websocket: failed to close network connection: %v", err)
340+
}
334341
}
335342
}()
336343

@@ -400,7 +407,7 @@ func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader h
400407
// debugging.
401408
buf := make([]byte, 1024)
402409
n, _ := io.ReadFull(resp.Body, buf)
403-
resp.Body = ioutil.NopCloser(bytes.NewReader(buf[:n]))
410+
resp.Body = io.NopCloser(bytes.NewReader(buf[:n]))
404411
return nil, resp, ErrBadHandshake
405412
}
406413

@@ -418,17 +425,19 @@ func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader h
418425
break
419426
}
420427

421-
resp.Body = ioutil.NopCloser(bytes.NewReader([]byte{}))
428+
resp.Body = io.NopCloser(bytes.NewReader([]byte{}))
422429
conn.subprotocol = resp.Header.Get("Sec-Websocket-Protocol")
423430

424-
netConn.SetDeadline(time.Time{})
431+
if err := netConn.SetDeadline(time.Time{}); err != nil {
432+
return nil, nil, err
433+
}
425434
netConn = nil // to avoid close in defer.
426435
return conn, resp, nil
427436
}
428437

429438
func cloneTLSConfig(cfg *tls.Config) *tls.Config {
430439
if cfg == nil {
431-
return &tls.Config{}
440+
return &tls.Config{MinVersion: tls.VersionTLS12}
432441
}
433442
return cfg.Clone()
434443
}

0 commit comments

Comments
 (0)