@@ -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