22#include <gvm/base/prefs.h>
23#include <gvm/util/kb.h>
30#define G_LOG_DOMAIN "lib nasl"
52 ret = g_strdup (
name);
54 ret = g_strdup_printf (
"%s/%s", path,
name);
56 g_debug (
"Request => %s", ret);
57 ret2 = g_strdup_printf (
"%s %s %s", method, ret, httpver);
66 char *request, *auth, tmp[32];
74 if (item == NULL || port < 0)
77 "Error : http_* functions have the following syntax :\n");
78 nasl_perror (lexic,
"http_*(port:<port>, item:<item> [, data:<data>]\n");
82 if (port <= 0 || port > 65535)
84 nasl_perror (lexic,
"http_req: invalid value %d for port parameter\n",
91 g_snprintf (tmp,
sizeof (tmp),
"http/%d", port);
92 ver = kb_item_get_int (kb, tmp);
94 if ((ver <= 0) || (ver == 11))
96 char *
hostname, *ua, *hostheader, *url;
105 g_message (
"Not possible to send the User Agent to the host process. "
106 "Invalid IPC context");
115 if (port == 80 || port == 443)
118 hostheader = g_strdup_printf (
"%s:%d",
hostname, port);
121 request = g_strdup_printf (
"%s\r\n\
122Connection: Close\r\n\
125Cache-Control: no-cache\r\n\
127Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*\r\n\
128Accept-Language: en\r\n\
129Accept-Charset: iso-8859-1,*,utf-8\r\n",
130 url, hostheader, ua);
139 g_snprintf (tmp,
sizeof (tmp),
"/tmp/http/auth/%d", port);
140 auth = kb_item_get_str (kb, tmp);
142 auth = kb_item_get_str (kb,
"http/auth");
146 char *authntmp = g_strconcat (request, auth,
"\r\n", NULL);
153 char content_length[128], *data_tmp;
155 g_snprintf (content_length,
sizeof (content_length),
156 "Content-Length: %zu\r\n\r\n", strlen (data));
157 data_tmp = g_strconcat (request, content_length, data, NULL);
163 char *no_data_tmp = g_strconcat (request,
"\r\n", NULL);
165 request = no_data_tmp;
169 retc->
size = strlen (request);
231 const char *path = prefs_get (
"cgi_path");
236 path =
"/cgi-bin:/scripts";
239 retc->
size = strlen (path);
void nasl_perror(lex_ctxt *lexic, char *msg,...)
tree_cell * http_close_socket(lex_ctxt *lexic)
tree_cell * http_head(lex_ctxt *lexic)
static tree_cell * _http_req(lex_ctxt *lexic, char *keyword)
tree_cell * http_put(lex_ctxt *lexic)
tree_cell * http_open_socket(lex_ctxt *lexic)
tree_cell * cgibin(lex_ctxt *lexic)
tree_cell * http_get(lex_ctxt *lexic)
tree_cell * http_delete(lex_ctxt *lexic)
static char * build_encode_URL(char *method, char *path, char *name, char *httpver)
tree_cell * http_post(lex_ctxt *lexic)
struct struct_lex_ctxt lex_ctxt
char * get_str_var_by_name(lex_ctxt *, const char *)
long int get_int_var_by_name(lex_ctxt *, const char *, int)
tree_cell * nasl_open_sock_tcp_bufsz(lex_ctxt *lexic, int bufsz)
tree_cell * nasl_close_socket(lex_ctxt *lexic)
tree_cell * alloc_typed_cell(int typ)
char * plug_get_host_fqdn(struct script_infos *args)
kb_t plug_get_kb(struct script_infos *args)
Header file for module plugutils.
union TC::@332262321161220155002104006201360276211317150140 x
struct ipc_context * ipc_context
struct script_infos * script_infos
int user_agent_get(struct ipc_context *ipc_context, char **useragent)
Get user-agent.
Header file: user agent functions prototypes.