@@ -67,7 +67,7 @@ func NewConfig(c *engine.Config) (s *Server) {
67
67
},
68
68
},
69
69
handler : func (req engine.Request , res engine.Response ) {
70
- s .logger .Warn ("handler not set" )
70
+ s .logger .Fatal ("handler not set" )
71
71
},
72
72
logger : log .New ("echo" ),
73
73
}
@@ -84,30 +84,7 @@ func (s *Server) SetLogger(l logger.Logger) {
84
84
85
85
func (s * Server ) Start () {
86
86
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
111
88
certfile := s .config .TLSCertfile
112
89
keyfile := s .config .TLSKeyfile
113
90
if certfile != "" && keyfile != "" {
@@ -116,3 +93,27 @@ func (s *Server) Start() {
116
93
s .logger .Fatal (s .ListenAndServe ())
117
94
}
118
95
}
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