History log of /sssd/src/providers/fail_over.h
Revision Date Author Comments Expand
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45 16-Aug-2016 Pavel Březina <pbrezina@redhat.com>

sssctl: print active server and server list Resolves: https://fedorahosted.org/sssd/ticket/3069 Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com> Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>

5a7f17aedad34a8618765bc33342c109a6958ab5 19-Jan-2016 Sumit Bose <sbose@redhat.com>

FO: add fo_get_active_server() Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>

10c07e188323a2f9824b5e34379f3b1a9b37759e 23-Oct-2015 Jakub Hrozek <jhrozek@redhat.com>

FO: Use refcount to keep track of servers returned to callers Resolves: https://fedorahosted.org/sssd/ticket/2829 Reviewed-by: Pavel Březina <pbrezina@redhat.com>

669ce24f8157b7d79914b3eb5a18214ef42aacc8 23-Sep-2015 Jakub Hrozek <jhrozek@redhat.com>

FO: Add an API to reset all servers in a single service Required for: https://fedorahosted.org/sssd/ticket/2639 Previously, we had a function that allowed the caller to reset the status of all services in the global fail over context. This patch adds a new function that allows the caller to reset a single service instead. The main user would be IPA subdomain provider that might need to reset the status of an AD trusted domain on demand. Reviewed-by: Sumit Bose <sbose@redhat.com>

8df69bbc58c2f4d3f0b34be9756d9ddf24b1db6d 03-Mar-2015 Jakub Hrozek <jhrozek@redhat.com>

FO: Use SRV TTL in fail over code Resolves: https://fedorahosted.org/sssd/ticket/1884 Removes the hardcoded SRV TTL timeout and uses TTL from the DNS instead. Reviewed-by: Pavel Březina <pbrezina@redhat.com>

8ed6630fb25c7d5af6e2d9915786b94600198b01 14-Apr-2014 Pavel Reichl <preichl@redhat.com>

failover: Shorter retry time for failed SRV Until now there was only one timeout used to re-resolve SRV queries. This patch adds new (shorter) timeout that will be used for queries that previously failed. Resolves: https://fedorahosted.org/sssd/ticket/1885 Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>

0664ecd07f455c933074ac382cee91039bfaa7e2 09-Aug-2013 Jakub Hrozek <jhrozek@redhat.com>

Remove unused constant

f9961e5f82e0ef474d6492371bfdf9e74e208a99 10-Apr-2013 Pavel Březina <pbrezina@redhat.com>

DNS sites support - SRV lookup plugin interface https://fedorahosted.org/sssd/ticket/1032 Introduces two new error codes: - ERR_SRV_NOT_FOUND - ERR_SRV_LOOKUP_ERROR Since id_provider is authoritative in case of SRV plugin choise, ability to override the selected pluging during runtime is not desirable. We rely on the fact that id_provider is initialized before all other providers, thus the plugin is set correctly.

e148ba6dbb26a0eac162ac9a2ff550da2c883808 18-Dec-2012 Pavel Březina <pbrezina@redhat.com>

try primary server after retry_timeout + 1 seconds when switching to backup https://fedorahosted.org/sssd/ticket/1679 The problem is when we are about to reset the server status, we don't get through the timeout (30 seconds) because the "switch to primary server" task is scheduled 30 seconds after fall back to a backup server. Thus the server status remains "not working" and is resetted after another 30 seconds. We need to make sure that the server status is tried after the timeout period. retry_timeout is currently hardcoded to 30, thus the change in man page.

d25e7c659361ebd794ef011dc9305543f266e8c4 13-Sep-2012 Jakub Hrozek <jhrozek@redhat.com>

