@@ -69,20 +69,25 @@ def initialize(message, servers, options = {}, &block)
69
69
70
70
# Measured in seconds:
71
71
@timeout = options [ :timeout ] || 5
72
+
73
+ @logger = options [ :logger ]
72
74
end
73
75
74
76
attr :message
75
77
attr :packet
78
+ attr :logger
76
79
77
80
def run!
78
81
try_next_server!
79
82
end
80
83
81
84
def process_response! ( response )
82
85
if response . tc != 0
86
+ @logger . warn "[#{ @message . id } ] Received truncated response!" if @logger
83
87
# We hardcode this behaviour for now.
84
88
try_next_server!
85
89
else
90
+ @logger . warn "[#{ @message . id } ] Received valid response #{ response . inspect } " if @logger
86
91
succeed response
87
92
end
88
93
end
@@ -98,6 +103,8 @@ def try_next_server!
98
103
if @servers . size > 0
99
104
@server = @servers . shift
100
105
106
+ @logger . debug "[#{ @message . id } ] Sending request to server #{ @server . inspect } " if @logger
107
+
101
108
# We make requests one at a time to the given server, naturally the servers are ordered in terms of priority.
102
109
case @server [ 0 ]
103
110
when :udp
@@ -110,6 +117,8 @@ def try_next_server!
110
117
111
118
# Setting up the timeout...
112
119
EventMachine ::Timer . new ( @timeout ) do
120
+ @logger . debug "[#{ @message . id } ] Request timed out!" if @logger
121
+
113
122
try_next_server!
114
123
end
115
124
else
@@ -141,6 +150,8 @@ def receive_data(data)
141
150
# The message id must match, and it can't be truncated:
142
151
if message . id == @request . message . id
143
152
@request . process_response! ( message )
153
+ else
154
+ @request . logger . warn "[#{ @request . message . id } ] Received response with incorrect message id: #{ message . id } " if @request . logger
144
155
end
145
156
end
146
157
end
@@ -181,6 +192,8 @@ def receive_data(data)
181
192
182
193
if message . id == @request . message . id
183
194
@request . process_response! ( message )
195
+ else
196
+ @request . logger . warn "[#{ @request . message . id } ] Received response with incorrect message id: #{ message . id } " if @request . logger
184
197
end
185
198
elsif @buffer . size > ( @length + 2 )
186
199
@request . try_next_server!
0 commit comments