trisulrp 3.1.1 → 3.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/trisulrp/protocol.rb +70 -21
- data/lib/trisulrp/trp.pb.rb +15 -5
- data/lib/trisulrp/trp.proto +29 -13
- data/lib/trisulrp.rb +4 -0
- data/trisulrp.gemspec +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d746529a58169ecd21dfc22df6da7df45ff2fec6
|
4
|
+
data.tar.gz: 37da2b8faabed36ecba2b3abd13225b96337efa6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3660641d24970edef7fcd9107e75b114ef3d2c0c1ae1f648929a450ae1d26f6641887c41b6318b19cf6d6de49187ce599a6399d7b77c39bf099f93a9c525f112
|
7
|
+
data.tar.gz: 3904ccf3b5ed2d2dce3d75a6f7c56b907561298e953656498c3370f86b9bba77cccb415044440e61864d061e6cf631daa87a54fb6d6cfa64620a6e5f8cee4d0d
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.1.
|
1
|
+
3.1.7
|
data/lib/trisulrp/protocol.rb
CHANGED
@@ -196,6 +196,47 @@ module TrisulRP::Protocol
|
|
196
196
|
|
197
197
|
end
|
198
198
|
|
199
|
+
# returns response str
|
200
|
+
def get_response_zmq_raw(endpoint, trp_request_buf , timeout_seconds = -1 )
|
201
|
+
|
202
|
+
|
203
|
+
ctx=ZMQ::Context.new
|
204
|
+
sock = ctx.socket(ZMQ::REQ)
|
205
|
+
|
206
|
+
# time out for context termination
|
207
|
+
sock.setsockopt(ZMQ::LINGER, 5*1_000)
|
208
|
+
|
209
|
+
# Initialize a poll set
|
210
|
+
poller = ZMQ::Poller.new
|
211
|
+
poller.register(sock, ZMQ::POLLIN)
|
212
|
+
|
213
|
+
sock.connect(endpoint)
|
214
|
+
sock.send_string(trp_request_buf)
|
215
|
+
|
216
|
+
ret = poller.poll(timeout_seconds * 1_000 )
|
217
|
+
if ret == -1
|
218
|
+
sock.close
|
219
|
+
ctx.terminate
|
220
|
+
raise "zeromq poll error #{endpoint} "
|
221
|
+
end
|
222
|
+
if ret == 0
|
223
|
+
sock.close
|
224
|
+
ctx.terminate
|
225
|
+
raise "no registerted sockets #{endpoint} "
|
226
|
+
end
|
227
|
+
|
228
|
+
poller.readables.each do |rsock|
|
229
|
+
|
230
|
+
#in
|
231
|
+
dataarray=""
|
232
|
+
rsock.recv_string(dataarray)
|
233
|
+
rsock.close
|
234
|
+
ctx.terminate
|
235
|
+
return dataarray
|
236
|
+
end
|
237
|
+
|
238
|
+
end
|
239
|
+
|
199
240
|
|
200
241
|
|
201
242
|
# Query the total time window available in Trisul
|
@@ -275,24 +316,27 @@ module TrisulRP::Protocol
|
|
275
316
|
end
|
276
317
|
|
277
318
|
params.each do |k,v|
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
319
|
+
f = msg.get_field(k)
|
320
|
+
if v.is_a? String
|
321
|
+
if f.is_a? Protobuf::Field::MessageField and f.type_class.to_s == "TRP::KeyT"
|
322
|
+
params[k] = TRP::KeyT.new( :label => v )
|
323
|
+
elsif f.is_a? Protobuf::Field::Int64Field
|
324
|
+
params[k] = v.to_i
|
325
|
+
elsif f.is_a? Protobuf::Field::StringField and f.rule == :repeated
|
326
|
+
params[k] = v.split(',')
|
327
|
+
elsif f.is_a? Protobuf::Field::BoolField
|
328
|
+
params[k] = ( v == "true")
|
329
|
+
end
|
330
|
+
elsif v.is_a? BigDecimal or v.is_a? Float
|
331
|
+
if f.is_a? Protobuf::Field::Int64Field
|
332
|
+
params[k] = v.to_i
|
333
|
+
end
|
334
|
+
elsif v.is_a?Array and f.is_a?Protobuf::Field::MessageField and f.type_class.to_s == "TRP::KeyT"
|
335
|
+
v.each_with_index do |v1,idx|
|
336
|
+
v[idx]= TRP::KeyT.new( :label => v1 ) if v1.is_a?String
|
337
|
+
end
|
338
|
+
end
|
339
|
+
end
|
296
340
|
|
297
341
|
end
|
298
342
|
|
@@ -335,13 +379,13 @@ module TrisulRP::Protocol
|
|
335
379
|
params =in_params.dup
|
336
380
|
opts = {:trp_command=> cmd_id}
|
337
381
|
if params.has_key?(:destination_node)
|
338
|
-
opts[:destination_node] = params
|
382
|
+
opts[:destination_node] = params[:destination_node]
|
339
383
|
end
|
340
384
|
if params.has_key?(:probe_id)
|
341
|
-
opts[:probe_id] = params
|
385
|
+
opts[:probe_id] = params[:probe_id]
|
342
386
|
end
|
343
387
|
if params.has_key?(:run_async)
|
344
|
-
opts[:run_async] = params
|
388
|
+
opts[:run_async] = params[:run_async]
|
345
389
|
end
|
346
390
|
req = TRP::Message.new(opts)
|
347
391
|
case cmd_id
|
@@ -432,6 +476,9 @@ module TrisulRP::Protocol
|
|
432
476
|
when TRP::Message::Command::NODE_CONFIG_REQUEST
|
433
477
|
fix_TRP_Fields( TRP::NodeConfigRequest, params)
|
434
478
|
req.node_config_request = TRP::NodeConfigRequest.new(params)
|
479
|
+
when TRP::Message::Command::FILE_REQUEST
|
480
|
+
fix_TRP_Fields( TRP::FileRequest, params)
|
481
|
+
req.file_request = TRP::FileRequest.new(params)
|
435
482
|
else
|
436
483
|
raise "Unknown TRP command ID"
|
437
484
|
end
|
@@ -525,6 +572,8 @@ module TrisulRP::Protocol
|
|
525
572
|
resp.node_config_response
|
526
573
|
when TRP::Message::Command::ASYNC_RESPONSE
|
527
574
|
resp.async_response
|
575
|
+
when TRP::Message::Command::FILE_RESPONSE
|
576
|
+
resp.file_response
|
528
577
|
else
|
529
578
|
|
530
579
|
raise "#{resp.trp_commandi.to_i} Unknown TRP command ID"
|
data/lib/trisulrp/trp.pb.rb
CHANGED
@@ -464,6 +464,7 @@ module TRP
|
|
464
464
|
required :string, :station_id, 1
|
465
465
|
optional :string, :station_id_request, 2
|
466
466
|
optional :string, :message, 3
|
467
|
+
optional :int64, :local_timestamp, 4
|
467
468
|
end
|
468
469
|
|
469
470
|
class ErrorResponse
|
@@ -790,6 +791,8 @@ module TRP
|
|
790
791
|
optional :string, :message, 1
|
791
792
|
optional ::TRP::NodeConfigRequest::IntelFeed, :add_feed, 2
|
792
793
|
optional ::TRP::NodeConfigRequest::IntelFeed, :process_new_feed, 3
|
794
|
+
optional :bool, :get_all_nodes, 4, :default => true
|
795
|
+
repeated ::TRP::NameValue, :query_config, 5
|
793
796
|
end
|
794
797
|
|
795
798
|
class NodeConfigResponse
|
@@ -804,6 +807,7 @@ module TRP
|
|
804
807
|
repeated ::TRP::NodeConfigResponse::Node, :hubs, 2
|
805
808
|
repeated ::TRP::NodeConfigResponse::Node, :probes, 3
|
806
809
|
repeated :string, :feeds, 4
|
810
|
+
repeated ::TRP::NameValue, :config_values, 5
|
807
811
|
end
|
808
812
|
|
809
813
|
class ContextCreateRequest
|
@@ -857,7 +861,7 @@ module TRP
|
|
857
861
|
optional :string, :profile, 2
|
858
862
|
optional :string, :params, 3
|
859
863
|
optional :bytes, :push_config_blob, 4
|
860
|
-
|
864
|
+
repeated ::TRP::NameValue, :query_config, 5
|
861
865
|
repeated ::TRP::NameValue, :set_config_values, 6
|
862
866
|
end
|
863
867
|
|
@@ -876,7 +880,7 @@ module TRP
|
|
876
880
|
repeated :string, :endpoints_flush, 6
|
877
881
|
repeated :string, :endpoints_query, 7
|
878
882
|
repeated :string, :endpoints_pub, 8
|
879
|
-
|
883
|
+
repeated ::TRP::NameValue, :config_values, 10
|
880
884
|
repeated ::TRP::ContextConfigResponse::Layer, :layers, 11
|
881
885
|
end
|
882
886
|
|
@@ -884,9 +888,11 @@ module TRP
|
|
884
888
|
required :string, :context_name, 1
|
885
889
|
optional :int64, :max_bytes, 2, :default => 100000000
|
886
890
|
optional ::TRP::CompressionType, :compress_type, 3, :default => ::TRP::CompressionType::UNCOMPRESSED
|
887
|
-
optional
|
888
|
-
|
889
|
-
|
891
|
+
optional ::TRP::TimeInterval, :time_interval, 4
|
892
|
+
optional :string, :save_file_prefix, 5
|
893
|
+
optional :string, :filter_expression, 6
|
894
|
+
repeated :string, :merge_pcap_files, 7
|
895
|
+
optional :bool, :delete_after_merge, 8, :default => true
|
890
896
|
end
|
891
897
|
|
892
898
|
class PcapResponse
|
@@ -916,6 +922,7 @@ module TRP
|
|
916
922
|
required :string, :context_name, 1
|
917
923
|
repeated ::TRP::SessionT, :sessions, 2
|
918
924
|
repeated :string, :hints, 3
|
925
|
+
optional :string, :probe_id, 4
|
919
926
|
end
|
920
927
|
|
921
928
|
class ProbeStatsRequest
|
@@ -956,6 +963,8 @@ module TRP
|
|
956
963
|
required :string, :uri, 1
|
957
964
|
required :int64, :position, 2
|
958
965
|
optional :string, :params, 3
|
966
|
+
optional :string, :context_name, 4
|
967
|
+
optional :bool, :delete_on_eof, 5, :default => false
|
959
968
|
end
|
960
969
|
|
961
970
|
class FileResponse
|
@@ -964,6 +973,7 @@ module TRP
|
|
964
973
|
optional :int64, :position, 3
|
965
974
|
optional :bytes, :content, 4
|
966
975
|
optional :string, :request_params, 5
|
976
|
+
optional :string, :context_name, 6
|
967
977
|
end
|
968
978
|
|
969
979
|
end
|
data/lib/trisulrp/trp.proto
CHANGED
@@ -373,6 +373,7 @@ message HelloResponse{
|
|
373
373
|
required string station_id=1;
|
374
374
|
optional string station_id_request=2;
|
375
375
|
optional string message=3;
|
376
|
+
optional int64 local_timestamp=4;
|
376
377
|
}
|
377
378
|
|
378
379
|
///////////////////////////////
|
@@ -812,8 +813,11 @@ message NodeConfigRequest {
|
|
812
813
|
repeated string uri=4; // individual files in config//.. for FileRequest download
|
813
814
|
}
|
814
815
|
|
815
|
-
optional IntelFeed
|
816
|
-
optional IntelFeed
|
816
|
+
optional IntelFeed add_feed=2;
|
817
|
+
optional IntelFeed process_new_feed=3;
|
818
|
+
optional bool get_all_nodes=4[default=true];
|
819
|
+
repeated NameValue query_config=5;
|
820
|
+
|
817
821
|
}
|
818
822
|
|
819
823
|
message NodeConfigResponse {
|
@@ -825,10 +829,11 @@ message NodeConfigResponse {
|
|
825
829
|
required string public_key=4;
|
826
830
|
}
|
827
831
|
|
828
|
-
repeated Node
|
829
|
-
repeated Node
|
830
|
-
repeated Node
|
831
|
-
repeated string
|
832
|
+
repeated Node domains=1;
|
833
|
+
repeated Node hubs=2;
|
834
|
+
repeated Node probes=3;
|
835
|
+
repeated string feeds=4;
|
836
|
+
repeated NameValue config_values=5;
|
832
837
|
}
|
833
838
|
|
834
839
|
|
@@ -905,8 +910,7 @@ message ContextConfigRequest {
|
|
905
910
|
optional string profile=2;
|
906
911
|
optional string params=3;
|
907
912
|
optional bytes push_config_blob=4; // push this ..
|
908
|
-
|
909
|
-
|
913
|
+
repeated NameValue query_config=5; // query, leave the .value field blank
|
910
914
|
repeated NameValue set_config_values=6; // push this .. (name=value;name=value ..)
|
911
915
|
}
|
912
916
|
|
@@ -928,7 +932,7 @@ message ContextConfigResponse {
|
|
928
932
|
repeated string endpoints_flush=6;
|
929
933
|
repeated string endpoints_query=7;
|
930
934
|
repeated string endpoints_pub=8;
|
931
|
-
|
935
|
+
repeated NameValue config_values=10; // query, leave the .value field blank
|
932
936
|
repeated Layer layers=11;
|
933
937
|
|
934
938
|
}
|
@@ -937,16 +941,24 @@ message ContextConfigResponse {
|
|
937
941
|
// PcapReqiest
|
938
942
|
// NOTE - only one of the various filters are supported
|
939
943
|
// sending > 1 will result in error
|
944
|
+
//
|
945
|
+
// Modes
|
946
|
+
// 1. nothing set => PCAP file in contents
|
947
|
+
// 2. save_file_prefix set => file download token
|
948
|
+
// 3. merge_pcap_files => file download token
|
940
949
|
//
|
941
950
|
message PcapRequest {
|
942
951
|
required string context_name=1;
|
943
952
|
optional int64 max_bytes=2[default=100000000]; // 100MB , can increase to 0.75 Filesystem freespace
|
944
953
|
optional CompressionType compress_type=3[default=UNCOMPRESSED];
|
945
|
-
|
946
|
-
|
947
|
-
|
954
|
+
optional TimeInterval time_interval=4; // not needed for merge option
|
955
|
+
optional string save_file_prefix=5;
|
956
|
+
optional string filter_expression=6;
|
957
|
+
repeated string merge_pcap_files=7;
|
958
|
+
optional bool delete_after_merge=8[default=true];
|
948
959
|
}
|
949
960
|
|
961
|
+
|
950
962
|
/////////////////////////////////////
|
951
963
|
// FileredDatagaramResponse
|
952
964
|
message PcapResponse {
|
@@ -957,7 +969,7 @@ message PcapResponse {
|
|
957
969
|
optional int64 num_bytes=5;
|
958
970
|
optional string sha1=6;
|
959
971
|
optional bytes contents=7;
|
960
|
-
optional string save_file=8;
|
972
|
+
optional string save_file=8; //use FileRequest framework to download
|
961
973
|
}
|
962
974
|
|
963
975
|
////////////////////////////////////
|
@@ -980,6 +992,7 @@ message GrepResponse {
|
|
980
992
|
required string context_name=1;
|
981
993
|
repeated SessionT sessions=2;
|
982
994
|
repeated string hints=3;
|
995
|
+
optional string probe_id=4;
|
983
996
|
}
|
984
997
|
|
985
998
|
//////////////////////////////////
|
@@ -1031,6 +1044,8 @@ message FileRequest {
|
|
1031
1044
|
required string uri=1;
|
1032
1045
|
required int64 position=2;
|
1033
1046
|
optional string params=3; // local meaning sentback n response
|
1047
|
+
optional string context_name=4;
|
1048
|
+
optional bool delete_on_eof=5[default=false];
|
1034
1049
|
}
|
1035
1050
|
|
1036
1051
|
//////////////////////////////////
|
@@ -1043,6 +1058,7 @@ message FileResponse {
|
|
1043
1058
|
optional int64 position=3;
|
1044
1059
|
optional bytes content=4;
|
1045
1060
|
optional string request_params =5;
|
1061
|
+
optional string context_name=6;
|
1046
1062
|
}
|
1047
1063
|
|
1048
1064
|
|
data/lib/trisulrp.rb
CHANGED
data/trisulrp.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: trisulrp 3.1.
|
5
|
+
# stub: trisulrp 3.1.7 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "trisulrp"
|
9
|
-
s.version = "3.1.
|
9
|
+
s.version = "3.1.7"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["vivek"]
|
14
|
-
s.date = "2016-08-
|
14
|
+
s.date = "2016-08-25"
|
15
15
|
s.description = "This gem deals about the trisul remote protocol"
|
16
16
|
s.email = "vivek_rajagopal@yahoo.com"
|
17
17
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trisulrp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.
|
4
|
+
version: 3.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- vivek
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: protobuf
|