* Show the correct nas type in nas_admin. Bug noted by Nick Bright
authorkkalev <kkalev>
Mon, 14 Mar 2005 11:51:32 +0000 (11:51 +0000)
committerkkalev <kkalev>
Mon, 14 Mar 2005 11:51:32 +0000 (11:51 +0000)
* Correctly calculate the nas ip in lib/sql/nas_list.php3. Add a check_ip() function in lib/functions.php3
  Bug noted by Nick Bright

dialup_admin/Changelog
dialup_admin/htdocs/nas_admin.php3
dialup_admin/htdocs/user_finger.php3
dialup_admin/lib/functions.php3
dialup_admin/lib/sql/nas_list.php3

index e2c525e..a06dc5d 100644 (file)
@@ -24,6 +24,9 @@ Ver 1.78:
 * In user_finger only set LD_LIBRARY_PATH once, not each time we call snmpfinger
 * Add support for usrhiper in snmpfinger. Patch from Nick Bright
 * urlencode() all occurrences of the $login variable when used in url's. Bug noted by Dag Landau
+* Show the correct nas type in nas_admin. Bug noted by Nick Bright
+* Correctly calculate the nas ip in lib/sql/nas_list.php3. Add a check_ip() function in lib/functions.php3
+  Bug noted by Nick Bright
 Ver 1.75:
 * A LOT of security related fixes. Now dialupadmin should hopefully be secure enough to
   be accessed by normal users (not administrators).
index 1175805..9390198 100644 (file)
@@ -122,12 +122,13 @@ if ($link){
                        $my_nas_name = $row['nasname'];
                        if ($my_nas_name != ''){
                                $num++;
-                               if ($clear_fields == 0 && $selected_nas == $my_nas_name)
-                                       $selected[$my_nas_name] = 'selected';
                                $my_nas_list[$my_nas_name]['name'] = $my_nas_name;
                                $my_nas_list[$my_nas_name]['shortname'] = $row['shortname'];
                                $my_nas_list[$my_nas_name]['type'] = $row['type'];
-                               $selected[$my_nas_list[$my_nas_name]['type']] = 'selected';
+                               if ($clear_fields == 0 && $selected_nas == $my_nas_name){
+                                       $selected[$my_nas_name] = 'selected';
+                                       $selected[$my_nas_list[$my_nas_name]['type']] = 'selected';
+                               }
                                $my_nas_list[$my_nas_name]['ports'] = $row['ports'];
                                $my_nas_list[$my_nas_name]['secret'] = $row['secret'];
                                $my_nas_list[$my_nas_name]['community'] = $row['community'];
index db10017..41c6db4 100644 (file)
@@ -22,7 +22,7 @@ if ($config[general_decode_normal_attributes] == 'yes'){
        $k = init_decoder();
        $decode_normal = 1;
 }
-require('../lib/functions.php3');
+require_once('../lib/functions.php3');
 require("../lib/$config[general_lib_type]/functions.php3");
 
 if (is_file("../lib/sql/drivers/$config[sql_type]/functions.php3"))
index c0cd1ce..8a630ee 100644 (file)
@@ -110,4 +110,14 @@ function check_defaults($val,$op,$def)
 
        return 0;
 }
+
+function check_ip($ipaddr) {
+    if(ereg("^([0-9]{1,3})\x2E([0-9]{1,3})\x2E([0-9]{1,3})\x2E([0-9]{1,3})$", $ipaddr,$digit)) {
+         if(($digit[1] <= 255) && ($digit[2] <= 255) && ($digit[3] <= 255) && ($digit[4] <= 255)) {
+        return(1);
+      }
+    }
+    return(0);
+  }
+
 ?>
index c7448d6..a7aa428 100644 (file)
@@ -1,5 +1,6 @@
 <?php
 require('../conf/config.php3');
+require_once('../lib/functions.php3');
 
 unset($da_name_cache);
 if (isset($_SESSION['da_name_cache']))
@@ -36,13 +37,16 @@ if ($config[sql_nas_table] != ''){
                                        $nas_list[$my_nas_name]['name'] = $my_nas_name;
                                        $nas_server = $da_name_cache[$my_nas_name];
                                        if (!isset($nas_server)){
-                                               $nas_server = @gethostbyname($nas_server);
+                                               if (!check_ip($my_nas_name))
+                                                       $nas_server = @gethostbyname($my_nas_name);
+                                               else
+                                                       $nas_server = $my_nas_name;
                                                if (!isset($da_name_cache) && $config[general_use_session] == 'yes'){
                                                        $da_name_cache[$my_nas_name] = $nas_server;
                                                        session_register('da_name_cache');
                                                }
                                        }
-                                       if ($nas_server != $my_nas_name)
+                                       if ($nas_server != $my_nas_name || check_ip($nas_server))
                                                $nas_list[$my_nas_name]['ip'] = $nas_server;
                                        $nas_list[$my_nas_name]['port_num'] = $row['ports'];
                                        $nas_list[$my_nas_name]['community'] = $row['community'];