code: function waitUntilFree(port, retryTimeMs, timeOutMs) {
  
      // the first arument may be an object, if it is not, make an object
      var opts;
      if (is.obj(port)) {
          opts = port;
          opts.host = '127.0.0.1';
          opts.inUse = false;
      } else {
          opts = makeOptionsObj(port, '127.0.0.1', false, retryTimeMs, timeOutMs);
      }
  
      return waitForStatus(opts);
  }
docs: For compatibility with previous version of the module, that did not provide
  arguements for hostnames. The host is set to the localhost '127.0.0.1'.
  @param {Number|Object} port a valid TCP port number. If an object, must contain all the parameters as properties.
  @param {Number} [retryTimeMs] the retry interval in milliseconds - defaultis is 100ms.
  @param {Number} [timeOutMs] the amount of time to wait until port is free. Default 300ms.
  @return {Object} A deferred promise from the q library.
  
  Example usage:
  
  var tcpPortUsed = require('tcp-port-used');
  tcpPortUsed.waitUntilFree(44203, 500, 4000)
  .then(function() {
  console.log('Port 44203 is now free.');
  }, function(err) {
  console.loh('Error: ', error.message);
  });