FO: Check server validity before setting status The list of resolved servers is allocated on the back end context and kept in the fo_service structure. However, a single request often resolves a server and keeps a pointer until the end of a request and only then gives feedback about the server based on the request result. This presents a big race condition in case the SRV resolution is used. When there are requests coming in in parallel, it is possible that an incoming request will invalidate a server until another request that holds a pointer to the original server is able to give a feedback. This patch simply checks if a server is in the list of servers maintained by a service before reading its status. https://fedorahosted.org/sssd/ticket/1364

9ab243b369ba317cc964080786dbcdebaf23d6be 15-Aug-2012 Michal Zidek <mzidek@redhat.com>

Duplicate detection in fail over did not work. https://fedorahosted.org/sssd/ticket/1472

bbd33e46aa6194c1086939f7cf8538c067186455 01-Aug-2012 Jan Zeleny <jzeleny@redhat.com>

Primary server support: basic support in failover code Now there are two list of servers for each service. If currently selected server is only backup, then an event will be scheduled which tries to get connection to one of primary servers and if it succeeds, it starts using this server instead of the one which is currently connected to.

b300bad539e9a9ad7f3a88dc91253afff0425cb6 06-Mar-2012 Jakub Hrozek <jhrozek@redhat.com>

Only do one cycle when resolving a server https://fedorahosted.org/sssd/ticket/1214

b8ecc581cdd8c7d097bf9db67a4cb220fbbcff6d 20-Dec-2011 Jakub Hrozek <jhrozek@redhat.com>

Failover: Introduce a per-service timeout https://fedorahosted.org/sssd/ticket/976

9b85268eabe33d624b9d184251e89c0c7ae829a2 21-Jul-2011 Jakub Hrozek <jhrozek@redhat.com>

fo_get_server_name() getter for a server name Allows to be more concise in tests and more defensive in resolve callbacks

363d2fba991eae199d017f5b2d1b458f070fac6b 21-Jul-2011 Jakub Hrozek <jhrozek@redhat.com>

Rename fo_get_server_name to fo_get_server_str_name

1240496176a07e804c57d43926509d5ccbf0fc41 15-Jun-2011 Jakub Hrozek <jhrozek@redhat.com>

Switch resolver to using resolv_hostent and honor TTL

5f4b4fb5a26ddcfa578a368688e81b36b5612d06 09-Mar-2011 Jakub Hrozek <jhrozek@redhat.com>

Run callbacks if server IP changes

eaee7fa08b609215fcb1aa04db5ec5683d4d3d0b 21-Jan-2011 Stephen Gallagher <sgallagh@redhat.com>

Rename dns_domain to discovery domain for fo_add_srv_server()

9917b96e31df3fa992d235a050ed1dc0e9939b3d 21-Jan-2011 Stephen Gallagher <sgallagh@redhat.com>

Allow fallback to SSSD domain For backwards-compatibility with older versions of the SSSD (such as 1.2.x), we need to be able to have our DNS SRV record lookup be capable of falling back to using the SSSD domain name as the DNS discovery domain. This patch modifies our DNS lookups so that they behave as follows: If dns_discovery_domain is specified, it is considered authoritative. No other discovery domains will be attempted. If dns_discovery_domain is not specified, we first attempt to look up the SRV records using the domain portion of the machine's hostname. If this returns "NOTFOUND", we will try performing an SRV record query using the SSSD domain name as the DNS discovery domain. https://fedorahosted.org/sssd/ticket/754

c8708cd958c633cc3c57a3460bdb15391200e1e1 01-Dec-2010 Sumit Bose <sbose@redhat.com>

Run checks before resetting offline state Before setting the backend to online during a reset offline request the check_online method if the ID provider is called. If the check_online method returns that the ID provider is still not reachable the backend stays offline. Otherwise the backend is switched to online and the related callbacks are run. Additionally the check online test is called during the res_init request because a change in /etc/resolve.conf might also make a server reachable which was assumed offline before.

54577e54d1b6300aeb348087372c14ed72530f88 09-Jul-2010 eindenbom <eindenbom@gmail.com>

