Example #1
0
     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'];