aboutsummaryrefslogtreecommitdiffstats
path: root/config/avahi
diff options
context:
space:
mode:
Diffstat (limited to 'config/avahi')
-rw-r--r--config/avahi/avahi.inc61
-rw-r--r--config/avahi/avahi.xml59
2 files changed, 70 insertions, 50 deletions
diff --git a/config/avahi/avahi.inc b/config/avahi/avahi.inc
index 2c1ce25f..a89b5da2 100644
--- a/config/avahi/avahi.inc
+++ b/config/avahi/avahi.inc
@@ -4,7 +4,7 @@
$Id$
avahi.inc
part of pfSense (http://www.pfSense.com)
- Copyright (C) 2009 Scott Ullrich
+ Copyright (C) 2009 Scott Ullrich, Jim Pingle
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -29,24 +29,24 @@
POSSIBILITY OF SUCH DAMAGE.
*/
-function start_avahi() {
- mwexec_bg("sh /usr/local/etc/rc.d/avahi-daemon.sh start");
+function avahi_start() {
+ mwexec_bg("/usr/local/etc/rc.d/avahi-daemon.sh start");
}
-function stop_avahi() {
- mwexec_bg("sh /usr/local/etc/rc.d/avahi-daemon.sh stop");
+function avahi_stop() {
+ mwexec_bg("/usr/local/etc/rc.d/avahi-daemon.sh stop");
}
-function setup_avahi() {
+function avahi_install() {
global $g, $config;
-
- // Make image RW
conf_mount_rw();
+ exec("mkdir -p /usr/local/etc/avahi/services/");
+ exec("mv /usr/local/etc/avahi/*.service /usr/local/etc/avahi/services/");
// 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");
+ if(file_exists("/root/avahi.tgz")) {
+ exec("/usr/bin/tar xzPUf /root/avahi.tgz -C /");
+ unlink("/root/avahi.tgz");
}
// Make sure everthing was extracted
@@ -55,6 +55,19 @@ function setup_avahi() {
return;
}
+ // Add needed users and groups
+ exec("/usr/sbin/pw useradd avahi");
+ exec("/usr/sbin/pw groupadd avahi");
+
+ // Make image RO
+ conf_mount_ro();
+}
+
+function avahi_write_config() {
+ global $g, $config;
+ // Make image RW
+ conf_mount_rw();
+
// Pull some various values out of config.xml
$hostname = $config['system']['hostname'];
$domain = $config['system']['domain'];
@@ -62,16 +75,6 @@ function setup_avahi() {
$browsedomains = $config['installedpackages']['avahi']['config'][0]['browsedomains'];
$denyif = $config['installedpackages']['avahi']['config'][0]['denyinterfaces'];
- // Is package disabled?
- if ((!$enable) && file_exists("/usr/local/etc/rc.d/avahi-daemon.sh")) {
- stop_avahi();
- return;
- }
-
- // Add needed users and groups
- exec("/usr/sbin/pw useradd avahi");
- exec("/usr/sbin/pw groupadd avahi");
-
// No supplied domains? Use the defaults.
if(!$browsedomains)
$browsedomains = "local, 0pointer.de, zeroconf.org";
@@ -162,7 +165,21 @@ EOF;
);
// Make image RO
conf_mount_ro();
- start_avahi();
+
+}
+
+function avahi_sync() {
+ global $g, $config;
+
+ avahi_stop();
+
+ avahi_write_config();
+
+ // Is package enabled?
+ if (isset($config['installedpackages']['avahi']['config'][0]['enable'])
+ && file_exists("/usr/local/etc/rc.d/avahi-daemon.sh")) {
+ avahi_start();
+ }
}
?>
diff --git a/config/avahi/avahi.xml b/config/avahi/avahi.xml
index 21d60576..da0e05fb 100644
--- a/config/avahi/avahi.xml
+++ b/config/avahi/avahi.xml
@@ -1,7 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
<packagegui>
<copyright>
<![CDATA[
- /*
+ /*
$Id$
avahi.xml
part of pfSense (http://www.pfSense.com)
@@ -31,9 +32,11 @@
*/
]]>
</copyright>
+ <title>Services: Avahi</title>
<name>avahi</name>
<version>1.0</version>
- <title>Services: Avahi</title>
+ <savetext>Save</savetext>
+ <include_file>/usr/local/pkg/avahi.inc</include_file>
<menu>
<name>Avahi</name>
<tooltiptext>Modify avahi settings.</tooltiptext>
@@ -42,29 +45,9 @@
</menu>
<service>
<name>avahi</name>
- <rcfile>avahi.sh</rcfile>
- <executable>avahi</executable>
+ <rcfile>avahi-daemon.sh</rcfile>
+ <executable>avahi-daemon</executable>
</service>
- <additional_files_needed>
- <prefix>/tmp/</prefix>
- <chmod>0755</chmod>
- <item>http://www.pfsense.org/packages/config/avahi/binaries/avahi.tgz</item>
- </additional_files_needed>
- <additional_files_needed>
- <prefix>/usr/local/pkg/</prefix>
- <chmod>0755</chmod>
- <item>http://www.pfsense.org/packages/config/avahi/avahi.inc</item>
- </additional_files_needed>
- <additional_files_needed>
- <prefix>/usr/local/etc/avahi/</prefix>
- <chmod>0755</chmod>
- <item>http://www.pfsense.org/packages/config/avahi/services/ssh.service</item>
- </additional_files_needed>
- <additional_files_needed>
- <prefix>/usr/local/etc/avahi/</prefix>
- <chmod>0755</chmod>
- <item>http://www.pfsense.org/packages/config/avahi/services/sftp-ssh.service</item>
- </additional_files_needed>
<fields>
<field>
<fielddescr>Enable</fielddescr>
@@ -86,14 +69,34 @@
<multiple>true</multiple>
</field>
</fields>
+ <additional_files_needed>
+ <prefix>/tmp/</prefix>
+ <chmod>0755</chmod>
+ <item>http://www.pfsense.org/packages/config/avahi/binaries/avahi.tgz</item>
+ </additional_files_needed>
+ <additional_files_needed>
+ <prefix>/usr/local/pkg/</prefix>
+ <chmod>0755</chmod>
+ <item>http://www.pfsense.org/packages/config/avahi/avahi.inc</item>
+ </additional_files_needed>
+ <additional_files_needed>
+ <prefix>/usr/local/etc/avahi/</prefix>
+ <chmod>0755</chmod>
+ <item>http://www.pfsense.org/packages/config/avahi/services/ssh.service</item>
+ </additional_files_needed>
+ <additional_files_needed>
+ <prefix>/usr/local/etc/avahi/</prefix>
+ <chmod>0755</chmod>
+ <item>http://www.pfsense.org/packages/config/avahi/services/sftp-ssh.service</item>
+ </additional_files_needed>
+ <custom_php_resync_config_command>
+ avahi_sync();
+ </custom_php_resync_config_command>
<custom_php_install_command>
- exec("mkdir -p /usr/local/etc/avahi/services/");
- exec("mv /usr/local/etc/avahi/*.service /usr/local/etc/avahi/services/");
- setup_avahi();
+ avahi_install();
</custom_php_install_command>
<custom_php_deinstall_command>
unlink_if_exists("/usr/local/etc/rc.d/avahi-daemon.sh");
exec("killall avahi-daemon");
</custom_php_deinstall_command>
- <include_file>/usr/local/pkg/avahi.inc</include_file>
</packagegui>