Add an interface to try next fail-over server after connection to the active server was unexpectedly dropped.

faace4bdd6b84f60d2f707c00d31a84c0e84d375 09-Jul-2010 eindenbom <eindenbom@gmail.com>

Added an interface to query number of configured (and currently resolved through SRV records) failover servers.

66da80489c0114878043b40592c5f47d41eb0ffd 07-May-2010 Jakub Hrozek <jhrozek@redhat.com>

Use service discovery in backends Integrate the failover improvements with our back ends. The DNS domain used in the SRV query is always the SSSD domain name. Please note that this patch changes the default value of ldap_uri from "ldap://localhost" to "NULL" in order to use service discovery with no server set.

0d72f05cc87f42a8c2856c96501c64d69541be00 30-Apr-2010 Jakub Hrozek <jhrozek@redhat.com>

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

e0bb119bdc1549d731f371202428c0cb667d3388 22-Feb-2010 Jakub Hrozek <jhrozek@redhat.com>

Restrict family lookups Adds a new option that tells resolver which address family to prefer or use exclusively. Fixes: #404

41b90671ce533c8f08072ca706e7ed81a8254242 18-Feb-2010 Stephen Gallagher <sgallagh@redhat.com>

Fix licensing issues in SSSD

1c48b5a62f73234ed26bb20f0ab345ab61cda0ab 18-Feb-2010 Stephen Gallagher <sgallagh@redhat.com>

Rename server/ directory to src/ Also update BUILD.txt

