function create_cmd_output(&$action, &$a_mount, &$fullname) { $cmdout = CMDOUT_PARA_WOHINT; ob_end_flush(); $retvalue = <<<EOD {$cmdout} EOD; /* Get the id of the mount array entry. */ $id = array_search_ex($fullname, $a_mount, "fullname"); /* Get the mount data. */ $mount = $a_mount[$id]; switch ($action) { case "mount": $diskinit_str = gettext("Mounting '{$fullname}'...") . "<br />"; $result = disks_mount_fullname($fullname); break; case "umount": $diskinit_str = gettext("Umounting '{$fullname}'...") . "<br />"; $result = disks_umount_fullname($fullname); break; } /* Display result */ 0 == $result ? $diskinit_str .= gettext("Successful") : ($diskinit_str .= gettext("Failed")); $retvalue .= <<<EOD <div id="ismounted_out" style="font-family: Courier, monospace; font-size: small;"> <pre style="font-family: Courier, monospace; font-size: small; font-style: italic;">{$diskinit_str}</pre> </div> EOD; return $retvalue; }
function zfszpool_process_updatenotification($mode, $data) { global $config; $retval = 0; switch ($mode) { case UPDATENOTIFY_MODE_NEW: $retval = zfs_zpool_configure($data); break; case UPDATENOTIFY_MODE_MODIFIED: $retval = zfs_zpool_properties($data); break; case UPDATENOTIFY_MODE_DIRTY: $cnid = array_search_ex($data, $config['zfs']['pools']['pool'], "uuid"); if (FALSE !== $cnid) { zfs_zpool_destroy($data); unset($config['zfs']['pools']['pool'][$cnid]); write_config(); // remove existing pool cache conf_mount_rw(); unlink_if_exists("{$g['cf_path']}/boot/zfs/zpool.cache"); conf_mount_ro(); } break; } return $retval; }
function strip_exists($device, &$a_vdevice) { if (false !== array_search_ex($diskv['devicespecialfile'], $a_vdevice, "device")) { return true; } foreach ($a_vdevice as $vdevs) { foreach ($vdevs['device'] as $dev) { // label $tmp = disks_label_to_device($dev); if (strcmp($tmp, $device) == 0) { return true; } // label+partition $tmp = strip_partition($tmp); if (strcmp($tmp, $device) == 0) { return true; } // partition $tmp = strip_partition($dev); if (strcmp($tmp, $device) == 0) { return true; } } } return false; }
function get_fs_type($devicespecialfile) { global $a_disk; $index = array_search_ex($devicespecialfile, $a_disk, "devicespecialfile"); if (false === $index) { return ""; } return $a_disk[$index]['fstype']; }
function userdbgroup_process_updatenotification($mode, $data) { global $config; $retval = 0; switch ($mode) { case UPDATENOTIFY_MODE_NEW: case UPDATENOTIFY_MODE_MODIFIED: break; case UPDATENOTIFY_MODE_DIRTY: $index = array_search_ex($data, $config['access']['group'], "uuid"); if (false !== $index) { unset($config['access']['group'][$index]); write_config(); } break; } return $retval; }
function afpshare_process_updatenotification($mode, $data) { global $config; $retval = 0; switch ($mode) { case UPDATENOTIFY_MODE_NEW: case UPDATENOTIFY_MODE_MODIFIED: break; case UPDATENOTIFY_MODE_DIRTY: $cnid = array_search_ex($data, $config['afp']['share'], "uuid"); if (FALSE !== $cnid) { unset($config['afp']['share'][$cnid]); write_config(); } break; } return $retval; }
function routes_process_updatenotification($mode, $data) { global $config; $retval = 0; switch ($mode) { case UPDATENOTIFY_MODE_NEW: case UPDATENOTIFY_MODE_MODIFIED: break; case UPDATENOTIFY_MODE_DIRTY: $cnid = array_search_ex($data, $config['staticroutes']['route'], "uuid"); if (FALSE !== $index) { rc_exec_service("routing delete conf_" . strtr($config['staticroutes']['route'][$cnid]['uuid'], "-", "_")); unset($config['staticroutes']['route'][$cnid]); write_config(); } break; } return $retval; }
function geli_process_updatenotification($mode, $data) { global $config; $retval = 0; switch ($mode) { case UPDATENOTIFY_MODE_DIRTY: $cnid = array_search_ex($data, $config['geli']['vdisk'], "uuid"); if (FALSE !== $cnid) { // Kill encrypted volume. disks_geli_kill($config['geli']['vdisk'][$cnid]['devicespecialfile']); // Reset disk file system type attribute ('fstype') in configuration. set_conf_disk_fstype($config['geli']['vdisk'][$cnid]['device'][0], ""); unset($config['geli']['vdisk'][$cnid]); write_config(); } break; } return $retval; }
function rsynclocal_process_updatenotification($mode, $data) { global $config; $retval = 0; switch ($mode) { case UPDATENOTIFY_MODE_NEW: case UPDATENOTIFY_MODE_MODIFIED: break; case UPDATENOTIFY_MODE_DIRTY: $cnid = array_search_ex($data, $config['rsync']['rsynclocal'], "uuid"); if (FALSE !== $cnid) { unset($config['rsync']['rsynclocal'][$cnid]); write_config(); } @unlink("/var/run/rsync_local_{$data}.sh"); break; } return $retval; }
function ftpd_mod_ban_process_updatenotification($mode, $data) { global $config; $retval = 0; switch ($mode) { case UPDATENOTIFY_MODE_NEW: case UPDATENOTIFY_MODE_MODIFIED: break; case UPDATENOTIFY_MODE_DIRTY: if (is_array($config['ftpd']['mod_ban']['rule'])) { $index = array_search_ex($data, $config['ftpd']['mod_ban']['rule'], "uuid"); if (false !== $index) { unset($config['ftpd']['mod_ban']['rule'][$index]); write_config(); } } break; } return $retval; }
function zfszpool_process_updatenotification($mode, $data) { global $config; $retval = 0; switch ($mode) { case UPDATENOTIFY_MODE_NEW: $retval = zfs_zpool_configure($data); break; case UPDATENOTIFY_MODE_MODIFIED: break; case UPDATENOTIFY_MODE_DIRTY: $cnid = array_search_ex($data, $config['zfs']['pools']['pool'], "uuid"); if (FALSE !== $cnid) { zfs_zpool_destroy($data); unset($config['zfs']['pools']['pool'][$cnid]); write_config(); } break; } return $retval; }
function rcconf_process_updatenotification($mode, $data) { global $config; $retval = 0; switch ($mode) { case UPDATENOTIFY_MODE_NEW: case UPDATENOTIFY_MODE_MODIFIED: break; case UPDATENOTIFY_MODE_DIRTY: if (is_array($config['system']['rcconf']['param'])) { $index = array_search_ex($data, $config['system']['rcconf']['param'], "uuid"); if (false !== $index) { mwexec2("/usr/local/sbin/rconf attribute remove {$config['system']['rcconf']['param'][$index]['name']}"); unset($config['system']['rcconf']['param'][$index]); write_config(); } } break; } return $retval; }
function loaderconf_process_updatenotification($mode, $data) { global $config; $retval = 0; switch ($mode) { case UPDATENOTIFY_MODE_NEW: case UPDATENOTIFY_MODE_MODIFIED: write_loader_config(); write_config(); break; case UPDATENOTIFY_MODE_DIRTY: if (is_array($config['system']['loaderconf']['param'])) { $index = array_search_ex($data, $config['system']['loaderconf']['param'], "uuid"); if (false !== $index) { unset($config['system']['loaderconf']['param'][$index]); write_loader_config(); write_config(); } } break; } return $retval; }
if (is_ipv4addr($_POST['gateway']) && !is_ipv4addr($_POST['network'])) { $input_errors[] = gettext("You must enter the same IP type for network and gateway."); } else { if (is_ipv6addr($_POST['gateway']) && !is_ipv6addr($_POST['network'])) { $input_errors[] = gettext("IP type mismatch for network and gateway."); } } } // Check for overlaps // gen_subnet work for IPv4 only... This function permit to fix user input error for network number. if (is_ipv4addr($_POST['network'])) { $osn = gen_subnet($_POST['network'], $_POST['network_subnet']) . "/" . $_POST['network_subnet']; } else { $osn = $_POST['network'] . "/" . $_POST['network_subnet']; } $index = array_search_ex($osn, $a_routes, "network"); if (FALSE !== $index) { if (!(FALSE !== $cnid && $a_routes[$cnid]['uuid'] === $a_routes[$index]['uuid'])) { $input_errors[] = gettext("A route to this destination network already exists."); } } if (!$input_errors) { $route = array(); $route['uuid'] = $_POST['uuid']; $route['interface'] = $_POST['interface']; $route['network'] = $osn; $route['gateway'] = $_POST['gateway']; $route['descr'] = $_POST['descr']; if (isset($uuid) && FALSE !== $cnid) { $a_routes[$cnid] = $route; $mode = UPDATENOTIFY_MODE_MODIFIED;
<table width="100%" border="0" cellpadding="6" cellspacing="0"> <tr> <td width="22%" valign="top" class="vncellreq"><?php echo gettext("Disk"); ?> </td> <td width="78%" class="vtable"> <select name="name" class="formfld" id="name"> <?php foreach ($a_phy_disk as $diskk => $diskv) { ?> <?php // Do not display disks that are already configured. (Create mode); ?> <?php if (!isset($uuid) && false !== array_search_ex($diskk, $a_disk, "name")) { continue; } ?> <option value="<?php echo $diskk; ?> " <?php if ($diskk == $pconfig['name']) { echo "selected=\"selected\""; } ?> ><?php echo htmlspecialchars($diskk . ": " . $diskv['size'] . " (" . $diskv['model'] . ")"); ?> </option>
<?php } ?> </select><br /> <?php echo gettext("Select your read balance algorithm."); ?> </td> </tr> <?php $a_provider = array(); foreach ($a_disk as $diskv) { if (isset($id) && !(is_array($pconfig['device']) && in_array($diskv['devicespecialfile'], $pconfig['device']))) { continue; } if (!isset($id) && false !== array_search_ex($diskv['devicespecialfile'], $all_raid, "device")) { continue; } $a_provider[$diskv[devicespecialfile]] = htmlspecialchars("{$diskv['name']} ({$diskv['size']}, {$diskv['desc']})"); } ?> <?php html_listbox("device", gettext("Provider"), $pconfig['device'], $a_provider, gettext("Note: Ctrl-click (or command-click on the Mac) to select multiple entries."), true, isset($id)); ?> <?php if (!isset($id)) { ?> <tr> <td width="22%" valign="top" class="vncell"><?php echo gettext("Initialize"); ?>
function sysctl_tune($mode) { global $config; if (!is_array($config['system']['sysctl']['param'])) { $config['system']['sysctl']['param'] = array(); } array_sort_key($config['system']['sysctl']['param'], "name"); $a_sysctlvar =& $config['system']['sysctl']['param']; $a_mib = array("net.inet.tcp.delayed_ack" => 0, "net.inet.tcp.rfc1323" => 1, "net.inet.tcp.sendspace" => 262144, "net.inet.tcp.recvspace" => 262144, "net.inet.udp.recvspace" => 65536, "net.inet.udp.maxdgram" => 57344, "net.local.stream.recvspace" => 65536, "net.local.stream.sendspace" => 65536, "kern.ipc.maxsockbuf" => 2097152, "kern.ipc.somaxconn" => 8192, "kern.ipc.nmbclusters" => 32768, "kern.maxfiles" => 65536, "kern.maxfilesperproc" => 32768, "net.inet.icmp.icmplim" => 300, "net.inet.icmp.icmplim_output" => 1, "net.inet.tcp.inflight.enable" => 0, "net.inet.tcp.path_mtu_discovery" => 0); switch ($mode) { case 0: // Remove system tune MIB's. while (list($name, $value) = each($a_mib)) { $id = array_search_ex($name, $a_sysctlvar, "name"); if (false === $id) { continue; } unset($a_sysctlvar[$id]); } break; case 1: // Add system tune MIB's. while (list($name, $value) = each($a_mib)) { $id = array_search_ex($name, $a_sysctlvar, "name"); if (false !== $id) { continue; } $param = array(); $param['uuid'] = uuid(); $param['name'] = $name; $param['value'] = $value; $param['comment'] = gettext("System tuning"); $param['enable'] = true; $a_sysctlvar[] = $param; } break; } }
if (isset($_POST['uuid'])) { $uuid = $_POST['uuid']; } $pgtitle = array(gettext("Disks"), gettext("Management"), gettext("S.M.A.R.T."), gettext("Scheduled Self-Test"), isset($uuid) ? gettext("Edit") : gettext("Add")); $a_months = explode(" ", gettext("January February March April May June July August September October November December")); $a_weekdays = explode(" ", gettext("Monday Tuesday Wednesday Thursday Friday Saturday Sunday")); if (!isset($config['smartd']) || !is_array($config['smartd'])) { $config['smartd'] = array(); } if (!isset($config['smartd']['selftest']) || !is_array($config['smartd']['selftest'])) { $config['smartd']['selftest'] = array(); } $a_selftest =& $config['smartd']['selftest']; // Get list of all configured physical disks. $a_disk = get_conf_physical_disks_list(); if (isset($uuid) && FALSE !== ($cnid = array_search_ex($uuid, $a_selftest, "uuid"))) { $pconfig['uuid'] = $a_selftest[$cnid]['uuid']; $pconfig['devicespecialfile'] = $a_selftest[$cnid]['devicespecialfile']; $pconfig['type'] = $a_selftest[$cnid]['type']; //$pconfig['minute'] = $a_selftest[$cnid]['minute']; $pconfig['minute'] = array(); $pconfig['hour'] = $a_selftest[$cnid]['hour']; $pconfig['day'] = $a_selftest[$cnid]['day']; $pconfig['month'] = $a_selftest[$cnid]['month']; $pconfig['weekday'] = $a_selftest[$cnid]['weekday']; //$pconfig['all_mins'] = $a_selftest[$cnid]['all_mins']; $pconfig['all_mins'] = 1; $pconfig['all_hours'] = $a_selftest[$cnid]['all_hours']; $pconfig['all_days'] = $a_selftest[$cnid]['all_days']; $pconfig['all_months'] = $a_selftest[$cnid]['all_months']; $pconfig['all_weekdays'] = $a_selftest[$cnid]['all_weekdays'];
*/ require "auth.inc"; require "guiconfig.inc"; if (isset($_GET['uuid'])) { $uuid = $_GET['uuid']; } if (isset($_POST['uuid'])) { $uuid = $_POST['uuid']; } $pgtitle = array(gettext("Disks"), gettext("Management"), gettext("iSCSI Initiator"), isset($uuid) ? gettext("Edit") : gettext("Add")); if (!isset($config['iscsiinit']['vdisk']) || !is_array($config['iscsiinit']['vdisk'])) { $config['iscsiinit']['vdisk'] = array(); } array_sort_key($config['iscsiinit']['vdisk'], "name"); $a_iscsiinit =& $config['iscsiinit']['vdisk']; if (isset($uuid) && FALSE !== ($cnid = array_search_ex($uuid, $a_iscsiinit, "uuid"))) { $pconfig['uuid'] = $a_iscsiinit[$cnid]['uuid']; $pconfig['name'] = $a_iscsiinit[$cnid]['name']; $pconfig['targetname'] = $a_iscsiinit[$cnid]['targetname']; $pconfig['targetaddress'] = $a_iscsiinit[$cnid]['targetaddress']; $pconfig['initiatorname'] = $a_iscsiinit[$cnid]['initiatorname']; } else { $pconfig['uuid'] = uuid(); $pconfig['name'] = ""; $pconfig['targetname'] = ""; $pconfig['targetaddress'] = ""; $pconfig['initiatorname'] = "iqn.2012-03.org.nas4free:nas4free"; } if (isset($config['iscsitarget']['nodebase']) && !empty($config['iscsitarget']['nodebase'])) { $ex_nodebase = $config['iscsitarget']['nodebase']; $ex_disk = "disk0";
function gvinum_process_updatenotification($mode, $data) { global $config; $retval = 0; switch ($mode) { case UPDATENOTIFY_MODE_NEW: $retval |= disks_raid_gvinum_configure($data); break; case UPDATENOTIFY_MODE_MODIFIED: $retval |= rc_exec_service("geom start vinum"); break; case UPDATENOTIFY_MODE_DIRTY: $retval |= disks_raid_gvinum_delete($data); if (is_array($config['gvinum']['vdisk'])) { $index = array_search_ex($data, $config['gvinum']['vdisk'], "uuid"); if (false !== $index) { unset($config['gvinum']['vdisk'][$index]); write_config(); } } break; } return $retval; }
if (isset($_POST['Cancel']) && $_POST['Cancel']) { header("Location: system_hosts.php"); exit; } // Input validation. $reqdfields = explode(" ", "name address"); $reqdfieldsn = array(gettext("Hostname"), gettext("IP address")); do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors); if ($_POST['name'] && !is_validdesc($_POST['name'])) { $input_errors[] = gettext("The host name contain invalid characters."); } if ($_POST['address'] && !is_ipaddr($_POST['address'])) { $input_errors[] = gettext("A valid IP address must be specified."); } // Check for duplicates. $index = array_search_ex($_POST['name'], $a_hosts, "name"); if (FALSE !== $index) { if (!(FALSE !== $cnid && $a_hosts[$cnid]['uuid'] === $a_hosts[$index]['uuid'])) { $input_errors[] = gettext("An host with this name already exists."); } } if (empty($input_errors)) { $host = array(); $host['uuid'] = $_POST['uuid']; $host['name'] = $_POST['name']; $host['address'] = $_POST['address']; $host['descr'] = $_POST['descr']; if (isset($uuid) && FALSE !== $cnid) { $a_hosts[$cnid] = $host; $mode = UPDATENOTIFY_MODE_MODIFIED; } else {
function get_next_rulenumber() { global $config; // Set starting rule number $ruleno = 100; $a_rules = $config['system']['firewall']['rule']; if (false !== array_search_ex(strval($ruleno), $a_rules, "ruleno")) { do { $ruleno += 100; // Increase rule number until a unused one is found. } while (false !== array_search_ex(strval($ruleno), $a_rules, "ruleno")); } return $ruleno; }
function iscsitargetig_process_updatenotification($mode, $data) { global $config; $retval = 0; switch ($mode) { case UPDATENOTIFY_MODE_DIRTY: $cnid = array_search_ex($data, $config['iscsitarget']['initiatorgroup'], "uuid"); if (FALSE !== $cnid) { unset($config['iscsitarget']['initiatorgroup'][$cnid]); write_config(); } break; } return $retval; }
$pconfig['auxparam'] = implode("\n", $config['hast']['auxparam']); $pconfig['alertemail'] = $config['hast']['alertemail']; $pconfig['alertemailto'] = $config['hast']['alertemailto']; $nodeid = @exec("/sbin/sysctl -q -n kern.hostuuid"); if (empty($nodeid)) { $nodeid = "unknown"; } $nodename = system_get_hostname(); if (empty($nodename)) { $nodename = "unknown"; } $a_carp =& $config['vinterfaces']['carp']; array_sort_key($a_carp, "if"); $a_cronjob =& $config['cron']['job']; $alert_script = '/etc/inc/hast_alerts.php'; $cnid = isset($config['hast']['alertemailcronuuid']) ? array_search_ex($config['hast']['alertemailcronuuid'], $a_cronjob, "uuid") : false; if (!sizeof($a_carp)) { $errormsg = sprintf(gettext("No configured CARP interfaces. Please add new <a href='%s'>CARP interface</a> first."), "interfaces_carp.php"); } if ($_POST) { unset($input_errors); unset($errormsg); $pconfig = $_POST; $preempt = @exec("/sbin/sysctl -q -n net.inet.carp.preempt"); if (isset($_POST['switch_backup']) && $_POST['switch_backup']) { // down all carp foreach ($a_carp as $carp) { //system("/sbin/ifconfig {$carp['if']} down"); mwexec("/etc/rc.d/netif stop {$carp['if']}"); if ($carp['advskew'] <= 1) { system("/sbin/ifconfig {$carp['if']} vhid {$carp['vhid']} state backup advskew 240");
function get_nextgroup_id() { global $config; // Get next free user id. exec("/usr/sbin/pw groupnext", $output); $output = explode(":", $output[0]); $id = intval($output[0]); // Check if id is already in usage. If the user did not press the 'Apply' // button 'pw' did not recognize that there are already several new users // configured because the user db is not updated until 'Apply' is pressed. $a_group = $config['access']['group']; if (false !== array_search_ex(strval($id), $a_group, "id")) { do { $id++; // Increase id until a unused one is found. } while (false !== array_search_ex(strval($id), $a_group, "id")); } return $id; }
$uuid = $_GET['uuid']; if (isset($_POST['uuid'])) { $uuid = $_POST['uuid']; } $pgtitle = array(gettext("Services"), gettext("Rsync"), gettext("Client"), isset($uuid) ? gettext("Edit") : gettext("Add")); /* Global arrays. */ $a_months = explode(" ", gettext("January February March April May June July August September October November December")); $a_weekdays = explode(" ", gettext("Sunday Monday Tuesday Wednesday Thursday Friday Saturday")); if (!is_array($config['rsync'])) { $config['rsync'] = array(); } if (!is_array($config['rsync']['rsyncclient'])) { $config['rsync']['rsyncclient'] = array(); } $a_rsyncclient =& $config['rsync']['rsyncclient']; if (isset($uuid) && FALSE !== ($cnid = array_search_ex($uuid, $a_rsyncclient, "uuid"))) { $pconfig['enable'] = isset($a_rsyncclient[$cnid]['enable']); $pconfig['uuid'] = $a_rsyncclient[$cnid]['uuid']; $pconfig['rsyncserverip'] = $a_rsyncclient[$cnid]['rsyncserverip']; $pconfig['localshare'] = $a_rsyncclient[$cnid]['localshare']; $pconfig['remoteshare'] = $a_rsyncclient[$cnid]['remoteshare']; $pconfig['minute'] = $a_rsyncclient[$cnid]['minute']; $pconfig['hour'] = $a_rsyncclient[$cnid]['hour']; $pconfig['day'] = $a_rsyncclient[$cnid]['day']; $pconfig['month'] = $a_rsyncclient[$cnid]['month']; $pconfig['weekday'] = $a_rsyncclient[$cnid]['weekday']; $pconfig['sharetosync'] = $a_rsyncclient[$cnid]['sharetosync']; $pconfig['all_mins'] = $a_rsyncclient[$cnid]['all_mins']; $pconfig['all_hours'] = $a_rsyncclient[$cnid]['all_hours']; $pconfig['all_days'] = $a_rsyncclient[$cnid]['all_days']; $pconfig['all_months'] = $a_rsyncclient[$cnid]['all_months'];
global $config, $g; if ($config['interfaces']['lan']['if'] === $ifn) { return true; } if (isset($config['interfaces']['wan']) && $config['interfaces']['wan']['if'] === $ifn) { return true; } for ($i = 1; isset($config['interfaces']['opt' . $i]); $i++) { if ($config['interfaces']['opt' . $i]['if'] === $ifn) { return true; } } return false; } if (isset($_GET['act']) && $_GET['act'] === "del") { if (FALSE === ($cnid = array_search_ex($_GET['uuid'], $config['vinterfaces']['vlan'], "uuid"))) { header("Location: interfaces_vlan.php"); exit; } $vlan = $a_vlan[$cnid]; // Check if still in use. if (vlan_inuse($vlan['if'])) { $input_errors[] = gettext("This VLAN cannot be deleted because it is still being used as an interface."); } else { mwexec("/usr/local/sbin/rconf attribute remove 'ifconfig_{$vlan['if']}'"); unset($a_vlan[$cnid]); write_config(); touch($d_sysrebootreqd_path); header("Location: interfaces_vlan.php"); exit; }
$nohttps_error = gettext("You should use HTTPS as WebGUI protocol for sending passphrase."); } if ($_POST) { unset($input_errors); unset($errormsg); $pconfig = $_POST; if (isset($_POST['Cancel']) && $_POST['Cancel']) { header("Location: disks_crypt.php"); exit; } // Input validation. $reqdfields = explode(" ", "disk ealgo passphrase passphraseconf"); $reqdfieldsn = array(gettext("Disk"), gettext("Encryption algorithm"), gettext("Passphrase"), gettext("Passphrase")); do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors); // Check for duplicate disks. if (array_search_ex("{$_POST['disk']}.eli", $a_geli, "devicespecialfile")) { $input_errors[] = gettext("This disk already exists in the disk list."); } // Check for a passphrase mismatch. if ($_POST['passphrase'] !== $_POST['passphraseconf']) { $input_errors[] = gettext("Passphrase don't match."); } if (0 != mwexec("/sbin/kldstat -q -m aesni")) { mwexec("/sbin/kldload -q aesni.ko"); } if (empty($input_errors)) { $pconfig['do_action'] = true; $pconfig['init'] = isset($_POST['init']) ? true : false; $pconfig['name'] = $a_alldisk[$_POST['disk']]['name']; // e.g. da2 $pconfig['devicespecialfile'] = $a_alldisk[$_POST['disk']]['devicespecialfile'];
*/ require "auth.inc"; require "guiconfig.inc"; if (isset($_GET['uuid'])) { $uuid = $_GET['uuid']; } if (isset($_POST['uuid'])) { $uuid = $_POST['uuid']; } $pgtitle = array(gettext("Services"), gettext("HAST"), isset($uuid) ? gettext("Edit") : gettext("Add")); if (!isset($config['hast']['hastresource']) || !is_array($config['hast']['hastresource'])) { $config['hast']['hastresource'] = array(); } array_sort_key($config['hast']['hastresource'], "name"); $a_resource =& $config['hast']['hastresource']; if (isset($uuid) && FALSE !== ($cnid = array_search_ex($uuid, $a_resource, "uuid"))) { $pconfig['uuid'] = $a_resource[$cnid]['uuid']; $pconfig['name'] = $a_resource[$cnid]['name']; $pconfig['auxparam'] = ""; if (isset($a_resource[$cnid]['auxparam']) && is_array($a_resource[$cnid]['auxparam'])) { $pconfig['auxparam'] = implode("\n", $a_resource[$cnid]['auxparam']); } $pconfig['aname'] = $a_resource[$cnid]['aname']; $pconfig['apath'] = $a_resource[$cnid]['apath']; $pconfig['aremoteaddr'] = $a_resource[$cnid]['aremoteaddr']; $pconfig['bname'] = $a_resource[$cnid]['bname']; $pconfig['bpath'] = $a_resource[$cnid]['bpath']; $pconfig['bremoteaddr'] = $a_resource[$cnid]['bremoteaddr']; } else { $pconfig['uuid'] = uuid(); $pconfig['name'] = "";
<?php if (file_exists($d_sysrebootreqd_path)) { print_info_box(get_std_save_message(0)); } ?> <table width="100%" border="0" cellpadding="6" cellspacing="0"> <?php html_inputbox("name", gettext("Name"), $pconfig['name'], "", true, 20); ?> <?php $a_device = array(); foreach ($a_vdevice as $vdevicev) { if (isset($uuid) && false !== $cnid && !(isset($pconfig['vdevice']) && is_array($pconfig['vdevice']) && in_array($vdevicev['name'], $pconfig['vdevice']))) { continue; } if ((!isset($uuid) || isset($uuid) && false === $cnid) && false !== array_search_ex($vdevicev['name'], $a_pool, "vdevice")) { continue; } $a_device[$vdevicev['name']] = htmlspecialchars("{$vdevicev['name']} ({$vdevicev['type']}" . (!empty($vdevicev['desc']) ? ", {$vdevicev['desc']})" : ")")); } ?> <?php html_listbox("vdevice", gettext("Virtual devices"), !empty($pconfig['vdevice']) ? $pconfig['vdevice'] : array(), $a_device, "", true); ?> <?php html_inputbox("root", gettext("Root"), $pconfig['root'], gettext("Creates the pool with an alternate root."), false, 40); ?> <?php html_inputbox("mountpoint", gettext("Mount point"), $pconfig['mountpoint'], gettext("Sets an alternate mount point for the root dataset. Default is /mnt."), false, 40); ?> <?php