vanken 0.1.0 → 0.3.0
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/CHANGELOG.md +24 -0
- data/README.md +28 -11
- data/data/coloring_rules.yml +67 -0
- data/docs/performance.md +53 -0
- data/docs/releases.md +2 -4
- data/docs/usage.md +51 -0
- data/exe/vanken-setup-permissions +6 -0
- data/lib/vanken/app/capture_controller.rb +66 -1
- data/lib/vanken/app/document.rb +102 -39
- data/lib/vanken/app/document_analysis.rb +75 -0
- data/lib/vanken/app/document_jobs.rb +52 -9
- data/lib/vanken/app/expert_info.rb +26 -0
- data/lib/vanken/app/io_graph.rb +47 -0
- data/lib/vanken/app/navigation.rb +77 -0
- data/lib/vanken/app/search_job.rb +62 -0
- data/lib/vanken/app/stats_job.rb +45 -0
- data/lib/vanken/capture/analyzer.rb +3 -1
- data/lib/vanken/capture/analyzer_process.rb +9 -6
- data/lib/vanken/capture/analyzer_worker.rb +2 -2
- data/lib/vanken/capture/filter_worker.rb +8 -2
- data/lib/vanken/capture/helper_main.rb +10 -3
- data/lib/vanken/capture/helper_options.rb +6 -2
- data/lib/vanken/capture/launcher.rb +1 -0
- data/lib/vanken/capture/permission_setup.rb +201 -0
- data/lib/vanken/config/analysis_settings.rb +58 -0
- data/lib/vanken/config/columns.rb +138 -0
- data/lib/vanken/config/messages.rb +105 -0
- data/lib/vanken/config/preferences.rb +34 -8
- data/lib/vanken/config/profiles.rb +74 -0
- data/lib/vanken/config/sessions.rb +69 -0
- data/lib/vanken/config/yaml_file.rb +36 -0
- data/lib/vanken/core/coloring.rb +86 -0
- data/lib/vanken/core/frame_store.rb +2 -2
- data/lib/vanken/core/stores.rb +12 -0
- data/lib/vanken/gateway/detail_builder.rb +1 -1
- data/lib/vanken/gateway/display_capture_filter.rb +102 -0
- data/lib/vanken/gateway/dissector.rb +31 -6
- data/lib/vanken/gateway/exporter.rb +125 -0
- data/lib/vanken/gateway/file_writer.rb +26 -2
- data/lib/vanken/gateway/interfaces.rb +59 -0
- data/lib/vanken/gateway/resolver.rb +131 -0
- data/lib/vanken/gateway/statistics.rb +83 -0
- data/lib/vanken/gateway/stream.rb +159 -0
- data/lib/vanken/ui/actions.rb +54 -28
- data/lib/vanken/ui/analysis_dialogs.rb +371 -0
- data/lib/vanken/ui/application.rb +183 -9
- data/lib/vanken/ui/coloring_operations.rb +104 -0
- data/lib/vanken/ui/column_operations.rb +115 -0
- data/lib/vanken/ui/dialogs.rb +41 -26
- data/lib/vanken/ui/file_operations.rb +17 -12
- data/lib/vanken/ui/filter_operations.rb +43 -15
- data/lib/vanken/ui/main_view.rb +74 -29
- data/lib/vanken/ui/navigation_operations.rb +86 -0
- data/lib/vanken/ui/packet_source.rb +33 -1
- data/lib/vanken/ui/selection.rb +8 -2
- data/lib/vanken/ui/settings_operations.rb +233 -0
- data/lib/vanken/version.rb +1 -1
- data/packaging/README.md +41 -1
- data/packaging/linux/org.vanken.capture.policy +14 -0
- data/packaging/linux/vanken-capture.wrapper +6 -0
- data/packaging/linux/vanken.desktop +9 -0
- data/packaging/linux/vanken.sudoers +2 -0
- data/packaging/macos/chmod-bpf +6 -0
- data/packaging/macos/org.vanken.chmod-bpf.plist +8 -0
- data/sig/generated/vanken/app/capture_controller.rbs +16 -0
- data/sig/generated/vanken/app/document.rbs +23 -1
- data/sig/generated/vanken/app/document_analysis.rbs +21 -0
- data/sig/generated/vanken/app/document_jobs.rbs +6 -0
- data/sig/generated/vanken/app/expert_info.rbs +30 -0
- data/sig/generated/vanken/app/io_graph.rbs +45 -0
- data/sig/generated/vanken/app/navigation.rbs +31 -0
- data/sig/generated/vanken/app/search_job.rbs +21 -0
- data/sig/generated/vanken/app/stats_job.rbs +18 -0
- data/sig/generated/vanken/capture/helper_options.rbs +6 -0
- data/sig/generated/vanken/capture/permission_setup.rbs +43 -0
- data/sig/generated/vanken/config/analysis_settings.rbs +31 -0
- data/sig/generated/vanken/config/columns.rbs +37 -0
- data/sig/generated/vanken/config/messages.rbs +14 -0
- data/sig/generated/vanken/config/preferences.rbs +1 -1
- data/sig/generated/vanken/config/profiles.rbs +29 -0
- data/sig/generated/vanken/config/sessions.rbs +17 -0
- data/sig/generated/vanken/config/yaml_file.rbs +11 -0
- data/sig/generated/vanken/core/coloring.rbs +52 -0
- data/sig/generated/vanken/core/stores.rbs +4 -0
- data/sig/generated/vanken/gateway/display_capture_filter.rbs +37 -0
- data/sig/generated/vanken/gateway/dissector.rbs +15 -2
- data/sig/generated/vanken/gateway/exporter.rbs +27 -0
- data/sig/generated/vanken/gateway/file_writer.rbs +3 -0
- data/sig/generated/vanken/gateway/interfaces.rbs +12 -0
- data/sig/generated/vanken/gateway/resolver.rbs +52 -0
- data/sig/generated/vanken/gateway/statistics.rbs +104 -0
- data/sig/generated/vanken/gateway/stream.rbs +75 -0
- data/sig/generated/vanken/ui/analysis_dialogs.rbs +71 -0
- data/sig/generated/vanken/ui/application.rbs +23 -1
- data/sig/generated/vanken/ui/coloring_operations.rbs +29 -0
- data/sig/generated/vanken/ui/column_operations.rbs +29 -0
- data/sig/generated/vanken/ui/dialogs.rbs +5 -3
- data/sig/generated/vanken/ui/file_operations.rbs +2 -0
- data/sig/generated/vanken/ui/filter_operations.rbs +3 -1
- data/sig/generated/vanken/ui/main_view.rbs +14 -2
- data/sig/generated/vanken/ui/navigation_operations.rbs +43 -0
- data/sig/generated/vanken/ui/packet_source.rbs +4 -0
- data/sig/generated/vanken/ui/settings_operations.rbs +41 -0
- metadata +61 -3
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Generated from lib/vanken/capture/permission_setup.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Vanken
|
|
4
|
+
module Capture
|
|
5
|
+
class PermissionSetup
|
|
6
|
+
PREFIX: ::String
|
|
7
|
+
|
|
8
|
+
SOURCE: untyped
|
|
9
|
+
|
|
10
|
+
def self.run: (untyped argv, ?stdout: untyped, ?stderr: untyped) -> untyped
|
|
11
|
+
|
|
12
|
+
attr_reader platform: untyped
|
|
13
|
+
|
|
14
|
+
def initialize: (?platform: untyped, ?ruby: untyped, ?gem_home: untyped, ?policy: untyped, ?group: untyped, ?root: untyped) -> untyped
|
|
15
|
+
|
|
16
|
+
def staged?: () -> untyped
|
|
17
|
+
|
|
18
|
+
def plan: () -> untyped
|
|
19
|
+
|
|
20
|
+
def install: () -> untyped
|
|
21
|
+
|
|
22
|
+
def validate_runtime!: () -> untyped
|
|
23
|
+
|
|
24
|
+
def validate_group!: () -> untyped
|
|
25
|
+
|
|
26
|
+
def next_steps: () -> untyped
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
|
|
30
|
+
def asset: (untyped relative, ?mode: untyped) -> untyped
|
|
31
|
+
|
|
32
|
+
def trusted_tree!: (untyped path, ?untyped visited) -> untyped
|
|
33
|
+
|
|
34
|
+
def trusted_path!: (untyped path) -> untyped
|
|
35
|
+
|
|
36
|
+
def safe_entry!: (untyped path) -> untyped
|
|
37
|
+
|
|
38
|
+
def secure_directory!: (untyped path) -> untyped
|
|
39
|
+
|
|
40
|
+
def validate_sudoers!: (untyped path) -> untyped
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Generated from lib/vanken/config/analysis_settings.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Vanken
|
|
4
|
+
module Config
|
|
5
|
+
class AnalysisSettings
|
|
6
|
+
def initialize: (?directory: untyped) -> untyped
|
|
7
|
+
|
|
8
|
+
def decode_as: () -> untyped
|
|
9
|
+
|
|
10
|
+
def decode_as=: (untyped rules) -> untyped
|
|
11
|
+
|
|
12
|
+
def plugin_entries: () -> untyped
|
|
13
|
+
|
|
14
|
+
def plugins: () -> untyped
|
|
15
|
+
|
|
16
|
+
def untrusted_plugins: () -> untyped
|
|
17
|
+
|
|
18
|
+
def register_plugin: (untyped path) -> untyped
|
|
19
|
+
|
|
20
|
+
def remove_plugin: (untyped path) -> untyped
|
|
21
|
+
|
|
22
|
+
def trust_plugins: (untyped paths) -> untyped
|
|
23
|
+
|
|
24
|
+
private
|
|
25
|
+
|
|
26
|
+
def save_plugins: (untyped entries) -> untyped
|
|
27
|
+
|
|
28
|
+
def validate_rules: (untyped rules) -> untyped
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Generated from lib/vanken/config/columns.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Vanken
|
|
4
|
+
module Config
|
|
5
|
+
class Columns
|
|
6
|
+
BUILTINS: untyped
|
|
7
|
+
|
|
8
|
+
def self.load: (directory: untyped, ?legacy: untyped) -> untyped
|
|
9
|
+
|
|
10
|
+
def initialize: (?untyped payload) -> untyped
|
|
11
|
+
|
|
12
|
+
def replace: (untyped payload) -> untyped
|
|
13
|
+
|
|
14
|
+
def self.valid_field?: (untyped field) -> untyped
|
|
15
|
+
|
|
16
|
+
def to_h: () -> untyped
|
|
17
|
+
|
|
18
|
+
def custom: () -> untyped
|
|
19
|
+
|
|
20
|
+
def table_columns: () -> untyped
|
|
21
|
+
|
|
22
|
+
def add: (untyped field, ?label: untyped, ?width: untyped) -> untyped
|
|
23
|
+
|
|
24
|
+
def remove: (untyped key) -> untyped
|
|
25
|
+
|
|
26
|
+
def move: (untyped key, untyped index) -> untyped
|
|
27
|
+
|
|
28
|
+
def update_layout: (untyped items) -> untyped
|
|
29
|
+
|
|
30
|
+
def save: (untyped directory) -> untyped
|
|
31
|
+
|
|
32
|
+
def self.display: (untyped values, ?type: untyped) -> untyped
|
|
33
|
+
|
|
34
|
+
def self.sort_value: (untyped value, ?type: untyped) -> untyped
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Generated from lib/vanken/config/messages.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Vanken
|
|
4
|
+
module Config
|
|
5
|
+
module Messages
|
|
6
|
+
EN: Hash[String, String]
|
|
7
|
+
|
|
8
|
+
JA: Hash[String, String]
|
|
9
|
+
|
|
10
|
+
# @rbs (String text, ?language: String, **untyped values) -> String
|
|
11
|
+
def self.translate: (String text, ?language: String, **untyped values) -> String
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Generated from lib/vanken/config/profiles.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Vanken
|
|
4
|
+
module Config
|
|
5
|
+
class Profiles
|
|
6
|
+
FILES: untyped
|
|
7
|
+
|
|
8
|
+
attr_reader directory: untyped
|
|
9
|
+
|
|
10
|
+
attr_reader active: untyped
|
|
11
|
+
|
|
12
|
+
def initialize: (?directory: untyped) -> untyped
|
|
13
|
+
|
|
14
|
+
def names: () -> untyped
|
|
15
|
+
|
|
16
|
+
def preferences: () -> untyped
|
|
17
|
+
|
|
18
|
+
def create: (untyped name, ?copy_from: untyped) -> untyped
|
|
19
|
+
|
|
20
|
+
def switch: (untyped name) -> untyped
|
|
21
|
+
|
|
22
|
+
def delete: (untyped name) -> untyped
|
|
23
|
+
|
|
24
|
+
private
|
|
25
|
+
|
|
26
|
+
def profile_directory: (untyped name) -> untyped
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Generated from lib/vanken/config/sessions.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Vanken
|
|
4
|
+
module Config
|
|
5
|
+
module Sessions
|
|
6
|
+
def self.candidates: (?parent: untyped) -> untyped
|
|
7
|
+
|
|
8
|
+
def self.recover: (untyped directory, ?parent: untyped, **untyped options) -> untyped
|
|
9
|
+
|
|
10
|
+
def self.discard: (untyped directory, ?parent: untyped) -> untyped
|
|
11
|
+
|
|
12
|
+
def self.orphan?: (untyped directory) -> untyped
|
|
13
|
+
|
|
14
|
+
def self.with_session: (untyped directory, parent: untyped) -> untyped
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Generated from lib/vanken/config/yaml_file.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Vanken
|
|
4
|
+
module Config
|
|
5
|
+
module YamlFile
|
|
6
|
+
def self.read: (untyped path, ?default: untyped) -> untyped
|
|
7
|
+
|
|
8
|
+
def self.write: (untyped path, untyped value) -> untyped
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Generated from lib/vanken/core/coloring.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Vanken
|
|
4
|
+
module Core
|
|
5
|
+
module Coloring
|
|
6
|
+
class Rule < Data
|
|
7
|
+
attr_reader name(): String
|
|
8
|
+
|
|
9
|
+
attr_reader filter(): String
|
|
10
|
+
|
|
11
|
+
attr_reader light(): Hash[String, String]
|
|
12
|
+
|
|
13
|
+
attr_reader dark(): Hash[String, String]
|
|
14
|
+
|
|
15
|
+
attr_reader enabled(): bool
|
|
16
|
+
|
|
17
|
+
attr_reader program(): DisplayFilter::Program
|
|
18
|
+
|
|
19
|
+
def self.new: (String name, String filter, Hash[String, String] light, Hash[String, String] dark, bool enabled, DisplayFilter::Program program) -> instance
|
|
20
|
+
| (name: String, filter: String, light: Hash[String, String], dark: Hash[String, String], enabled: bool, program: DisplayFilter::Program) -> instance
|
|
21
|
+
|
|
22
|
+
def self.members: () -> [ :name, :filter, :light, :dark, :enabled, :program ]
|
|
23
|
+
|
|
24
|
+
def members: () -> [ :name, :filter, :light, :dark, :enabled, :program ]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
class RuleSet
|
|
28
|
+
DEFAULT_PATH: untyped
|
|
29
|
+
|
|
30
|
+
attr_reader rules: Array[Rule]
|
|
31
|
+
|
|
32
|
+
# @rbs (Hash[String, untyped] payload, ?catalog: untyped) -> void
|
|
33
|
+
def initialize: (Hash[String, untyped] payload, ?catalog: untyped) -> void
|
|
34
|
+
|
|
35
|
+
# @rbs (_FilterView view, ?theme: Symbol) -> Hash[Symbol, String]?
|
|
36
|
+
def match: (_FilterView view, ?theme: Symbol) -> Hash[Symbol, String]?
|
|
37
|
+
|
|
38
|
+
# @rbs () -> Hash[String, untyped]
|
|
39
|
+
def to_h: () -> Hash[String, untyped]
|
|
40
|
+
|
|
41
|
+
# @rbs (String path) -> void
|
|
42
|
+
def save: (String path) -> void
|
|
43
|
+
|
|
44
|
+
# @rbs (String path, ?catalog: untyped) -> RuleSet
|
|
45
|
+
def self.load: (String path, ?catalog: untyped) -> RuleSet
|
|
46
|
+
|
|
47
|
+
# @rbs (?catalog: untyped) -> RuleSet
|
|
48
|
+
def self.defaults: (?catalog: untyped) -> RuleSet
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -68,6 +68,10 @@ module Vanken
|
|
|
68
68
|
|
|
69
69
|
attr_reader experts: Hash[Integer, Array[Hash[Symbol, untyped]]]
|
|
70
70
|
|
|
71
|
+
attr_reader expert_count: Integer
|
|
72
|
+
|
|
73
|
+
attr_reader expert_max: Integer
|
|
74
|
+
|
|
71
75
|
# @rbs! @extra: Hash[Integer, Hash[String, untyped]]
|
|
72
76
|
# @rbs! @io: File?
|
|
73
77
|
# @rbs (String directory, ?persist: bool) -> void
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Generated from lib/vanken/gateway/display_capture_filter.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Vanken
|
|
4
|
+
module Gateway
|
|
5
|
+
class DisplayCaptureFilter
|
|
6
|
+
class Packet < Struct[untyped]
|
|
7
|
+
attr_accessor data(): untyped
|
|
8
|
+
|
|
9
|
+
attr_accessor original_length(): untyped
|
|
10
|
+
|
|
11
|
+
attr_accessor linktype(): untyped
|
|
12
|
+
|
|
13
|
+
attr_accessor meta(): untyped
|
|
14
|
+
|
|
15
|
+
def self.new: (?untyped data, ?untyped original_length, ?untyped linktype, ?untyped meta) -> instance
|
|
16
|
+
| (?data: untyped, ?original_length: untyped, ?linktype: untyped, ?meta: untyped) -> instance
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
TUNNEL_PORTS: untyped
|
|
20
|
+
|
|
21
|
+
attr_reader expression: untyped
|
|
22
|
+
|
|
23
|
+
def initialize: (untyped expression) -> untyped
|
|
24
|
+
|
|
25
|
+
# nil requests the ordinary VDF evaluator; false is a definite non-match.
|
|
26
|
+
def match: (untyped frame) -> untyped
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
|
|
30
|
+
def convert: (untyped node) -> untyped
|
|
31
|
+
|
|
32
|
+
def term: (untyped field, untyped member) -> untyped
|
|
33
|
+
|
|
34
|
+
def eligible?: (untyped frame) -> untyped
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -12,6 +12,17 @@ module Vanken
|
|
|
12
12
|
def self.rank: (Symbol? value) -> Integer
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
+
# The public plugin DSL registers through Registry.default; keep that lookup local.
|
|
16
|
+
module RegistryScope
|
|
17
|
+
module Default
|
|
18
|
+
# @rbs () -> Redhound::Registry
|
|
19
|
+
def default: () -> Redhound::Registry
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# @rbs [T] (Redhound::Registry registry) { () -> T } -> T
|
|
23
|
+
def self.with: [T] (Redhound::Registry registry) { () -> T } -> T
|
|
24
|
+
end
|
|
25
|
+
|
|
15
26
|
class Dissector
|
|
16
27
|
attr_reader registry: Redhound::Registry
|
|
17
28
|
|
|
@@ -28,6 +39,8 @@ module Vanken
|
|
|
28
39
|
class PacketView
|
|
29
40
|
attr_reader raw_packet: Redhound::Packet
|
|
30
41
|
|
|
42
|
+
attr_reader registry: Redhound::Registry
|
|
43
|
+
|
|
31
44
|
# @rbs (Redhound::Packet packet, Redhound::Registry registry) -> void
|
|
32
45
|
def initialize: (Redhound::Packet packet, Redhound::Registry registry) -> void
|
|
33
46
|
|
|
@@ -91,8 +104,8 @@ module Vanken
|
|
|
91
104
|
end
|
|
92
105
|
|
|
93
106
|
class FieldCatalog
|
|
94
|
-
# @rbs () -> void
|
|
95
|
-
def initialize: () -> void
|
|
107
|
+
# @rbs (?registry: Redhound::Registry) -> void
|
|
108
|
+
def initialize: (?registry: Redhound::Registry) -> void
|
|
96
109
|
|
|
97
110
|
# @rbs () -> Array[String]
|
|
98
111
|
def names: () -> Array[String]
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Generated from lib/vanken/gateway/exporter.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Vanken
|
|
4
|
+
module Gateway
|
|
5
|
+
class Exporter
|
|
6
|
+
DEFAULT_COLUMNS: untyped
|
|
7
|
+
|
|
8
|
+
def initialize: (untyped document) -> untyped
|
|
9
|
+
|
|
10
|
+
def numbers: (?scope: untyped, ?range: untyped, ?selected: untyped, ?exclude_ignored: untyped) -> untyped
|
|
11
|
+
|
|
12
|
+
def write: (untyped path, format: untyped, ?numbers: untyped, ?columns: untyped, ?cancelled: untyped) -> untyped
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def ranges: (untyped value, untyped limit) -> untyped
|
|
17
|
+
|
|
18
|
+
def check_cancelled: (untyped cancelled) -> untyped
|
|
19
|
+
|
|
20
|
+
def json: (untyped file, untyped numbers, untyped format, untyped cancelled) -> untyped
|
|
21
|
+
|
|
22
|
+
def text_node: (untyped file, untyped node, untyped depth) -> untyped
|
|
23
|
+
|
|
24
|
+
def csv_value: (untyped number, untyped column) -> untyped
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -17,6 +17,9 @@ module Vanken
|
|
|
17
17
|
# @rbs () -> void
|
|
18
18
|
def flush: () -> void
|
|
19
19
|
|
|
20
|
+
# @rbs () -> Integer
|
|
21
|
+
def bytes_written: () -> Integer
|
|
22
|
+
|
|
20
23
|
# @rbs (Redhound::Capture::Stats | Hash[Symbol | String, Integer] stats, ?interface: Redhound::Capture::Interface?) -> void
|
|
21
24
|
def write_stats: (Redhound::Capture::Stats | Hash[Symbol | String, Integer] stats, ?interface: Redhound::Capture::Interface?) -> void
|
|
22
25
|
|
|
@@ -11,6 +11,18 @@ module Vanken
|
|
|
11
11
|
|
|
12
12
|
# @rbs (String name) -> Hash[Symbol, untyped]
|
|
13
13
|
def self.find: (String name) -> Hash[Symbol, untyped]
|
|
14
|
+
|
|
15
|
+
# @rbs () -> Hash[String, Integer]
|
|
16
|
+
def self.traffic_counters: () -> Hash[String, Integer]
|
|
17
|
+
|
|
18
|
+
# @rbs (String text) -> Hash[String, Integer]
|
|
19
|
+
def self.parse_linux_counters: (String text) -> Hash[String, Integer]
|
|
20
|
+
|
|
21
|
+
# @rbs (String text) -> Hash[String, Integer]
|
|
22
|
+
def self.parse_darwin_counters: (String text) -> Hash[String, Integer]
|
|
23
|
+
|
|
24
|
+
# @rbs (?previous: Hash[Symbol, untyped]?, ?history: Hash[String, Array[Integer]], ?now: Integer | Float) -> Hash[Symbol, untyped]
|
|
25
|
+
def self.sample_traffic: (?previous: Hash[Symbol, untyped]?, ?history: Hash[String, Array[Integer]], ?now: Integer | Float) -> Hash[Symbol, untyped]
|
|
14
26
|
end
|
|
15
27
|
end
|
|
16
28
|
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Generated from lib/vanken/gateway/resolver.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Vanken
|
|
4
|
+
module Gateway
|
|
5
|
+
# Reverse DNS never runs on the requesting thread. Callbacks run on the
|
|
6
|
+
# worker; UI callers must post their publication to the UI executor.
|
|
7
|
+
class Resolver
|
|
8
|
+
NEGATIVE_TTL: ::Float
|
|
9
|
+
|
|
10
|
+
@worker: Thread
|
|
11
|
+
|
|
12
|
+
@closed: bool
|
|
13
|
+
|
|
14
|
+
@mutex: Mutex
|
|
15
|
+
|
|
16
|
+
@pending: Hash[String, Array[^(String) -> void]]
|
|
17
|
+
|
|
18
|
+
@cache: Hash[String, [ String?, Float? ]]
|
|
19
|
+
|
|
20
|
+
@queue: SizedQueue[String?]
|
|
21
|
+
|
|
22
|
+
@resolver: untyped
|
|
23
|
+
|
|
24
|
+
@limit: Integer
|
|
25
|
+
|
|
26
|
+
@timeout: Float
|
|
27
|
+
|
|
28
|
+
# @rbs (?timeout: Integer | Float, ?limit: Integer, ?resolver: untyped) -> void
|
|
29
|
+
def initialize: (?timeout: Integer | Float, ?limit: Integer, ?resolver: untyped) -> void
|
|
30
|
+
|
|
31
|
+
# @rbs (String address) ?{ (String) -> void } -> String
|
|
32
|
+
def request: (String address) ?{ (String) -> void } -> String
|
|
33
|
+
|
|
34
|
+
# @rbs () -> void
|
|
35
|
+
def close: () -> void
|
|
36
|
+
|
|
37
|
+
private
|
|
38
|
+
|
|
39
|
+
# @rbs (String address) -> String?
|
|
40
|
+
def numeric_address: (String address) -> String?
|
|
41
|
+
|
|
42
|
+
# @rbs () -> Float
|
|
43
|
+
def now: () -> Float
|
|
44
|
+
|
|
45
|
+
# @rbs (String address) -> String?
|
|
46
|
+
def lookup: (String address) -> String?
|
|
47
|
+
|
|
48
|
+
# @rbs () -> void
|
|
49
|
+
def work: () -> void
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Generated from lib/vanken/gateway/statistics.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Vanken
|
|
4
|
+
module Gateway
|
|
5
|
+
class HierarchyRow < Data
|
|
6
|
+
attr_reader path(): Array[Symbol]
|
|
7
|
+
|
|
8
|
+
attr_reader packets(): Integer
|
|
9
|
+
|
|
10
|
+
attr_reader bytes(): Integer
|
|
11
|
+
|
|
12
|
+
def self.new: (Array[Symbol] path, Integer packets, Integer bytes) -> instance
|
|
13
|
+
| (path: Array[Symbol], packets: Integer, bytes: Integer) -> instance
|
|
14
|
+
|
|
15
|
+
def self.members: () -> [ :path, :packets, :bytes ]
|
|
16
|
+
|
|
17
|
+
def members: () -> [ :path, :packets, :bytes ]
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class ConversationRow < Data
|
|
21
|
+
attr_reader addr_a(): String
|
|
22
|
+
|
|
23
|
+
attr_reader port_a(): Integer
|
|
24
|
+
|
|
25
|
+
attr_reader addr_b(): String
|
|
26
|
+
|
|
27
|
+
attr_reader port_b(): Integer
|
|
28
|
+
|
|
29
|
+
attr_reader packets_ab(): Integer
|
|
30
|
+
|
|
31
|
+
attr_reader packets_ba(): Integer
|
|
32
|
+
|
|
33
|
+
attr_reader bytes_ab(): Integer
|
|
34
|
+
|
|
35
|
+
attr_reader bytes_ba(): Integer
|
|
36
|
+
|
|
37
|
+
attr_reader start_ns(): Integer
|
|
38
|
+
|
|
39
|
+
attr_reader end_ns(): Integer
|
|
40
|
+
|
|
41
|
+
attr_reader duration_ns(): Integer
|
|
42
|
+
|
|
43
|
+
def self.new: (String addr_a, Integer port_a, String addr_b, Integer port_b, Integer packets_ab, Integer packets_ba, Integer bytes_ab, Integer bytes_ba, Integer start_ns, Integer end_ns, Integer duration_ns) -> instance
|
|
44
|
+
| (addr_a: String, port_a: Integer, addr_b: String, port_b: Integer, packets_ab: Integer, packets_ba: Integer, bytes_ab: Integer, bytes_ba: Integer, start_ns: Integer, end_ns: Integer, duration_ns: Integer) -> instance
|
|
45
|
+
|
|
46
|
+
def self.members: () -> [ :addr_a, :port_a, :addr_b, :port_b, :packets_ab, :packets_ba, :bytes_ab, :bytes_ba, :start_ns, :end_ns, :duration_ns ]
|
|
47
|
+
|
|
48
|
+
def members: () -> [ :addr_a, :port_a, :addr_b, :port_b, :packets_ab, :packets_ba, :bytes_ab, :bytes_ba, :start_ns, :end_ns, :duration_ns ]
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
class EndpointRow < Data
|
|
52
|
+
attr_reader address(): String
|
|
53
|
+
|
|
54
|
+
attr_reader port(): Integer
|
|
55
|
+
|
|
56
|
+
attr_reader packets_tx(): Integer
|
|
57
|
+
|
|
58
|
+
attr_reader packets_rx(): Integer
|
|
59
|
+
|
|
60
|
+
attr_reader bytes_tx(): Integer
|
|
61
|
+
|
|
62
|
+
attr_reader bytes_rx(): Integer
|
|
63
|
+
|
|
64
|
+
def self.new: (String address, Integer port, Integer packets_tx, Integer packets_rx, Integer bytes_tx, Integer bytes_rx) -> instance
|
|
65
|
+
| (address: String, port: Integer, packets_tx: Integer, packets_rx: Integer, bytes_tx: Integer, bytes_rx: Integer) -> instance
|
|
66
|
+
|
|
67
|
+
def self.members: () -> [ :address, :port, :packets_tx, :packets_rx, :bytes_tx, :bytes_rx ]
|
|
68
|
+
|
|
69
|
+
def members: () -> [ :address, :port, :packets_tx, :packets_rx, :bytes_tx, :bytes_rx ]
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
class StatisticsTable < Data
|
|
73
|
+
attr_reader kind(): Symbol
|
|
74
|
+
|
|
75
|
+
attr_reader type(): Symbol?
|
|
76
|
+
|
|
77
|
+
attr_reader rows(): Array[HierarchyRow | ConversationRow | EndpointRow]
|
|
78
|
+
|
|
79
|
+
attr_reader evicted(): Integer
|
|
80
|
+
|
|
81
|
+
def self.new: (Symbol kind, Symbol? type, Array[HierarchyRow | ConversationRow | EndpointRow] rows, Integer evicted) -> instance
|
|
82
|
+
| (kind: Symbol, type: Symbol?, rows: Array[HierarchyRow | ConversationRow | EndpointRow], evicted: Integer) -> instance
|
|
83
|
+
|
|
84
|
+
def self.members: () -> [ :kind, :type, :rows, :evicted ]
|
|
85
|
+
|
|
86
|
+
def members: () -> [ :kind, :type, :rows, :evicted ]
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# The upstream session and its private table schema stay inside the Gateway.
|
|
90
|
+
class Statistics
|
|
91
|
+
# @rbs (?specs: Array[String], ?registry: Redhound::Registry, **untyped options) -> void
|
|
92
|
+
def initialize: (?specs: Array[String], ?registry: Redhound::Registry, **untyped options) -> void
|
|
93
|
+
|
|
94
|
+
# @rbs (PacketView packet) -> void
|
|
95
|
+
def update: (PacketView packet) -> void
|
|
96
|
+
|
|
97
|
+
# @rbs () -> Array[StatisticsTable]
|
|
98
|
+
def tables: () -> Array[StatisticsTable]
|
|
99
|
+
|
|
100
|
+
# @rbs () -> void
|
|
101
|
+
def close: () -> void
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Generated from lib/vanken/gateway/stream.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Vanken
|
|
4
|
+
module Gateway
|
|
5
|
+
class StreamChunk < Data
|
|
6
|
+
attr_reader direction(): Integer
|
|
7
|
+
|
|
8
|
+
attr_reader bytes(): String
|
|
9
|
+
|
|
10
|
+
attr_reader missing(): Integer
|
|
11
|
+
|
|
12
|
+
attr_reader number(): Integer
|
|
13
|
+
|
|
14
|
+
attr_reader sequence(): Integer
|
|
15
|
+
|
|
16
|
+
def self.new: (Integer direction, String bytes, Integer missing, Integer number, Integer sequence) -> instance
|
|
17
|
+
| (direction: Integer, bytes: String, missing: Integer, number: Integer, sequence: Integer) -> instance
|
|
18
|
+
|
|
19
|
+
def self.members: () -> [ :direction, :bytes, :missing, :number, :sequence ]
|
|
20
|
+
|
|
21
|
+
def members: () -> [ :direction, :bytes, :missing, :number, :sequence ]
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
class StreamText < Data
|
|
25
|
+
attr_reader direction(): Integer
|
|
26
|
+
|
|
27
|
+
attr_reader text(): String
|
|
28
|
+
|
|
29
|
+
def self.new: (Integer direction, String text) -> instance
|
|
30
|
+
| (direction: Integer, text: String) -> instance
|
|
31
|
+
|
|
32
|
+
def self.members: () -> [ :direction, :text ]
|
|
33
|
+
|
|
34
|
+
def members: () -> [ :direction, :text ]
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
class Stream
|
|
38
|
+
DISPLAY_LIMIT: Integer
|
|
39
|
+
|
|
40
|
+
SEQUENCE_MOD: Integer
|
|
41
|
+
|
|
42
|
+
attr_reader nodes: Array[String]
|
|
43
|
+
|
|
44
|
+
attr_reader chunks: Array[StreamChunk]
|
|
45
|
+
|
|
46
|
+
attr_reader stream_id: Integer
|
|
47
|
+
|
|
48
|
+
# @rbs (untyped document, Integer stream_id, ?cancelled: (^() -> bool)?) -> void
|
|
49
|
+
def initialize: (untyped document, Integer stream_id, ?cancelled: (^() -> bool)?) -> void
|
|
50
|
+
|
|
51
|
+
# @rbs (?direction: Integer?) -> Integer
|
|
52
|
+
def byte_size: (?direction: Integer?) -> Integer
|
|
53
|
+
|
|
54
|
+
# @rbs (?format: Symbol, ?direction: Integer?, ?limit: Integer) -> Array[StreamText]
|
|
55
|
+
def preview: (?format: Symbol, ?direction: Integer?, ?limit: Integer) -> Array[StreamText]
|
|
56
|
+
|
|
57
|
+
# @rbs (String path, ?format: Symbol, ?direction: Integer?, ?cancelled: (^() -> bool)?) -> String
|
|
58
|
+
def save: (String path, ?format: Symbol, ?direction: Integer?, ?cancelled: (^() -> bool)?) -> String
|
|
59
|
+
|
|
60
|
+
private
|
|
61
|
+
|
|
62
|
+
# @rbs (Integer? direction) -> Array[StreamChunk]
|
|
63
|
+
def selected: (Integer? direction) -> Array[StreamChunk]
|
|
64
|
+
|
|
65
|
+
def endpoint: (untyped address, untyped port) -> untyped
|
|
66
|
+
|
|
67
|
+
def validate: (untyped format, untyped direction) -> untyped
|
|
68
|
+
|
|
69
|
+
def render: (untyped chunk, untyped bytes, untyped format) -> untyped
|
|
70
|
+
|
|
71
|
+
# Keep capture arrival precedence while inserting only previously unseen ranges.
|
|
72
|
+
def insert: (untyped segments, untyped chunk) -> untyped
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|