* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301 USA * * * On Debian GNU/Linux systems, the complete text of the GNU General * Public License can be found in `/usr/share/common-licenses/GPL-2'. * * Otherwise you can read it here: http://www.gnu.org/licenses/gpl-2.0.txt * */ require_once 'av_init.php'; Session::logcheck('environment-menu', 'PolicyHosts'); //CPE Types $_cpe_types = array('os' => 'o', 'hardware' => 'h', 'software' => 'a'); $_cpe = GET('q'); $_cpe_type = GET('cpe_type'); ossim_valid($_cpe, OSS_NULLABLE, OSS_ALPHA, OSS_PUNC_EXT, 'illegal:' . _('CPE')); ossim_valid($_cpe_type, 'os | software | hardware', 'illegal:' . _('CPE Type')); if (ossim_error() || !array_key_exists($_cpe_type, $_cpe_types)) { exit; } $db = new Ossim_db(); $conn = $db->connect(); $_cpe = escape_sql($_cpe, $conn); $filters = array('where' => "`cpe` LIKE 'cpe:/" . $_cpe_types[$_cpe_type] . "%' AND `line` LIKE '%{$_cpe}%'", 'limit' => 20); $software = new Software($conn, $filters); $db->close(); foreach ($software->get_software() as $cpe_info) { echo $cpe_info['cpe'] . '###' . $cpe_info['line'] . "\n"; } /* End of file search_cpe.php */
function software_list($conn, $page, $search, $search_all) { $filters = array(); $filters['limit'] = get_query_limits($page); if ($search != '') { $search = utf8_decode($search); $search = escape_sql($search, $conn); if ($search_all) { $filters['where'] = " software_cpe.line LIKE '%{$search}%' "; } else { $s_regexp = preg_replace('/\\s+/', '[_:]+', $search); $filters['where'] = " hs.cpe REGEXP '.*{$s_regexp}.*' "; } } try { if ($search_all) { $_software = new Software($conn, $filters, TRUE); $softwares = $_software->get_software(); $total = $_software->get_total(); } else { list($softwares, $total) = Asset_host_software::get_all($conn, $filters, TRUE); } } catch (Exception $e) { $return['error'] = TRUE; $return['msg'] = $e->getMessage(); return $return; } if ($total > 0) { $selected = get_selected_values(9); } $list = array(); //Going through the list to format the elements properly: foreach ($softwares as $cpe => $software) { $_chk = $selected[$cpe] != '' ? TRUE : FALSE; $name = empty($software['line']) ? $cpe : $software['line']; $_soft = array('id' => $cpe, 'name' => $name, 'checked' => $_chk); $list[$cpe] = $_soft; } $data['total'] = intval($total); $data['list'] = $list; $return['error'] = FALSE; $return['data'] = $data; return $return; }