remove the byte_len and length bifs

This commit is contained in:
Bernhard Amann 2013-03-06 13:45:42 -08:00
parent a2556642e6
commit 986b346e3f
8 changed files with 6 additions and 74 deletions

View file

@ -161,7 +161,7 @@ event signature_match(state: signature_state, msg: string, data: string)
return;
# Trim the matched data down to something reasonable
if ( byte_len(data) > 140 )
if ( |data| > 140 )
data = fmt("%s...", sub_bytes(data, 0, 140));
local src_addr: addr;
@ -259,8 +259,8 @@ event signature_match(state: signature_state, msg: string, data: string)
add vert_table[orig, resp][sig_id];
local hcount = length(horiz_table[orig, sig_id]);
local vcount = length(vert_table[orig, resp]);
local hcount = |horiz_table[orig, sig_id]|;
local vcount = |vert_table[orig, resp]|;
if ( hcount in horiz_scan_thresholds && hcount != last_hthresh[orig] )
{

View file

@ -27,7 +27,7 @@ function compress_path(dir: string): string
const cdup_sep = /((\/)*([^\/]|\\\/)+)?((\/)+\.\.(\/)*)/;
local parts = split_n(dir, cdup_sep, T, 1);
if ( length(parts) > 1 )
if ( |parts| > 1 )
{
# reaching a point with two parent dir references back-to-back means
# we don't know about anything higher in the tree to pop off

View file

@ -6,7 +6,7 @@
## characters.
function is_string_binary(s: string): bool
{
return byte_len(gsub(s, /[\x00-\x7f]/, "")) * 100 / |s| >= 25;
return |gsub(s, /[\x00-\x7f]/, "")| * 100 / |s| >= 25;
}
## Joins a set of string together, with elements delimited by a constant string.

View file

@ -32,7 +32,7 @@ event log_http(rec: HTTP::Info)
{
# Data is returned as "<dateFirstDetected> <detectionRate>"
local MHR_answer = split1(MHR_result, / /);
if ( length(MHR_answer) == 2 && to_count(MHR_answer[2]) >= MHR_threshold )
if ( |MHR_answer| == 2 && to_count(MHR_answer[2]) >= MHR_threshold )
{
local url = HTTP::build_url_http(rec);
local message = fmt("%s %s %s", rec$id$orig_h, rec$md5, url);

View file

@ -1033,29 +1033,6 @@ function clear_table%(v: any%): any
return 0;
%}
## Returns the number of elements in a container. This function works with all
## container types, i.e., sets, tables, and vectors.
##
## v: The container whose elements are counted.
##
## Returns: The number of elements in *v*.
function length%(v: any%): count
%{
TableVal* tv = v->Type()->Tag() == TYPE_TABLE ? v->AsTableVal() : 0;
if ( tv )
return new Val(tv->Size(), TYPE_COUNT);
else if ( v->Type()->Tag() == TYPE_VECTOR )
return new Val(v->AsVectorVal()->Size(), TYPE_COUNT);
else
{
builtin_error("length() requires a table/set/vector argument");
return new Val(0, TYPE_COUNT);
}
%}
## Checks whether two objects reference the same internal object. This function
## uses equality comparison of C++ raw pointer values to determine if the two
## objects are the same.

View file

@ -265,19 +265,6 @@ function edit%(arg_s: string, arg_edit_char: string%): string
return new StringVal(new BroString(1, byte_vec(new_s), ind));
%}
## Returns the number of characters (bytes) in the given string. The
## length computation includes any embedded NULs, and also a trailing NUL,
## if any (which is why the function isn't called ``strlen``; to remind
## the user that Bro strings can include NULs).
##
## s: The string to compute the length for.
##
## Returns: The number of characters in *s*.
function byte_len%(s: string%): count
%{
return new Val(s->Len(), TYPE_COUNT);
%}
## Get a substring from a string, given a starting position and length.
##
## s: The string to obtain a substring from.

View file

@ -1,10 +0,0 @@
#
# @TEST-EXEC: bro -b %INPUT >out
# @TEST-EXEC: btest-diff out
event bro_init()
{
local a = "hello\0there";
print byte_len(a);
}

View file

@ -1,22 +0,0 @@
#
# @TEST-EXEC: bro -b %INPUT > out
# @TEST-EXEC: btest-diff out
event bro_init()
{
local mytable: table[string] of string = { ["key1"] = "val1" };
local myset: set[count] = set( 3, 6, 2, 7 );
local myvec: vector of string = vector( "value1", "value2" );
print length(mytable);
print length(myset);
print length(myvec);
mytable = table();
myset = set();
myvec = vector();
print length(mytable);
print length(myset);
print length(myvec);
}