forked from mirror/redcon
#22 export Serve method
This commit is contained in:
parent
56b016127a
commit
0b1eb3f07a
27
redcon.go
27
redcon.go
|
@ -200,6 +200,25 @@ func (s *TLSServer) ListenAndServe() error {
|
||||||
return s.ListenServeAndSignal(nil)
|
return s.ListenServeAndSignal(nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Serve creates a new server and serves with the given net.Listener.
|
||||||
|
func Serve(ln net.Listener,
|
||||||
|
handler func(conn Conn, cmd Command),
|
||||||
|
accept func(conn Conn) bool,
|
||||||
|
closed func(conn Conn, err error),
|
||||||
|
) error {
|
||||||
|
s := &Server{
|
||||||
|
net: ln.Addr().Network(),
|
||||||
|
laddr: ln.Addr().String(),
|
||||||
|
ln: ln,
|
||||||
|
handler: handler,
|
||||||
|
accept: accept,
|
||||||
|
closed: closed,
|
||||||
|
conns: make(map[*conn]bool),
|
||||||
|
}
|
||||||
|
|
||||||
|
return serve(s)
|
||||||
|
}
|
||||||
|
|
||||||
// ListenAndServe creates a new server and binds to addr configured on "tcp" network net.
|
// ListenAndServe creates a new server and binds to addr configured on "tcp" network net.
|
||||||
func ListenAndServe(addr string,
|
func ListenAndServe(addr string,
|
||||||
handler func(conn Conn, cmd Command),
|
handler func(conn Conn, cmd Command),
|
||||||
|
@ -259,6 +278,14 @@ func (s *Server) ListenServeAndSignal(signal chan error) error {
|
||||||
return serve(s)
|
return serve(s)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Serve serves incoming connections with the given net.Listener.
|
||||||
|
func (s *Server) Serve(ln net.Listener) error {
|
||||||
|
s.ln = ln
|
||||||
|
s.net = ln.Addr().Network()
|
||||||
|
s.laddr = ln.Addr().String()
|
||||||
|
return serve(s)
|
||||||
|
}
|
||||||
|
|
||||||
// ListenServeAndSignal serves incoming connections and passes nil or error
|
// ListenServeAndSignal serves incoming connections and passes nil or error
|
||||||
// when listening. signal can be nil.
|
// when listening. signal can be nil.
|
||||||
func (s *TLSServer) ListenServeAndSignal(signal chan error) error {
|
func (s *TLSServer) ListenServeAndSignal(signal chan error) error {
|
||||||
|
|
Loading…
Reference in New Issue