diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2010-04-16 17:58:28 +0200 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2010-04-30 07:51:18 -0400 |
commit | 0d72f05cc87f42a8c2856c96501c64d69541be00 (patch) | |
tree | 4269b14e30621920dc63209e29c3176e9d163071 /src/util | |
parent | 3765c2f9d4ba8aeffe140a8c5ab88acd79c66768 (diff) | |
download | sssd-0d72f05cc87f42a8c2856c96501c64d69541be00.tar.gz sssd-0d72f05cc87f42a8c2856c96501c64d69541be00.tar.xz sssd-0d72f05cc87f42a8c2856c96501c64d69541be00.zip |
Support SRV servers in failover
Adds a new failover API call fo_add_srv_server that allows the caller
to specify a server that is later resolved into a list of specific
servers using SRV requests.
Also adds a new failover option that specifies how often should the
servers resolved from SRV query considered valid until we need a
refresh.
The "real" servers to connect to are returned to the user as usual,
using the fo_resolve_service_{send,recv} calls.
Make SRV resolution work with c-ares 1.6
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/dlinklist.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/util/dlinklist.h b/src/util/dlinklist.h index be5ff914b..f323de702 100644 --- a/src/util/dlinklist.h +++ b/src/util/dlinklist.h @@ -110,6 +110,22 @@ do { \ } \ } while (0) +/* insert all elements from list2 after the given element 'el' in the + * first list */ +#define DLIST_ADD_LIST_AFTER(list1, el, list2, type) \ +do { \ + if (!(list1) || !(el) || !(list2)) { \ + DLIST_CONCATENATE(list1, list2, type); \ + } else { \ + type tmp; \ + for (tmp = (list2); tmp->next; tmp = tmp->next) ; \ + (list2)->prev = (el); \ + tmp->next = (el)->next; \ + (el)->next = (list2); \ + if ((el)->next != NULL) (el)->next->prev = tmp; \ + } \ +} while (0); + #define DLIST_FOR_EACH(p, list) \ for ((p) = (list); (p) != NULL; (p) = (p)->next) |