]> git.donarmstrong.com Git - dsa-puppet.git/commitdiff
Use something that will hopefully be more stable in the future
authorPeter Palfrader <peter@palfrader.org>
Wed, 29 May 2013 13:57:06 +0000 (13:57 +0000)
committerPeter Palfrader <peter@palfrader.org>
Wed, 29 May 2013 13:57:06 +0000 (13:57 +0000)
modules/portforwarder/templates/authorized_keys.erb

index 1ffd9e849b04aff1e343e195d15207b0ef53e64c..063312a2f6008e5131fb8a05cce91dd14c0d04f2 100644 (file)
@@ -4,6 +4,13 @@
 ##
 
 <%=
+
+require 'digest/sha1'
+def get_local_ip_addr(host)
+       hash = Digest::SHA1.digest(host)
+       return '127.101.%d.%d'%[hash[0].ord, hash[1].ord]
+end
+
 def getportforwarderkey(host)
        key = nil
        begin
@@ -30,7 +37,7 @@ config.each_pair do |sourcehost, services|
        if allowed_ports.length > 0
                sshkey = getportforwarderkey(sourcehost)
                remote_ip = scope.lookupvar('site::allnodeinfo')[sourcehost]['ipHostNumber'].join(',')
-               local_bind = '127.101.%d.%d'%[ (sourcehost.hash / 256 % 256), sourcehost.hash % 256 ]
+               local_bind = get_local_ip_addr(sourcehost)
 
                lines << "# from #{sourcehost}"
                if sshkey.nil? or remote_ip.nil? or local_bind.nil?