diff --git a/services/univention-s4-connector/modules/univention/s4connector/s4/main.py b/services/univention-s4-connector/modules/univention/s4connector/s4/main.py index e5f64bca87..1994ea2a04 100755 --- a/services/univention-s4-connector/modules/univention/s4connector/s4/main.py +++ b/services/univention-s4-connector/modules/univention/s4connector/s4/main.py @@ -158,6 +158,7 @@ def _connect(s4, poll_sleep, baseconfig_retry_rejected): print(time.ctime()) # Aenderungen pollen sys.stdout.flush() + idle = 5 while True: # Read changes from OpenLDAP try: @@ -165,26 +166,37 @@ def _connect(s4, poll_sleep, baseconfig_retry_rejected): if change_counter > 0: # UCS changes, read again from UCS retry_rejected = 0 + idle = 0 time.sleep(1) continue else: - break + if idle == 5: + break + else: + time.sleep(1) + idle = idle + 1 except ldap.SERVER_DOWN: print("Can't contact LDAP server during ucs-poll, sync not possible.") connected = False sys.stdout.flush() break + i = 5 while True: try: change_counter = s4.poll() if change_counter > 0: # S4 changes, read again from S4 retry_rejected = 0 + idle = 0 time.sleep(1) continue else: - break + if i == 5: + break + else: + time.sleep(1) + i = i + 1 except ldap.SERVER_DOWN: print("Can't contact LDAP server during s4-poll, sync not possible.") connected = False