All rights reserved. */ # ------------------------------------------------------------------------------ require_once('globals.inc'); require_once('config.inc'); require_once('util.inc'); require_once('pfsense-utils.inc'); require_once('pkg-utils.inc'); require_once('filter.inc'); require_once('service-utils.inc'); define('SAMBACONF', '/usr/local/etc/smb4.conf'); define('DC_BASE', "/var/db/samba4/private/sam.ldb"); function get_real_interface_address($iface) { global $config; $iface = convert_friendly_interface_to_real_interface_name($iface); $line = trim(shell_exec("ifconfig $iface | grep inet | grep -v inet6")); list($dummy, $ip, $dummy2, $netmask) = explode(" ", $line); return array($ip, long2ip(hexdec($netmask))); } function validate_form_samba($post, &$input_errors) { // Member if (isset($post['samba_enable'])) { if ( $post['member_domain'] == "" ) $input_errors[] = "The field 'Domain' is required."; if ( $post['member_workgroup'] == "" ) $input_errors[] = "The field 'Workgroup' is required."; if ( $post['member_username'] == "" ) $input_errors[] = "The field 'Username Administrator' is required."; if ( $post['member_password'] == "" ) $input_errors[] = "The field 'Administrator Password' is required."; } } function sync_samba() { global $g, $config; if (is_array($config['installedpackages']['samba'])) { $settings = $config['installedpackages']['samba']['config'][0]; if ($settings['samba_enable'] == "on") { $domain = strtoupper($settings['member_domain']); $domain_low = strtolower($settings['member_domain']); $workgroup = strtoupper($settings['member_workgroup']); $username = $settings['member_username']; $adminpass = $settings['member_password']; $hostip = get_real_interface_address($settings['interface']); $krb_conf = <</dev/null killall smbd 2>/dev/null killall winbindd 2>/dev/null EOD; // write rc file conf_mount_rw(); write_rcfile($rc); conf_mount_ro(); } } } ?>