/
server.go
52 lines (41 loc) · 978 Bytes
/
server.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package servers
import (
"io"
"github.com/go-x-pkg/dumpctx"
)
type Server interface {
serverBaser
serverKinder
serverAddred
serverNetworker
}
type (
serverBaser interface{ Base() *ServerBase }
serverKinder interface{ Kind() Kind }
serverAddred interface{ Addr() string }
serverNetworker interface{ Network() string }
ServerAuther interface{ ClientAuthTLS() *ClientAuthTLSConfig }
serverValidator interface{ validate() error }
serverInterpolator interface{ interpolate(func(string) string) }
serverDefaultizer interface{ defaultize() error }
serverDumper interface{ Dump(*dumpctx.Ctx, io.Writer) }
)
func runLogPrefix(server Server) string {
switch s := server.(type) {
case *ServerListener:
server = s.Server
case *ServerWrapped:
server = s.Server
}
switch s := server.(type) {
case *ServerUNIX:
return "UNIX"
case *ServerINET:
if s.TLS.Enable {
return "TLS"
}
return "TCP"
default:
panic("undefined server")
}
}