Skip to content

Commit 9de40ad

Browse files
committed
fix previous request signature
1 parent 9cd9386 commit 9de40ad

1 file changed

Lines changed: 46 additions & 17 deletions

File tree

libs/raidar.js

Lines changed: 46 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -177,11 +177,49 @@ Raidar.prototype._onSocketMessage = function (msg) {
177177

178178
}
179179

180+
/**
181+
* handle every kind of crazy/random/old signature
182+
*/
183+
184+
function parseRequestArguments () {
185+
186+
var result = {}
187+
188+
for (var i = 0; i < arguments.length; i++) {
189+
190+
var arg = arguments[i]
191+
192+
switch (typeof arg) {
193+
194+
case 'object':
195+
result = arg
196+
break
197+
198+
case 'number':
199+
result.timeout = arg
200+
break
201+
202+
case 'function':
203+
result.callback = arg
204+
break
205+
206+
case 'string':
207+
result.address = arg
208+
break
209+
210+
}
211+
212+
}
213+
214+
return result
215+
216+
}
217+
180218
/**
181219
* request status to ReadyNAS devices
182220
*
183221
* @param {Object} [options]
184-
* @param {String} [options.host] request target devices, default '255.255.255.255'
222+
* @param {String} [options.address] request target, default '255.255.255.255'
185223
* @param {Number} [options.timeout] request idle timeout, default 3 seconds
186224
* @param {Function} [callback]
187225
* @return {Raidar}
@@ -198,20 +236,11 @@ Raidar.prototype.request = function (options, callback) {
198236
// flag as running
199237
this._request = true
200238

201-
// handle signature
202-
if (typeof options === 'function') {
203-
204-
callback = options
239+
// parse random signature
240+
options = parseRequestArguments.apply(null, arguments)
205241

206-
options = {}
207-
208-
}
209-
210-
// ensure options
211-
options = options || {}
212-
213-
// ensure callback
214-
callback = callback || function () { }
242+
// get callback
243+
callback = options.callback || function () { }
215244

216245
// this instance shortcut
217246
var self = this
@@ -255,11 +284,11 @@ Raidar.prototype.request = function (options, callback) {
255284

256285
}
257286

258-
// target host (default broadcast)
259-
var host = options.host || '255.255.255.255'
287+
// target address (default broadcast)
288+
var address = options.address || '255.255.255.255'
260289

261290
// send magic packet
262-
this._socket.send(this._packet, 0, this._packet.length, 22081, host, function (err) {
291+
this._socket.send(this._packet, 0, this._packet.length, 22081, address, function (err) {
263292

264293
// handle error
265294
if (err) {

0 commit comments

Comments
 (0)