OpenVAS Scanner 21.4.1
nasl_var.h
Go to the documentation of this file.
1/* Based on work Copyright (C) 2002 - 2003 Michel Arboi and Renaud Deraison
2 *
3 * SPDX-License-Identifier: GPL-2.0-only
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * version 2 as published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
17 */
18
19#ifndef NASL_VAR_H_INCLUDED
20#define NASL_VAR_H_INCLUDED
21
22#include "nasl_tree.h"
23
24enum
25{
31};
32
33#define VAR_NAME_HASH 17
34
35typedef struct st_nasl_string
36{
37 unsigned char *s_val;
38 int s_siz;
40
41struct st_a_nasl_var;
42
43typedef struct st_nasl_array
44{
45 int max_idx; /* max index - 1! */
46 struct st_a_nasl_var **num_elt; /* max_idx elements */
47 struct st_n_nasl_var **hash_elt; /* VAR_NAME_HASH elements */
49
50typedef struct st_a_nasl_var
51{
53#ifdef ALL_VARIABLES_NAMED
54 char *av_name;
55#endif
56 union
57 {
58 nasl_string_t v_str; /* character string / data */
59 long int v_int; /* integer */
60 nasl_array v_arr; /* array */
61 } v;
64
65typedef struct st_n_nasl_var
66{
68#ifndef ALL_VARIABLES_NAMED
69 char *var_name;
70#else
71#define var_name u.av_name
72#endif
73 struct st_n_nasl_var *next_var; /* next variable with same name hash */
75
76typedef struct
77{
78 nasl_array *a; /* array */
79 int i1; /* index of numbered elements */
80 int iH; /* index of hash */
81 named_nasl_var *v; /* current variable in hash */
83
86
87void
89
90const char *
92
94nasl_get_var_by_num (void *, nasl_array *, int, int);
95
98
101
102int
104
105int
106add_var_to_array (nasl_array *, char *, const anon_nasl_var *);
107
108int
110
111void
113
114tree_cell *
115copy_ref_array (const tree_cell *);
116
117int
118hash_str2 (const char *, int);
119
120tree_cell *
122
123tree_cell *
125
126char *
127array2str (const nasl_array *);
128
129#endif
struct st_a_nasl_var anon_nasl_var
int add_var_to_array(nasl_array *, char *, const anon_nasl_var *)
Definition: nasl_var.c:1286
struct st_nasl_array nasl_array
tree_cell * nasl_iterate_array(nasl_iterator *)
Definition: nasl_var.c:1214
tree_cell * make_array_from_elems(tree_cell *)
Definition: nasl_var.c:1332
int array_max_index(nasl_array *)
Definition: nasl_var.c:1311
void free_array(nasl_array *)
Definition: nasl_var.c:354
tree_cell * copy_ref_array(const tree_cell *)
Definition: nasl_var.c:549
char * array2str(const nasl_array *)
Definition: nasl_var.c:1004
struct st_nasl_string nasl_string_t
tree_cell * var2cell(anon_nasl_var *)
Definition: nasl_var.c:183
void clear_unnamed_var(anon_nasl_var *)
tree_cell * nasl_affect(tree_cell *, tree_cell *)
Definition: nasl_var.c:712
int add_var_to_list(nasl_array *, int, const anon_nasl_var *)
Definition: nasl_var.c:1254
anon_nasl_var * nasl_get_var_by_num(void *, nasl_array *, int, int)
Definition: nasl_var.c:58
nasl_iterator nasl_array_iterator(void *, tree_cell *)
Definition: nasl_var.c:1178
int hash_str2(const char *, int)
Definition: nasl_var.c:38
const char * var2str(anon_nasl_var *)
Definition: nasl_var.c:1076
@ VAR2_STRING
Definition: nasl_var.h:28
@ VAR2_DATA
Definition: nasl_var.h:29
@ VAR2_ARRAY
Definition: nasl_var.h:30
@ VAR2_INT
Definition: nasl_var.h:27
@ VAR2_UNDEF
Definition: nasl_var.h:26
struct st_n_nasl_var named_nasl_var
Definition: nasl_tree.h:105
Definition: nasl_var.h:77
named_nasl_var * v
Definition: nasl_var.h:81
nasl_array * a
Definition: nasl_var.h:78
int iH
Definition: nasl_var.h:80
int i1
Definition: nasl_var.h:79
Definition: nasl_var.h:51
nasl_string_t v_str
Definition: nasl_var.h:58
char * string_form
Definition: nasl_var.h:62
nasl_array v_arr
Definition: nasl_var.h:60
int var_type
Definition: nasl_var.h:52
long int v_int
Definition: nasl_var.h:59
union st_a_nasl_var::@5 v
Definition: nasl_var.h:66
char * var_name
Definition: nasl_var.h:69
struct st_n_nasl_var * next_var
Definition: nasl_var.h:73
struct st_a_nasl_var u
Definition: nasl_var.h:67
Definition: nasl_var.h:44
struct st_n_nasl_var ** hash_elt
Definition: nasl_var.h:47
struct st_a_nasl_var ** num_elt
Definition: nasl_var.h:46
int max_idx
Definition: nasl_var.h:45
Definition: nasl_var.h:36
unsigned char * s_val
Definition: nasl_var.h:37
int s_siz
Definition: nasl_var.h:38