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:50:58 -0400 |
commit | 576dba543b969989a23a810217fc28351cd2a6ed (patch) | |
tree | ae666f94b4941cd538f8279b4639ce6eef880984 /src/util | |
parent | 5ac807da80c331d8ccc0a1ad75ad35e305c1b0c0 (diff) | |
download | sssd-576dba543b969989a23a810217fc28351cd2a6ed.tar.gz sssd-576dba543b969989a23a810217fc28351cd2a6ed.tar.xz sssd-576dba543b969989a23a810217fc28351cd2a6ed.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) |