firescan 0.07 → 0.08
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.
- data/VERSION.txt +2 -1
- data/doc/Example.html +0 -2
- data/doc/Firebind.html +0 -40
- data/doc/Firebind/Client.html +23 -23
- data/doc/Firebind/Portspec.html +3 -5
- data/doc/Firebind/Scan.html +32 -12
- data/doc/Firebind/ScanError.html +2 -4
- data/doc/Firebind/ScanState.html +19 -21
- data/doc/Firebind/SimpleProtocol.html +4 -6
- data/doc/Firebind/TcpTransport.html +7 -9
- data/doc/Firebind/Transport.html +2 -4
- data/doc/Firebind/UdpTransport.html +4 -6
- data/doc/LICENSE_txt.html +0 -2
- data/doc/README_txt.html +0 -2
- data/doc/Runner.html +0 -2
- data/doc/TestPortspec.html +0 -2
- data/doc/Tools.html +4 -6
- data/doc/USAGE_txt.html +0 -2
- data/doc/VERSION_txt.html +2 -3
- data/doc/created.rid +22 -22
- data/doc/doc/created_rid.html +0 -2
- data/doc/firescan_gemspec.html +1 -3
- data/doc/index.html +0 -2
- data/doc/js/search_index.js +1 -1
- data/doc/table_of_contents.html +0 -3
- data/firescan.gemspec +1 -1
- data/lib/firebind/client.rb +20 -16
- data/lib/firebind/portspec.rb +2 -0
- data/lib/firebind/scan.rb +22 -10
- data/lib/firebind/scan_error.rb +2 -0
- data/lib/firebind/scan_state.rb +5 -3
- data/lib/firebind/simple_protocol.rb +3 -1
- data/lib/firebind/tcp_transport.rb +5 -3
- data/lib/firebind/tools.rb +2 -0
- data/lib/firebind/transport.rb +2 -0
- data/lib/firebind/udp_transport.rb +2 -0
- metadata +2 -4
- data/build +0 -7
- data/doc/build.html +0 -125
data/lib/firebind/portspec.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
#--
|
1
2
|
# Firebind -- Path Scan Client Software
|
2
3
|
# Copyright (C) 2013 Firebind Inc. All rights reserved.
|
3
4
|
# Authors - Jay Houghton
|
@@ -13,6 +14,7 @@
|
|
13
14
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14
15
|
# License for the specific language governing permissions and limitations under
|
15
16
|
# the License.
|
17
|
+
#++
|
16
18
|
|
17
19
|
module Firebind
|
18
20
|
|
data/lib/firebind/scan.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
#--
|
1
2
|
# Firebind -- Path Scan Client Software
|
2
3
|
# Copyright (C) 2013 Firebind Inc. All rights reserved.
|
3
4
|
# Authors - Jay Houghton
|
@@ -13,6 +14,7 @@
|
|
13
14
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14
15
|
# License for the specific language governing permissions and limitations under
|
15
16
|
# the License.
|
17
|
+
#++
|
16
18
|
|
17
19
|
require 'net/http'
|
18
20
|
require 'uri'
|
@@ -35,12 +37,14 @@ module Firebind
|
|
35
37
|
include Observable
|
36
38
|
include Tools
|
37
39
|
|
40
|
+
attr_accessor :tag
|
41
|
+
|
38
42
|
# Create a new Scan
|
39
43
|
#
|
40
44
|
#--
|
41
45
|
# @param [Object] command_server
|
42
46
|
# @param [Object] ports
|
43
|
-
def initialize (command_server, ports, transport, timeout=5000, protocol=:SimpleProtocol, username=
|
47
|
+
def initialize (command_server, ports, transport, timeout=5000, protocol=:SimpleProtocol, username=nil, password=nil, tag=nil)
|
44
48
|
@command_server = command_server
|
45
49
|
@portspec = Firebind::Portspec.new(ports)
|
46
50
|
@timeout = timeout
|
@@ -48,6 +52,7 @@ module Firebind
|
|
48
52
|
@username = username
|
49
53
|
@password = password
|
50
54
|
@transport = transport
|
55
|
+
@tag = tag
|
51
56
|
@done = false
|
52
57
|
@state = ScanState.new(command_server,protocol,transport,@portspec,timeout)
|
53
58
|
|
@@ -136,13 +141,14 @@ module Firebind
|
|
136
141
|
|
137
142
|
end
|
138
143
|
|
144
|
+
@state.on_scan_complete($client_scan_completed)
|
145
|
+
|
139
146
|
api_update
|
140
147
|
|
141
|
-
if @portspec.size == @state.ports_scanned
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
end
|
148
|
+
#if @portspec.size == @state.ports_scanned
|
149
|
+
changed
|
150
|
+
notify_observers(@state)
|
151
|
+
|
146
152
|
|
147
153
|
#update
|
148
154
|
@state
|
@@ -182,13 +188,13 @@ module Firebind
|
|
182
188
|
request = Net::HTTP::Post.new(uri.request_uri)
|
183
189
|
request.basic_auth(@username, @password)
|
184
190
|
|
185
|
-
transport_proto = if @transport == :UDP then '
|
191
|
+
transport_proto = if @transport == :UDP then 'UDP' else 'TCP' end
|
186
192
|
|
187
|
-
data = {portSpec:@portspec.to_s,
|
193
|
+
data = {portSpec:@portspec.to_s,transport:transport_proto,scanTimeout:@timeout,tag:@tag}
|
188
194
|
request.body = data.to_json
|
189
195
|
|
190
196
|
#noinspection RubyStringKeysInHashInspection
|
191
|
-
#request.set_form_data({'portSpec' => @portspec.to_s, '
|
197
|
+
#request.set_form_data({'portSpec' => @portspec.to_s, 'transport' => 'TCP'})
|
192
198
|
|
193
199
|
begin
|
194
200
|
response = http.request(request)
|
@@ -265,12 +271,18 @@ module Firebind
|
|
265
271
|
data << { guid:@state.guid, serverId:@state.echo_server, portSpec:ps.to_s, statusCode:code, status:status}
|
266
272
|
end
|
267
273
|
|
274
|
+
debug(@state.to_s)
|
268
275
|
test_status = if @state.current_state == :SCAN_COMPLETE then 'Success' else 'Failed' end
|
269
276
|
|
270
277
|
#build json payload with results
|
271
278
|
report = { clientReport: { guid:@state.guid, serverId:@state.echo_server, testStatus:test_status, uid:@username},
|
272
279
|
clientReportData: data }
|
273
|
-
|
280
|
+
|
281
|
+
if $debug
|
282
|
+
debug('Scan update composed:')
|
283
|
+
jj report
|
284
|
+
end
|
285
|
+
|
274
286
|
json = report.to_json
|
275
287
|
request.body = json
|
276
288
|
|
data/lib/firebind/scan_error.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
#--
|
1
2
|
# Firebind -- Path Scan Client Software
|
2
3
|
# Copyright (C) 2013 Firebind Inc. All rights reserved.
|
3
4
|
# Authors - Jay Houghton
|
@@ -13,6 +14,7 @@
|
|
13
14
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14
15
|
# License for the specific language governing permissions and limitations under
|
15
16
|
# the License.
|
17
|
+
#++
|
16
18
|
|
17
19
|
module Firebind
|
18
20
|
class ScanError < IOError
|
data/lib/firebind/scan_state.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
#--
|
1
2
|
# Firebind -- Path Scan Client Software
|
2
3
|
# Copyright (C) 2013 Firebind Inc. All rights reserved.
|
3
4
|
# Authors - Jay Houghton
|
@@ -13,6 +14,7 @@
|
|
13
14
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14
15
|
# License for the specific language governing permissions and limitations under
|
15
16
|
# the License.
|
17
|
+
#++
|
16
18
|
|
17
19
|
require_relative 'tools'
|
18
20
|
module Firebind
|
@@ -43,13 +45,13 @@ module Firebind
|
|
43
45
|
@transport = transport
|
44
46
|
@portspec = portspec
|
45
47
|
@timeout = timeout
|
46
|
-
@guid =
|
47
|
-
@echo_server =
|
48
|
+
@guid = nil
|
49
|
+
@echo_server = nil
|
48
50
|
@port = 0
|
49
51
|
@last_duration = 0
|
50
52
|
@ports_scanned = 0
|
51
53
|
@result_map = Hash.new {|hash,key| hash[key]=[]} # block form
|
52
|
-
@message =
|
54
|
+
@message = nil
|
53
55
|
end
|
54
56
|
|
55
57
|
def to_s
|
@@ -1,3 +1,4 @@
|
|
1
|
+
#--
|
1
2
|
# Firebind -- Path Scan Client Software
|
2
3
|
# Copyright (C) 2013 Firebind Inc. All rights reserved.
|
3
4
|
# Authors - Jay Houghton
|
@@ -13,6 +14,7 @@
|
|
13
14
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14
15
|
# License for the specific language governing permissions and limitations under
|
15
16
|
# the License.
|
17
|
+
#++
|
16
18
|
|
17
19
|
require_relative 'tcp_transport'
|
18
20
|
require_relative 'udp_transport'
|
@@ -27,7 +29,7 @@ module Firebind
|
|
27
29
|
include Tools
|
28
30
|
|
29
31
|
# @param [Object] transport
|
30
|
-
def initialize(guid,echo_host,transport,timeout,state=
|
32
|
+
def initialize(guid,echo_host,transport,timeout,state=nil)
|
31
33
|
@guid = guid
|
32
34
|
@echo_host = echo_host
|
33
35
|
@state = state
|
@@ -1,3 +1,4 @@
|
|
1
|
+
#--
|
1
2
|
# Firebind -- Path Scan Client Software
|
2
3
|
# Copyright (C) 2013 Firebind Inc. All rights reserved.
|
3
4
|
# Authors - Jay Houghton
|
@@ -13,6 +14,7 @@
|
|
13
14
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14
15
|
# License for the specific language governing permissions and limitations under
|
15
16
|
# the License.
|
17
|
+
#++
|
16
18
|
|
17
19
|
require_relative 'transport'
|
18
20
|
require_relative 'tools'
|
@@ -51,9 +53,9 @@ module Firebind
|
|
51
53
|
readables,writables,errors = IO.select([@socket], [@socket], [@socket], @timeout_seconds)
|
52
54
|
debug "readables=#{readables} writables=#{writables} errors=#{errors}"
|
53
55
|
|
54
|
-
readable = readables !=
|
55
|
-
writable = writables !=
|
56
|
-
error = errors !=
|
56
|
+
readable = readables != nil && readables.length > 0
|
57
|
+
writable = writables != nil && writables.length > 0
|
58
|
+
error = errors != nil && errors.length > 0
|
57
59
|
|
58
60
|
if error
|
59
61
|
raise Firebind::ScanError.new(:HANDSHAKE_CONNECTION_REFUSED)
|
data/lib/firebind/tools.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
#--
|
1
2
|
# Firebind -- Path Scan Client Software
|
2
3
|
# Copyright (C) 2013 Firebind Inc. All rights reserved.
|
3
4
|
# Authors - Jay Houghton
|
@@ -13,6 +14,7 @@
|
|
13
14
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14
15
|
# License for the specific language governing permissions and limitations under
|
15
16
|
# the License.
|
17
|
+
#++
|
16
18
|
|
17
19
|
# Utility module for translating socket and result codes.
|
18
20
|
module Tools
|
data/lib/firebind/transport.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
#--
|
1
2
|
# Firebind -- Path Scan Client Software
|
2
3
|
# Copyright (C) 2013 Firebind Inc. All rights reserved.
|
3
4
|
# Authors - Jay Houghton
|
@@ -13,6 +14,7 @@
|
|
13
14
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14
15
|
# License for the specific language governing permissions and limitations under
|
15
16
|
# the License.
|
17
|
+
#++
|
16
18
|
|
17
19
|
require_relative 'tools'
|
18
20
|
require 'socket'
|
@@ -1,3 +1,4 @@
|
|
1
|
+
#--
|
1
2
|
# Firebind -- Path Scan Client Software
|
2
3
|
# Copyright (C) 2013 Firebind Inc. All rights reserved.
|
3
4
|
# Authors - Jay Houghton
|
@@ -13,6 +14,7 @@
|
|
13
14
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14
15
|
# License for the specific language governing permissions and limitations under
|
15
16
|
# the License.
|
17
|
+
#++
|
16
18
|
|
17
19
|
require_relative 'transport'
|
18
20
|
require_relative 'tools'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: firescan
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.08'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-01-10 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: ! "firescan-ruby\n=============\n\nRuby reference implementation for
|
15
15
|
the Firebind Firescan path scan client This code has been tested to work\nwith Ruby
|
@@ -31,7 +31,6 @@ executables:
|
|
31
31
|
extensions: []
|
32
32
|
extra_rdoc_files: []
|
33
33
|
files:
|
34
|
-
- build
|
35
34
|
- LICENSE.txt
|
36
35
|
- test/portspec_test.rb
|
37
36
|
- test/runner.rb
|
@@ -78,7 +77,6 @@ files:
|
|
78
77
|
- doc/LICENSE_txt.html
|
79
78
|
- doc/Example.html
|
80
79
|
- doc/Runner.html
|
81
|
-
- doc/build.html
|
82
80
|
- doc/Firebind/SimpleProtocol.html
|
83
81
|
- doc/Firebind/Portspec.html
|
84
82
|
- doc/Firebind/Transport.html
|
data/build
DELETED
data/doc/build.html
DELETED
@@ -1,125 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
|
3
|
-
<html>
|
4
|
-
<head>
|
5
|
-
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
|
6
|
-
|
7
|
-
<title>build - RDoc Documentation</title>
|
8
|
-
|
9
|
-
<link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet">
|
10
|
-
|
11
|
-
<script type="text/javascript">
|
12
|
-
var rdoc_rel_prefix = "./";
|
13
|
-
</script>
|
14
|
-
|
15
|
-
<script type="text/javascript" charset="utf-8" src="./js/jquery.js"></script>
|
16
|
-
<script type="text/javascript" charset="utf-8" src="./js/navigation.js"></script>
|
17
|
-
<script type="text/javascript" charset="utf-8" src="./js/search_index.js"></script>
|
18
|
-
<script type="text/javascript" charset="utf-8" src="./js/search.js"></script>
|
19
|
-
<script type="text/javascript" charset="utf-8" src="./js/searcher.js"></script>
|
20
|
-
<script type="text/javascript" charset="utf-8" src="./js/darkfish.js"></script>
|
21
|
-
|
22
|
-
|
23
|
-
<body class="file">
|
24
|
-
<nav id="metadata">
|
25
|
-
<nav id="home-section" class="section">
|
26
|
-
<h3 class="section-header">
|
27
|
-
<a href="./index.html">Home</a>
|
28
|
-
<a href="./table_of_contents.html#classes">Classes</a>
|
29
|
-
<a href="./table_of_contents.html#methods">Methods</a>
|
30
|
-
</h3>
|
31
|
-
</nav>
|
32
|
-
|
33
|
-
|
34
|
-
<nav id="search-section" class="section project-section" class="initially-hidden">
|
35
|
-
<form action="#" method="get" accept-charset="utf-8">
|
36
|
-
<h3 class="section-header">
|
37
|
-
<input type="text" name="search" placeholder="Search" id="search-field"
|
38
|
-
title="Type to search, Up and Down to navigate, Enter to load">
|
39
|
-
</h3>
|
40
|
-
</form>
|
41
|
-
|
42
|
-
<ul id="search-results" class="initially-hidden"></ul>
|
43
|
-
</nav>
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
<div id="project-metadata">
|
49
|
-
<nav id="fileindex-section" class="section project-section">
|
50
|
-
<h3 class="section-header">Pages</h3>
|
51
|
-
|
52
|
-
<ul>
|
53
|
-
|
54
|
-
<li class="file"><a href="./LICENSE_txt.html">LICENSE</a>
|
55
|
-
|
56
|
-
<li class="file"><a href="./README_txt.html">README</a>
|
57
|
-
|
58
|
-
<li class="file"><a href="./USAGE_txt.html">USAGE</a>
|
59
|
-
|
60
|
-
<li class="file"><a href="./VERSION_txt.html">VERSION</a>
|
61
|
-
|
62
|
-
<li class="file"><a href="./build.html">build</a>
|
63
|
-
|
64
|
-
<li class="file"><a href="./doc/created_rid.html">created.rid</a>
|
65
|
-
|
66
|
-
<li class="file"><a href="./firescan_gemspec.html">firescan.gemspec</a>
|
67
|
-
|
68
|
-
</ul>
|
69
|
-
</nav>
|
70
|
-
|
71
|
-
<nav id="classindex-section" class="section project-section">
|
72
|
-
<h3 class="section-header">Class and Module Index</h3>
|
73
|
-
|
74
|
-
<ul class="link-list">
|
75
|
-
|
76
|
-
<li><a href="./Example.html">Example</a>
|
77
|
-
|
78
|
-
<li><a href="./Firebind.html">Firebind</a>
|
79
|
-
|
80
|
-
<li><a href="./Firebind/Client.html">Firebind::Client</a>
|
81
|
-
|
82
|
-
<li><a href="./Firebind/Portspec.html">Firebind::Portspec</a>
|
83
|
-
|
84
|
-
<li><a href="./Firebind/Scan.html">Firebind::Scan</a>
|
85
|
-
|
86
|
-
<li><a href="./Firebind/ScanError.html">Firebind::ScanError</a>
|
87
|
-
|
88
|
-
<li><a href="./Firebind/ScanState.html">Firebind::ScanState</a>
|
89
|
-
|
90
|
-
<li><a href="./Firebind/SimpleProtocol.html">Firebind::SimpleProtocol</a>
|
91
|
-
|
92
|
-
<li><a href="./Firebind/TcpTransport.html">Firebind::TcpTransport</a>
|
93
|
-
|
94
|
-
<li><a href="./Firebind/Transport.html">Firebind::Transport</a>
|
95
|
-
|
96
|
-
<li><a href="./Firebind/UdpTransport.html">Firebind::UdpTransport</a>
|
97
|
-
|
98
|
-
<li><a href="./Runner.html">Runner</a>
|
99
|
-
|
100
|
-
<li><a href="./TestPortspec.html">TestPortspec</a>
|
101
|
-
|
102
|
-
<li><a href="./Tools.html">Tools</a>
|
103
|
-
|
104
|
-
</ul>
|
105
|
-
</nav>
|
106
|
-
|
107
|
-
</div>
|
108
|
-
</nav>
|
109
|
-
|
110
|
-
<div id="documentation" class="description">
|
111
|
-
|
112
|
-
<p>#!/bin/bash rm *.gem rm -rf doc rdoc gem uninstall -x firescan gem build <a
|
113
|
-
href="firescan_gemspec.html">firescan.gemspec</a> gem install
|
114
|
-
firescan-*.gem</p>
|
115
|
-
|
116
|
-
</div>
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
<footer id="validator-badges">
|
121
|
-
<p><a href="http://validator.w3.org/check/referer">[Validate]</a>
|
122
|
-
<p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 4.0.1.
|
123
|
-
<p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
|
124
|
-
</footer>
|
125
|
-
|