31#include <gvm/util/compressutils.h>
32#include <gvm/util/kb.h>
39#define uint32 unsigned int
41#define NASL_EXIT_DEPRECATED 66
42#define NASL_EXIT_NOTVULN 99
51 retc->
x.
i_val = lrand48 ();
106 struct sockaddr_in addr;
113 bzero (&addr,
sizeof (addr));
117 retc->x.i_val = ntohs (addr.sin_port);
128 unsigned char buffer[1024];
130#define code buffer[1]
131#define option buffer[2]
138 nasl_perror (lexic,
"Syntax error in the telnet_init() function\n");
140 "Correct syntax is : output = telnet_init(<socket>)\n");
149 if ((
iac != 255) || (n <= 0) || (n != 3))
153 else if ((
code == 253) || (
code == 254))
177 nasl_perror (lexic,
"More than 100 options received by telnet_init() "
178 "function! exiting telnet_init.\n");
187 retc->
x.
str_val = g_malloc0 (n + 1);
188 memcpy (retc->
x.
str_val, buffer, n + 1);
267 bogus_data = g_strdup_printf (
269 if ((
nsend (soc, bogus_data, strlen (bogus_data), 0)) >= 0)
302 const char *
oid = lexic->
oid;
308 g_snprintf (detail,
sizeof (detail),
"HostDetails/NVT/%s/%s",
oid,
name);
325 while (lexic != NULL)
379 for (j = 0; j < a2->
max_idx; j++)
396 "nasl_make_list: undefined variable #%d skipped\n", i);
401 lexic,
"nasl_make_list: unhandled variable type 0x%x - skipped\n",
434 nasl_perror (lexic,
"make_array: odd number (%d) of argument?\n", vi);
456 nasl_perror (lexic,
"make_array: bad value type %d for arg #%d\n",
477 bzero (&myvar,
sizeof (myvar));
486 for (j = 0; j < a->
max_idx; j++)
506 nasl_perror (lexic,
"nasl_keys: bad variable #%d skipped\n", vi);
567 retc->
size = strlen (s);
582 nasl_perror (lexic,
"defined_func: missing parameter\n");
588 retc->
x.
i_val = (f != NULL);
620 nasl_perror (lexic,
"sort: this function is not reentrant!\n");
644 retc->
x.
i_val = time (NULL);
655 if (gettimeofday (&t, NULL) < 0)
657 nasl_perror (lexic,
"gettimeofday: %s\n", strerror (errno));
660 sprintf (str,
"%u.%06u", (
unsigned int) t.tv_sec, (
unsigned int) t.tv_usec);
662 retc->
size = strlen (str);
681 tictac = time (NULL);
687 if (gmtime_r (&tictac, &ptm) == NULL)
694 if (localtime_r (&tictac, &ptm) == NULL)
702 nasl_perror (lexic,
"localtime(%d,utc=%d): %s\n", tictac, utc,
709 memset (&v, 0,
sizeof (v));
720 v.
v.
v_int = ptm.tm_mon + 1;
722 v.
v.
v_int = ptm.tm_year + 1900;
726 v.
v.
v_int = ptm.tm_yday + 1;
748 if (tm.tm_year >= 1900)
753 tictac = mktime (&tm);
754 if (tictac == (time_t) (-1))
757 "mktime(sec=%02d min=%02d hour=%02d mday=%02d mon=%02d "
758 "year=%04d isdst=%d): %s\n",
759 tm.tm_sec, tm.tm_min, tm.tm_hour, tm.tm_mday, tm.tm_mon + 1,
760 tm.tm_year + 1900, tm.tm_isdst,
761 errno ? strerror (errno) :
"invalid value?");
765 retc->x.i_val = tictac;
773 int ret, type, forced_type = KB_TYPE_INT;
774 int timeout = 30, tcp = 0;
775 unsigned short port = 88, *port_aux = NULL;
782 if (!
hostname || type != KB_TYPE_STR)
786 &forced_type, NULL, 0);
792 if (port <= 0 || forced_type != KB_TYPE_INT)
796 tcp = GPOINTER_TO_SIZE (tcp_str);
798 if (tcp < 0 || type != KB_TYPE_INT)
819 void *data, *uncompressed;
820 unsigned long datalen, uncomplen;
829 uncompressed = gvm_uncompress (data, datalen, &uncomplen);
830 if (uncompressed == NULL)
834 retc->
size = uncomplen;
844 void *data, *compressed, *headerformat;
845 unsigned long datalen, complen;
855 if (!g_strcmp0 (headerformat,
"gzip"))
857 compressed = gvm_compress_gzipheader (data, datalen, &complen);
858 if (compressed == NULL)
863 compressed = gvm_compress (data, datalen, &complen);
864 if (compressed == NULL)
869 retc->
size = complen;
883 nasl_perror (lexic,
"Syntax : dec2str(num:<n>)\n");
886 char *ret = g_malloc0 (
sizeof (num));
890 retc->
size =
sizeof (num);
904 char *p = (
char *) &w;
Unix SMB/CIFS implementation. SMB Byte handling.
#define SIVAL(buf, pos, val)
long int cell_cmp(lex_ctxt *lexic, tree_cell *c1, tree_cell *c2)
int ftp_get_pasv_address(int soc, struct sockaddr_in *addr)
int ftp_log_in(int soc, char *username, char *passwd)
Header file for module ftp_funcs.
static struct timeval timeval(unsigned long val)
void nasl_perror(lex_ctxt *lexic, char *msg,...)
nasl_func * get_func_ref_by_name(lex_ctxt *ctxt, const char *name)
void dump_ctxt(lex_ctxt *c)
int get_var_type_by_num(lex_ctxt *, int)
Returns NASL variable/cell type, VAR2_UNDEF if value is NULL.
struct struct_lex_ctxt lex_ctxt
int get_var_size_by_name(lex_ctxt *, const char *)
char * get_str_var_by_name(lex_ctxt *, const char *)
char * get_str_var_by_num(lex_ctxt *, int)
long int get_int_var_by_num(lex_ctxt *, int, int)
long int get_int_var_by_name(lex_ctxt *, const char *, int)
tree_cell * nasl_telnet_init(lex_ctxt *lexic)
tree_cell * nasl_rand(lex_ctxt *lexic)
tree_cell * nasl_localtime(lex_ctxt *lexic)
static void simple_register_host_detail(lex_ctxt *lexic, char *name, char *value)
tree_cell * nasl_ftp_get_pasv_address(lex_ctxt *lexic)
tree_cell * nasl_unixtime(lex_ctxt *lexic)
tree_cell * nasl_make_list(lex_ctxt *lexic)
tree_cell * nasl_mktime(lex_ctxt *lexic)
tree_cell * nasl_dec2str(lex_ctxt *lexic)
tree_cell * nasl_sleep(lex_ctxt *lexic)
tree_cell * nasl_isnull(lex_ctxt *lexic)
tree_cell * nasl_dump_ctxt(lex_ctxt *lexic)
tree_cell * nasl_open_sock_kdc(lex_ctxt *lexic)
static int var_cmp(const void *a, const void *b)
tree_cell * nasl_gunzip(lex_ctxt *lexic)
tree_cell * nasl_defined_func(lex_ctxt *lexic)
tree_cell * nasl_keys(lex_ctxt *lexic)
tree_cell * nasl_do_exit(lex_ctxt *lexic)
#define NASL_EXIT_NOTVULN
tree_cell * nasl_typeof(lex_ctxt *lexic)
tree_cell * nasl_get_byte_order(lex_ctxt *lexic)
tree_cell * nasl_start_denial(lex_ctxt *lexic)
tree_cell * nasl_end_denial(lex_ctxt *lexic)
tree_cell * nasl_sort_array(lex_ctxt *lexic)
tree_cell * nasl_gzip(lex_ctxt *lexic)
tree_cell * nasl_ftp_log_in(lex_ctxt *lexic)
tree_cell * nasl_usleep(lex_ctxt *lexic)
tree_cell * nasl_max_index(lex_ctxt *lexic)
tree_cell * nasl_make_array(lex_ctxt *lexic)
static lex_ctxt * mylexic
tree_cell * nasl_gettimeofday(lex_ctxt *lexic)
tree_cell * nasl_tcp_ping(lex_ctxt *lexic)
Launches a âTCP pingâ against the target host.
void ref_cell(tree_cell *c)
tree_cell * alloc_typed_cell(int typ)
void deref_cell(tree_cell *c)
int add_var_to_array(nasl_array *a, char *name, const anon_nasl_var *v)
const char * var2str(anon_nasl_var *v)
anon_nasl_var * nasl_get_var_by_num(void *ctxt, nasl_array *a, int num, int create)
int array_max_index(nasl_array *a)
int add_var_to_list(nasl_array *a, int i, const anon_nasl_var *v)
tree_cell * var2cell(anon_nasl_var *v)
struct st_a_nasl_var anon_nasl_var
struct st_nasl_array nasl_array
struct st_n_nasl_var named_nasl_var
int open_sock_opt_hn(const char *hostname, unsigned int port, int type, int protocol, int timeout)
int nsend(int fd, void *data, int length, int i_opt)
int read_stream_connection_min(int fd, void *buf0, int min_len, int max_len)
int read_stream_connection(int fd, void *buf0, int len)
int write_stream_connection(int fd, void *buf0, int n)
int open_stream_connection(struct script_infos *args, unsigned int port, int transport, int timeout)
int close_stream_connection(int fd)
Header file for module network.
unsigned int plug_get_host_open_port(struct script_infos *desc)
const char * plug_current_vhost(void)
void plug_set_key(struct script_infos *args, char *name, int type, const void *value)
void * plug_get_key(struct script_infos *args, char *name, int *type, size_t *len, int single)
Get values from a kb under the given key name.
kb_t plug_get_kb(struct script_infos *args)
Header file for module plugutils.
union TC::@332262321161220155002104006201360276211317150140 x
union st_a_nasl_var::@154137074032032170165360023270032033276061363156 v
struct st_n_nasl_var * next_var
struct st_n_nasl_var ** hash_elt
struct st_a_nasl_var ** num_elt
struct script_infos * script_infos
struct struct_lex_ctxt * up_ctxt
int check_host_still_alive(kb_t, const char *)
Check if the hosts is still alive and set it as dead if not.
const gchar * vendor_version_get()
Get vendor version.
Header file: vendor version functions prototypes.