41static cluster_t* clusterlist_find_postinit (
const char* host);
42static cluster_t* clusterlist_first_postinit();
43static cluster_t* clusterlist_next_postinit();
44static cluster_t* clusterlist_get_postinit();
46static void clusterlist_init() {
48 perror(
"clusterlist_init");
52 clusterlistlast = clusterlistfirst;
53 clusterlistcursor = clusterlistfirst;
71 perror(
"clusterlist_add_postinit malloc(sentinel)");
74 clusterlistlast = clusterlistlast->
next;
85static cluster_t* clusterlist_find_postinit(
const char* host) {
86 clusterlistcursor = clusterlistfirst;
87 while (clusterlistcursor->
cluster&&
94 clusterlistcursor = clusterlistcursor->
next;
95 return (clusterlistcursor->
cluster);
97static cluster_t* clusterlist_find_preinit(
const char* host) {
101cluster_t* (*clusterlist_find)(
const char* host) = clusterlist_find_preinit;
104static cluster_t* clusterlist_first_postinit() {
105 clusterlistcursor = clusterlistfirst;
106 return (clusterlistcursor->
cluster);
108static cluster_t* clusterlist_first_preinit() {
112cluster_t* (*clusterlist_first)() = clusterlist_first_preinit;
115static cluster_t* clusterlist_next_postinit() {
116 if (clusterlistcursor->
next)
117 clusterlistcursor = clusterlistcursor->
next;
118 return (clusterlistcursor->
cluster);
120static cluster_t* clusterlist_next_preinit() {
124cluster_t* (*clusterlist_next)() = clusterlist_next_preinit;
127static cluster_t* clusterlist_get_postinit() {
128 return (clusterlistcursor->
cluster);
130static cluster_t* clusterlist_get_preinit() {
134cluster_t* (*clusterlist_get)() = clusterlist_get_preinit;
cluster_t *(* clusterlist_first)()
cluster_t *(* clusterlist_get)()
void(* clusterlist_add)(cluster_t *cluster)
struct clusterrecord_s clusterrecord_t
cluster_t *(* clusterlist_next)()
cluster_t *(* clusterlist_find)(const char *host)
Basic(non-thread-safe) single-chained list of record with sentinal.
struct clusterrecord_s * next