Add two new methods to lbprm, server_deinit() and proxy_deinit(),
in case something should be done at the lbprm level when
removing servers and proxies.
void (*server_take_conn)(struct server *); /* to be called when connection is assigned */
void (*server_drop_conn)(struct server *); /* to be called when connection is dropped */
void (*server_requeue)(struct server *); /* function used to place the server where it must be */
+ void (*proxy_deinit)(struct proxy *); /* to be called when we're destroying the proxy */
+ void (*server_deinit)(struct server *); /* to be called when we're destroying the server */
};
#endif /* _HAPROXY_BACKEND_T_H */
*/
srv_free_params(&p->defsrv);
+ if (p->lbprm.proxy_deinit)
+ p->lbprm.proxy_deinit(p);
+
list_for_each_entry_safe(l, l_next, &p->conf.listeners, by_fe) {
guid_remove(&l->guid);
LIST_DELETE(&l->by_fe);
EXTRA_COUNTERS_FREE(srv->extra_counters);
+ if (srv->proxy->lbprm.server_deinit)
+ srv->proxy->lbprm.server_deinit(srv);
+
ha_free(&srv);
end: