diff options
author | Scott Ullrich <sullrich@pfsense.org> | 2009-10-19 22:16:19 -0400 |
---|---|---|
committer | Scott Ullrich <sullrich@pfsense.org> | 2009-10-19 22:16:36 -0400 |
commit | 4aca19b306cf3b5c4cf6a9e2bdb12896d907ea3f (patch) | |
tree | 273ee987c5795bc7fc2f472d926e3d658a99cece | |
parent | 58ed68e5af116e4f38af7b7d089f770b5f087c45 (diff) | |
download | pfsense-4aca19b306cf3b5c4cf6a9e2bdb12896d907ea3f.zip pfsense-4aca19b306cf3b5c4cf6a9e2bdb12896d907ea3f.tar.gz |
Use useland pppd for ppp connections
-rw-r--r-- | etc/inc/filter.inc | 30 | ||||
-rw-r--r-- | etc/inc/interfaces.inc | 204 | ||||
-rw-r--r-- | etc/inc/util.inc | 2 | ||||
-rw-r--r-- | usr/local/www/interfaces_ppp.php | 28 | ||||
-rw-r--r-- | usr/local/www/interfaces_ppp_edit.php | 194 |
5 files changed, 215 insertions, 243 deletions
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc index a5eb633..c0f7bc1 100644 --- a/etc/inc/filter.inc +++ b/etc/inc/filter.inc @@ -504,6 +504,8 @@ function filter_generate_optcfg_array() $iflist = get_configured_interface_with_descr(); foreach ($iflist as $if => $ifdetail) { $oc = $config['interfaces'][$if]; + if($oc['serialport']) + continue; $oic = array(); $oic['if'] = get_real_interface($if); $oic['ip'] = get_interface_ip($if); @@ -583,7 +585,7 @@ function filter_generate_optcfg_array() $FilterIflist['openvpn'] = $oic; } /* add interface groups */ - if (is_array($config['ifgroups']['ifgroupentry'])) + if (is_array($config['ifgroups']['ifgroupentry'])) { foreach($config['ifgroups']['ifgroupentry'] as $ifgen) { $oc = array(); $oc['if'] = $ifgen['ifname']; @@ -591,6 +593,32 @@ function filter_generate_optcfg_array() $oc['virtual'] = true; $FilterIflist[$ifgen['ifname']] = $oc; } + } + if($config['ppps']) { + $ppp=0; + $startingip = 1; + foreach($config['ppps']['ppp'] as $ifgen) { + $dev = substr($ifgen['port'], 5); + $ps = trim(`ps awux | grep -v grep | grep "$dev" | awk '{ print \$2 }'`); + if($ps) { + $interface = trim(`ifconfig | grep -v grep | grep -B2 "$ps" | head -n1 | cut -d: -f1`); + if($interface) { + foreach ($config['interfaces'] as $ifdescr => $ifname) { + if($ifname['serialport'] == $dev) { + $oc = array(); + $oc['if'] = $interface; + $oc['descr'] = $ifname['descr']; + $oc['virtual'] = true; + unset($FilterIflist[$ifname['descr']]); + $FilterIflist[$ifname['descr']] = $oc; + $ppp++; + + } + } + } + } + } + } } function filter_flush_nat_table() diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc index 29cab8a..52d771b 100644 --- a/etc/inc/interfaces.inc +++ b/etc/inc/interfaces.inc @@ -124,36 +124,36 @@ function interface_vlan_configure(&$vlan) { mwexec("/sbin/ifconfig {$if} vlanhwtag"); mwexec("/sbin/ifconfig {$if} vlanmtu"); - if (!empty($vlanif) && does_interface_exist($vlanif)) + if (!empty($vlanif) && does_interface_exist($vlanif)) { mwexec("/sbin/ifconfig {$vlanif} delete"); - else { + } else { $tmpvlanif = exec("/sbin/ifconfig vlan create"); mwexec("/sbin/ifconfig {$tmpvlanif} name {$vlanif}"); } - mwexec("/sbin/ifconfig {$vlanif} vlan " . - escapeshellarg($tag) . " vlandev " . - escapeshellarg($if)); + mwexec("/sbin/ifconfig {$vlanif} vlan " . + escapeshellarg($tag) . " vlandev " . + escapeshellarg($if)); interfaces_bring_up($vlanif); - /* invalidate interface cache */ - get_interface_arr(true); + /* invalidate interface cache */ + get_interface_arr(true); - /* all vlans need to spoof their parent mac address, too. see - * ticket #1514: http://cvstrac.pfsense.com/tktview?tn=1514,33 - */ - foreach($config['interfaces'] as $interfaces) { - if($interfaces['if'] == $if && $interfaces['spoofmac']) { - mwexec("/sbin/ifconfig " . escapeshellarg($vlanif) . - " link " . escapeshellarg($interfaces['spoofmac'])); - } - } + /* all vlans need to spoof their parent mac address, too. see + * ticket #1514: http://cvstrac.pfsense.com/tktview?tn=1514,33 + */ + foreach($config['interfaces'] as $interfaces) { + if($interfaces['if'] == $if && $interfaces['spoofmac']) { + mwexec("/sbin/ifconfig " . escapeshellarg($vlanif) . + " link " . escapeshellarg($interfaces['spoofmac'])); + } + } - /* XXX: ermal -- for now leave it here at the moment it does not hurt. */ + /* XXX: ermal -- for now leave it here at the moment it does not hurt. */ interfaces_bring_up($if); - return $vlanif; + return $vlanif; } function interface_qinq_configure(&$vlan, $fd = NULL) { @@ -652,7 +652,7 @@ function interfaces_configure() { global $config, $g; /* Set up our loopback interface */ - interfaces_loopback_configure(); + interfaces_loopback_configure(); /* set up LAGG virtual interfaces */ interfaces_lagg_configure(); @@ -840,121 +840,75 @@ function interface_bring_down($interface = "wan", $destroy = false) { } function interfaces_ppp_configure() { - global $config; - - $i = 0; - if (is_array($config['ppps']['ppp']) && count($config['ppps']['ppp'])) { - foreach ($config['ppps']['ppp'] as $ppp) { - if(empty($ppp['pppif'])) - $ppp['pppif'] = "ppp{$i}"; - /* XXX: Maybe we should report any errors?! */ - interface_ppp_configure($ppp); - $i++; - } - } + global $config; + if($g['booting']) + conf_mount_rw(); + foreach ($config['ppps']['ppp'] as $ppp) { + $dev = substr($ppp['port'], 5); + interface_ppp_configure($dev); + } + if(!$g['booting']) + conf_mount_ro(); } -function interface_ppp_configure(&$ifcfg) { +function interface_ppp_configure($ifcfg) { global $config, $g; /* Remove the /dev/ from the device name. */ - $dev = substr($ifcfg['port'], 5); - - $realif = $ifcfg['pppif']; - if ($realif <> "") { - $i = 0; - while ($realif != "ppp{$i}") + $orig_dev = $ifcfg; + + // ppp (userland) requires a /var/spool/lock directory + if(!is_dir("/var/spool/lock")) { + exec("mkdir -p /var/spool/lock"); + exec("chmod a+rw /var/spool/lock/."); + } + + // Construct the ppp.conf file + $peerfile .= "default:\n"; + $peerfile .= " set log Phase Chat LCP IPCP CCP tun command\n"; + $peerfile .= " ident user-ppp VERSION (built COMPILATIONDATE)\n"; + $peerfile .= " set dial \"ABORT BUSY ABORT NO\\\sCARRIER TIMEOUT 5 \\\n"; + $peerfile .= " \\\"\\\" AT OK-AT-OK ATE1Q0 OK \\\dATDT\\\T TIMEOUT 40 CONNECT\"\n"; + $peerfile .= " enable dns\n"; + $peerfile .= " nat enable yes\n"; + $peerfile .= " set reconnect {$ifcfg['connect-max-attempts']} 5\n"; + $peerfile .= " allow users root\n\n"; + + // Loop variables + $i = 0; + $startingip = 1; + + if (is_array($config['ppps']['ppp']) && count($config['ppps']['ppp'])) { + foreach ($config['ppps']['ppp'] as $ppp) { + $dev = substr($ppp['port'], 5); + $realif = $ppp['port']; + $peerfile .= "{$dev}:\n"; + $peerfile .= " set device {$realif}\n"; + if($ppp['dialcmd']) + $peerfile .= " set dial {$ppp['dialcmd']}\n"; + $peerfile .= " set speed \"{$ppp['linespeed']}\"\n"; + $peerfile .= " add default HISADDR\n"; + $peerfile .= " set timeout 0\n"; + $endingip = $startingip+1; + if($ppp['localip']) + $startingip = $ppp['localip']; + if($ppp['gateway']) + $endingip = $ppp['gateway']; + $peerfile .= " set ifaddr 10.0.0.{$startingip}/0 10.0.0.{$endingip}/0 255.255.255.0 0.0.0.0\n"; + $peerfile .= " set phone \"{$ppp['phone']}\"\n"; + $peerfile .= " set authname \"{$ppp['username']}\"\n"; + $peerfile .= " set authkey \"{$ppp['password']}\"\n"; + $peerfile .= "\n"; $i++; - if(file_exists("/var/run/ppp{$i}.pid")) { - $pid = trim(file_get_contents("/var/run/ppp{$i}.pid")); - mwexec("kill {$pid}"); + $startingip++; } - } - - if ($g['booting'] || $realif <> "") { - mwexec("/sbin/ifconfig {$realif} destroy"); - mwexec("/sbin/ifconfig {$realif} create"); - } else - $realif = exec("/sbin/ifconfig ppp create"); - - - $peerfile = "lcp-echo-failure 0\n"; - $peerfile .= "lcp-echo-interval 0\n"; - $peerfile .= "connect /etc/ppp/peers/ppp{$dev}-connect-chat\n"; - //$peerfile .= "disconnect /etc/ppp/peers/ppp{$dev}-disconnect-chat\n"; - $peerfile .= "{$ifcfg['port']} {$ifcfg['linespeed']}\n"; - $peerfile .= "crtscts\n"; - if ($ifcfg['connect-max-attempts'] <> "") - $peerfile .= "connect-max-attempts {$ifcfg['connect-max-attempts']}"; - $peerfile .= "local\n"; - if ($ifcfg['localip'] <> "") { - $peerfile .= ":{$ifcfg['gateway']}\n"; - $peerfile .= "{$ifcfg['localip']}:{$ifcfg['gateway']}"; - } else if ($ifcfg['gateway'] <> "") { - $peerfile .= ":{$ifcfg['gateway']}\n"; - $peerfile .= "noipdefault\n"; - } else - $peerfile .= "noipdefault\n"; - $peerfile .= "ipcp-accept-local\n"; - $peerfile .= "novj\n"; - $peerfile .= "nobsdcomp\n"; - $peerfile .= "novjccomp\n"; - $peerfile .= "nopcomp\n"; - $peerfile .= "noaccomp\n"; - $peerfile .= "noauth\n"; - //$peerfile .= "nodetach\n"; - $peerfile .= "persist\n"; - $peerfile .= "debug\n"; - // KD - test - //$peerfile .= "defaultroute\n"; - //$peerfile .= "nodetach\n"; - // KD - so I know where to look! - $peerfile .= "# created by /etc/inc/interfaces.inc\n"; - - // Added single quotes to some strings below: - // the \rAT is *always* going to need it - // and the phone number on a GSM connection ends in a # char - // Kevin Dawson, 22 Jan 2008 - // Refer Andrew Curtis - - $chatfile = "#!/bin/sh\n"; - $chatfile .= "exec chat \\\n"; - $chatfile .= "TIMEOUT 5 \\\n"; - $chatfile .= "ECHO ON \\\n"; - $chatfile .= "ABORT '\\nBUSY\\r' \\\n"; - $chatfile .= "ABORT '\\nERROR\\r' \\\n"; - $chatfile .= "ABORT '\\nNO ANSWER\\r' \\\n"; - $chatfile .= "ABORT '\\nNO CARRIER\\r' \\\n"; - $chatfile .= "ABORT '\\nNO DIALTONE\\r' \\\n"; - $chatfile .= "ABORT '\\nRINGING\\r\\n\\r\\nRINGING\\r' \\\n"; - // KD - $chatfile .= "'' '\\rAT' \\\n"; - $chatfile .= "TIMEOUT 12 \\\n"; - $chatfile .= "OK ATH \\\n"; - $chatfile .= "OK ATE1 \\\n"; - $chatfile .= "OK 'AT+CGDCONT=1,\"IP\",\"{$ifcfg['ap']}\"' \\\n"; - // KD - $chatfile .= "OK 'ATD{$ifcfg['phone']}' \\\n"; - $chatfile .= "TIMEOUT 22 \\\n"; - if ($ifcfg['username'] <> "") { - $chatfile .= "CONNECT \"\" TIMEOUT 10 \\\n"; - $chatfile .= "ogin:-\\r-ogin: {$ifcfg['username']}\\\n"; - $chatfile .= " TIMEOUT 5 sword: {$ifcfg['password']} \\\n"; - } else - $chatfile .= "CONNECT \"\" \\\n"; - $chatfile .= "SAY \"\\nConnected.\"\n"; + } - conf_mount_rw(); - safe_mkdir("/etc/ppp/peers", "0755"); - file_put_contents("/etc/ppp/peers/ppp_{$dev}", $peerfile); - file_put_contents("/etc/ppp/peers/ppp{$dev}-connect-chat", $chatfile); - chmod("/etc/ppp/peers/ppp{$dev}-connect-chat", 0755); - conf_mount_ro(); - - sleep(1); - mwexec("/usr/sbin/pppd call ppp_{$dev}"); + // Write out configuration for ppp.conf + file_put_contents("/etc/ppp/ppp.conf", $peerfile); - return $realif; + // Launch specified ppp instance + mwexec("/usr/sbin/ppp -background {$orig_dev}"); } function interfaces_carp_setup() { diff --git a/etc/inc/util.inc b/etc/inc/util.inc index 526631b..e507926 100644 --- a/etc/inc/util.inc +++ b/etc/inc/util.inc @@ -540,6 +540,8 @@ function get_interface_list($mode = "active", $keyby = "physical", $vfaces = "") $toput['dmesg'] = $dmesg[1][0]; $iflist[$ifname] = $toput; break; + case "ppp": + case "friendly": if($friendly != "") { $toput['if'] = $ifname; diff --git a/usr/local/www/interfaces_ppp.php b/usr/local/www/interfaces_ppp.php index 7429ae0..e40f87d 100644 --- a/usr/local/www/interfaces_ppp.php +++ b/usr/local/www/interfaces_ppp.php @@ -7,6 +7,7 @@ Changes by Chris Buechler <cmb at pfsense dot org> Copyright (C) 2004-2008 BSD Perimeter LLC. + Copyright (C) 2004-2009 Scott Ullrich All rights reserved. Redistribution and use in source and binary forms, with or without @@ -51,13 +52,11 @@ $a_ppps = &$config['ppps']['ppp'] ; function ppp_inuse($num) { global $config, $g; - $iflist = get_configured_interface_list(false, true); foreach ($iflist as $if) { if ($config['interfaces'][$if]['if'] == "ppp{$num}") return true; } - return false; } @@ -66,22 +65,9 @@ if ($_GET['act'] == "del") { if (ppp_inuse($_GET['id'])) { $input_errors[] = "This PPP interface cannot be deleted because it is still being used as an interface."; } else { - $realif = $a_ppps[$_GET['id']]['pppif']; - if ($realif <> "") { - $i = 0; - while ($realif != "ppp{$i}") - $i++; - if (file_exists("/var/run/ppp{$i}.pid")) { - $pid = trim(file_get_contents("/var/run/ppp{$i}.pid")); - mwexec("/bin/kill {$pid}"); - } - } - - mwexec("/sbin/ifconfig {$realif} destroy"); unset($a_ppps[$_GET['id']]); - write_config(); - + interfaces_ppp_configure(); header("Location: interfaces_ppp.php"); exit; } @@ -104,8 +90,8 @@ include("head.inc"); $tab_array[2] = array("VLANs", false, "interfaces_vlan.php"); $tab_array[3] = array("QinQs", false, "interfaces_qinq.php"); $tab_array[4] = array("PPP", true, "interfaces_ppp.php"); - $tab_array[5] = array("GRE", false, "interfaces_gre.php"); - $tab_array[6] = array("GIF", false, "interfaces_gif.php"); + $tab_array[5] = array("GRE", false, "interfaces_gre.php"); + $tab_array[6] = array("GIF", false, "interfaces_gif.php"); $tab_array[7] = array("Bridges", false, "interfaces_bridge.php"); $tab_array[8] = array("LAGG", false, "interfaces_lagg.php"); display_top_tabs($tab_array); @@ -116,16 +102,12 @@ include("head.inc"); <div id="mainarea"> <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> - <td width="20%" class="listhdrr">Interface</td> <td width="20%" class="listhdrr">Serial Port</td> <td width="50%" class="listhdr">Description</td> <td width="10%" class="list"></td> </tr> <?php $i = 0; foreach ($a_ppps as $id => $ppp): ?> <tr> - <td class="listlr"> - <?=htmlspecialchars($ppp['pppif']);?> - </td> <td class="listr"> <?=htmlspecialchars($ppp['port']);?> </td> @@ -137,7 +119,7 @@ include("head.inc"); </tr> <?php $i++; endforeach; ?> <tr> - <td class="list" colspan="3"> </td> + <td class="list" colspan="2"> </td> <td class="list"> <a href="interfaces_ppp_edit.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0"></a></td> </tr> </table> diff --git a/usr/local/www/interfaces_ppp_edit.php b/usr/local/www/interfaces_ppp_edit.php index d30a3f9..baafa0b 100644 --- a/usr/local/www/interfaces_ppp_edit.php +++ b/usr/local/www/interfaces_ppp_edit.php @@ -5,8 +5,10 @@ Originally written by Adam Lebsack <adam at holonyx dot com> Changes by Chris Buechler <cmb at pfsense dot org> + Additions by Scott Ullrich <sullrich@pfsense.org> - Copyright (C) 2004-2008 BSD Perimeter LLC. + Copyright (C) 2004-2009 BSD Perimeter LLC. + Copyright (C) 2009 Scott Ullrich All rights reserved. Redistribution and use in source and binary forms, with or without @@ -55,13 +57,13 @@ if (isset($_POST['id'])) if (isset($id) && $a_ppps[$id]) { $pconfig['port'] = $a_ppps[$id]['port']; $pconfig['ap'] = $a_ppps[$id]['ap']; - $pconfig['pppif'] = $a_ppps[$id]['pppif']; $pconfig['initstr'] = $a_ppps[$id]['initstr']; $pconfig['username'] = $a_ppps[$id]['username']; $pconfig['password'] = $a_ppps[$id]['password']; $pconfig['gateway'] = $a_ppps[$id]['gateway']; $pconfig['localip'] = $a_ppps[$id]['localip']; $pconfig['phone'] = $a_ppps[$id]['phone']; + $pconfig['dialcmd'] = $a_ppps[$id]['dialcmd']; $pconfig['connect-max-attempts'] = $a_ppps[$id]['connect-max-attempts']; $pconfig['linespeed'] = $a_ppps[$id]['linespeed']; $pconfig['descr'] = $a_ppps[$id]['descr']; @@ -94,6 +96,7 @@ if ($_POST) { $ppp['initstr'] = $_POST['initstr']; $ppp['ap'] = $_POST['ap']; $ppp['phone'] = $_POST['phone']; + $ppp['dialcmd'] = $_POST['dialcmd']; $ppp['username'] = $_POST['username']; $ppp['password'] = $_POST['password']; $ppp['localip'] = $_POST['localip']; @@ -101,21 +104,18 @@ if ($_POST) { $ppp['linespeed'] = $_POST['linespeed']; $ppp['connect-max-attempts'] = $_POST['connect-max-attempts']; $ppp['descr'] = $_POST['descr']; - $ppp['pppif'] = $_POST['pppif']; - $ppp['pppif'] = interface_ppp_configure($ppp); - if ($ppp['pppif'] == "" || !stristr($ppp['pppif'], "ppp")) - $input_errors[] = "Error occurred creating PPP interface. Check System log for details"; - else { - if (isset($id) && $a_ppps[$id]) - $a_ppps[$id] = $ppp; - else - $a_ppps[] = $ppp; - - write_config(); - - header("Location: interfaces_ppp.php"); - exit; - } + + interfaces_ppp_configure(); + + if (isset($id) && $a_ppps[$id]) + $a_ppps[$id] = $ppp; + else + $a_ppps[] = $ppp; + + write_config(); + + header("Location: interfaces_ppp.php"); + exit; } } @@ -127,34 +127,36 @@ include("head.inc"); <body link="#0000CC" vlink="#0000CC" alink="#0000CC"> <?php include("fbegin.inc"); ?> <?php if ($input_errors) print_input_errors($input_errors); ?> - <form action="interfaces_ppp_edit.php" method="post" name="iform" id="iform"> - <table width="100%" border="0" cellpadding="6" cellspacing="0"> - <tr> - <td colspan="2" valign="top" class="listtopic">PPP configuration</td> - </tr> - <tr> - <td width="22%" valign="top" class="vncellreq">Parent interface</td> - <td width="78%" class="vtable"> - <select name="port" id="port" class="formselect"> - <?php - $portlist = glob("/dev/cua*"); - foreach ($portlist as $port) { - if(preg_match("/\.(lock|init)$/", $port)) - continue; - echo "<option value=\"".trim($port)."\""; - if ($pconfig['port'] == $port) - echo "selected"; - echo ">{$port}</option>"; - } - ?> - </select> - </tr> - <tr> - <td width="22%" valign="top" class="vncell">Init String</td> - <td width="78%" class="vtable"> - <textarea name="initstr"><?=htmlspecialchars($pconfig['initstr']);?></textarea> - <br> <span class="vexpl">Enter the modem initialization string here</span></td> - </tr> +<form action="interfaces_ppp_edit.php" method="post" name="iform" id="iform"> + <table width="100%" border="0" cellpadding="6" cellspacing="0"> + <tr> + <td colspan="2" valign="top" class="listtopic">PPP configuration</td> + </tr> + <tr> + <td width="22%" valign="top" class="vncellreq">Parent interface</td> + <td width="78%" class="vtable"> + <select name="port" id="port" class="formselect"> + <?php + $portlist = glob("/dev/cua*"); + foreach ($portlist as $port) { + if(preg_match("/\.(lock|init)$/", $port)) + continue; + echo "<option value=\"".trim($port)."\""; + if ($pconfig['port'] == $port) + echo "selected"; + echo ">{$port}</option>"; + } + ?> + </select> + </td> + </tr> + <tr> + <td width="22%" valign="top" class="vncell">Init String</td> + <td width="78%" class="vtable"> + <textarea name="initstr"><?=htmlspecialchars($pconfig['initstr']);?></textarea> + <br><span class="vexpl">Enter the modem initialization string here</span> + </td> + </tr> <tr> <td width="22%" valign="top" class="vncell">AP Hostname</td> <td width="78%" class="vtable"> @@ -162,22 +164,28 @@ include("head.inc"); </td> </tr> <tr> + <td width="22%" valign="top" class="vncell">Dial command</td> + <td width="78%" class="vtable"> + <textarea rows="4" cols="65" name="dialcmd" id="dialcmd"><?=htmlspecialchars($pconfig['dialcmd']);?></textarea> + </td> + </tr> + <tr> <td width="22%" valign="top" class="vncell">Phone Number</td> <td width="78%" class="vtable"> <input name="phone" type="text" class="formfld unknown" id="phone" size="40" value="<?=htmlspecialchars($pconfig['phone']);?>"> </td> </tr> - <tr> - <td width="22%" valign="top" class="vncell">Username</td> - <td width="78%" class="vtable"> - <input name="username" type="text" class="formfld user" id="username" size="20" value="<?=htmlspecialchars($pconfig['username']);?>"> - </td> - </tr> - <tr> - <td width="22%" valign="top" class="vncell">Password</td> - <td width="78%" class="vtable"> - <input name="password" type="password" class="formfld pwd" id="password" value="<?=htmlspecialchars($pconfig['password']);?>"> - </td> + <tr> + <td width="22%" valign="top" class="vncell">Username</td> + <td width="78%" class="vtable"> + <input name="username" type="text" class="formfld user" id="username" size="20" value="<?=htmlspecialchars($pconfig['username']);?>"> + </td> + </tr> + <tr> + <td width="22%" valign="top" class="vncell">Password</td> + <td width="78%" class="vtable"> + <input name="password" type="password" class="formfld pwd" id="password" value="<?=htmlspecialchars($pconfig['password']);?>"> + </td> </tr> <tr> <td width="22%" valign="top" class="vncell">Local IP</td> @@ -185,46 +193,44 @@ include("head.inc"); <input name="localip" type="text" class="formfld unknown" id="localip" size="40" value="<?=htmlspecialchars($pconfig['localip']);?>"> <span><p>Note: Enter your IP address here if it is not automatically assigned.</span> </td> - </tr> - <tr> - <td width="22%" valign="top" class="vncell">Remote IP</td> - <td width="78%" class="vtable"> - <input name="gateway" type="text" class="formfld unknown" id="gateway" size="40" value="<?=htmlspecialchars($pconfig['gateway']);?>"> - <span><p>Note: Enter the remote IP here if not automatically assigned. This - is where the packets will be routed, equivalent to the gateway.</span> - </td> - </tr> + </tr> <tr> - <td width="22%" valign="top" class="vncell">Line Speed</td> - <td width="78%" class="vtable"> - <input name="linespeed" type="text" class="formfld unknown" id="linespeed" size="40" value="<?=htmlspecialchars($pconfig['linespeed']);?>"> - </td> - </tr> - <tr> - <td width="22%" valign="top" class="vncell">Maximum connection retry</td> - <td width="78%" class="vtable"> - <input name="connect-max-attempts" type="text" class="formfld unknown" id="connect-max-attempts" size="2" value="<?=htmlspecialchars($pconfig['connect-max-attempts']);?>"> - </td> - </tr> + <td width="22%" valign="top" class="vncell">Remote IP</td> + <td width="78%" class="vtable"> + <input name="gateway" type="text" class="formfld unknown" id="gateway" size="40" value="<?=htmlspecialchars($pconfig['gateway']);?>"> + <span><p>Note: Enter the remote IP here if not automatically assigned. This is where the packets will be routed, equivalent to the gateway.</span> + </td> + </tr> <tr> - <td width="22%" valign="top" class="vncell">Description</td> - <td width="78%" class="vtable"> - <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>"> - <br> <span class="vexpl">You may enter a description here - for your reference (not parsed).</span></td> - </tr> - <tr> - <td width="22%" valign="top"> </td> - <td width="78%"> - <input name="Submit" type="submit" class="formbtn" value="Save"> - <input type="button" value="Cancel" onclick="history.back()"> - <?php if (isset($id) && $a_ppps[$id]): ?> - <input name="id" type="hidden" value="<?=$id;?>"> - <input name="pppif" id="pppif" type="hidden" value="<?=$pconfig['pppif'];?>"> - <?php endif; ?> - </td> - </tr> - </table> + <td width="22%" valign="top" class="vncell">Line Speed</td> + <td width="78%" class="vtable"> + <input name="linespeed" type="text" class="formfld unknown" id="linespeed" size="40" value="<?=htmlspecialchars($pconfig['linespeed']);?>"> + </td> + </tr> + <tr> + <td width="22%" valign="top" class="vncell">Maximum connection retry</td> + <td width="78%" class="vtable"> + <input name="connect-max-attempts" type="text" class="formfld unknown" id="connect-max-attempts" size="2" value="<?=htmlspecialchars($pconfig['connect-max-attempts']);?>"> + </td> + </tr> + <tr> + <td width="22%" valign="top" class="vncell">Description</td> + <td width="78%" class="vtable"> + <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>"> + <br> <span class="vexpl">You may enter a description here for your reference (not parsed).</span> + </td> + </tr> + <tr> + <td width="22%" valign="top"> </td> + <td width="78%"> + <input name="Submit" type="submit" class="formbtn" value="Save"> + <input type="button" value="Cancel" onclick="history.back()"> + <?php if (isset($id) && $a_ppps[$id]): ?> + <input name="id" type="hidden" value="<?=$id;?>"> + <?php endif; ?> + </td> + </tr> + </table> </form> <?php include("fend.inc"); ?> </body> |