changeset 15143:f9424b066dcb

director: Fixed weak-user handling when there is only one director.
author Timo Sirainen <tss@iki.fi>
date Tue, 18 Sep 2012 20:48:25 +0300
parents a200fdbc1fa0
children a9a49a30344b
files src/director/director-request.c
diffstat 1 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/director/director-request.c	Tue Sep 18 20:09:03 2012 +0300
+++ b/src/director/director-request.c	Tue Sep 18 20:48:25 2012 +0300
@@ -136,6 +136,15 @@
 		   its existing connections have been killed */
 		return FALSE;
 	}
+	if (dir->right == NULL && dir->ring_synced) {
+		/* looks like all the other directors have died. we can do
+		   whatever we want without breaking anything. remove the
+		   user's weakness just in case it was set to TRUE when we
+		   had more directors. */
+		user->weak = FALSE;
+		return TRUE;
+	}
+
 	if (user->weak) {
 		/* wait for user to become non-weak */
 		return FALSE;