function createIPv6Prefix($range = '', $name = '', $is_connected = FALSE, $taglist = array(), $vlan_ck = NULL) { // $range is in aaa0:b::c:d/x format, split into ip/mask vars $rangeArray = explode('/', $range); if (count($rangeArray) != 2) { throw new InvalidRequestArgException('range', $range, 'Invalid IPv6 prefix'); } $ip = $rangeArray[0]; $mask = $rangeArray[1]; $net = constructIPRange(ip6_parse($ip), $mask); usePreparedInsertBlade('IPv6Network', array('ip' => $net['ip_bin'], 'last_ip' => ip_last($net), 'mask' => $mask, 'name' => $name)); $network_id = lastInsertID(); # RFC3513 2.6.1 - Subnet-Router anycast if ($is_connected) { updateV6Address($net['ip_bin'], 'Subnet-Router anycast', 'yes'); } produceTagsForNewRecord('ipv6net', $taglist, $network_id); if ($vlan_ck != NULL) { $ctx = getContext(); fixContext(spotEntity('ipv6net', $network_id)); if (permitted('ipv6net', '8021q', 'bind')) { commitSupplementVLANIPv6($vlan_ck, $network_id); } restoreContext($ctx); } return $network_id; }
function printNewItemTR() { $all_vswitches = getVLANSwitches(); global $pageno; $hintcodes = array('prev_vdid' => 'DEFAULT_VDOM_ID', 'prev_vstid' => 'DEFAULT_VST_ID', 'prev_objid' => NULL); $focus = array(); foreach ($hintcodes as $hint_code => $option_name) { if (array_key_exists($hint_code, $_REQUEST)) { assertUIntArg($hint_code); $focus[$hint_code] = $_REQUEST[$hint_code]; } elseif ($option_name != NULL) { $focus[$hint_code] = getConfigVar($option_name); } else { $focus[$hint_code] = NULL; } } printOpFormIntro('add'); echo '<tr>'; if ($pageno != 'object') { echo '<td>'; // hide any object that is already in the table $options = array(); foreach (getNarrowObjectList('VLANSWITCH_LISTSRC') as $object_id => $object_dname) { if (!in_array($object_id, $all_vswitches)) { $ctx = getContext(); spreadContext(spotEntity('object', $object_id)); $decision = permitted(NULL, NULL, 'del'); restoreContext($ctx); if ($decision) { $options[$object_id] = $object_dname; } } } printSelect($options, array('name' => 'object_id', 'tabindex' => 101, 'size' => getConfigVar('MAXSELSIZE')), $focus['prev_objid']); echo '</td>'; } if ($pageno != 'vlandomain') { echo '<td>' . getSelect(getVLANDomainOptions(), array('name' => 'vdom_id', 'tabindex' => 102, 'size' => getConfigVar('MAXSELSIZE')), $focus['prev_vdid']) . '</td>'; } if ($pageno != 'vst') { $options = array(); foreach (listCells('vst') as $nominee) { $ctx = getContext(); spreadContext($nominee); $decision = permitted(NULL, NULL, 'add'); restoreContext($ctx); if ($decision) { $options[$nominee['id']] = niftyString($nominee['description'], 30, FALSE); } } echo '<td>' . getSelect($options, array('name' => 'vst_id', 'tabindex' => 103, 'size' => getConfigVar('MAXSELSIZE')), $focus['prev_vstid']) . '</td>'; } echo '<td>' . getImageHREF('Attach', 'set', TRUE, 104) . '</td></tr></form>'; }