Parcourir la source

Generate a unique session ID by using socket.gethostname() instead of socket.gethostbyname(), since the latter one could make bindctl stall if its own host name can't be resolved.(the patch was created by Jinmei and reviewed by zhanglikun)

git-svn-id: svn://bind10.isc.org/svn/bind10/trunk@2096 e5f2f494-b856-4b98-b285-d166d9295462
Likun Zhang il y a 15 ans
Parent
commit
efcdb2155e
2 fichiers modifiés avec 9 ajouts et 2 suppressions
  1. 7 0
      ChangeLog
  2. 2 2
      src/bin/bindctl/bindcmd.py

+ 7 - 0
ChangeLog

@@ -1,3 +1,10 @@
+  53.   [bug]      zhanglikun
+	bin/bindctl: Generate a unique session ID by using 
+	socket.gethostname() instead of socket.gethostbyname(), 
+	since the latter one could make bindctl	stall if its own 
+	host name can't be resolved.
+	(Trac #228, svn r2096)
+
   52.   [func]      zhanglikun
 	bin/xfrout: When xfrout is launched, check whether the
 	socket file is being used by one running xfrout process, 

+ 2 - 2
src/bin/bindctl/bindcmd.py

@@ -87,8 +87,8 @@ class BindCmdInterpreter(Cmd):
         '''Generate one session id for the connection. '''
         rand = os.urandom(16)
         now = time.time()
-        ip = socket.gethostbyname(socket.gethostname())
-        session_id = sha1(("%s%s%s" %(rand, now, ip)).encode())
+        session_id = sha1(("%s%s%s" %(rand, now, 
+                                      socket.gethostname())).encode())
         digest = session_id.hexdigest()
         return digest