OpenVAS Scanner 23.32.3
nasl_debug.h File Reference
#include "nasl_lex_ctxt.h"
Include dependency graph for nasl_debug.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void nasl_perror (lex_ctxt *, char *,...)
void nasl_trace (lex_ctxt *, char *,...)
 Prints debug message in printf fashion to nasl_trace_fp if it exists.
int nasl_trace_enabled (void)
 Checks if the nasl_trace_fp is set.
const char * nasl_get_plugin_filename (void)
 Get the current launched plugin filename.
void nasl_set_plugin_filename (const char *)
 Set the current launched plugin filename.
void nasl_set_filename (const char *)
void nasl_set_function_filename (const char *)
const char * nasl_get_filename (const char *)
void nasl_set_function_name (const char *)
int nasl_get_include_order (const char *)
const char * nasl_get_function_name (void)

Function Documentation

◆ nasl_get_filename()

const char * nasl_get_filename ( const char * function)

Definition at line 54 of file nasl_debug.c.

55{
56 char *ret = NULL;
57
58 if (functions_filenames && function)
59 ret = g_hash_table_lookup (functions_filenames, function);
60 return ret ? ret : debug_filename;
61}
static char * debug_filename
Definition nasl_debug.c:24
static GHashTable * functions_filenames
Definition nasl_debug.c:28

References debug_filename, and functions_filenames.

Referenced by check_description_block_xref(), nasl_func_call(), nasl_lint(), nasl_lint_call(), nasl_lint_def(), and yyparse().

Here is the caller graph for this function:

◆ nasl_get_function_name()

const char * nasl_get_function_name ( void )

◆ nasl_get_include_order()

int nasl_get_include_order ( const char * c)

Definition at line 2812 of file nasl_grammar.tab.c.

2813{
2814 tree_cell *ctx;
2815 if (!includes_hash)
2816 return -2;
2817
2818 if ((ctx = g_hash_table_lookup (includes_hash, c))) {
2819 return ctx->include_order;
2820 }
2821 return -1;
2822}
GHashTable * includes_hash
struct TC tree_cell
int include_order
Definition nasl_tree.h:100

References TC::include_order, and includes_hash.

Referenced by check_called_files(), and nasl_lint_call().

Here is the caller graph for this function:

◆ nasl_get_plugin_filename()

const char * nasl_get_plugin_filename ( void )

Get the current launched plugin filename.

Returns
Filename of the current running plugin.

Definition at line 36 of file nasl_debug.c.

37{
39}
static char debug_plugin_filename[PATH_MAX]
Definition nasl_debug.c:26

References debug_plugin_filename.

Referenced by exec_ssh_cmd(), nasl_sftp_enabled_check(), nasl_ssh_connect(), nasl_ssh_request_exec(), nasl_ssh_set_login(), nasl_ssh_shell_open(), nasl_ssh_shell_write(), print_pcap_error(), read_stream_connection_unbuffered(), socket_negotiate_ssl(), and write_stream_connection4().

Here is the caller graph for this function:

◆ nasl_perror()

void nasl_perror ( lex_ctxt * lexic,
char * msg,
... )

Definition at line 105 of file nasl_debug.c.

106{
107 va_list param;
108 gchar debug_message[4096];
109 gchar *final_message;
110 char *script_name = "";
111 lex_ctxt *lexic2 = NULL;
112 int line_nb = 0;
113 va_start (param, msg);
114
115 if (lexic != NULL)
116 {
117 script_name = lexic->script_infos->name;
118 if (script_name == NULL)
119 script_name = "";
120
121 /* Climbing up to find a line number */
122 for (lexic2 = lexic; lexic2 != NULL; lexic2 = lexic2->up_ctxt)
123 {
124 if (lexic2->line_nb != 0)
125 {
126 line_nb = lexic2->line_nb;
127 break;
128 }
129 }
130 }
131
132 g_vsnprintf (debug_message, sizeof (debug_message), msg, param);
133 if ((debug_funname != NULL) && (g_strcmp0 (debug_funname, "") != 0))
134 final_message = g_strconcat ("In function '", debug_funname,
135 "()': ", debug_message, NULL);
136 else
137 final_message = g_strdup (debug_message);
138
139 if (g_strcmp0 (debug_filename, script_name) == 0)
140 g_message ("[%d](%s:%d) %s", getpid (), script_name, line_nb,
141 final_message);
142 else
143 g_message ("[%d](%s)(%s:%d) %s", getpid (), script_name, debug_filename,
144 line_nb, final_message);
145 g_free (final_message);
146 va_end (param);
147}
struct struct_lex_ctxt lex_ctxt
tree_cell * script_name(lex_ctxt *lexic)
char * name
Definition scanneraux.h:35
struct script_infos * script_infos
struct struct_lex_ctxt * up_ctxt

