class debian_org::mail_incoming_port { case getfromhash($site::nodeinfo, 'mail_port') { Numeric: { $mail_port = sprintf("%d", getfromhash($site::nodeinfo, 'mail_port')) } /^(\d+)$/: { $mail_port = $1 } default: { $mail_port = '25' } } @ferm::rule { 'dsa-mail': description => 'Allow SMTP', rule => "&SERVICE_RANGE(tcp, $mail_port, \$SMTP_SOURCES)" } @ferm::rule { 'dsa-mail-v6': description => 'Allow SMTP', domain => 'ip6', rule => "&SERVICE_RANGE(tcp, $mail_port, \$SMTP_V6_SOURCES)" } dnsextras::tlsa_record{ 'tlsa-mailport': zone => 'debian.org', certfile => "/etc/puppet/modules/exim/files/certs/${::fqdn}.crt", port => $mail_port, hostname => $::fqdn, } }