Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
caddy
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Łukasz Nowak
caddy
Commits
32fa0ce6
Commit
32fa0ce6
authored
Nov 29, 2016
by
Mateusz Gajewski
Committed by
GitHub
Nov 29, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into fastcgi-timeout-defaults
parents
b8722d9a
80eb45fc
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
62 additions
and
14 deletions
+62
-14
caddy.go
caddy.go
+2
-2
caddy_test.go
caddy_test.go
+43
-1
caddyhttp/httpserver/context_test.go
caddyhttp/httpserver/context_test.go
+3
-1
caddyhttp/proxy/proxy_test.go
caddyhttp/proxy/proxy_test.go
+12
-8
caddytls/user_test.go
caddytls/user_test.go
+2
-2
No files found.
caddy.go
View file @
32fa0ce6
...
...
@@ -232,7 +232,7 @@ func HasListenerWithAddress(addr string) bool {
func
listenerAddrEqual
(
ln
net
.
Listener
,
addr
string
)
bool
{
lnAddr
:=
ln
.
Addr
()
.
String
()
hostname
,
port
,
err
:=
net
.
SplitHostPort
(
addr
)
if
err
!=
nil
||
hostname
!=
""
{
if
err
!=
nil
{
return
lnAddr
==
addr
}
if
lnAddr
==
net
.
JoinHostPort
(
"::"
,
port
)
{
...
...
@@ -241,7 +241,7 @@ func listenerAddrEqual(ln net.Listener, addr string) bool {
if
lnAddr
==
net
.
JoinHostPort
(
"0.0.0.0"
,
port
)
{
return
true
}
return
false
return
hostname
!=
""
&&
lnAddr
==
addr
}
// TCPServer is a type that can listen and serve connections.
...
...
caddy_test.go
View file @
32fa0ce6
package
caddy
import
"testing"
import
(
"net"
"strconv"
"testing"
)
/*
// TODO
...
...
@@ -56,3 +60,41 @@ func TestIsLoopback(t *testing.T) {
}
}
}
func
TestListenerAddrEqual
(
t
*
testing
.
T
)
{
ln1
,
err
:=
net
.
Listen
(
"tcp"
,
"[::]:0"
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
defer
ln1
.
Close
()
ln1port
:=
strconv
.
Itoa
(
ln1
.
Addr
()
.
(
*
net
.
TCPAddr
)
.
Port
)
ln2
,
err
:=
net
.
Listen
(
"tcp"
,
"127.0.0.1:0"
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
defer
ln2
.
Close
()
ln2port
:=
strconv
.
Itoa
(
ln2
.
Addr
()
.
(
*
net
.
TCPAddr
)
.
Port
)
for
i
,
test
:=
range
[]
struct
{
ln
net
.
Listener
addr
string
expect
bool
}{
{
ln1
,
":1234"
,
false
},
{
ln1
,
"0.0.0.0:1234"
,
false
},
{
ln1
,
"0.0.0.0"
,
false
},
{
ln1
,
":"
+
ln1port
+
""
,
true
},
{
ln1
,
"0.0.0.0:"
+
ln1port
+
""
,
true
},
{
ln2
,
":"
+
ln2port
+
""
,
false
},
{
ln2
,
"127.0.0.1:1234"
,
false
},
{
ln2
,
"127.0.0.1"
,
false
},
{
ln2
,
"127.0.0.1:"
+
ln2port
+
""
,
true
},
}
{
if
got
,
want
:=
listenerAddrEqual
(
test
.
ln
,
test
.
addr
),
test
.
expect
;
got
!=
want
{
t
.
Errorf
(
"Test %d (%s == %s): expected %v but was %v"
,
i
,
test
.
addr
,
test
.
ln
.
Addr
()
.
String
(),
want
,
got
)
}
}
}
caddyhttp/httpserver/context_test.go
View file @
32fa0ce6
...
...
@@ -746,14 +746,16 @@ func TestFiles(t *testing.T) {
// Create directory / files from test case.
if
test
.
fileNames
!=
nil
{
dirPath
,
err
=
ioutil
.
TempDir
(
fmt
.
Sprintf
(
"%s"
,
context
.
Root
),
"caddy_test"
)
dirPath
,
err
=
ioutil
.
TempDir
(
fmt
.
Sprintf
(
"%s"
,
context
.
Root
),
"caddy_
ctx
test"
)
if
err
!=
nil
{
os
.
RemoveAll
(
dirPath
)
t
.
Fatalf
(
testPrefix
+
"Expected no error creating directory, got: '%s'"
,
err
.
Error
())
}
for
_
,
name
:=
range
test
.
fileNames
{
absFilePath
:=
filepath
.
Join
(
dirPath
,
name
)
if
err
=
ioutil
.
WriteFile
(
absFilePath
,
[]
byte
(
""
),
os
.
ModePerm
);
err
!=
nil
{
os
.
RemoveAll
(
dirPath
)
t
.
Fatalf
(
testPrefix
+
"Expected no error creating file, got: '%s'"
,
err
.
Error
())
}
}
...
...
caddyhttp/proxy/proxy_test.go
View file @
32fa0ce6
...
...
@@ -229,10 +229,11 @@ func TestUnixSocketProxy(t *testing.T) {
}))
// Get absolute path for unix: socket
dir
,
err
:=
ioutil
.
TempDir
(
""
,
"caddy_test"
)
dir
,
err
:=
ioutil
.
TempDir
(
""
,
"caddy_
proxy
test"
)
if
err
!=
nil
{
t
.
Fatalf
(
"Failed to make temp dir to contain unix socket. %v"
,
err
)
}
defer
os
.
RemoveAll
(
dir
)
socketPath
:=
filepath
.
Join
(
dir
,
"test_socket"
)
// Change httptest.Server listener to listen to unix: socket
...
...
@@ -283,20 +284,21 @@ func GetHTTPProxy(messageFormat string, prefix string) (*Proxy, *httptest.Server
return
newPrefixedWebSocketTestProxy
(
ts
.
URL
,
prefix
),
ts
}
func
GetSocketProxy
(
messageFormat
string
,
prefix
string
)
(
*
Proxy
,
*
httptest
.
Server
,
error
)
{
func
GetSocketProxy
(
messageFormat
string
,
prefix
string
)
(
*
Proxy
,
*
httptest
.
Server
,
string
,
error
)
{
ts
:=
httptest
.
NewUnstartedServer
(
http
.
HandlerFunc
(
func
(
w
http
.
ResponseWriter
,
r
*
http
.
Request
)
{
fmt
.
Fprintf
(
w
,
messageFormat
,
r
.
URL
.
String
())
}))
dir
,
err
:=
ioutil
.
TempDir
(
""
,
"caddy_test"
)
dir
,
err
:=
ioutil
.
TempDir
(
""
,
"caddy_
proxy
test"
)
if
err
!=
nil
{
return
nil
,
nil
,
fmt
.
Errorf
(
"Failed to make temp dir to contain unix socket. %v"
,
err
)
return
nil
,
nil
,
dir
,
fmt
.
Errorf
(
"Failed to make temp dir to contain unix socket. %v"
,
err
)
}
socketPath
:=
filepath
.
Join
(
dir
,
"test_socket"
)
ln
,
err
:=
net
.
Listen
(
"unix"
,
socketPath
)
if
err
!=
nil
{
return
nil
,
nil
,
fmt
.
Errorf
(
"Unable to listen: %v"
,
err
)
os
.
RemoveAll
(
dir
)
return
nil
,
nil
,
dir
,
fmt
.
Errorf
(
"Unable to listen: %v"
,
err
)
}
ts
.
Listener
=
ln
...
...
@@ -304,7 +306,7 @@ func GetSocketProxy(messageFormat string, prefix string) (*Proxy, *httptest.Serv
tsURL
:=
strings
.
Replace
(
ts
.
URL
,
"http://"
,
"unix:"
,
1
)
return
newPrefixedWebSocketTestProxy
(
tsURL
,
prefix
),
ts
,
nil
return
newPrefixedWebSocketTestProxy
(
tsURL
,
prefix
),
ts
,
dir
,
nil
}
func
GetTestServerMessage
(
p
*
Proxy
,
ts
*
httptest
.
Server
,
path
string
)
(
string
,
error
)
{
...
...
@@ -370,8 +372,7 @@ func TestUnixSocketProxyPaths(t *testing.T) {
}
for
_
,
test
:=
range
tests
{
p
,
ts
,
err
:=
GetSocketProxy
(
greeting
,
test
.
prefix
)
p
,
ts
,
tmpdir
,
err
:=
GetSocketProxy
(
greeting
,
test
.
prefix
)
if
err
!=
nil
{
t
.
Fatalf
(
"Getting socket proxy failed - %v"
,
err
)
}
...
...
@@ -379,12 +380,15 @@ func TestUnixSocketProxyPaths(t *testing.T) {
actualMsg
,
err
:=
GetTestServerMessage
(
p
,
ts
,
test
.
url
)
if
err
!=
nil
{
os
.
RemoveAll
(
tmpdir
)
t
.
Fatalf
(
"Getting server message failed - %v"
,
err
)
}
if
actualMsg
!=
test
.
expected
{
t
.
Errorf
(
"Expected '%s' but got '%s' instead"
,
test
.
expected
,
actualMsg
)
}
os
.
RemoveAll
(
tmpdir
)
}
}
...
...
caddytls/user_test.go
View file @
32fa0ce6
...
...
@@ -166,12 +166,12 @@ func TestGetEmail(t *testing.T) {
t
.
Fatalf
(
"Error saving user %d: %v"
,
i
,
err
)
}
// Change modified time so they're all different
, so the test becomes
deterministic
// Change modified time so they're all different
and the test becomes more
deterministic
f
,
err
:=
os
.
Stat
(
testStorage
.
user
(
eml
))
if
err
!=
nil
{
t
.
Fatalf
(
"Could not access user folder for '%s': %v"
,
eml
,
err
)
}
chTime
:=
f
.
ModTime
()
.
Add
(
-
(
time
.
Duration
(
i
)
*
time
.
Second
))
chTime
:=
f
.
ModTime
()
.
Add
(
-
(
time
.
Duration
(
i
)
*
time
.
Hour
))
// 1 second isn't always enough space!
if
err
:=
os
.
Chtimes
(
testStorage
.
user
(
eml
),
chTime
,
chTime
);
err
!=
nil
{
t
.
Fatalf
(
"Could not change user folder mod time for '%s': %v"
,
eml
,
err
)
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment