@@ -83,18 +83,19 @@ func NewRoute(config config.Config, parameters map[string]any) (*Route, error) {
83
83
func (r * Route ) Fallback (handler httpcontract.HandlerFunc ) {
84
84
r .instance .Use (func (c fiber.Ctx ) error {
85
85
ctx := contextPool .Get ().(* Context )
86
+ defer func () {
87
+ contextRequestPool .Put (ctx .request )
88
+ contextResponsePool .Put (ctx .response )
89
+ ctx .request = nil
90
+ ctx .response = nil
91
+ contextPool .Put (ctx )
92
+ }()
86
93
87
94
ctx .instance = c
88
95
if response := handler (ctx ); response != nil {
89
96
return response .Render ()
90
97
}
91
98
92
- contextRequestPool .Put (ctx .request )
93
- contextResponsePool .Put (ctx .response )
94
- ctx .request = nil
95
- ctx .response = nil
96
- contextPool .Put (ctx )
97
-
98
99
return nil
99
100
})
100
101
}
@@ -139,17 +140,10 @@ func (r *Route) Run(host ...string) error {
139
140
host = append (host , completeHost )
140
141
}
141
142
142
- network := fiber .NetworkTCP
143
- prefork := r .config .GetBool ("http.drivers.fiber.prefork" , false )
144
- // Fiber not support prefork on dual stack
145
- // https://docs.gofiber.io/api/fiber#config
146
- if prefork {
147
- network = fiber .NetworkTCP4
148
- }
149
-
150
143
r .outputRoutes ()
151
144
color .Green ().Println (termlink .Link ("[HTTP] Listening and serving HTTP on" , "http://" + host [0 ]))
152
145
146
+ network , prefork := r .getNetworkConfig ()
153
147
return r .instance .Listen (host [0 ], fiber.ListenConfig {DisableStartupMessage : true , EnablePrefork : prefork , ListenerNetwork : network })
154
148
}
155
149
@@ -182,17 +176,10 @@ func (r *Route) RunTLSWithCert(host, certFile, keyFile string) error {
182
176
return errors .New ("certificate can't be empty" )
183
177
}
184
178
185
- network := fiber .NetworkTCP
186
- prefork := r .config .GetBool ("http.drivers.fiber.prefork" , false )
187
- // Fiber not support prefork on dual stack
188
- // https://docs.gofiber.io/api/fiber#config
189
- if prefork {
190
- network = fiber .NetworkTCP4
191
- }
192
-
193
179
r .outputRoutes ()
194
180
color .Green ().Println (termlink .Link ("[HTTPS] Listening and serving HTTPS on" , "https://" + host ))
195
181
182
+ network , prefork := r .getNetworkConfig ()
196
183
return r .instance .Listen (host , fiber.ListenConfig {DisableStartupMessage : true , EnablePrefork : prefork , ListenerNetwork : network , CertFile : certFile , CertKeyFile : keyFile })
197
184
}
198
185
@@ -239,3 +226,12 @@ func (r *Route) setMiddlewares(middlewares []fiber.Handler) {
239
226
r .instance .Use (middleware )
240
227
}
241
228
}
229
+
230
+ func (r * Route ) getNetworkConfig () (string , bool ) {
231
+ network := fiber .NetworkTCP
232
+ prefork := r .config .GetBool ("http.drivers.fiber.prefork" , false )
233
+ if prefork {
234
+ network = fiber .NetworkTCP4
235
+ }
236
+ return network , prefork
237
+ }
0 commit comments