@@ -67,7 +67,7 @@ func NewConfig(c *engine.Config) (s *Server) {
6767 },
6868 },
6969 handler : func (req engine.Request , res engine.Response ) {
70- s .logger .Warn ("handler not set" )
70+ s .logger .Fatal ("handler not set" )
7171 },
7272 logger : log .New ("echo" ),
7373 }
@@ -84,30 +84,7 @@ func (s *Server) SetLogger(l logger.Logger) {
8484
8585func (s * Server ) Start () {
8686 s .Addr = s .config .Address
87- s .Handler = http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
88- // Request
89- req := s .pool .request .Get ().(* Request )
90- reqHdr := s .pool .header .Get ().(* Header )
91- reqURL := s .pool .url .Get ().(* URL )
92- reqHdr .reset (r .Header )
93- reqURL .reset (r .URL )
94- req .reset (r , reqHdr , reqURL )
95-
96- // Response
97- res := s .pool .response .Get ().(* Response )
98- resHdr := s .pool .header .Get ().(* Header )
99- resHdr .reset (w .Header ())
100- res .reset (w , resHdr )
101-
102- s .handler (req , res )
103-
104- s .pool .request .Put (req )
105- s .pool .header .Put (reqHdr )
106- s .pool .url .Put (reqURL )
107- s .pool .response .Put (res )
108- s .pool .header .Put (resHdr )
109- })
110-
87+ s .Handler = s
11188 certfile := s .config .TLSCertfile
11289 keyfile := s .config .TLSKeyfile
11390 if certfile != "" && keyfile != "" {
@@ -116,3 +93,27 @@ func (s *Server) Start() {
11693 s .logger .Fatal (s .ListenAndServe ())
11794 }
11895}
96+
97+ func (s * Server ) ServeHTTP (w http.ResponseWriter , r * http.Request ) {
98+ // Request
99+ req := s .pool .request .Get ().(* Request )
100+ reqHdr := s .pool .header .Get ().(* Header )
101+ reqURL := s .pool .url .Get ().(* URL )
102+ reqHdr .reset (r .Header )
103+ reqURL .reset (r .URL )
104+ req .reset (r , reqHdr , reqURL )
105+
106+ // Response
107+ res := s .pool .response .Get ().(* Response )
108+ resHdr := s .pool .header .Get ().(* Header )
109+ resHdr .reset (w .Header ())
110+ res .reset (w , resHdr )
111+
112+ s .handler (req , res )
113+
114+ s .pool .request .Put (req )
115+ s .pool .header .Put (reqHdr )
116+ s .pool .url .Put (reqURL )
117+ s .pool .response .Put (res )
118+ s .pool .header .Put (resHdr )
119+ }
0 commit comments