[Openvas-commits] r1523 - in trunk/openvas-plugins: . scripts

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Sun Oct 12 23:08:07 CEST 2008


Author: ckm
Date: 2008-10-12 23:08:05 +0200 (Sun, 12 Oct 2008)
New Revision: 1523

Modified:
   trunk/openvas-plugins/ChangeLog
   trunk/openvas-plugins/scripts/version_func.inc
Log:
        * scripts/version_func.inc: changed function find_file
        to improve performance, case insensitive search.
        Socket can be passed to functions  to avoid multiple
        connections to target host.
        Changed find_bin function using case insensitive search.



Modified: trunk/openvas-plugins/ChangeLog
===================================================================
--- trunk/openvas-plugins/ChangeLog	2008-10-12 20:38:34 UTC (rev 1522)
+++ trunk/openvas-plugins/ChangeLog	2008-10-12 21:08:05 UTC (rev 1523)
@@ -1,3 +1,11 @@
+2008-10-12  Carsten Koch-Mauthe <c.koch-mauthe at dn-systems.de>.
+
+	* scripts/version_func.inc: changed function find_file
+        to improve performance, case insensitive search.
+        Socket can be passed to functions  to avoid multiple 
+        connections to target host. 
+        Changed find_bin function using case insensitive search.
+
 2008-10-12  Tim Brown <timb at nth-dimension.org.uk>
 
 	* scripts/aix_maintenance_level.nasl,

Modified: trunk/openvas-plugins/scripts/version_func.inc
===================================================================
--- trunk/openvas-plugins/scripts/version_func.inc	2008-10-12 20:38:34 UTC (rev 1522)
+++ trunk/openvas-plugins/scripts/version_func.inc	2008-10-12 21:08:05 UTC (rev 1523)
@@ -3,28 +3,29 @@
 #
 # This script is released under the GNU GPLv2
 #
-# $Revision: 8 $
+# $Revision: 9 $
 
 # XXX: the version tests should be eventually consolidated with
 # the methods from revisions-lib.inc.
 
 include("ssh_func.inc");
 
-function find_bin(prog_name) {
-  local_var r, whe, whi, sock;
+function find_bin(prog_name, sock) {
+  local_var r, whe, whi;
   whe = "";
   whi = "";
   if (islocalhost()) {
-     r = split(pread(cmd:"locate", argv:make_list("locate", "*bin/"+prog_name)) );
+     r = split(pread(cmd:"locate", argv:make_list("locate", "-i", "*bin/"+prog_name)) );
      whe = pread(cmd: "whereis", argv:make_list("whereis", "-b", prog_name));
      whi = pread(cmd:"which", argv:make_list("which", "-a", prog_name));
   } else {
-      sock = ssh_login_or_reuse_connection();
-      if (sock) {
-        r = split(ssh_cmd(socket:sock, cmd:"locate *bin/"+prog_name, timeout:60));
+      if(! sock) {
+        sock = ssh_login_or_reuse_connection();
+      }
+      if(sock) {
+        r = split(ssh_cmd(socket:sock, cmd:"locate -i *bin/"+prog_name, timeout:60));
         whe = ssh_cmd(socket:sock, cmd:"whereis -b "+prog_name, timeout:60);
         whi = ssh_cmd(socket:sock, cmd:"which -a "+prog_name, timeout:60);
-        ssh_close_connection();
       } else {
          r = NULL;
       }
@@ -46,24 +47,33 @@
   return (r);
 }
 
-function find_file(file_name, file_path) {
-  local_var r, f, sock, fname;
+function find_file(file_name, file_path, useregex, regexpar, sock ) {
+  local_var r, f, fname, lparam;
 
   r = NULL;
+  if( useregex ) {
+    lparam = "-ir";
+  } else {
+    lparam = "-i";
+  }
   if (islocalhost()) {
-     r = split(pread(cmd:"locate", argv:make_list("locate", file_path+file_name)) );
+     r = split(pread(cmd:"locate", argv:make_list("locate", lparam, file_path+file_name+regexpar )) );
      if(! isnull(file_path) ) {
-       f = split(pread(cmd:"find", argv:make_list("find", file_path , "-name",  file_name, "-type", "f")));
+       f = split(pread(cmd:"find", argv:make_list("find", file_path , "-maxdepth", "7",
+                           "-mindepth", "1", "-name",  file_name, "-type", "f")));
      }
   } else {
-      sock = ssh_login_or_reuse_connection();
-      if (sock) {
-        r = split(ssh_cmd(socket:sock, cmd:"locate "+raw_string(0x22)+file_path+file_name+raw_string(0x22), timeout:60));
+      if(! sock) {
+        sock = ssh_login_or_reuse_connection();
+      }
+      if(sock) {
+        r = split(ssh_cmd(socket:sock, cmd:"locate "+lparam+" "+raw_string(0x22)+file_path+file_name+
+                                            regexpar+raw_string(0x22), timeout:60));
         if(!isnull(file_path) ) {
           f = split(ssh_cmd(socket:sock, cmd:"find "+raw_string(0x22)+file_path+raw_string(0x22)+
-                                             " -name "+raw_string(0x22)+file_name+raw_string(0x22)+" -type f"));
+                                             " -maxdepth 7 -mindepth 1"+" -name "+raw_string(0x22)+
+                                             file_name+raw_string(0x22)+" -type f", timeout:60));
         }
-        ssh_close_connection();
       } 
   }
   fname = ereg_replace(pattern:"\*.+", string:file_name, replace:"");
@@ -77,17 +87,18 @@
   return (r);
 }
 
-function get_bin_version(full_prog_name, version_argv, ver_pattern) {
-  local_var loc_version, r, sock, report;
+function get_bin_version(full_prog_name, version_argv, ver_pattern, sock) {
+  local_var loc_version, r, report;
 
   if (islocalhost()) {
      r = pread(cmd:full_prog_name, argv:make_list(full_prog_name, version_argv) );
   } else {
-     sock = ssh_login_or_reuse_connection();
-     if (sock) {
-        r = ssh_cmd(socket:sock, cmd:full_prog_name +" "+version_argv, timeout:60);
-        ssh_close_connection();
-      }
+     if(! sock) {
+       sock = ssh_login_or_reuse_connection();
+     }
+     if(sock) {
+       r = ssh_cmd(socket:sock, cmd:full_prog_name +" "+version_argv, timeout:60);
+     }
   }
   loc_version = eregmatch(pattern:ver_pattern, string:r);
   if(loc_version != NULL) loc_version[max_index(loc_version)] = r;



More information about the Openvas-commits mailing list