Skip to content

Commit eb77af9

Browse files
authored
feat: support follow and filter completion (#3)
* chore: support follow and filter completion * address comments
1 parent 5091014 commit eb77af9

File tree

10 files changed

+488
-37
lines changed

10 files changed

+488
-37
lines changed

lib/wiregasm/bindings.cpp

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ EMSCRIPTEN_BINDINGS(Wiregasm)
1212
emscripten::function("getColumns", &wg_get_columns);
1313
emscripten::function("upload", &wg_upload_file, allow_raw_pointers());
1414
emscripten::function("checkFilter", &wg_check_filter);
15+
emscripten::function("completeFilter", &wg_complete_filter);
1516
emscripten::function("getUploadDirectory", &wg_get_upload_dir);
1617
emscripten::function("getPluginsDirectory", &wg_get_plugins_dir);
1718
}
@@ -22,7 +23,8 @@ EMSCRIPTEN_BINDINGS(DissectSession)
2223
.constructor<std::string>()
2324
.function("load", &DissectSession::load)
2425
.function("getFrames", &DissectSession::getFrames)
25-
.function("getFrame", &DissectSession::getFrame);
26+
.function("getFrame", &DissectSession::getFrame)
27+
.function("follow", &DissectSession::follow);
2628
}
2729

2830
EMSCRIPTEN_BINDINGS(ProtoTree)
@@ -33,7 +35,11 @@ EMSCRIPTEN_BINDINGS(ProtoTree)
3335
.field("start", &ProtoTree::start)
3436
.field("length", &ProtoTree::length)
3537
.field("data_source_idx", &ProtoTree::data_source_idx)
36-
.field("tree", &ProtoTree::tree);
38+
.field("tree", &ProtoTree::tree)
39+
.field("severity", &ProtoTree::severity)
40+
.field("type", &ProtoTree::type)
41+
.field("fnum", &ProtoTree::fnum)
42+
.field("url", &ProtoTree::url);
3743
}
3844

3945
EMSCRIPTEN_BINDINGS(DataSource)
@@ -49,7 +55,8 @@ EMSCRIPTEN_BINDINGS(Frame)
4955
.field("number", &Frame::number)
5056
.field("comments", &Frame::comments)
5157
.field("data_sources", &Frame::data_sources)
52-
.field("tree", &Frame::tree);
58+
.field("tree", &Frame::tree)
59+
.field("follow", &Frame::follow);
5360
}
5461

5562
EMSCRIPTEN_BINDINGS(FrameMeta)
@@ -86,6 +93,12 @@ EMSCRIPTEN_BINDINGS(CheckFilterResponse)
8693
.field("error", &CheckFilterResponse::error);
8794
}
8895

96+
EMSCRIPTEN_BINDINGS(FilterCompletionResponse)
97+
{
98+
value_object<FilterCompletionResponse>("FilterCompletionResponse")
99+
.field("fields", &FilterCompletionResponse::fields);
100+
}
101+
89102
EMSCRIPTEN_BINDINGS(Summary)
90103
{
91104
value_object<Summary>("Summary")
@@ -99,10 +112,42 @@ EMSCRIPTEN_BINDINGS(Summary)
99112
.field("elapsed_time", &Summary::elapsed_time);
100113
}
101114

115+
EMSCRIPTEN_BINDINGS(FollowPayload)
116+
{
117+
value_object<FollowPayload>("FollowPayload")
118+
.field("number", &FollowPayload::number)
119+
.field("data", &FollowPayload::data)
120+
.field("server", &FollowPayload::server);
121+
}
122+
123+
EMSCRIPTEN_BINDINGS(Follow)
124+
{
125+
value_object<Follow>("Follow")
126+
.field("shost", &Follow::shost)
127+
.field("sport", &Follow::sport)
128+
.field("sbytes", &Follow::sbytes)
129+
.field("chost", &Follow::chost)
130+
.field("cport", &Follow::cport)
131+
.field("cbytes", &Follow::cbytes)
132+
.field("payloads", &Follow::payloads);
133+
}
134+
135+
EMSCRIPTEN_BINDINGS(CompleteField)
136+
{
137+
value_object<CompleteField>("CompleteField")
138+
.field("field", &CompleteField::field)
139+
.field("type", &CompleteField::type)
140+
.field("name", &CompleteField::name);
141+
}
142+
102143
EMSCRIPTEN_BINDINGS(stl_wrappers)
103144
{
104145
register_vector<string>("VectorString");
105146
register_vector<FrameMeta>("VectorFrameMeta");
106147
register_vector<DataSource>("VectorDataSource");
107148
register_vector<ProtoTree>("VectorProtoTree");
149+
register_vector<FollowPayload>("VectorFollowPayload");
150+
register_vector<CompleteField>("VectorCompleteField");
151+
// Frame::follow is a vector of vectors of strings
152+
register_vector<vector<string>>("VectorVectorString");
108153
}

0 commit comments

Comments
 (0)