MAJOR: proxy: convert server list to a doubly linked struct list
Servers are stored in a list in their parent proxy. Prior to this patch, this list was singly linked. This patch converts the proxy server list to a doubly linked struct list. Server <next> pointer is replaced by a struct list <el_px> attach point. The main benefit from this patch is that it removes the bottleneck performance for add and delete server operations at runtime. As with main proxies list conversion, this is labelled as major as it is an API change. Most of the changes are straightforward : for/while statements are replaced by list_for_each_entry() macros. LIST_ISEMPTY() is now used to detect if a proxy does not contain any server. Server insertion at the front position during config parsing is kept at the moment, with reordering on post parsing. With the current patch, this is not strictly necessary so this will be removed in a next change.
A
Amaury Denoyelle committed
81fc22033596b615c30b752a68a0bf22a7c52bd8
Parent: b679ccb