mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00

- policy/ renamed to scripts/ - By default BROPATH now contains: - scripts/ - scripts/policy - scripts/site - *Nearly* all tests pass. - All of scripts/base/ is loaded by main.cc - Can be disabled by setting $BRO_NO_BASE_SCRIPTS - Scripts in scripts/base/ don't use relative path loading to ease use of BRO_NO_BASE_SCRIPTS (to copy and paste that script). - The scripts in scripts/base/protocols/ only (or soon will only) do logging and state building. - The scripts in scripts/base/frameworks/ add functionality without causing any additional overhead. - All "detection" activity happens through scripts in scripts/policy/. - Communications framework modified temporarily to need an environment variable to actually enable (ENABLE_COMMUNICATION=1) - This is so the communications framework can be loaded as part of the base without causing trouble when it's not needed. - This will be removed once a resolution to ticket #540 is reached.
38 lines
944 B
Text
38 lines
944 B
Text
##! Utilities specific for HTTP processing.
|
|
|
|
module HTTP;
|
|
|
|
export {
|
|
global extract_keys: function(data: string, kv_splitter: pattern): string_vec;
|
|
global build_url: function(rec: Info): string;
|
|
global build_url_http: function(rec: Info): string;
|
|
}
|
|
|
|
|
|
function extract_keys(data: string, kv_splitter: pattern): string_vec
|
|
{
|
|
local key_vec: vector of string = vector();
|
|
|
|
local parts = split(data, kv_splitter);
|
|
for ( part_index in parts )
|
|
{
|
|
local key_val = split1(parts[part_index], /=/);
|
|
if ( 1 in key_val )
|
|
key_vec[|key_vec|] = key_val[1];
|
|
}
|
|
return key_vec;
|
|
}
|
|
|
|
function build_url(rec: Info): string
|
|
{
|
|
local uri = rec?$uri ? rec$uri : "/<missed_request>";
|
|
local host = rec?$host ? rec$host : fmt("%s", rec$id$resp_h);
|
|
if ( rec$id$resp_p != 80/tcp )
|
|
host = fmt("%s:%s", host, rec$id$resp_p);
|
|
return fmt("%s%s", host, uri);
|
|
}
|
|
|
|
function build_url_http(rec: Info): string
|
|
{
|
|
return fmt("http://%s", build_url(rec));
|
|
}
|