References debug_filename, debug_funname, struct_lex_ctxt::line_nb, script_infos::name, struct_lex_ctxt::script_infos, script_name(), and struct_lex_ctxt::up_ctxt.

Referenced by __attribute__(), _http2_req(), _http_req(), add_hostname(), add_named_var_to_ctxt(), add_numbered_var_to_ctxt(), add_var_to_list(), affect_to_anon_var(), alloc_RE_cell(), cell2int3(), cell_cmp(), copy_anon_var(), copy_array(), crypt_data(), decl_local_variables(), decl_nasl_func(), encrypt_stream_data(), forge_icmp_packet(), forge_icmp_v6_packet(), forge_igmp_packet(), forge_igmp_v6_packet(), forge_ip_packet(), forge_tcp_packet(), forge_tcp_v6_packet(), forge_udp_packet(), forge_udp_v6_packet(), get_array_elem(), get_icmp_element(), get_icmp_v6_element(), get_ip_element(), get_ip_v6_element(), get_kb_list(), get_tcp_element(), get_tcp_option(), get_tcp_v6_element(), get_tcp_v6_option(), get_udp_element(), get_udp_v6_element(), get_var_ref_by_num(), host_reverse_lookup(), init_nasl_library(), insert_ip_options(), insert_nasl_func(), insert_tcp_options(), insert_tcp_v6_options(), make_array_from_elems(), mpi_from_string(), mylex(), nasl_affect(), nasl_array_iterator(), nasl_bf_cbc(), nasl_close_socket(), nasl_crap(), nasl_dec2str(), nasl_defined_func(), nasl_dsa_do_sign(), nasl_dump_frame(), nasl_egrep(), nasl_ereg(), nasl_ereg_replace(), nasl_eregmatch(), nasl_exec(), nasl_file_close(), nasl_file_open(), nasl_file_read(), nasl_file_seek(), nasl_file_stat(), nasl_file_write(), nasl_find_in_path(), nasl_forge_frame(), nasl_fread(), nasl_func_call(), nasl_fwrite(), nasl_gcrypt_hash(), nasl_get_mtu(), nasl_get_preference(), nasl_get_sign(), nasl_get_sock_info(), nasl_get_source_port(), nasl_get_tmp_dir(), nasl_get_var_by_num(), nasl_gettimeofday(), nasl_hmac_sha256(), nasl_http2_get_response_code(), nasl_http2_set_custom_header(), nasl_incr_variable(), nasl_insert_hexzeros(), nasl_insstr(), nasl_join_multicast_group(), nasl_keyexchg(), nasl_keys(), nasl_leave_multicast_group(), nasl_lint_call(), nasl_lint_defvar(), nasl_lm_owf_gen(), nasl_localtime(), nasl_mac(), nasl_make_array(), nasl_make_list(), nasl_match(), nasl_mktime(), nasl_nt_owf_gen(), nasl_ntlm2_response(), nasl_ntlm_response(), nasl_ntlmv1_hash(), nasl_ntlmv2_hash(), nasl_ntlmv2_response(), nasl_ntv2_owf_gen(), nasl_open_privileged_socket(), nasl_open_sock_tcp_bufsz(), nasl_open_stream_cipher(), nasl_ord(), nasl_pcap_next(), nasl_pread(), nasl_prf(), nasl_rawstring(), nasl_read_var_ref(), nasl_recv_line(), nasl_rsa_private_decrypt(), nasl_rsa_public_encrypt(), nasl_same_host(), nasl_scanner_get_port(), nasl_send(), nasl_send_capture(), nasl_send_frame(), nasl_send_packet(), nasl_send_v6packet(), nasl_smb3kdf(), nasl_smb_sign(), nasl_socket_cert_verify(), nasl_socket_check_ssl_safe_renegotiation(), nasl_socket_get_cert(), nasl_socket_get_ssl_session_id(), nasl_socket_negotiate_ssl(), nasl_socket_ssl_do_handshake(), nasl_sort_array(), nasl_split(), nasl_str_replace(), nasl_stridx(), nasl_string(), nasl_substr(), nasl_target_is_ipv6(), nasl_telnet_init(), nasl_unlink(), print_gcrypt_error(), print_gpgme_error(), print_tls_error(), print_uncall_files(), ref_cell(), replace_kb_item(), resolve_hostname(), resolve_hostname_to_multiple_ips(), script_add_preference(), script_category(), script_dependencies(), script_exclude_keys(), script_get_preference(), script_get_preference_file_content(), script_get_preference_file_location(), script_mandatory_keys(), script_require_keys(), script_tag(), script_xref(), security_notus(), set_ip_elements(), set_ip_v6_elements(), set_kb_item(), set_kb_item_volatile(), set_tcp_elements(), set_tcp_v6_elements(), set_udp_elements(), set_udp_v6_elements(), validate_script_xref(), verify_cipher_id(), verify_session_id(), and yyparse().

