Skip to content

Commit aea64ed

Browse files
committed
Fixed #556
Signed-off-by: Vishal Rana <[email protected]>
1 parent f4088cf commit aea64ed

File tree

3 files changed

+15
-8
lines changed

3 files changed

+15
-8
lines changed

engine/standard/request.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,12 @@ func (r *Request) IsTLS() bool {
4343

4444
// Scheme implements `engine.Request#Scheme` function.
4545
func (r *Request) Scheme() string {
46-
return r.Request.URL.Scheme
46+
// Can't use `r.Request.URL.Scheme`
47+
// See: https://groups.google.com/forum/#!topic/golang-nuts/pMUkBlQBDF0
48+
if r.IsTLS() {
49+
return "https"
50+
}
51+
return "http"
4752
}
4853

4954
// Host implements `engine.Request#Host` function.

engine/standard/request_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,19 @@ package standard
22

33
import (
44
"bufio"
5-
"github.com/labstack/echo/engine/test"
6-
"github.com/labstack/gommon/log"
7-
"github.com/stretchr/testify/assert"
85
"net/http"
96
"net/url"
107
"strings"
118
"testing"
9+
10+
"github.com/labstack/echo/engine/test"
11+
"github.com/labstack/gommon/log"
12+
"github.com/stretchr/testify/assert"
1213
)
1314

1415
func TestRequest(t *testing.T) {
1516
httpReq, _ := http.ReadRequest(bufio.NewReader(strings.NewReader(test.MultipartRequest)))
16-
url, _ := url.Parse("https://github.com/labstack/echo")
17+
url, _ := url.Parse("http://github.com/labstack/echo")
1718
httpReq.URL = url
1819
httpReq.RemoteAddr = "127.0.0.1"
1920
req := NewRequest(httpReq, log.New("echo"))

engine/test/test_request.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package test
22

33
import (
4-
"github.com/labstack/echo/engine"
5-
"github.com/stretchr/testify/assert"
64
"io/ioutil"
75
"strings"
86
"testing"
7+
8+
"github.com/labstack/echo/engine"
9+
"github.com/stretchr/testify/assert"
910
)
1011

1112
const MultipartRequest = `POST /labstack/echo HTTP/1.1
@@ -47,7 +48,7 @@ func RequestTest(t *testing.T, request engine.Request) {
4748
assert.Equal(t, "/labstack/echo", request.URL().Path())
4849
assert.Equal(t, "https://github.com/", request.Referer())
4950
assert.Equal(t, "127.0.0.1", request.Header().Get("X-Real-IP"))
50-
assert.Equal(t, "https", request.Scheme())
51+
assert.Equal(t, "http", request.Scheme())
5152
assert.Equal(t, "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; de-de) AppleWebKit/523.10.3 (KHTML, like Gecko) Version/3.0.4 Safari/523.10", request.UserAgent())
5253
assert.Equal(t, "127.0.0.1", request.RemoteAddress())
5354
assert.Equal(t, "POST", request.Method())

0 commit comments

Comments
 (0)