if (stristr($wancfg['if'], "_vlan")) { $realhwif_array = get_parent_interface($wancfg['if']); // Need code to handle MLPPP if we ever use $realhwif for MLPPP handling $parent_realhwif = $realhwif_array[0]; $parent_if = convert_real_interface_to_friendly_interface_name($parent_realhwif); if (!empty($parent_if) && !empty($config['interfaces'][$parent_if]['mtu'])) { if ($_POST['mtu'] > intval($config['interfaces'][$parent_if]['mtu'])) { $input_errors[] = gettext("The MTU of a VLAN cannot be greater than that of its parent interface."); } } } else { foreach ($config['interfaces'] as $idx => $ifdata) { if ($idx == $if || !preg_match('/_vlan[0-9]/', $ifdata['if'])) { continue; } $realhwif_array = get_parent_interface($ifdata['if']); // Need code to handle MLPPP if we ever use $realhwif for MLPPP handling $parent_realhwif = $realhwif_array[0]; if ($parent_realhwif != $wancfg['if']) { continue; } if (isset($ifdata['mtu']) && $ifdata['mtu'] > $_POST['mtu']) { $input_errors[] = sprintf(gettext("Interface %s (VLAN) has MTU set to a larger value"), $ifdata['descr']); } } } } if ($_POST['mss'] != '') { if (!is_numericint($_POST['mss']) || ($_POST['mss'] < 576 || $_POST['mss'] > 65535)) { $input_errors[] = gettext("The MSS must be an integer between 576 and 65535 bytes."); }
} if ($_POST['mtu'][$iface] && $_POST['mtu'][$iface] < 576) { $input_errors[] = sprintf(gettext("The MTU for %s must be greater than 576 bytes."), $iface); } if ($_POST['mru'][$iface] && $_POST['mru'][$iface] < 576) { $input_errors[] = sprintf(gettext("The MRU for %s must be greater than 576 bytes."), $iface); } } // Loop through fields associated with an individual link/port and make an array of the data $port_fields = array("localip", "gateway", "subnet", "bandwidth", "mtu", "mru", "mrru"); foreach ($_POST['interfaces'] as $iface) { foreach ($port_fields as $field_label) { if (isset($_POST[$field_label . $iface]) && strlen($_POST[$field_label . $iface]) > 0) { $port_data[$field_label][] = $_POST[$field_label . $iface]; $pconfig[$field_label][$iface] = $_POST[$field_label . $iface]; $parent_array = get_parent_interface($iface); $parent = $parent_array[0]; $friendly = convert_real_interface_to_friendly_interface_name($parent); if ($field_label == "mtu" && isset($config['interfaces'][$friendly]['mtu']) && $_POST[$field_label . $iface] > $config['interfaces'][$friendly]['mtu'] - 8) { $input_errors[] = sprintf(gettext("The MTU (%d) is too big for %s (maximum allowed with current settings: %d)."), $_POST[$field_label . $iface], $iface, $config['interfaces'][$friendly]['mtu'] - 8); } } } } } if (!$input_errors) { $ppp = array(); if (!isset($id)) { $ppp['ptpid'] = interfaces_ptpid_next(); } else { $ppp['ptpid'] = $a_ppps[$id]['ptpid'];