OpenVAS Libraries  6.0+beta5
arglists.h
Go to the documentation of this file.
1 /* OpenVAS
2  * $Id$
3  * Description: Header file for module arglists.
4  *
5  * Authors:
6  * Renaud Deraison <deraison@nessus.org> (Original pre-fork development)
7  *
8  * Copyright:
9  * Based on work Copyright (C) 1998 - 2007 Tenable Network Security, Inc.
10  *
11  * This library is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU Library General Public
13  * License as published by the Free Software Foundation; either
14  * version 2 of the License, or (at your option) any later version.
15  *
16  * This library is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19  * Library General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software
23  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
24  */
25 
26 #ifndef OPENVAS_ARGLISTS_H
27 #define OPENVAS_ARGLISTS_H
28 
29 struct arglist
30 {
31  char *name;
32  int type;
33  void *value;
34  long length;
35  struct arglist *next;
36  int hash;
37 };
38 
47 struct name_cache
48 {
49  char *name;
51  struct name_cache *next;
52  struct name_cache *prev;
53 };
54 
55 #define ARG_STRING 1
56 #define ARG_PTR 2
57 #define ARG_INT 3
58 #define ARG_ARGLIST 4
59 #define ARG_STRUCT 5
60 
61 char *cache_inc (const char *name);
62 void cache_dec (const char *name);
63 
64 void arg_add_value_at_head (struct arglist *arglst, const char *name, int type,
65  long length, void *value);
66 void arg_add_value (struct arglist *, const char *, int, long, void *);
67 int arg_set_value (struct arglist *, const char *, long, void *);
68 int arg_set_type (struct arglist *, const char *, int);
69 void *arg_get_value (struct arglist *, const char *);
70 int arg_get_length (struct arglist *, const char *);
71 int arg_get_type (struct arglist *, const char *);
72 void arg_dump (struct arglist *, int);
73 void arg_dup (struct arglist *, struct arglist *);
74 void arg_free (struct arglist *);
75 void arg_free_all (struct arglist *);
76 void arg_free_name (char *);
77 void arg_del_value (struct arglist *, const char *name);
78 
79 struct arglist * str2arglist (char *str);
80 
81 #endif /* OPENVAS_ARGLISTS_H */