Blame SOURCES/authconfig-6.2.8-handle-no-realm.patch

ee2f06
diff -up authconfig-6.2.8/authinfo.py.no-realm authconfig-6.2.8/authinfo.py
ee2f06
--- authconfig-6.2.8/authinfo.py.no-realm	2016-06-16 14:25:21.354653226 +0200
ee2f06
+++ authconfig-6.2.8/authinfo.py	2016-06-16 14:27:56.335158214 +0200
ee2f06
@@ -1285,7 +1285,7 @@ class AuthInfo:
ee2f06
 		self.ldapServer = ""
ee2f06
 		self.ldapBaseDN = ""
ee2f06
 
ee2f06
-		self.kerberosRealm = ""
ee2f06
+		self.kerberosRealm = None
ee2f06
 		self.kerberosRealmviaDNS = None
ee2f06
 		self.kerberosKDC = ""
ee2f06
 		self.kerberosKDCviaDNS = None
ee2f06
@@ -1698,6 +1698,7 @@ class AuthInfo:
ee2f06
 		section = ""
ee2f06
 		self.allKerberosKDCs = {}
ee2f06
 		self.allKerberosAdminServers = {}
ee2f06
+		realm_found = False
ee2f06
 		# Open the file.  Bail if it's not there or there's some problem
ee2f06
 		# reading it.
ee2f06
 		try:
ee2f06
@@ -1720,6 +1721,7 @@ class AuthInfo:
ee2f06
 				value = matchKeyEquals(line, "default_realm")
ee2f06
 				if value:
ee2f06
 					self.setParam("kerberosRealm", value, ref)
ee2f06
+					realm_found = True;
ee2f06
 					continue;
ee2f06
 				# Check for the DNS settings.
ee2f06
 				value = matchKeyEquals(line, "dns_lookup_kdc")
ee2f06
@@ -1746,6 +1748,7 @@ class AuthInfo:
ee2f06
 					if not self.kerberosRealm:
ee2f06
 						# No reason to use setParam here
ee2f06
 						self.kerberosRealm = subsection
ee2f06
+						realm_found = True;
ee2f06
 					# See if this is a key we care about.
ee2f06
 					value = matchKeyEquals(line, "kdc")
ee2f06
 					if value:
ee2f06
@@ -1754,10 +1757,16 @@ class AuthInfo:
ee2f06
 					value = matchKeyEquals(line, "admin_server")
ee2f06
 					if value:
ee2f06
 						self.allKerberosAdminServers[subsection] = commaAppend(self.getKerberosAdminServer(subsection), value)
ee2f06
-		if self.kerberosRealm:
ee2f06
-			self.setParam("kerberosKDC", self.getKerberosKDC(self.kerberosRealm), ref)
ee2f06
-			self.setParam("kerberosAdminServer", self.getKerberosAdminServer(self.kerberosRealm), ref)
ee2f06
 		f.close()
ee2f06
+		if realm_found:
ee2f06
+			if self.kerberosRealm:
ee2f06
+				self.setParam("kerberosKDC", self.getKerberosKDC(self.kerberosRealm), ref)
ee2f06
+				self.setParam("kerberosAdminServer", self.getKerberosAdminServer(self.kerberosRealm), ref)
ee2f06
+		else:
ee2f06
+			if self.kerberosRealm:
ee2f06
+				self.inconsistentAttrs.append("kerberosRealm")
ee2f06
+			else:
ee2f06
+				self.setParam("kerberosRealm", "", ref)
ee2f06
 		return True
ee2f06
 
ee2f06
 	def readLibuser(self, ref):
ee2f06
@@ -2477,6 +2486,8 @@ class AuthInfo:
ee2f06
 		self.passwordAlgorithm = self.passwordAlgorithm.lower()
ee2f06
 		if self.enableCacheCreds == None:
ee2f06
 			self.enableCacheCreds = True # enabled by default
ee2f06
+		if self.kerberosRealm == None:
ee2f06
+			self.kerberosRealm = ""
ee2f06
 
ee2f06
 	def read(self):
ee2f06
 		ref = self.copy()