diff options
-rw-r--r-- | packages/avahi/avahi.inc | 93 | ||||
-rw-r--r-- | packages/avahi/avahi.xml | 75 |
2 files changed, 168 insertions, 0 deletions
diff --git a/packages/avahi/avahi.inc b/packages/avahi/avahi.inc new file mode 100644 index 00000000..33e25294 --- /dev/null +++ b/packages/avahi/avahi.inc @@ -0,0 +1,93 @@ +<?php + +function setup_avahi() { + global $g, $config; + + // Pull some various values out of config.xml + $hostname = $config['system']['hostname']; + $domain = $config['system']['domain']; + $enable = $config['installedpackages']['avahi']['config'][0]['enable']; + $browsedomains = $config['installedpackages']['avahi']['config'][0]['browsedomains']; + + // Is package disabled? + if(!$enable) { + if(file_exists("/usr/local/etc/rc.d/avahi.sh")) + unlink("/usr/local/etc/rc.d/avahi.sh"); + return; + } + + // No supplied domains? Use the defaults. + if(!$browsedomains) + $browsedomains = "local, 0pointer.de, zeroconf.org"; + + // Construct the avahi configuration + $config = <<<EOF + + # avahi.conf - This file was automatically generated by the pfSense pacakge + # manager. Do not edit this file, it will be overwritten automatically. + # See /usr/local/pkg/avahi.inc to make changes to this file! + + [server] + host-name={$hostname} + domain-name={$domain} + browse-domains={$browsedomains} + use-ipv4=yes + use-ipv6=no + enable-dbus=no + #check-response-ttl=no + #use-iff-running=no + #disallow-other-stacks=no + #allow-point-to-point=no + + [wide-area] + enable-wide-area=yes + + [publish] + #disable-publishing=no + #disable-user-service-publishing=no + #add-service-cookie=no + #publish-addresses=yes + #publish-hinfo=yes + #publish-workstation=yes + #publish-domain=yes + #publish-dns-servers=192.168.50.1, 192.168.50.2 + #publish-resolv-conf-dns-servers=yes + #publish-aaaa-on-ipv4=yes + #publish-a-on-ipv6=no + + [reflector] + enable-reflector=yes + #reflect-ipv=no + + [rlimits] + rlimit-core=0 + rlimit-data=4194304 + rlimit-fsize=0 + rlimit-nofile=300 + rlimit-stack=4194304 + rlimit-nproc=3 + #rlimit-as= + +EOF; + + // Make image RW + conf_mount_rw(); + /* Write out .conf file */ + $fd = fopen("/usr/local/etc/avahi.conf", "w"); + fwrite($fd, $config); + fclose($fd); + /* Write out rc.d startup file */ + $start = "/usr/local/sbin/avahi"; + $stop = "/usr/bin/killall avahi"; + write_rcfile(array( + "file" => "avahi.sh", + "start" => $start, + "stop" => $stop + ) + ); + // Make image RO + conf_mount_ro(); + +} + +?>
\ No newline at end of file diff --git a/packages/avahi/avahi.xml b/packages/avahi/avahi.xml new file mode 100644 index 00000000..0b97ef29 --- /dev/null +++ b/packages/avahi/avahi.xml @@ -0,0 +1,75 @@ +<packagegui> + <copyright> + <![CDATA[ + /* + $Id$ + avahi.xml + part of pfSense (http://www.pfSense.com) + Copyright (C) 2009 Scott Ullrich + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + */ + ]]> + </copyright> + <name>avahi</name> + <version>1.0</version> + <title>Services: Avahi</title> + <menu> + <name>avahi</name> + <tooltiptext>Modify avahi settings.</tooltiptext> + <section>Services</section> + <url>pkg_edit.php?xml=avahi.xml&id=0</url> + </menu> + <service> + <name>avahi</name> + <rcfile>avahi.sh</rcfile> + <executable>avahi</executable> + </service> + <additional_files_needed> + <prefix>/usr/local/sbin/</prefix> + <chmod>0755</chmod> + <item>http://www.pfsense.com/packages/avahi/binaries/avahi</item> + </additional_files_needed> + <fields> + <field> + <fielddescr>Enable</fielddescr> + <fieldname>enable</fieldname> + <description>Enable AVAHI Bonjour proxy.</description> + <type>checkbox</type> + </field> + <field> + <fielddescr>Browse domains (comma separated)</fielddescr> + <fieldname>browsedomains</fieldname> + <description>Enter the domains that you would like proxied. (example: local, pfsense.org, mydomain.com)</description> + <type>checkbox</type> + </field> + </fields> + <custom_php_global_functions> + </custom_php_global_functions> + <custom_add_php_command> + </custom_add_php_command> + <custom_php_install_command> + setup_avahi(); + </custom_php_install_command> + <include_file>avahi.inc</include_file> +</packagegui>
\ No newline at end of file |