OpenVAS Change Request #37: Make openvas-client depend on openvas-libraries
Status: Voted +6. Done. Released with openvas-client and openvas-libraries 3.0.0.Purpose
To avoid comprehensive code duplicates and associated maintenance work.
To allow code cleanup and removal of code redundancy.
References
Rationale
Currently openvas-client is independent of any other OpenVAS module. Since it shares some code base with the other modules, copies of various files from openvas-libraries are inside the openvas-client module.
As openvas-client deals with similar 'entities' (e.g. NVTs, reported issues) as openvas-server and openvas-libraries, there exist
- exact code duplicates (same files, e.g. every file in src/openvas-lib),
- nearly exact code duplicates or extracts (e.g. arglists, network related functions) and
- secondary, separate implementations of functionality (e.g. file- related functions, parsing),
Current developments (e.g. openvas-manager, logging facility) in the 2.1 series will likely introduce more general code that could and should be used by openvas-client.
Effects
For compilation or installation of OpenVAS-Client, presence of openvas-libraries will be a strict requirement.
Design and Implementation
Changes to openvas-client
- Change autoconf to strictly require openvas-libraries.
- Identify and remove affected files and code parts (see preliminary list below).
Changes to openvas-libraries
- For nearly exact code duplicates and separate implementations, changes from openvas-client have to be merged in and tested carefully.
Incomplete list of affected files in openvas-client
The files counterparts in libopenvas are given in braces.- openvas-client/libnessus/addslashes.* (openvas-libraries/libopenvas/plugutils.*)
- openvas-client/libnessus/arglists.* (openvas-libraries/libopenvas/arglists.*)
- openvas-client/libnessus/harglists.* (openvas-libraries/libopenvas/harglists.*)
- openvas-client/libnessus/hlst.* (openvas-libraries/libopenvas/hlst.*)
- openvas-client/libnessus/network.* (openvas-libraries/libopenvas/network.*)
- openvas-client/libnessus/rand.* (openvas-libraries/libopenvas/rand.*)
- openvas-client/libnessus/resolve.* (openvas-libraries/libopenvas/resolve.*)
- openvas-client/libnessus/system.* (openvas-libraries/libopenvas/system.*)
- openvas-client/include/libnessus.h
- openvas-client/src/hash_table_file.* (openvas-libraries/libopenvas/hash_table_file.*)
- openvas-client/src/openvas_certificates.* (openvas-libraries/libopenvas/openvas_certificates.*)
- openvas-client/src/openvas_certificate_file.* (openvas-libraries/libopenvas/openvas_certificate_file.*)
- openvas-client/src/openvas_ssh_login.* (openvas-libraries/libopenvas/openvas_ssh_login.*)
History
- 2010-01-06 Felix Wolfsteller <felix.wolfsteller@intevation.de>:
Updated status as done. - 2009-07-12 Felix Wolfsteller <felix.wolfsteller@intevation.de>:
Corrected typos found by Jan-Oliver Wagner and Matthew Mundell. - 2009-07-02 Felix Wolfsteller <felix.wolfsteller@intevation.de> and Jan-Oliver Wagner <jan-oliver.wagner@intevation.de>:
Enhanced structure and readability. - 2009-06-29 Felix Wolfsteller <felix.wolfsteller@intevation.de>:
Initial text.
English |
