[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