diff options
-rw-r--r-- | packages/avahi/avahi.inc | 147 | ||||
-rw-r--r-- | packages/avahi/avahi.xml | 12 |
2 files changed, 103 insertions, 56 deletions
diff --git a/packages/avahi/avahi.inc b/packages/avahi/avahi.inc index 33e25294..2a82fcd4 100644 --- a/packages/avahi/avahi.inc +++ b/packages/avahi/avahi.inc @@ -1,8 +1,55 @@ <?php +/* + $Id$ + avahi.inc + 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. +*/ + +function delete_avahi() { + global $g, $config; + unlink_if_exists("/usr/local/etc/rc.d/avahi-daemon.sh"); + exec("killall avahi-daemon"); +} + function setup_avahi() { global $g, $config; + // Extract out libraries and avahi-daemon + if(file_exists("/tmp/avahi.tgz")) { + exec("/usr/bin/tar xzPf /tmp/avahi.tgz -C /"); + unlink("/tmp/avahi.tgz"); + } + + // Make sure everthing was extracted + if(!file_exists("/usr/local/sbin/avahi-daemon")) { + log_error("Sorry, something went wrong while extract avahi binaries. Please try the operation again"); + return; + } + // Pull some various values out of config.xml $hostname = $config['system']['hostname']; $domain = $config['system']['domain']; @@ -11,8 +58,7 @@ function setup_avahi() { // Is package disabled? if(!$enable) { - if(file_exists("/usr/local/etc/rc.d/avahi.sh")) - unlink("/usr/local/etc/rc.d/avahi.sh"); + delete_avahi(); return; } @@ -23,64 +69,65 @@ function setup_avahi() { // 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= +# 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"); + safe_mkdir("/usr/local/etc/avahi"); + $fd = fopen("/usr/local/etc/avahi/avahi-daemon.conf", "w"); fwrite($fd, $config); fclose($fd); /* Write out rc.d startup file */ - $start = "/usr/local/sbin/avahi"; - $stop = "/usr/bin/killall avahi"; + $start = "/usr/local/sbin/avahi-daemon"; + $stop = "/usr/bin/killall avahi-daemon"; write_rcfile(array( - "file" => "avahi.sh", + "file" => "avahi-daemon.sh", "start" => $start, "stop" => $stop ) diff --git a/packages/avahi/avahi.xml b/packages/avahi/avahi.xml index 0b97ef29..248dd76c 100644 --- a/packages/avahi/avahi.xml +++ b/packages/avahi/avahi.xml @@ -46,9 +46,9 @@ <executable>avahi</executable> </service> <additional_files_needed> - <prefix>/usr/local/sbin/</prefix> + <prefix>/tmp/</prefix> <chmod>0755</chmod> - <item>http://www.pfsense.com/packages/avahi/binaries/avahi</item> + <item>http://www.pfsense.com/packages/avahi/binaries/avahi.tgz</item> </additional_files_needed> <fields> <field> @@ -64,12 +64,12 @@ <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> + <custom_php_deinstall_command> + delete_avahi(); + </custom_php_deinstall_command> + <include_file>avahi.inc</include_file> </packagegui>
\ No newline at end of file |