/sssd/BUILD.txt /sssd/Makefile.am /sssd/configure.ac /sssd/contrib/sssd.spec.in /sssd/src/Makefile.am /sssd/src/build_macros.m4 /sssd/src/conf_macros.m4 /sssd/src/confdb/confdb.c /sssd/src/confdb/confdb.h /sssd/src/confdb/confdb_private.h /sssd/src/confdb/confdb_setup.c /sssd/src/confdb/confdb_setup.h /sssd/src/config/SSSDConfig.py /sssd/src/config/SSSDConfigTest.py /sssd/src/config/etc/sssd.api.conf /sssd/src/config/etc/sssd.api.d/sssd-ipa.conf /sssd/src/config/etc/sssd.api.d/sssd-krb5.conf /sssd/src/config/etc/sssd.api.d/sssd-ldap.conf /sssd/src/config/etc/sssd.api.d/sssd-local.conf /sssd/src/config/etc/sssd.api.d/sssd-proxy.conf /sssd/src/config/ipachangeconf.py /sssd/src/config/setup.py /sssd/src/config/testconfigs/noparse.api.conf /sssd/src/config/testconfigs/sssd-badversion.conf /sssd/src/config/testconfigs/sssd-invalid-badbool.conf /sssd/src/config/testconfigs/sssd-invalid.conf /sssd/src/config/testconfigs/sssd-noversion.conf /sssd/src/config/testconfigs/sssd-valid.conf /sssd/src/config/upgrade_config.py /sssd/src/configure.ac /sssd/src/db/sysdb.c /sssd/src/db/sysdb.h /sssd/src/db/sysdb_ops.c /sssd/src/db/sysdb_private.h /sssd/src/db/sysdb_search.c /sssd/src/doxy.config.in /sssd/src/examples/sssd.conf /sssd/src/examples/sssdproxytest /sssd/src/examples/sudo /sssd/src/external/crypto.m4 /sssd/src/external/docbook.m4 /sssd/src/external/krb5.m4 /sssd/src/external/ldap.m4 /sssd/src/external/libcares.m4 /sssd/src/external/libcollection.m4 /sssd/src/external/libdhash.m4 /sssd/src/external/libini_config.m4 /sssd/src/external/libldb.m4 /sssd/src/external/libpcre.m4 /sssd/src/external/libpopt.m4 /sssd/src/external/libtalloc.m4 /sssd/src/external/libtdb.m4 /sssd/src/external/libtevent.m4 /sssd/src/external/pam.m4 /sssd/src/external/pkg.m4 /sssd/src/external/platform.m4 /sssd/src/external/python.m4 /sssd/src/external/selinux.m4 /sssd/src/external/sizes.m4 /sssd/src/krb5_plugin/sssd_krb5_locator_plugin.c /sssd/src/ldb_modules/memberof.c /sssd/src/m4/.dir /sssd/src/man/include/failover.xml /sssd/src/man/include/param_help.xml /sssd/src/man/include/upstream.xml /sssd/src/man/sss_groupadd.8.xml /sssd/src/man/sss_groupdel.8.xml /sssd/src/man/sss_groupmod.8.xml /sssd/src/man/sss_groupshow.8.xml /sssd/src/man/sss_useradd.8.xml /sssd/src/man/sss_userdel.8.xml /sssd/src/man/sss_usermod.8.xml /sssd/src/man/sssd-ipa.5.xml /sssd/src/man/sssd-krb5.5.xml /sssd/src/man/sssd-ldap.5.xml /sssd/src/man/sssd.8.xml /sssd/src/man/sssd.conf.5.xml /sssd/src/man/sssd_krb5_locator_plugin.8.xml /sssd/src/monitor/monitor.c /sssd/src/monitor/monitor.h /sssd/src/monitor/monitor_interfaces.h /sssd/src/monitor/monitor_sbus.c /sssd/src/po/LINGUAS /sssd/src/po/Makevars /sssd/src/po/POTFILES.in /sssd/src/po/de.po /sssd/src/po/es.po /sssd/src/po/fr.po /sssd/src/po/it.po /sssd/src/po/ja.po /sssd/src/po/nl.po /sssd/src/po/pl.po /sssd/src/po/pt.po /sssd/src/po/sss_daemon.pot /sssd/src/po/sv.po child_common.c child_common.h data_provider.h data_provider_be.c data_provider_fo.c data_provider_opts.c dp_auth_util.c dp_backend.h dp_sbus.c fail_over.c fail_over.h ipa/ipa_access.c ipa/ipa_access.h ipa/ipa_auth.c ipa/ipa_auth.h ipa/ipa_common.c ipa/ipa_common.h ipa/ipa_init.c ipa/ipa_timerules.c ipa/ipa_timerules.h krb5/krb5_auth.c krb5/krb5_auth.h krb5/krb5_become_user.c krb5/krb5_child.c krb5/krb5_common.c krb5/krb5_common.h krb5/krb5_init.c krb5/krb5_utils.c krb5/krb5_utils.h ldap/ldap_auth.c ldap/ldap_child.c ldap/ldap_common.c ldap/ldap_common.h ldap/ldap_id.c ldap/ldap_id_cleanup.c ldap/ldap_id_enum.c ldap/ldap_init.c ldap/sdap.c ldap/sdap.h ldap/sdap_async.c ldap/sdap_async.h ldap/sdap_async_accounts.c ldap/sdap_async_connection.c ldap/sdap_async_private.h ldap/sdap_child_helpers.c providers.h proxy.c sssd_be.exports /sssd/src/python/pysss.c /sssd/src/resolv/ares/ares_data.c /sssd/src/resolv/ares/ares_data.h /sssd/src/resolv/ares/ares_dns.h /sssd/src/resolv/ares/ares_parse_srv_reply.c /sssd/src/resolv/ares/ares_parse_srv_reply.h /sssd/src/resolv/ares/ares_parse_txt_reply.c /sssd/src/resolv/ares/ares_parse_txt_reply.h /sssd/src/resolv/async_resolv.c /sssd/src/resolv/async_resolv.h /sssd/src/responder/common/responder.h /sssd/src/responder/common/responder_cmd.c /sssd/src/responder/common/responder_common.c /sssd/src/responder/common/responder_dp.c /sssd/src/responder/common/responder_packet.c /sssd/src/responder/common/responder_packet.h /sssd/src/responder/nss/nsssrv.c /sssd/src/responder/nss/nsssrv.h /sssd/src/responder/nss/nsssrv_cmd.c /sssd/src/responder/nss/nsssrv_nc.c /sssd/src/responder/nss/nsssrv_nc.h /sssd/src/responder/pam/pam_LOCAL_domain.c /sssd/src/responder/pam/pamsrv.c /sssd/src/responder/pam/pamsrv.h /sssd/src/responder/pam/pamsrv_cmd.c /sssd/src/responder/pam/pamsrv_dp.c /sssd/src/sbus/sbus_client.c /sssd/src/sbus/sbus_client.h /sssd/src/sbus/sssd_dbus.h /sssd/src/sbus/sssd_dbus_common.c /sssd/src/sbus/sssd_dbus_connection.c /sssd/src/sbus/sssd_dbus_private.h /sssd/src/sbus/sssd_dbus_server.c /sssd/src/sss_client/common.c /sssd/src/sss_client/group.c /sssd/src/sss_client/man/pam_sss.8.xml /sssd/src/sss_client/pam_sss.c /sssd/src/sss_client/pam_test_client.c /sssd/src/sss_client/passwd.c /sssd/src/sss_client/protos.h /sssd/src/sss_client/sss_cli.h /sssd/src/sss_client/sss_nss.exports /sssd/src/sss_client/sss_pam.exports /sssd/src/sss_client/sss_pam_macros.h /sssd/src/sysv/SUSE/sssd /sssd/src/sysv/sssd /sssd/src/tests/auth-tests.c /sssd/src/tests/check_and_open-tests.c /sssd/src/tests/common.c /sssd/src/tests/common.h /sssd/src/tests/fail_over-tests.c /sssd/src/tests/files-tests.c /sssd/src/tests/find_uid-tests.c /sssd/src/tests/ipa_ldap_opt-tests.c /sssd/src/tests/ipa_timerules-tests.c /sssd/src/tests/krb5_utils-tests.c /sssd/src/tests/python-test.py /sssd/src/tests/refcount-tests.c /sssd/src/tests/resolv-tests.c /sssd/src/tests/stress-tests.c /sssd/src/tests/strtonum-tests.c /sssd/src/tests/sysdb-tests.c /sssd/src/tools/files.c /sssd/src/tools/sss_groupadd.c /sssd/src/tools/sss_groupdel.c /sssd/src/tools/sss_groupmod.c /sssd/src/tools/sss_groupshow.c /sssd/src/tools/sss_sync_ops.c /sssd/src/tools/sss_sync_ops.h /sssd/src/tools/sss_useradd.c /sssd/src/tools/sss_userdel.c /sssd/src/tools/sss_usermod.c /sssd/src/tools/tools_util.c /sssd/src/tools/tools_util.h /sssd/src/util/backup_file.c /sssd/src/util/check_and_open.c /sssd/src/util/crypto_sha512crypt.c /sssd/src/util/debug.c /sssd/src/util/dlinklist.h /sssd/src/util/find_uid.c /sssd/src/util/find_uid.h /sssd/src/util/memory.c /sssd/src/util/nss_sha512crypt.c /sssd/src/util/refcount.c /sssd/src/util/refcount.h /sssd/src/util/server.c /sssd/src/util/sha512crypt.h /sssd/src/util/signal.c /sssd/src/util/signal.m4 /sssd/src/util/sss_krb5.c /sssd/src/util/sss_krb5.h /sssd/src/util/sss_ldap.c /sssd/src/util/sss_ldap.h /sssd/src/util/strtonum.c /sssd/src/util/strtonum.h /sssd/src/util/user_info_msg.c /sssd/src/util/user_info_msg.h /sssd/src/util/usertools.c /sssd/src/util/util.c /sssd/src/util/util.h