Added port autodiscovery for avahi services.

This commit is contained in:
Timo Mkinen 2010-01-07 14:51:31 +02:00
parent 9edbc6ae12
commit 78d29ea44f
2 changed files with 32 additions and 1 deletions

View file

@ -0,0 +1,26 @@
module Puppet::Parser::Functions
newfunction(:avahi_service_port, :type => :rvalue) do |args|
type, name, proto = /^_([^\.]*)\._([^\.]*)$/.match(args[0]).to_a
port = nil
File.open('/etc/services', 'r') do |fd|
while (line = fd.gets)
begin
port = /^#{name}[ \t]+(\d+)\/#{proto}.*/.match(line)[1]
break
rescue
nil
end
end
end
if not port
raise Puppet::ParseError, 'Failed to get port for service %s' % type
end
port
end
end