OpenVAS Scanner  7.0.1~git
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. More...
 
int nasl_trace_enabled (void)
 Checks if the nasl_trace_fp is set. More...
 
const char * nasl_get_plugin_filename (void)
 Get the current launched plugin filename. More...
 
void nasl_set_plugin_filename (const char *)
 Set the current launched plugin filename. More...
 
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 *)
 
const char * nasl_get_function_name (void)
 

Function Documentation

◆ nasl_get_filename()

const char* nasl_get_filename ( const char *  )

Definition at line 69 of file nasl_debug.c.

References debug_filename, and functions_filenames.

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

70 {
71  char *ret = NULL;
72 
73  if (functions_filenames && function)
74  ret = g_hash_table_lookup (functions_filenames, function);
75  return ret ?: debug_filename;
76 }
static char * debug_filename
Definition: nasl_debug.c:40
static GHashTable * functions_filenames
Definition: nasl_debug.c:44
Here is the caller graph for this function:

◆ nasl_get_function_name()

const char* nasl_get_function_name ( void  )

Definition at line 91 of file nasl_debug.c.

References debug_funname.

Referenced by exec_ssh_cmd(), nasl_func_call(), nasl_ssh_connect(), nasl_ssh_request_exec(), nasl_ssh_set_login(), nasl_ssh_shell_open(), nasl_ssh_shell_write(), read_stream_connection_unbuffered(), and write_stream_connection4().

92 {
93  return debug_funname;
94 }
static char * debug_funname
Definition: nasl_debug.c:41
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 52 of file nasl_debug.c.

References debug_plugin_filename.

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

53 {
54  return debug_plugin_filename;
55 }
static char debug_plugin_filename[PATH_MAX]
Definition: nasl_debug.c:42
Here is the caller graph for this function:

◆ nasl_perror()

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

Definition at line 120 of file nasl_debug.c.

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 _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(), decl_local_variables(), decl_nasl_func(), encrypt_data(), encrypt_stream_data(), forge_icmp_packet(), forge_icmp_v6_packet(), forge_tcp_packet(), forge_tcp_v6_packet(), get_array_elem(), get_ip_element(), get_ipv6_element(), get_kb_list(), get_tcp_element(), get_tcp_v6_element(), get_var_ref_by_num(), init_nasl_library(), insert_ip_options(), insert_ipv6_options(), insert_nasl_func(), 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_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_fread(), nasl_func_call(), nasl_fwrite(), nasl_gcrypt_hash(), nasl_get_preference(), nasl_get_sign(), nasl_get_smb2_sign(), nasl_get_sock_info(), nasl_get_source_port(), nasl_get_tmp_dir(), nasl_get_var_by_num(), nasl_gettimeofday(), nasl_hmac_sha256(), 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_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_packet(), nasl_send_v6packet(), nasl_socket_cert_verify(), nasl_socket_get_cert(), nasl_socket_get_ssl_session_id(), nasl_socket_negotiate_ssl(), 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(), 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(), set_ip_elements(), set_ipv6_elements(), set_kb_item(), set_tcp_elements(), set_tcp_v6_elements(), verify_cipher_id(), verify_session_id(), and yyparse().

