236 Commits

Author SHA1 Message Date
bc2417fc40 fix: description error (#2968) 2021-11-30 08:36:36 +08:00
ffb3b73430 fix: description error (#2961) 2021-11-26 16:38:10 +08:00
6aee45608d Fix grammar (#2933) 2021-11-11 08:07:55 +08:00
2d3d6d2f13 Provide custom options of TrustedPlatform for another CDN services (#2906)
* refine TrustedPlatform and docs

* refactor for switch

* refactor switch to if statement
2021-10-24 08:34:03 +08:00
3fe928994b Update the code logic for latestNode in tree.go (#2897) 2021-10-23 11:58:57 +08:00
5929d52171 ClientIP: check every proxy for trustiness (#2844) 2021-10-09 08:38:51 +08:00
39181329de Tidy: Complete TrustedProxies feature (#2887) 2021-10-06 09:37:25 +08:00
97b3c0d88a Fix grammatical and spelling errors in context.go (#2883) 2021-09-29 07:35:06 +08:00
71f7087097 golangci(lint) : more linters (#2870) 2021-09-21 15:22:21 +08:00
deb83b6365 gin.Context.SetParam shortcut for e2e tests (#2848)
* Added SetParam shortcut for e2e tests, added SetParam test

* Adjusted naming and formatting

* fixed typo
2021-09-07 10:08:45 +08:00
dfc25f91e0 Add short func with named return (#2837) 2021-08-22 09:29:51 +08:00
wei
9a575a4c05 fallback Context.Deadline() Context.Done() Context.Err() to Context.Request.Context() (#2769)
* fallback Context.Deadline() Context.Done() Context.Err() to Context.Request.Context()

* update comments wording
2021-08-01 00:46:53 +08:00
c7a28f8532 use bit shift operation instead of division (#2776) 2021-07-06 16:37:14 +08:00
372cc4a010 Fix typo (#2772) 2021-07-02 09:58:43 +08:00
wei
7834a03e84 gin.Context with fallback value from gin.Context.Request.Context() (#2751)
* Update tree.go (#2659)

delete more "()"

* updated comments for Get function for params (#2756)

* ci: add github action workflows (#2596)

* ci: add github action workflows

* test: fixed the TestUnixSocket test on windows (#20)

* ci: add github action workflows (#18)

* Remove .travis.yml

* ci: replace GITTER_ROOM_ID and upload coverage every time you go test

* ci: update coverage using codecov/codecov-action@v1

* Merge branch 'master' into github-actions

* repo: replace travis ci to github actions

* ci: add go version 1.16

* fix: go install requires a specific version

* chore(ci): remove go 1.12 support

* chore(ci): remove os windows-latest

Co-authored-by: thinkerou <thinkerou@gmail.com>
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com>

* Setting trusted platform using an enum-like (#2739)

* gin.Context with fallback value from c.Request.Context()

* add test case

Co-authored-by: youzeliang <youzel@126.com>
Co-authored-by: Ashwani <ashwanisharma686@gmail.com>
Co-authored-by: Jeff <laojianzi1994@gmail.com>
Co-authored-by: thinkerou <thinkerou@gmail.com>
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com>
Co-authored-by: Alessandro (Ale) Segala <43508+ItalyPaleAle@users.noreply.github.com>
2021-06-24 16:33:14 +08:00
dd8a27c0b6 Setting trusted platform using an enum-like (#2739) 2021-06-24 08:58:10 +08:00
6703dea51c Get client IP when using Cloudflare (#2723)
Co-authored-by: thinkerou <thinkerou@gmail.com>
2021-05-28 10:03:59 +08:00
afb38396b5 optimize code (#2722)
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2021-05-22 13:17:19 +08:00
03e5e05ae0 fix: data race with trustedCIDRs (#2674) (#2675)
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2021-04-09 00:27:34 +08:00
bfc8ca285e feat(engine): add trustedproxies and remoteIP (#2632)
Co-authored-by: Søren L. Hansen <soren@linux2go.dk>
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com>
Co-authored-by: thinkerou <thinkerou@gmail.com>
Co-authored-by: Javier Provecho Fernandez <javiertitan@gmail.com>
2021-04-06 11:37:25 +08:00
7742ff50e0 Fix typos in context.go (#2551) 2020-11-11 09:41:35 +08:00
540b1eff70 update content-disposition header to MIME-style (#2512) 2020-09-25 09:45:17 +08:00
3100b7cb05 Fix spelling (#2498) 2020-09-14 10:40:20 +08:00
0304ee96ed Add GetUint and GetUint64 method on gin.context (#2487) 2020-09-01 09:33:54 +08:00
815e1ce281 Prevent panic in Context.GetQuery() when there is no Request (#2412)
Co-authored-by: thinkerou <thinkerou@gmail.com>
2020-08-08 20:32:19 +08:00
1d5b9badd9 chore: rename getQueryCache/getFormCache to initQueryCache/initFormCache (#2375) 2020-05-14 11:35:14 +08:00
d17270dd90 Sync route tree to httprouter latest code (#2368)
* update tree

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>

* update

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>

* update

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>

* update countParams

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>

* fix testing

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>

* update

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>

* update

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>

* udpate

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>

* fix testing

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>

* refactor gin context

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>

* add fullPath

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>

* chore: refactor

* remove unused code

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>

* remove varsCount

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>

* refactor

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-05-10 13:22:25 +08:00
6ac7f194c4 chore: update some code style (#2356) 2020-05-05 13:55:57 +08:00
54175dbe72 chore: update the result of CR (#2354)
* chore: update the result of CR

* Update utils.go

* Update utils.go

* Update context.go

* Update context.go
2020-05-04 11:40:41 +08:00
2c43278080 chore(performance): Change *sync.RWMutex to sync.RWMutex (#2351) 2020-05-03 20:39:34 +08:00
298ebca691 fix missing initial sync.RWMutex (#2305)
* fix missing initial sync.RWMutex

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>

* Add unit testing.

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-03-27 10:57:36 +08:00
57f99ca50f Add set samesite in cookie. (#2306)
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-03-27 10:47:22 +08:00
73ccfea3ba Add mutex for protect Context.Keys map (#1391)
* Add mutex for protect Context.Keys map

* Fix tests

Co-authored-by: Nikolay Tolkachov <nik.tolkachov@gmail.com>
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-03-17 00:52:02 +08:00
1d055af1bc FileFromFS (#2112)
* Context.FileFromFS added

* Context File and FileFromFS examples at README

Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-03-07 10:23:33 +08:00
731c827892 add yaml negotitation (#2220)
Co-authored-by: thinkerou <thinkerou@gmail.com>
2020-02-06 14:50:21 +08:00
ali
f94406a087 Added support for SameSite cookie flag (#1615)
* Added support for SameSite cookie flag

* fixed tests.

* Update context.go

* Update context_test.go

* Update context_test.go

Co-authored-by: thinkerou <thinkerou@gmail.com>
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-01-20 15:12:44 +08:00
424e9685be Update docs on Context.Done(), Context.Deadline() and Context.Err() (#2196)
Co-authored-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-01-08 01:48:28 +08:00
b8a7b6d194 Fix spelling (#2202) 2020-01-07 09:19:49 +08:00
0f951956d0 [FIX] c.Request.FormFile maybe file, need close (#2114) 2019-10-31 23:17:12 +08:00
0ce4661029 Use Writer in Context.Status (#1606) 2019-10-17 10:14:44 +08:00
2e5a7196cc use url.URL.Query instead of parsing query (#2063) 2019-09-24 10:01:57 +08:00
b8b2fada5c fix GetPostFormMap (#2051) 2019-09-10 14:32:30 +08:00
f98b339b77 support bind http header param #1956 (#1957)
* support bind http header param #1956

update #1956
```
package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
)

type testHeader struct {
	Rate   int    `header:"Rate"`
	Domain string `header:"Domain"`
}

func main() {
	r := gin.Default()
	r.GET("/", func(c *gin.Context) {
		h := testHeader{}

		if err := c.ShouldBindHeader(&h); err != nil {
			c.JSON(200, err)
		}

		fmt.Printf("%#v\n", h)
		c.JSON(200, gin.H{"Rate": h.Rate, "Domain": h.Domain})
	})

	r.Run()

// client
// curl -H "rate:300" -H "domain:music" 127.0.0.1:8080/
// output
// {"Domain":"music","Rate":300}
}
```

* add unit test

* Modify the code to get the http header

When the http header is obtained in the standard library,
the key value will be modified by the CanonicalMIMEHeaderKey function,
and finally the value of the http header will be obtained from the map.
As follows.
```go
func (h MIMEHeader) Get(key string) string {
        // ...
         v := h[CanonicalMIMEHeaderKey(key)]
        // ...
}
```

This pr also follows this modification

* Thanks to vkd for suggestions, modifying code

* Increase test coverage

env GOPATH=`pwd` go test github.com/gin-gonic/gin/binding -coverprofile=cover.prof
ok  	github.com/gin-gonic/gin/binding	0.015s	coverage: 100.0% of statements

* Rollback check code

* add use case to README.md
2019-06-27 12:47:45 +08:00
75b9d2bed7 Attempt to fix PostForm cache bug (#1931) 2019-06-12 21:07:15 +08:00
08b52e5394 feat: improve get post data. (#1920)
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2019-06-02 17:24:41 +08:00
4b6df417e4 chore: improve GetQueryMap performance. (#1918)
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2019-05-29 14:54:55 +08:00
233a3e493d add context param query cache (#1450) 2019-05-29 11:25:02 +08:00
6e320c97e8 Fix context.Params race condition on Copy() (#1841)
* Fix context.Params race condition on Copy()

Using context.Param(key) on a context.Copy inside a goroutine
may lead to incorrect value on a high load, where another request
overwrite a Param

* Using waitgroup to wait asynchronous test case
2019-05-27 14:04:30 +08:00
35e33d3638 Hold matched route full path in the Context (#1826)
* Return nodeValue from getValue method

* Hold route full path in the Context

* Add small example
2019-05-26 08:20:21 +08:00
b1d607a899 Some code improvements (#1909)
* strings.ToLower comparison changed to strings.EqualFold.
* Rewrite switch statement with only one case as if.
2019-05-21 23:08:52 +08:00