logporter 0.0.1 → 0.0.2
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/lib/logporter/server/connection.rb +3 -3
- data/lib/logporter/server.rb +30 -17
- metadata +4 -4
|
@@ -45,7 +45,7 @@ class LogPorter::Server::Connection < EventMachine::Connection
|
|
|
45
45
|
|
|
46
46
|
begin
|
|
47
47
|
@client_port, @client_address = Socket.unpack_sockaddr_in(get_peername)
|
|
48
|
-
|
|
48
|
+
@server.logger.info "New client: #{@client_address}:#{@client_port}"
|
|
49
49
|
rescue => e
|
|
50
50
|
p e
|
|
51
51
|
end
|
|
@@ -104,8 +104,8 @@ class LogPorter::Server::Connection < EventMachine::Connection
|
|
|
104
104
|
def stats
|
|
105
105
|
@start ||= Time.now
|
|
106
106
|
@count += 1
|
|
107
|
-
if
|
|
108
|
-
|
|
107
|
+
if (Time.now - @start) > 10
|
|
108
|
+
@server.logger.info "Rate: #{@count / (Time.now - @start)}"
|
|
109
109
|
@start = Time.now
|
|
110
110
|
@count = 0
|
|
111
111
|
end
|
data/lib/logporter/server.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require "logporter/namespace"
|
|
2
2
|
require "logporter/server/connection"
|
|
3
3
|
require "logporter/server/defaulthandler"
|
|
4
|
+
require "logger"
|
|
4
5
|
|
|
5
6
|
class LogPorter::Server
|
|
6
7
|
|
|
@@ -23,6 +24,9 @@ class LogPorter::Server
|
|
|
23
24
|
# This is a hash
|
|
24
25
|
attr_reader :attributes
|
|
25
26
|
|
|
27
|
+
# The logger object
|
|
28
|
+
attr_accessor :logger
|
|
29
|
+
|
|
26
30
|
# Create a new server to listen with
|
|
27
31
|
# 'options' is a hash of:
|
|
28
32
|
#
|
|
@@ -31,6 +35,7 @@ class LogPorter::Server
|
|
|
31
35
|
# :wire => the wire format (:raw, :syslog)
|
|
32
36
|
# :handler => the handler instance. Must respond to 'receive_event'
|
|
33
37
|
def initialize(options)
|
|
38
|
+
@logger = Logger.new(STDOUT)
|
|
34
39
|
@network = options[:net]
|
|
35
40
|
@port = options.delete(:port) || 514
|
|
36
41
|
@wire = options.delete(:wire) || :raw
|
|
@@ -57,25 +62,32 @@ class LogPorter::Server
|
|
|
57
62
|
# s.start
|
|
58
63
|
#
|
|
59
64
|
# EventMachine.run()
|
|
60
|
-
EventMachine.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
65
|
+
if EventMachine.reactor_running?
|
|
66
|
+
_start
|
|
67
|
+
else
|
|
68
|
+
EventMachine.next_tick { _start }
|
|
69
|
+
end
|
|
70
|
+
end # def start
|
|
71
|
+
|
|
72
|
+
private
|
|
73
|
+
def _start
|
|
74
|
+
@logger.info "Starting #{@network}/#{@port}"
|
|
75
|
+
begin
|
|
76
|
+
case @network
|
|
77
|
+
when :udp; start_udp_server
|
|
78
|
+
when :tcp; start_tcp_server
|
|
79
|
+
when :tls; start_tcp_server # tls is handled by tcp.
|
|
73
80
|
else
|
|
74
|
-
raise
|
|
75
|
-
|
|
81
|
+
raise "Unknown network '#{@network}' expected :udp, :tcp, or :tls"
|
|
82
|
+
end
|
|
83
|
+
rescue => e
|
|
84
|
+
if @handler.respond_to?(:receive_exception)
|
|
85
|
+
@handler.receive_exception(e, self)
|
|
86
|
+
else
|
|
87
|
+
raise e
|
|
76
88
|
end
|
|
77
89
|
end
|
|
78
|
-
end # def
|
|
90
|
+
end # def _start
|
|
79
91
|
|
|
80
92
|
private
|
|
81
93
|
def start_udp_server
|
|
@@ -93,10 +105,11 @@ class LogPorter::Server
|
|
|
93
105
|
public
|
|
94
106
|
def receive_event(event, client_addr, client_port)
|
|
95
107
|
@handler.receive_event(event, self, client_addr, client_port)
|
|
96
|
-
end
|
|
108
|
+
end # def receive_event
|
|
97
109
|
|
|
98
110
|
public
|
|
99
111
|
def stop
|
|
112
|
+
@logger.info "Stopping #{@network}/#{@port}"
|
|
100
113
|
case @network
|
|
101
114
|
when :tcp
|
|
102
115
|
EventMachine::stop_server(@socket)
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: logporter
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 27
|
|
5
5
|
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 0
|
|
9
|
-
-
|
|
10
|
-
version: 0.0.
|
|
9
|
+
- 2
|
|
10
|
+
version: 0.0.2
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Jordan Sissel
|
|
@@ -15,7 +15,7 @@ autorequire:
|
|
|
15
15
|
bindir: bin
|
|
16
16
|
cert_chain: []
|
|
17
17
|
|
|
18
|
-
date: 2011-
|
|
18
|
+
date: 2011-04-04 00:00:00 -07:00
|
|
19
19
|
default_executable:
|
|
20
20
|
dependencies: []
|
|
21
21
|
|