Projet

Général

Profil

Télécharger (1,31 ko) Statistiques
| Branche: | Tag: | Révision:

univnautes / usr / local / pkg / openntpd.inc @ e41ab9aa

1
<?php
2
require_once('config.inc');
3
require_once('globals.inc');
4
require_once('service-utils.inc');
5

    
6
function openntpd_install() {
7
	global $g;
8

    
9
	$config_file = $g['varetc_path'] . '/openntpd.conf';
10
	$rcfile = array();
11
	$rcfile['file'] = 'openntpd.sh';
12
	$rcfile['start'] = <<<EOD
13
if [ -f $config_file ]; then
14
	ntpd -f $config_file
15
fi
16

    
17
EOD;
18
	$rcfile['stop'] = "killall ntpd";
19
	write_rcfile($rcfile);
20
}
21

    
22
function openntpd_get_iface_ip($iface) {
23
	$iface = convert_friendly_interface_to_real_interface_name($iface);
24
	$line = trim(shell_exec("ifconfig " . escapeshellarg($iface) . " | grep inet | grep -v inet6"));
25
	list($dummy, $ip, $dummy2, $dummy3) = explode(' ', $line);
26

    
27
	return $ip;
28
}
29

    
30
function openntpd_resync() {
31
	global $g, $config;
32

    
33
	$settings = $config['installedpackages']['openntpd']['config'][0];
34
	$config_file = $g['varetc_path'] . '/openntpd.conf';
35

    
36
	if ($settings['enable'] == 'on') {
37
		$conf = '';
38

    
39
		$ifaces = explode(',', $settings['interface']);
40
		$ips = array_map('openntpd_get_iface_ip', $ifaces);
41
		foreach ($ips as $ip)
42
			$conf .= "listen on $ip\n";
43

    
44
		$servers = explode(',', $config['system']['timeservers']);
45
		foreach ($servers as $server)
46
			$conf .= "servers $server\n";
47

    
48
		file_put_contents($config_file, $conf);
49
	}
50
	else {
51
		if (file_exists($config_file))
52
			unlink($config_file);
53
	}
54
	restart_service('openntpd');
55
}
(3-3/5)