Seems to me like this function is doing very little more now than "Socks.interpretSocksRequest(byteArray, request);" Do we need both? Also: if an exception is raised, should we not convert it to a promise rejection?