trisulrp 3.1.1 → 3.1.7
Sign up to get free protection for your applications and to get access to all the features.
- 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
|