121 {
122  va_list param;
123  gchar debug_message[4096];
124  gchar *final_message;
125  char *script_name = "";
126  lex_ctxt *lexic2 = NULL;
127  int line_nb = 0;
128  va_start (param, msg);
129 
130  if (lexic != NULL)
131  {
132  script_name = lexic->script_infos->name;
133  if (script_name == NULL)
134  script_name = "";
135 
136  /* Climbing up to find a line number */
137  for (lexic2 = lexic; lexic2 != NULL; lexic2 = lexic2->up_ctxt)
138  {
139  if (lexic2->line_nb != 0)
140  {
141  line_nb = lexic2->line_nb;
142  break;
143  }
144  }
145  }
146 
147  g_vsnprintf (debug_message, sizeof (debug_message), msg, param);
148  if ((debug_funname != NULL) && (g_strcmp0 (debug_funname, "") != 0))
149  final_message = g_strconcat ("In function '", debug_funname,
150  "()': ", debug_message, NULL);
151  else
152  final_message = g_strdup (debug_message);
153 
154  if (g_strcmp0 (debug_filename, script_name) == 0)
155  g_message ("[%d](%s:%d) %s", getpid (), script_name, line_nb,
156  final_message);
157  else
158  g_message ("[%d](%s)(%s:%d) %s", getpid (), script_name, debug_filename,
159  line_nb, final_message);
160  g_free (final_message);
161  va_end (param);
162 }
static char * debug_funname
Definition: nasl_debug.c:41
tree_cell * script_name(lex_ctxt *lexic)
static char * debug_filename
Definition: nasl_debug.c:40
struct struct_lex_ctxt * up_ctxt
Definition: nasl_lex_ctxt.h:35
Here is the call graph for this function:

◆ nasl_set_filename()

void nasl_set_filename ( const char *  )

Definition at line 97 of file nasl_debug.c.

References debug_filename.

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

98 {
99  assert (filename);
100 
101  if (filename == debug_filename)
102  return;
103  g_free (debug_filename);
104  debug_filename = g_strdup (filename);
105 }
static char * debug_filename
Definition: nasl_debug.c:40
Here is the caller graph for this function:

◆ nasl_set_function_filename()

void nasl_set_function_filename ( const char *  )

Definition at line 108 of file nasl_debug.c.

References debug_filename, and functions_filenames.

Referenced by yyparse().

109 {
110  assert (function);
111 
112  if (!functions_filenames)
114  g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
115  g_hash_table_insert (functions_filenames, g_strdup (function),
116  g_strdup (debug_filename));
117 }
static char * debug_filename
Definition: nasl_debug.c:40
static GHashTable * functions_filenames
Definition: nasl_debug.c:44
Here is the caller graph for this function:

◆ nasl_set_function_name()

void nasl_set_function_name ( const char *  )

Definition at line 82 of file nasl_debug.c.

References debug_funname.

Referenced by nasl_func_call().

83 {
84  if (funname == debug_funname)
85  return;
86  g_free (debug_funname);
87  debug_funname = g_strdup (funname);
88 }
static char * debug_funname
Definition: nasl_debug.c:41
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 63 of file nasl_debug.c.

References debug_plugin_filename.

Referenced by exec_nasl_script().

64 {
65  strncpy (debug_plugin_filename, filename, sizeof (debug_plugin_filename));
66 }
static char debug_plugin_filename[PATH_MAX]
Definition: nasl_debug.c:42
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 184 of file nasl_debug.c.

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().

185 {
186  va_list param;
187  char debug_message[4096];
188  char *script_name = "", *p;
189 
190  if (nasl_trace_fp == NULL)
191  return;
192  va_start (param, msg);
193 
194  if (lexic != NULL)
195  {
196  script_name = lexic->script_infos->name;
197  if (script_name == NULL)
198  script_name = "";
199  }
200 
201  vsnprintf (debug_message, sizeof (debug_message), msg, param);
202  for (p = debug_message; *p != '\0'; p++)
203  ;
204  if (p == debug_message || p[-1] != '\n')
205  fprintf (nasl_trace_fp, "[%d](%s) %s\n", getpid (), script_name,
206  debug_message);
207  else
208  fprintf (nasl_trace_fp, "[%d](%s) %s", getpid (), script_name,
209  debug_message);
210 
211  va_end (param);
212 }
FILE * nasl_trace_fp
Definition: exec.c:368
char * name
Definition: scanneraux.h:49
struct script_infos * script_infos
Definition: nasl_lex_ctxt.h:41
tree_cell * script_name(lex_ctxt *lexic)
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 170 of file nasl_debug.c.

References nasl_trace_fp.

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

171 {
172  if (nasl_trace_fp == NULL)
173  return 0;
174  else
175  return 1;
176 }
FILE * nasl_trace_fp
Definition: exec.c:368
Here is the caller graph for this function: