gost_software/handler.go
2017-07-20 23:36:09 +08:00

33 lines
502 B
Go

package gost
import (
"net"
)
type Handler interface {
Handle(net.Conn)
}
type defaultHandler struct {
server Server
}
func DefaultHandler(server Server) Handler {
return &defaultHandler{server: server}
}
func (h *defaultHandler) Handle(conn net.Conn) {
var handler Handler
switch h.server.Options().BaseOptions().Protocol {
case "http":
handler = HTTPHandler(h.server)
case "socks", "socks5":
case "ss": // shadowsocks
handler = ShadowHandler(h.server)
}
handler.Handle(conn)
}