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;
84static cluster_t* clusterlist_find_postinit(
const char* host) {
85 clusterlistcursor = clusterlistfirst;
86 while (clusterlistcursor->
cluster&&
88 clusterlistcursor = clusterlistcursor->
next;
89 return (clusterlistcursor->
cluster);
91static cluster_t* clusterlist_find_preinit(
const char* host) {
95cluster_t* (*clusterlist_find)(
const char* host) = clusterlist_find_preinit;
97static cluster_t* clusterlist_first_postinit() {
98 clusterlistcursor = clusterlistfirst;
99 return (clusterlistcursor->
cluster);
101static cluster_t* clusterlist_first_preinit() {
105cluster_t* (*clusterlist_first)() = clusterlist_first_preinit;
107static cluster_t* clusterlist_next_postinit() {
108 if (clusterlistcursor->
next)
109 clusterlistcursor = clusterlistcursor->
next;
110 return (clusterlistcursor->
cluster);
112static cluster_t* clusterlist_next_preinit() {
116cluster_t* (*clusterlist_next)() = clusterlist_next_preinit;
118static cluster_t* clusterlist_get_postinit() {
119 return (clusterlistcursor->
cluster);
121static cluster_t* clusterlist_get_preinit() {
125cluster_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