Here is the call graph for this function:

◆ nasl_set_filename()

void nasl_set_filename ( const char * filename)

Definition at line 82 of file nasl_debug.c.

83{
84 assert (filename);
85
86 if (filename == debug_filename)
87 return;
88 g_free (debug_filename);
89 debug_filename = g_strdup (filename);
90}

References debug_filename.

Referenced by exec_nasl_script(), init_nasl_ctx(), nasl_func_call(), nasl_lint_call(), nasl_lint_def(), and yyparse().

Here is the caller graph for this function:

◆ nasl_set_function_filename()

void nasl_set_function_filename ( const char * function)

Definition at line 93 of file nasl_debug.c.

94{
95 assert (function);
96
99 g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
100 g_hash_table_insert (functions_filenames, g_strdup (function),
101 g_strdup (debug_filename));
102}

References debug_filename, and functions_filenames.

Referenced by yyparse().

Here is the caller graph for this function:

◆ nasl_set_function_name()

void nasl_set_function_name ( const char * funname)

Definition at line 67 of file nasl_debug.c.

68{
69 if (funname == debug_funname)
70 return;
71 g_free (debug_funname);
72 debug_funname = g_strdup (funname);
73}

References debug_funname.

Referenced by nasl_func_call().

Here is the caller graph for this function:

◆ nasl_set_plugin_filename()

void nasl_set_plugin_filename ( const char * filename)

Set the current launched plugin filename.

Parameters
[in]filenameFilename of the current plugin.

Definition at line 47 of file nasl_debug.c.

48{
49 strncpy (debug_plugin_filename, filename, sizeof (debug_plugin_filename));
50 debug_plugin_filename[PATH_MAX - 1] = '\0';
51}

References debug_plugin_filename.

Referenced by exec_nasl_script().

Here is the caller graph for this function:

◆ nasl_trace()

void nasl_trace ( lex_ctxt * lexic,
char * msg,
... )

Prints debug message in printf fashion to nasl_trace_fp if it exists.

Like nasl_perror, but to the nasl_trace_fp.

Definition at line 169 of file nasl_debug.c.

170{
171 va_list param;
172 char debug_message[4096];
173 char *script_name = "", *p;
174
175 if (nasl_trace_fp == NULL)
176 return;
177 va_start (param, msg);
178
179 if (lexic != NULL)
180 {
181 script_name = lexic->script_infos->name;
182 if (script_name == NULL)
183 script_name = "";
184 }
185
186 vsnprintf (debug_message, sizeof (debug_message), msg, param);
187 for (p = debug_message; *p != '\0'; p++)
188 ;
189 if (p == debug_message || p[-1] != '\n')
190 fprintf (nasl_trace_fp, "[%d](%s) %s\n", getpid (), script_name,
191 debug_message);
192 else
193 fprintf (nasl_trace_fp, "[%d](%s) %s", getpid (), script_name,
194 debug_message);
195
196 va_end (param);
197}
FILE * nasl_trace_fp
Definition exec.c:357

References script_infos::name, nasl_trace_fp, struct_lex_ctxt::script_infos, and script_name().

Referenced by affect_to_anon_var(), examine_signatures(), nasl_func_call(), nasl_read_var_ref(), and nasl_verify_signature().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ nasl_trace_enabled()

int nasl_trace_enabled ( void )

Checks if the nasl_trace_fp is set.

Returns
0 if nasl_trace_fp == NULL, 1 otherwise.

Definition at line 155 of file nasl_debug.c.

156{
157 if (nasl_trace_fp == NULL)
158 return 0;
159 else
160 return 1;
161}

References nasl_trace_fp.

Referenced by affect_to_anon_var(), examine_signatures(), nasl_func_call(), and nasl_read_var_ref().

Here is the caller graph for this function: