예제 #1
0
     // ppp details changed
     $a_ppps[$pppid] = $new_ppp_config;
 } elseif (!empty($a_ppps[$pppid])) {
     // ppp removed
     $new_config['if'] = $a_ppps[$pppid]['ports'];
     unset($a_ppps[$pppid]);
 }
 // save interface details
 $a_interfaces[$if] = $new_config;
 if (!empty($old_config['ipaddr']) && $old_config['ipaddr'] == 'dhcp' && $new_config['ipaddr'] != 'dhcp') {
     // change from dhcp to something else, kill dhclient
     kill_dhclient_process($old_config['if']);
 }
 if (!empty($old_config['ipaddrv6']) && $old_config['ipaddrv6'] == 'dhcp6' && $new_config['ipaddrv6'] != 'dhcp6') {
     // change from dhcp to something else, kill dhcp6c
     $pid = find_dhcp6c_process($old_config['if']);
     if ($pid) {
         exec('/bin/kill ' . $pid);
     }
 }
 // yak... room for improvement here....
 handle_pppoe_reset($pconfig);
 // save to config
 write_config();
 // log changes for apply action
 // (it would be better to diff the physical situation with the new config for changes)
 if (file_exists('/tmp/.interfaces.apply')) {
     $toapplylist = unserialize(file_get_contents('/tmp/.interfaces.apply'));
 } else {
     $toapplylist = array();
 }
예제 #2
0
 // These 3 fields can be a list of multiple data items when used for MLPPP.
 // The UI in this code only processes the first of the list, so save the data here then we can preserve any other entries.
 $poriginal['pptp_localip'] = explode(",", $a_ppps[$pppid]['localip']);
 $poriginal['pptp_subnet'] = explode(",", $a_ppps[$pppid]['subnet']);
 $poriginal['pptp_remote'] = explode(",", $a_ppps[$pppid]['gateway']);
 if ($wancfg['ipaddr'] != $_POST['type']) {
     if (in_array($wancfg['ipaddr'], array("ppp", "pppoe", "pptp", "l2tp"))) {
         $wancfg['if'] = $a_ppps[$pppid]['ports'];
         unset($a_ppps[$pppid]);
     } else {
         if ($wancfg['ipaddr'] == "dhcp") {
             kill_dhclient_process($wancfg['if']);
         }
     }
     if ($wancfg['ipaddrv6'] == "dhcp6") {
         $pid = find_dhcp6c_process($wancfg['if']);
         if ($pid) {
             posix_kill($pid, SIGTERM);
         }
     }
 }
 $ppp = array();
 if ($wancfg['ipaddr'] != "ppp") {
     unset($wancfg['ipaddr']);
 }
 if ($wancfg['ipaddrv6'] != "ppp") {
     unset($wancfg['ipaddrv6']);
 }
 unset($wancfg['subnet']);
 unset($wancfg['gateway']);
 unset($wancfg['subnetv6']);
예제 #3
0
     }
     if ($_POST['passphrase']) {
         $passlen = strlen($_POST['passphrase']);
         if ($passlen < 8 || $passlen > 64) {
             $input_errors[] = gettext("The length of the passphrase should be between 8 and 63 characters.");
         }
     }
 }
 if (!$input_errors) {
     if ($wancfg['ipaddr'] != $_POST['type']) {
         if (in_array($wancfg['ipaddr'], array("ppp", "pppoe", "pptp", "l2tp"))) {
             $wancfg['if'] = $a_ppps[$pppid]['ports'];
             unset($a_ppps[$pppid]);
         } else {
             if ($wancfg['ipaddrv6'] == "dhcp6") {
                 $pid = find_dhcp6c_process($realif);
                 if ($pid) {
                     posix_kill($pid, SIGTERM);
                 }
             } else {
                 if ($wancfg['ipaddr'] == "dhcp") {
                     $pid = find_dhclient_process($realif);
                     if ($pid) {
                         posix_kill($pid, SIGTERM);
                     }
                 }
             }
         }
     }
     $ppp = array();
     if ($wancfg['ipaddr'] != "ppp") {