You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by bh...@apache.org on 2014/04/13 03:08:06 UTC

[24/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/net-ping/node_modules/raw-socket/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/net-ping/node_modules/raw-socket/package.json b/blackberry10/node_modules/net-ping/node_modules/raw-socket/package.json
deleted file mode 100644
index 2e9c16c..0000000
--- a/blackberry10/node_modules/net-ping/node_modules/raw-socket/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-  "name": "raw-socket",
-  "version": "1.2.0",
-  "description": "Raw sockets for Node.js.",
-  "main": "index.js",
-  "directories": {
-    "example": "example"
-  },
-  "dependencies": {},
-  "contributors": [
-    {
-      "name": "Stephen Vickers",
-      "email": "stephen.vickers.sv@gmail.com"
-    }
-  ],
-  "repository": {
-    "type": "mercurial",
-    "url": "https://bitbucket.org/stephenwvickers/node-raw-socket"
-  },
-  "keywords": [
-    "checksum",
-    "checksums",
-    "htonl",
-    "htons",
-    "net",
-    "network",
-    "ntohl",
-    "ntohs",
-    "raw",
-    "raw-socket",
-    "raw-sockets",
-    "socket",
-    "sockets"
-  ],
-  "author": {
-    "name": "Stephen Vickers",
-    "email": "stephen.vickers.sv@gmail.com"
-  },
-  "license": "MIT",
-  "scripts": {
-    "install": "node-gyp rebuild"
-  },
-  "gypfile": true,
-  "readme": "\n# raw-socket - [homepage][homepage]\n\nThis module implements raw sockets for [Node.js][nodejs].\n\n*This module has been created primarily to facilitate implementation of the\n[net-ping][net-ping] module.*\n\nThis module is installed using [node package manager (npm)][npm]:\n\n    # This module contains C++ source code which will be compiled\n    # during installation using node-gyp.  A suitable build chain\n    # must be configured before installation.\n    \n    npm install raw-socket\n\nIt is loaded using the `require()` function:\n\n    var raw = require (\"raw-socket\");\n\nRaw sockets can then be created, and data sent using [Node.js][nodejs]\n`Buffer` objects:\n\n    var socket = raw.createSocket ({protocol: raw.Protocol.None});\n\n    socket.on (\"message\", function (buffer, source) {\n        console.log (\"received \" + buffer.length + \" bytes from \" + source);\n    });\n    \n    socket.send (buffer, 0, buffer.length, \"1.1.1.1\", function (error, bytes
 ) {\n        if (error)\n            console.log (error.toString ());\n    });\n\n[homepage]: http://re-tool.org \"Homepage\"\n[nodejs]: http://nodejs.org \"Node.js\"\n[net-ping]: https://npmjs.org/package/net-ping \"net-ping\"\n[npm]: https://npmjs.org/ \"npm\"\n\n# Network Protocol Support\n\nThe raw sockets exposed by this module support IPv4 and IPv6.\n\nRaw sockets are created using the operating systems `socket()` function, and\nthe socket type `SOCK_RAW` specified.\n\n# Raw Socket Behaviour\n\nRaw sockets behave in different ways depending on operating system and\nversion, and may support different socket options.\n\nSome operating system versions may restrict the use of raw sockets to\nprivileged users.  If this is the case an exception will be thrown on socket\ncreation using a message similar to `Operation not permitted` (this message\nis likely to be different depending on operating system version).\n\nThe appropriate operating system documentation should be consulted to\
 nunderstand how raw sockets will behave before attempting to use this module.\n\n# Keeping The [Node.js][nodejs] Event Loop Alive\n\nThis module uses the `libuv` library to integrate into the [Node.js][nodejs]\nevent loop - this library is also used by [Node.js][nodejs].  An underlying\n `libuv` library `poll_handle_t` event watcher is used to monitor the\nunderlying operating system raw socket used by a socket object.\n\nAll the while a socket object exists, and the sockets `close()` method has not\nbeen called, the raw socket will keep the [Node.js][nodejs] event loop alive\nwhich will prevent a program from exiting.\n\nThis module exports four methods which a program can use to control this\nbehaviour.\n\nThe `pauseRecv()` and `pauseSend()` methods stop the underlying `poll_handle_t`\nevent watcher used by a socket from monitoring for readable and writeable\nevents.  While the `resumeRecv()` and `resumeSend()` methods start the\nunderlying `poll_handle_t` event watcher used by a 
 socket allowing it to\nmonitor for readable and writeable events.\n\nEach socket object also exports the `recvPaused` and `sendPaused` boolean\nattributes to determine the state of the underlying `poll_handle_t` event\nwatcher used by a socket.\n\nSocket creation can be expensive on some platforms, and the above methods offer\nan alternative to closing and deleting a socket to prevent it from keeping the\n[Node.js][nodejs] event loop alive.\n\nThe [Node.js][nodejs] [net-ping][net-ping] module offers a concrete example\nof using these methods.  Since [Node.js][nodejs] offers no raw socket support\nthis module is used to implement ICMP echo (ping) support.  Once all ping\nrequests have been processed by the [net-ping][net-ping] module the\n`pauseRecv()` and `pauseSend()` methods are used to allow a program to exit if\nrequired.\n\nThe following example stops the underlying `poll_handle_t` event watcher used\nby a socket from generating writeable events, however since readable events\n
 will still be watched for the program will not exit immediately:\n\n    if (! socket.recvPaused)\n        socket.pauseRecv ();\n\nThe following can the be used to resume readable events:\n\n    if (socket.recvPaused)\n        socket.resumeRecv ();\n\nThe following example stops the underlying `poll_handle_t` event watcher used\nby a socket from generating both readable and writeable events, if no other\nevent watchers have been setup (e.g. `setTimeout()`) the program will exit.\n\n    if (! socket.recvPaused)\n        socket.pauseRecv ();\n    if (! socket.sendPaused)\n        socket.pauseSend ();\n\nThe following can the be used to resume both readable and writeable events:\n\n    if (socket.recvPaused)\n        socket.resumeRecv ();\n    if (socket.sendPaused)\n        socket.resumeSend ();\n\nWhen data is sent using a sockets `send()` method the `resumeSend()` method\nwill be called if the sockets `sendPaused` attribute is `true`, however the\n`resumeRecv()` method will not be ca
 lled regardless of whether the sockets\n`recvPaused` attribute is `true` or `false`.\n\n[nodejs]: http://nodejs.org \"Node.js\"\n[net-ping]: http://npmjs.org/package/net-ping \"net-ping\"\n\n# Constants\n\nThe following sections describe constants exported and used by this module.\n\n## raw.AddressFamily\n\nThis object contains constants which can be used for the `addressFamily`\noption to the `createSocket()` function exposed by this module.  This option\nspecifies the IP protocol version to use when creating the raw socket.\n\nThe following constants are defined in this object:\n\n * `IPv4` - IPv4 protocol\n * `IPv6` - IPv6 protocol\n\n## raw.Protocol\n\nThis object contains constants which can be used for the `protocol` option to\nthe `createSocket()` function exposed by this module.  This option specifies\nthe protocol number to place in the protocol field of IP headers generated by\nthe operating system.\n\nThe following constants are defined in this object:\n\n * `None` - prot
 ocol number 0\n * `ICMP` - protocol number 1\n * `TCP` - protocol number 6\n * `UDP` - protocol number 17\n * `ICMPv6` - protocol number 58\n\n## raw.SocketLevel\n\nThis object contains constants which can be used for the `level` parameter to\nthe `getOption()` and `setOption()` methods exposed by this module.\n\nThe following constants are defined in this object:\n\n * `SOL_SOCKET`\n * `IPPROTO_IP`\n * `IPPROTO_IPV6`\n\n## raw.SocketOption\n\nThis object contains constants which can be used for the `option` parameter to\nthe `getOption()` and `setOption()` methods exposed by this module.\n\nThe following constants are defined in this object:\n\n * `SO_RCVBUF`\n * `SO_RCVTIMEO`\n * `SO_SNDBUF`\n * `SO_SNDTIMEO`\n * `IP_HDRINCL`\n * `IP_OPTIONS`\n * `IP_TOS`\n * `IP_TTL`\n * `IPV6_TTL`\n * `IPV6_UNICAST_HOPS`\n * `IPV6_V6ONLY`\n\n*The `IPV6_TTL` socket option is not known to be defined by any operating\nsystem, it is provided in convenience to be synonymous with IPv4*\n\nFor Windows 
 platforms the following constant is also defined:\n\n * `IPV6_HDRINCL`\n\n# Using This Module\n\nRaw sockets are represented by an instance of the `Socket` class.  This\nmodule exports the `createSocket()` function which is used to create\ninstances of the `Socket` class.\n\nThe module also exports a number of stubs which call through to a number of\nfunctions provided by the operating system, i.e. `htonl()`.\n\nThis module also exports a function to generate protocol checksums.\n\n## raw.createChecksum (bufferOrObject, [bufferOrObject, ...])\n\nThe `createChecksum()` function creates and returns a 16 bit one's complement\nof the one's complement sum for all the data specified in one or more\n[Node.js][nodejs] `Buffer` objects.  This is useful for creating checksums for\nprotocols such as IP, TCP, UDP and ICMP.\n\nThe `bufferOrObject` parameter can be one of two types.  The first is a\n[Node.js][nodejs] `Buffer` object.  In this case a checksum is calculated from\nall the data it co
 ntains.  The `bufferOrObject` parameter can also be an\nobject which must contain the following attributes:\n\n * `buffer` - A [Node.js][nodejs] `Buffer` object which contains data which\n   to generate a checksum for\n * `offset` - Skip this number of bytes from the beginning of `buffer`\n * `length` - Only generate a checksum for this number of bytes in `buffer`\n   from `offset`\n\nThe second parameter type provides control over how much of the data in a\n[Node.js][nodejs] `Buffer` object a checksum should be generated for.\n\nWhen more than one parameter is passed a single checksum is calculated as if\nthe data in in all parameters were in a single buffer.  This is useful for\nwhen calulating checksums for TCP and UDP for example - where a psuedo header\nmust be created and used for checksum calculation.\n\nIn this case two buffers can be passed, the first containing the psuedo header\nand the second containing the real TCP packet, and the offset and length\nparameters used to s
 pecify the bounds of the TCP packet payload.\n\nThe following example generates a checksum for a TCP packet and its psuedo\nheader:\n\n    var sum = raw.createChecksum (pseudo_header, {buffer: tcp_packet,\n            offset: 20, length: tcp_packet.length - 20});\n\nBoth buffers will be treated as one, i.e. as if the data at offset `20` in\n`tcp_packet` had followed all data in `pseudo_header` - as if they were one\nbuffer.\n\n## raw.writeChecksum (buffer, offset, checksum)\n\nThe `writeChecksum()` function writes a checksum created by the\n`raw.createChecksum()` function to the [Node.js][nodejs] `Buffer` object \n`buffer` at offsets `offset` and `offset` + 1.\n\nThe following example generates and writes a checksum at offset `2` in a\n[Node.js][nodejs] `Buffer` object:\n\n    raw.writeChecksum (buffer, 2, raw.createChecksum (buffer));\n\n## raw.htonl (uint32)\n\nThe `htonl()` function converts a 32 bit unsigned integer from host byte\norder to network byte order and returns the res
 ult.  This function is simply\na stub through to the operating systems `htonl()` function.\n\n## raw.htons (uint16)\n\nThe `htons()` function converts a 16 bit unsigned integer from host byte\norder to network byte order and returns the result.  This function is simply\na stub through to the operating systems `htons()` function.\n\n## raw.ntohl (uint32)\n\nThe `ntohl()` function converts a 32 bit unsigned integer from network byte\norder to host byte order and returns the result.  This function is simply\na stub through to the operating systems `ntohl()` function.\n\n## raw.ntohs (uint16)\n\nThe `ntohs()` function converts a 16 bit unsigned integer from network byte\norder to host byte order and returns the result.  This function is simply\na stub through to the operating systems `ntohs()` function.\n\n## raw.createSocket ([options])\n\nThe `createSocket()` function instantiates and returns an instance of the\n`Socket` class:\n\n    // Default options\n    var options = {\n        a
 ddressFamily: raw.AddressFamily.IPv4,\n        protocol: raw.Protocol.None,\n        bufferSize: 4096,\n        generateChecksums: false,\n        checksumOffset: 0\n    };\n    \n    var socket = raw.createSocket (options);\n\nThe optional `options` parameter is an object, and can contain the following\nitems:\n\n * `addressFamily` - Either the constant `raw.AddressFamily.IPv4` or the\n   constant `raw.AddressFamily.IPv6`, defaults to the constant\n   `raw.AddressFamily.IPv4`\n * `protocol` - Either one of the constants defined in the `raw.Protocol`\n   object or the protocol number to use for the socket, defaults to the\n   consant `raw.Protocol.None`\n * `bufferSize` - Size, in bytes, of the sockets internal receive buffer,\n   defaults to 4096\n * `generateChecksums` - Either `true` or `false` to enable or disable the\n   automatic checksum generation feature, defaults to `false`\n * `checksumOffset` - When `generateChecksums` is `true` specifies how many\n   bytes to index into
  the send buffer to write automatically generated\n   checksums, defaults to `0`\n\nAn exception will be thrown if the underlying raw socket could not be created.\nThe error will be an instance of the `Error` class.\n\nThe `protocol` parameter, or its default value of the constant\n`raw.Protocol.None`, will be specified in the protocol field of each IP\nheader.\n\n## socket.on (\"close\", callback)\n\nThe `close` event is emitted by the socket when the underlying raw socket\nis closed.\n\nNo arguments are passed to the callback.\n\nThe following example prints a message to the console when the socket is\nclosed:\n\n    socket.on (\"close\", function () {\n        console.log (\"socket closed\");\n    });\n\n## socket.on (\"error\", callback)\n\nThe `error` event is emitted by the socket when an error occurs sending or\nreceiving data.\n\nThe following arguments will be passed to the `callback` function:\n\n * `error` - An instance of the `Error` class, the exposed `message` attribut
 e\n   will contain a detailed error message.\n\nThe following example prints a message to the console when an error occurs,\nafter which the socket is closed:\n\n    socket.on (\"error\", function (error) {\n        console.log (error.toString ());\n        socket.close ();\n    });\n\n## socket.on (\"message\", callback)\n\nThe `message` event is emitted by the socket when data has been received.\n\nThe following arguments will be passed to the `callback` function:\n\n * `buffer` - A [Node.js][nodejs] `Buffer` object containing the data\n   received, the buffer will be sized to fit the data received, that is the\n   `length` attribute of buffer will specify how many bytes were received\n * `address` - For IPv4 raw sockets the dotted quad formatted source IP\n   address of the message, e.g `192.168.1.254`, for IPv6 raw sockets the\n   compressed formatted source IP address of the message, e.g.\n   `fe80::a00:27ff:fe2a:3427`\n\nThe following example prints received messages in hexade
 cimal to the console:\n\n    socket.on (\"message\", function (buffer, address) {\n        console.log (\"received \" + buffer.length + \" bytes from \" + address\n                + \": \" + buffer.toString (\"hex\"));\n    });\n\n## socket.generateChecksums (generate, offset)\n\nThe `generateChecksums()` method is used to specify whether automatic checksum\ngeneration should be performed by the socket.\n\nThe `generate` parameter is either `true` or `false` to enable or disable the\nfeature.  The optional `offset` parameter specifies how many bytes to index\ninto the send buffer when writing the generated checksum to the send buffer.\n\nThe following example enables automatic checksum generation at offset 2\nresulting in checksums being written to byte 3 and 4 of the send buffer\n(offsets start from 0, meaning byte 1):\n\n    socket.generateChecksums (true, 2);\n\n## socket.getOption (level, option, buffer, length)\n\nThe `getOption()` method gets a socket option using the operatin
 g systems\n`getsockopt()` function.\n\nThe `level` parameter is one of the constants defined in the `raw.SocketLevel`\nobject.  The `option` parameter is one of the constants defined in the\n`raw.SocketOption` object.  The `buffer` parameter is a [Node.js][nodejs]\n`Buffer` object where the socket option value will be written.  The `length`\nparameter specifies the size of the `buffer` parameter.\n\nIf an error occurs an exception will be thrown, the exception will be an\ninstance of the `Error` class.\n\nThe number of bytes written into the `buffer` parameter is returned, and can\ndiffer from the amount of space available.\n\nThe following example retrieves the current value of `IP_TTL` socket option:\n\n    var level = raw.SocketLevel.IPPROTO_IP;\n    var option = raw.SocketOption.IP_TTL;\n    \n    # IP_TTL is a signed integer on some platforms so a 4 byte buffer is used\n    var buffer = new Buffer (4);\n    \n    var written = socket.getOption (level, option, buffer, buffer.len
 gth);\n    \n    console.log (buffer.toString (\"hex\"), 0, written);\n\n## socket.send (buffer, offset, length, address, beforeCallback, afterCallback)\n\nThe `send()` method sends data to a remote host.\n\nThe `buffer` parameter is a [Node.js][nodejs] `Buffer` object containing the\ndata to be sent.  The `length` parameter specifies how many bytes from\n`buffer`, beginning at offset `offset`, to send.  For IPv4 raw sockets the\n`address` parameter contains the dotted quad formatted IP address of the\nremote host to send the data to, e.g `192.168.1.254`, for IPv6 raw sockets the\n`address` parameter contains the compressed formatted IP address of the remote\nhost to send the data to, e.g. `fe80::a00:27ff:fe2a:3427`.  If provided the\noptional `beforeCallback` function is called right before the data is actually\nsent using the underlying raw socket, giving users the opportunity to perform\npre-send actions such as setting a socket option, e.g. the IP header TTL.  No\narguments are 
 passed to the `beforeCallback` function.  The `afterCallback`\nfunction is called once the data has been sent.  The following arguments will\nbe passed to the `afterCallback` function:\n\n * `error` - Instance of the `Error` class, or `null` if no error occurred\n * `bytes` - Number of bytes sent\n\nThe following example sends a ICMP ping message to a remote host, before the\nrequest is actually sent the IP header TTL is modified, and modified again\nafter the data has been sent:\n\n    // ICMP echo (ping) request, checksum should be ok\n    var buffer = new Buffer ([\n            0x08, 0x00, 0x43, 0x52, 0x00, 0x01, 0x0a, 0x09,\n            0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,\n            0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,\n            0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x61,\n            0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69]);\n\n    var socketLevel = raw.SocketLevel.IPPROTO_IP\n    var socketOption = raw.SocketOption.IP_TTL;\n\n    functio
 n beforeSend () {\n        socket.setOption (socketLevel, socketOption, 1);\n    }\n    \n    function afterSend (error, bytes) {\n        if (error)\n            console.log (error.toString ());\n        else\n            console.log (\"sent \" + bytes + \" bytes\");\n        \n        socket.setOption (socketLevel, socketOption, 1);\n    }\n\n    socket.send (buffer, 0, buffer.length, target, beforeSend, afterSend);\n\n## socket.setOption (level, option, buffer, length)\n\nThe `setOption()` method sets a socket option using the operating systems\n`setsockopt()` function.\n\nThe `level` parameter is one of the constants defined in the `raw.SocketLevel`\nobject.  The `option` parameter is one of the constants defined in the\n`raw.SocketOption` object.  The `buffer` parameter is a [Node.js][nodejs]\n`Buffer` object where the socket option value is specified.  The `length`\nparameter specifies how much space the option value occupies in the `buffer`\nparameter.\n\nIf an error occurs a
 n exception will be thrown, the exception will be an\ninstance of the `Error` class.\n\nThe following example sets the value of `IP_TTL` socket option to `1`:\n\n    var level = raw.SocketLevel.IPPROTO_IP;\n    var option = raw.SocketOption.IP_TTL;\n    \n    # IP_TTL is a signed integer on some platforms so a 4 byte buffer is used,\n    # x86 computers use little-endian format so specify bytes reverse order\n    var buffer = new Buffer ([0x01, 0x00, 0x00, 0x00]);\n    \n    socket.setOption (level, option, buffer, buffer.length);\n\nTo avoid dealing with endianess the `setOption()` method supports a three\nargument form which can be used for socket options requiring a 32bit unsigned\ninteger value (for example the `IP_TTL` socket option used in the previous\nexample).  Its signature is as follows:\n\n    socket.setOption (level, option, value)\n\nThe previous example can be re-written to use this form:\n\n    var level = raw.SocketLevel.IPPROTO_IP;\n    var option = raw.SocketOptio
 n.IP_TTL;\n\n    socket.setOption (level, option, 1);\n\n# Example Programs\n\nExample programs are included under the modules `example` directory.\n\n# Bugs & Known Issues\n\nNone, yet!\n\nBug reports should be sent to <st...@gmail.com>.\n\n# Changes\n\n## Version 1.0.0 - 29/01/2013\n\n * Initial release\n\n## Version 1.0.1 - 01/02/2013\n\n * Move `SOCKET_ERRNO` define from `raw.cc` to `raw.h`\n * Error in exception thrown by `SocketWrap::New` in `raw.cc` stated that two\n   arguments were required, this should be one\n * Corrections to the README.md\n * Missing includes causes compilation error on some systems (maybe Node\n   version dependant)\n\n## Version 1.0.2 - 02/02/2013\n\n * Support automatic checksum generation\n\n## Version 1.1.0 - 13/02/2013\n\n * The [net-ping][net-ping] module is now implemented so update the note about\n   it in the first section of the README.md\n * Support IPv6\n * Support the `IP_HDRINCL` socket option via the `noIpHeader` option to t
 he\n   `createSocket()` function and the `noIpHeader()` method exposed by the\n   `Socket` class\n\n## Version 1.1.1 - 14/02/2013\n\n * IP addresses not being validated\n\n## Version 1.1.2 - 15/02/2013\n\n * Default protocol option to `createSession()` was incorrect in the README.md\n * The `session.on(\"message\")` example used `message` instead of `buffer` in\n   the README.md\n\n## Version 1.1.3 - 04/03/2013\n\n * `raw.Socket.onSendReady()` emit's an error when `raw.SocketWrap.send()`\n   throws an exception when it should call the `req.callback` callback\n * Added the `pauseRecv()`, `resumeRecv()`, `pauseSend()` and `resumeSend()`\n   methods\n\n[net-ping]: https://npmjs.org/package/net-ping \"net-ping\"\n\n## Version 1.1.4 - 05/03/2013\n\n * Cleanup documentation for the `pauseSend()`, `pauseRecv()`, `resumeSend()`\n   and `resumeRecv()` methods in the README.md\n\n## Version 1.1.5 - 09/05/2013\n\n * Reformated lines in the README.md file inline with the rest of the file\n * Re
 moved the `noIpHeader()` method (the `setOption()` method should be\n   used to configure the `IP_HDRINCL` socket option - and possibly\n   `IPV6_HDRINCL` on Windows platforms), and removed the `Automatic IP Header\n   Generation` section from the README.md file\n * Added the `setOption()` and `getOption()` methods, and added the\n   `SocketLevel` and `SocketOption` constants\n * Tidied up the example program `ping-no-ip-header.js` (now uses the\n   `setOption()` method to configure the `IP_HDRINCL` socket option)\n * Tidied up the example program `ping6-no-ip-header.js` (now uses the\n   `setOption()` method to configure the `IPV6_HDRINCL` socket option)\n * Added the example program `get-option.js`\n * Added the example program `ping-set-option-ip-ttl.js`\n * Use MIT license instead of GPL\n\n## Version 1.1.6 - 18/05/2013\n\n * Added the `beforeCallback` parameter to the `send()` method, and renamed the\n   `callback` parameter to `afterCallback`\n * Fixed a few typos in the READM
 E.md file\n * Modified the example program `ping-set-option-ip-ttl.js` to use the\n   `beforeCallback` parameter to the `send()` method\n * The example program `ping6-no-ip-header.js` was not passing the correct\n   arguments to the `setOption()` method\n\n## Version 1.1.7 - 23/06/2013\n\n * Added the `htonl()`, `htons()`, `ntohl()`, and `ntohs()` functions, and\n   associated example programs\n * Added the `createChecksum()` function, and associated example program\n\n## Version 1.1.8 - 01/07/2013\n\n * Added the `writeChecksum()` function\n * Removed the \"Automated Checksum Generation\" feature - this has been\n   replaced with the `createChecksum()` and `writeChecksum()` functions\n\n## Version 1.2.0 - 02/07/2013\n\n * Up version number to 1.2.0 (we should have done this for 1.1.8 because it\n   introduced some API breaking changes)\n\n# Roadmap\n\nIn no particular order:\n\n * Enhance performance by moving the send queue into the C++ raw::SocketWrap\n   class\n\nSuggestions and
  requirements should be sent to <st...@gmail.com>.\n\n# License\n\nCopyright (c) 2013 Stephen Vickers\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIAB
 ILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n# Author\n\nStephen Vickers <st...@gmail.com>\n",
-  "readmeFilename": "README.md",
-  "_id": "raw-socket@1.2.0",
-  "dist": {
-    "shasum": "11c8512e44e98801bcd918956fc8905b60823c7e"
-  },
-  "_from": "raw-socket@*",
-  "_resolved": "https://registry.npmjs.org/raw-socket/-/raw-socket-1.2.0.tgz"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/net-ping/node_modules/raw-socket/src/raw.cc
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/net-ping/node_modules/raw-socket/src/raw.cc b/blackberry10/node_modules/net-ping/node_modules/raw-socket/src/raw.cc
deleted file mode 100644
index e712760..0000000
--- a/blackberry10/node_modules/net-ping/node_modules/raw-socket/src/raw.cc
+++ /dev/null
@@ -1,771 +0,0 @@
-#ifndef RAW_CC
-#define RAW_CC
-
-#include <node.h>
-#include <node_buffer.h>
-
-#include <stdio.h>
-#include <string.h>
-#include "raw.h"
-
-#ifdef _WIN32
-static char errbuf[1024];
-#endif
-const char* raw_strerror (int code) {
-#ifdef _WIN32
-	if (FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM, 0, code, 0, errbuf,
-			1024, NULL)) {
-		return errbuf;
-	} else {
-		strcpy (errbuf, "Unknown error");
-		return errbuf;
-	}
-#else
-	return strerror (code);
-#endif
-}
-
-static uint16_t checksum (uint16_t start_with, unsigned char *buffer,
-		size_t length) {
-	unsigned i;
-	uint32_t sum = start_with > 0 ? ~start_with & 0xffff : 0;
-
-	for (i = 0; i < (length & ~1U); i += 2) {
-		sum += (uint16_t) ntohs (*((uint16_t *) (buffer + i)));
-		if (sum > 0xffff)
-			sum -= 0xffff;
-	}
-	if (i < length) {
-		sum += buffer [i] << 8;
-		if (sum > 0xffff)
-			sum -= 0xffff;
-	}
-	
-	return ~sum & 0xffff;
-}
-
-namespace raw {
-
-static Persistent<String> CloseSymbol;
-static Persistent<String> EmitSymbol;
-static Persistent<String> ErrorSymbol;
-static Persistent<String> RecvReadySymbol;
-static Persistent<String> SendReadySymbol;
-
-void InitAll (Handle<Object> target) {
-	CloseSymbol = NODE_PSYMBOL("close");
-	EmitSymbol = NODE_PSYMBOL("emit");
-	ErrorSymbol = NODE_PSYMBOL("error");
-	RecvReadySymbol = NODE_PSYMBOL("recvReady");
-	SendReadySymbol = NODE_PSYMBOL("sendReady");
-
-	ExportConstants (target);
-	ExportFunctions (target);
-
-	SocketWrap::Init (target);
-}
-
-NODE_MODULE(raw, InitAll)
-
-Handle<Value> CreateChecksum (const Arguments& args) {
-	HandleScope scope;
-	
-	if (args.Length () < 2) {
-		ThrowException (Exception::Error (String::New (
-				"At least one argument is required")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[0]->IsUint32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Start with argument must be an unsigned integer")));
-		return scope.Close (args.This ());
-	}
-	
-	uint16_t start_with = args[0]->ToUint32 ()->Value ();
-
-	if (start_with > 65535) {
-		ThrowException (Exception::TypeError (String::New (
-				"Start with argument cannot be larger than 65535")));
-		return scope.Close (args.This ());
-	}
-
-	if (! node::Buffer::HasInstance (args[1])) {
-		ThrowException (Exception::TypeError (String::New (
-				"Buffer argument must be a node Buffer object")));
-		return scope.Close (args.This ());
-	}
-	
-	Local<Object> buffer = args[1]->ToObject ();
-	char *data = node::Buffer::Data (buffer);
-	size_t length = node::Buffer::Length (buffer);
-	unsigned int offset = 0;
-	
-	if (args.Length () > 2) {
-		if (! args[2]->IsUint32 ()) {
-			ThrowException (Exception::TypeError (String::New (
-					"Offset argument must be an unsigned integer")));
-			return scope.Close (args.This ());
-		}
-		offset = args[2]->ToUint32 ()->Value ();
-		if (offset >= length) {
-			ThrowException (Exception::RangeError (String::New (
-					"Offset argument must be smaller than length of the buffer")));
-			return scope.Close (args.This ());
-		}
-	}
-	
-	if (args.Length () > 3) {
-		if (! args[3]->IsUint32 ()) {
-			ThrowException (Exception::TypeError (String::New (
-					"Length argument must be an unsigned integer")));
-			return scope.Close (args.This ());
-		}
-		unsigned int new_length = args[3]->ToUint32 ()->Value ();
-		if (new_length > length) {
-			ThrowException (Exception::RangeError (String::New (
-					"Length argument must be smaller than length of the buffer")));
-			return scope.Close (args.This ());
-		}
-		length = new_length;
-	}
-	
-	uint16_t sum = checksum (start_with, (unsigned char *) data + offset,
-			length);
-
-	Local<Integer> number = Integer::NewFromUnsigned (sum);
-	
-	return scope.Close (number);
-}
-
-Handle<Value> Htonl (const Arguments& args) {
-	HandleScope scope;
-
-	if (args.Length () < 1) {
-		ThrowException (Exception::Error (String::New (
-				"One arguments is required")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[0]->IsUint32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Number must be a 32 unsigned integer")));
-		return scope.Close (args.This ());
-	}
-
-	unsigned int number = args[0]->ToUint32 ()->Value ();
-	Local<Integer> converted = Integer::NewFromUnsigned (htonl (number));
-
-	return scope.Close (converted);
-}
-
-Handle<Value> Htons (const Arguments& args) {
-	HandleScope scope;
-	
-	if (args.Length () < 1) {
-		ThrowException (Exception::Error (String::New (
-				"One arguments is required")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[0]->IsUint32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Number must be a 16 unsigned integer")));
-		return scope.Close (args.This ());
-	}
-	
-	unsigned int number = args[0]->ToUint32 ()->Value ();
-	if (number > 65535) {
-		ThrowException (Exception::RangeError (String::New (
-				"Number cannot be larger than 65535")));
-		return scope.Close (args.This ());
-	}
-	Local<Integer> converted = Integer::NewFromUnsigned (htons (number));
-
-	return scope.Close (converted);
-}
-
-Handle<Value> Ntohl (const Arguments& args) {
-	HandleScope scope;
-	
-	if (args.Length () < 1) {
-		ThrowException (Exception::Error (String::New (
-				"One arguments is required")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[0]->IsUint32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Number must be a 32 unsigned integer")));
-		return scope.Close (args.This ());
-	}
-
-	unsigned int number = args[0]->ToUint32 ()->Value ();
-	Local<Integer> converted = Integer::NewFromUnsigned (ntohl (number));
-
-	return scope.Close (converted);
-}
-
-Handle<Value> Ntohs (const Arguments& args) {
-	HandleScope scope;
-	
-	if (args.Length () < 1) {
-		ThrowException (Exception::Error (String::New (
-				"One arguments is required")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[0]->IsUint32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Number must be a 16 unsigned integer")));
-		return scope.Close (args.This ());
-	}
-	
-	unsigned int number = args[0]->ToUint32 ()->Value ();
-	if (number > 65535) {
-		ThrowException (Exception::RangeError (String::New (
-				"Number cannot be larger than 65535")));
-		return scope.Close (args.This ());
-	}
-	Local<Integer> converted = Integer::NewFromUnsigned (htons (number));
-
-	return scope.Close (converted);
-}
-
-void ExportConstants (Handle<Object> target) {
-	Local<Object> socket_level = Object::New ();
-	Local<Object> socket_option = Object::New ();
-
-	target->Set (String::NewSymbol ("SocketLevel"), socket_level);
-	target->Set (String::NewSymbol ("SocketOption"), socket_option);
-
-	socket_level->Set (String::NewSymbol ("SOL_SOCKET"), Number::New (SOL_SOCKET));
-	socket_level->Set (String::NewSymbol ("IPPROTO_IP"), Number::New (IPPROTO_IP));
-	socket_level->Set (String::NewSymbol ("IPPROTO_IPV6"), Number::New (IPPROTO_IPV6));
-
-	socket_option->Set (String::NewSymbol ("SO_BROADCAST"), Number::New (SO_BROADCAST));
-	socket_option->Set (String::NewSymbol ("SO_RCVBUF"), Number::New (SO_RCVBUF));
-	socket_option->Set (String::NewSymbol ("SO_RCVTIMEO"), Number::New (SO_RCVTIMEO));
-	socket_option->Set (String::NewSymbol ("SO_SNDBUF"), Number::New (SO_SNDBUF));
-	socket_option->Set (String::NewSymbol ("SO_SNDTIMEO"), Number::New (SO_SNDTIMEO));
-
-	socket_option->Set (String::NewSymbol ("IP_HDRINCL"), Number::New (IP_HDRINCL));
-	socket_option->Set (String::NewSymbol ("IP_OPTIONS"), Number::New (IP_OPTIONS));
-	socket_option->Set (String::NewSymbol ("IP_TOS"), Number::New (IP_TOS));
-	socket_option->Set (String::NewSymbol ("IP_TTL"), Number::New (IP_TTL));
-
-#ifdef _WIN32
-	socket_option->Set (String::NewSymbol ("IPV6_HDRINCL"), Number::New (IPV6_HDRINCL));
-#endif
-	socket_option->Set (String::NewSymbol ("IPV6_TTL"), Number::New (IPV6_UNICAST_HOPS));
-	socket_option->Set (String::NewSymbol ("IPV6_UNICAST_HOPS"), Number::New (IPV6_UNICAST_HOPS));
-	socket_option->Set (String::NewSymbol ("IPV6_V6ONLY"), Number::New (IPV6_V6ONLY));
-}
-
-void ExportFunctions (Handle<Object> target) {
-	target->Set (String::NewSymbol ("createChecksum"), FunctionTemplate::New (CreateChecksum)->GetFunction ());
-	
-	target->Set (String::NewSymbol ("htonl"), FunctionTemplate::New (Htonl)->GetFunction ());
-	target->Set (String::NewSymbol ("htons"), FunctionTemplate::New (Htons)->GetFunction ());
-	target->Set (String::NewSymbol ("ntohl"), FunctionTemplate::New (Ntohl)->GetFunction ());
-	target->Set (String::NewSymbol ("ntohs"), FunctionTemplate::New (Ntohs)->GetFunction ());
-}
-
-void SocketWrap::Init (Handle<Object> target) {
-	HandleScope scope;
-	
-	Local<FunctionTemplate> tpl = FunctionTemplate::New (New);
-	
-	tpl->InstanceTemplate ()->SetInternalFieldCount (1);
-	tpl->SetClassName (String::NewSymbol ("SocketWrap"));
-	
-	NODE_SET_PROTOTYPE_METHOD(tpl, "close", Close);
-	NODE_SET_PROTOTYPE_METHOD(tpl, "getOption", GetOption);
-	NODE_SET_PROTOTYPE_METHOD(tpl, "pause", Pause);
-	NODE_SET_PROTOTYPE_METHOD(tpl, "recv", Recv);
-	NODE_SET_PROTOTYPE_METHOD(tpl, "send", Send);
-	NODE_SET_PROTOTYPE_METHOD(tpl, "setOption", SetOption);
-
-	target->Set (String::NewSymbol ("SocketWrap"), tpl->GetFunction ());
-}
-
-SocketWrap::SocketWrap () {}
-
-SocketWrap::~SocketWrap () {
-	this->CloseSocket ();
-}
-
-Handle<Value> SocketWrap::Close (const Arguments& args) {
-	HandleScope scope;
-	SocketWrap* socket = SocketWrap::Unwrap<SocketWrap> (args.This ());
-	
-	socket->CloseSocket ();
-
-	return scope.Close (args.This ());
-}
-
-void SocketWrap::CloseSocket (void) {
-	HandleScope scope;
-	
-	if (this->poll_initialised_) {
-		uv_poll_stop (&this->poll_watcher_);
-		closesocket (this->poll_fd_);
-		this->poll_fd_ = INVALID_SOCKET;
-
-		uv_close ((uv_handle_t *) &this->poll_watcher_, OnClose);
-		this->poll_initialised_ = false;
-	}
-
-	Local<Value> emit = this->handle_->Get (EmitSymbol);
-	Local<Function> cb = emit.As<Function> ();
-
-	Local<Value> args[1];
-	args[0] = Local<Value>::New (CloseSymbol);
-
-	cb->Call (this->handle_, 1, args);
-}
-
-int SocketWrap::CreateSocket (void) {
-	if (this->poll_initialised_)
-		return 0;
-	
-	if ((this->poll_fd_ = socket (this->family_, SOCK_RAW, this->protocol_))
-			== INVALID_SOCKET)
-		return SOCKET_ERRNO;
-
-#ifdef _WIN32
-	unsigned long flag = 1;
-	if (ioctlsocket (this->poll_fd_, FIONBIO, &flag) == SOCKET_ERROR)
-		return SOCKET_ERRNO;
-#else
-	int flag = 1;
-	if ((flag = fcntl (this->poll_fd_, F_GETFL, 0)) == SOCKET_ERROR)
-		return SOCKET_ERRNO;
-	if (fcntl (this->poll_fd_, F_SETFL, flag | O_NONBLOCK) == SOCKET_ERROR)
-		return SOCKET_ERRNO;
-#endif
-
-	uv_poll_init_socket (uv_default_loop (), &this->poll_watcher_,
-			this->poll_fd_);
-	this->poll_watcher_.data = this;
-	uv_poll_start (&this->poll_watcher_, UV_READABLE, IoEvent);
-	
-	this->poll_initialised_ = true;
-	
-	return 0;
-}
-
-Handle<Value> SocketWrap::GetOption (const Arguments& args) {
-	HandleScope scope;
-	SocketWrap* socket = SocketWrap::Unwrap<SocketWrap> (args.This ());
-	
-	if (args.Length () < 3) {
-		ThrowException (Exception::Error (String::New (
-				"Three arguments are required")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[0]->IsNumber ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Level argument must be a number")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[1]->IsNumber ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Option argument must be a number")));
-		return scope.Close (args.This ());
-	}
-
-	int level = args[0]->ToInt32 ()->Value ();
-	int option = args[1]->ToInt32 ()->Value ();
-	SOCKET_OPT_TYPE val = NULL;
-	unsigned int ival = 0;
-	SOCKET_LEN_TYPE len;
-
-	if (! node::Buffer::HasInstance (args[2])) {
-		ThrowException (Exception::TypeError (String::New (
-				"Value argument must be a node Buffer object if length is "
-				"provided")));
-		return scope.Close (args.This ());
-	}
-	
-	Local<Object> buffer = args[2]->ToObject ();
-	val = node::Buffer::Data (buffer);
-
-	if (! args[3]->IsInt32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Length argument must be an unsigned integer")));
-		return scope.Close (args.This ());
-	}
-
-	len = (SOCKET_LEN_TYPE) node::Buffer::Length (buffer);
-
-	int rc = getsockopt (socket->poll_fd_, level, option,
-			(val ? val : (SOCKET_OPT_TYPE) &ival), &len);
-
-	if (rc == SOCKET_ERROR) {
-		ThrowException (Exception::Error (String::New (
-				raw_strerror (SOCKET_ERRNO))));
-		return scope.Close (args.This ());
-	}
-	
-	Local<Number> got = Integer::NewFromUnsigned (len);
-	return scope.Close (got);
-}
-
-void SocketWrap::HandleIOEvent (int status, int revents) {
-	HandleScope scope;
-
-	if (status) {
-		Local<Value> emit = this->handle_->Get (EmitSymbol);
-		Local<Function> cb = emit.As<Function> ();
-
-		Local<Value> args[2];
-		args[0] = Local<Value>::New (ErrorSymbol);
-		args[1] = Exception::Error (String::New (
-				raw_strerror (uv_last_error (uv_default_loop ()).code)));
-		
-		cb->Call (this->handle_, 2, args);
-	} else {
-		Local<Value> emit = this->handle_->Get (EmitSymbol);
-		Local<Function> cb = emit.As<Function> ();
-
-		Local<Value> args[1];
-		if (revents & UV_READABLE)
-			args[0] = Local<Value>::New (RecvReadySymbol);
-		else
-			args[0] = Local<Value>::New (SendReadySymbol);
-
-		cb->Call (this->handle_, 1, args);
-	}
-}
-
-Handle<Value> SocketWrap::New (const Arguments& args) {
-	HandleScope scope;
-	SocketWrap* socket = new SocketWrap ();
-	int rc, family = AF_INET;
-	
-	if (args.Length () < 1) {
-		ThrowException (Exception::Error (String::New (
-				"One argument is required")));
-		return scope.Close (args.This ());
-	}
-	
-	if (! args[0]->IsUint32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Protocol argument must be an unsigned integer")));
-		return scope.Close (args.This ());
-	} else {
-		socket->protocol_ = args[0]->ToUint32 ()->Value ();
-	}
-
-	if (args.Length () > 1) {
-		if (! args[1]->IsUint32 ()) {
-			ThrowException (Exception::TypeError (String::New (
-					"Address family argument must be an unsigned integer")));
-			return scope.Close (args.This ());
-		} else {
-			if (args[1]->ToUint32 ()->Value () == 2)
-				family = AF_INET6;
-		}
-	}
-	
-	socket->family_ = family;
-	
-	socket->poll_initialised_ = false;
-	
-	socket->no_ip_header_ = false;
-
-	rc = socket->CreateSocket ();
-	if (rc != 0) {
-		ThrowException (Exception::Error (String::New (raw_strerror (rc))));
-		return scope.Close (args.This ());
-	}
-
-	socket->Wrap (args.This ());
-
-	return scope.Close (args.This ());
-}
-
-void SocketWrap::OnClose (uv_handle_t *handle) {
-	// We can re-use the socket so we won't actually do anything here
-}
-
-Handle<Value> SocketWrap::Pause (const Arguments& args) {
-	HandleScope scope;
-	SocketWrap* socket = SocketWrap::Unwrap<SocketWrap> (args.This ());
-
-	if (args.Length () < 2) {
-		ThrowException (Exception::Error (String::New (
-				"Two arguments are required")));
-		return scope.Close (args.This ());
-	}
-	
-	if (! args[0]->IsBoolean ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Recv argument must be a boolean")));
-		return scope.Close (args.This ());
-	}
-	bool pause_recv = args[0]->ToBoolean ()->Value ();
-
-	if (! args[0]->IsBoolean ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Send argument must be a boolean")));
-		return scope.Close (args.This ());
-	}
-	bool pause_send = args[0]->ToBoolean ()->Value ();
-	
-	int events = (pause_recv ? 0 : UV_READABLE)
-			| (pause_send ? 0 : UV_WRITABLE);
-
-	uv_poll_stop (&socket->poll_watcher_);
-	uv_poll_start (&socket->poll_watcher_, events, IoEvent);
-	
-	return scope.Close (args.This ());
-}
-
-Handle<Value> SocketWrap::Recv (const Arguments& args) {
-	HandleScope scope;
-	SocketWrap* socket = SocketWrap::Unwrap<SocketWrap> (args.This ());
-	Local<Object> buffer;
-	sockaddr_in sin_address;
-	sockaddr_in6 sin6_address;
-	char addr[50];
-	int rc;
-#ifdef _WIN32
-	int sin_length = socket->family_ == AF_INET6
-			? sizeof (sin6_address)
-			: sizeof (sin_address);
-#else
-	socklen_t sin_length = socket->family_ == AF_INET6
-			? sizeof (sin6_address)
-			: sizeof (sin_address);
-#endif
-	
-	if (args.Length () < 2) {
-		ThrowException (Exception::Error (String::New (
-				"Five arguments are required")));
-		return scope.Close (args.This ());
-	}
-	
-	if (! node::Buffer::HasInstance (args[0])) {
-		ThrowException (Exception::TypeError (String::New (
-				"Buffer argument must be a node Buffer object")));
-		return scope.Close (args.This ());
-	} else {
-		buffer = args[0]->ToObject ();
-	}
-
-	if (! args[1]->IsFunction ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Callback argument must be a function")));
-		return scope.Close (args.This ());
-	}
-
-	rc = socket->CreateSocket ();
-	if (rc != 0) {
-		ThrowException (Exception::Error (String::New (raw_strerror (errno))));
-		return scope.Close (args.This ());
-	}
-
-	if (socket->family_ == AF_INET6) {
-		memset (&sin6_address, 0, sizeof (sin6_address));
-		rc = recvfrom (socket->poll_fd_, node::Buffer::Data (buffer),
-				(int) node::Buffer::Length (buffer), 0, (sockaddr *) &sin6_address,
-				&sin_length);
-	} else {
-		memset (&sin_address, 0, sizeof (sin_address));
-		rc = recvfrom (socket->poll_fd_, node::Buffer::Data (buffer),
-				(int) node::Buffer::Length (buffer), 0, (sockaddr *) &sin_address,
-				&sin_length);
-	}
-	
-	if (rc == SOCKET_ERROR) {
-		ThrowException (Exception::Error (String::New (raw_strerror (
-				SOCKET_ERRNO))));
-		return scope.Close (args.This ());
-	}
-	
-	if (socket->family_ == AF_INET6)
-		uv_ip6_name (&sin6_address, addr, 50);
-	else
-		uv_ip4_name (&sin_address, addr, 50);
-	
-	Local<Function> cb = Local<Function>::Cast (args[1]);
-	const unsigned argc = 3;
-	Local<Value> argv[argc];
-	argv[0] = args[0];
-	argv[1] = Number::New (rc);
-	argv[2] = String::New (addr);
-	cb->Call (Context::GetCurrent ()->Global (), argc, argv);
-	
-	return scope.Close (args.This ());
-}
-
-Handle<Value> SocketWrap::Send (const Arguments& args) {
-	HandleScope scope;
-	SocketWrap* socket = SocketWrap::Unwrap<SocketWrap> (args.This ());
-	Local<Object> buffer;
-	uint32_t offset;
-	uint32_t length;
-	int rc;
-	char *data;
-	
-	if (args.Length () < 5) {
-		ThrowException (Exception::Error (String::New (
-				"Five arguments are required")));
-		return scope.Close (args.This ());
-	}
-	
-	if (! node::Buffer::HasInstance (args[0])) {
-		ThrowException (Exception::TypeError (String::New (
-				"Buffer argument must be a node Buffer object")));
-		return scope.Close (args.This ());
-	}
-	
-	if (! args[1]->IsUint32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Offset argument must be an unsigned integer")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[2]->IsUint32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Length argument must be an unsigned integer")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[3]->IsString ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Address argument must be a string")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[4]->IsFunction ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Callback argument must be a function")));
-		return scope.Close (args.This ());
-	}
-
-	rc = socket->CreateSocket ();
-	if (rc != 0) {
-		ThrowException (Exception::Error (String::New (raw_strerror (errno))));
-		return scope.Close (args.This ());
-	}
-	
-	buffer = args[0]->ToObject ();
-	offset = args[1]->ToUint32 ()->Value ();
-	length = args[2]->ToUint32 ()->Value ();
-	String::AsciiValue address (args[3]);
-
-	data = node::Buffer::Data (buffer) + offset;
-	
-	if (socket->family_ == AF_INET6) {
-		struct sockaddr_in6 addr = uv_ip6_addr (*address, 0);
-		rc = sendto (socket->poll_fd_, data, length, 0,
-				(struct sockaddr *) &addr, sizeof (addr));
-	} else {
-		struct sockaddr_in addr = uv_ip4_addr (*address, 0);
-		rc = sendto (socket->poll_fd_, data, length, 0,
-				(struct sockaddr *) &addr, sizeof (addr));
-	}
-	
-	if (rc == SOCKET_ERROR) {
-		ThrowException (Exception::Error (String::New (raw_strerror (
-				SOCKET_ERRNO))));
-		return scope.Close (args.This ());
-	}
-	
-	Local<Function> cb = Local<Function>::Cast (args[4]);
-	const unsigned argc = 1;
-	Local<Value> argv[argc];
-	argv[0] = Number::New (rc);
-	cb->Call (Context::GetCurrent ()->Global (), argc, argv);
-	
-	return scope.Close (args.This ());
-}
-
-Handle<Value> SocketWrap::SetOption (const Arguments& args) {
-	HandleScope scope;
-	SocketWrap* socket = SocketWrap::Unwrap<SocketWrap> (args.This ());
-	
-	if (args.Length () < 3) {
-		ThrowException (Exception::Error (String::New (
-				"Three or four arguments are required")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[0]->IsNumber ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Level argument must be a number")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[1]->IsNumber ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Option argument must be a number")));
-		return scope.Close (args.This ());
-	}
-
-	int level = args[0]->ToInt32 ()->Value ();
-	int option = args[1]->ToInt32 ()->Value ();
-	SOCKET_OPT_TYPE val = NULL;
-	unsigned int ival = 0;
-	SOCKET_LEN_TYPE len;
-
-	if (args.Length () > 3) {
-		if (! node::Buffer::HasInstance (args[2])) {
-			ThrowException (Exception::TypeError (String::New (
-					"Value argument must be a node Buffer object if length is "
-					"provided")));
-			return scope.Close (args.This ());
-		}
-		
-		Local<Object> buffer = args[2]->ToObject ();
-		val = node::Buffer::Data (buffer);
-
-		if (! args[3]->IsInt32 ()) {
-			ThrowException (Exception::TypeError (String::New (
-					"Length argument must be an unsigned integer")));
-			return scope.Close (args.This ());
-		}
-
-		len = args[3]->ToInt32 ()->Value ();
-
-		if (len > node::Buffer::Length (buffer)) {
-			ThrowException (Exception::TypeError (String::New (
-					"Length argument is larger than buffer length")));
-			return scope.Close (args.This ());
-		}
-	} else {
-		if (! args[2]->IsUint32 ()) {
-			ThrowException (Exception::TypeError (String::New (
-					"Value argument must be a unsigned integer")));
-			return scope.Close (args.This ());
-		}
-
-		ival = args[2]->ToUint32 ()->Value ();
-		len = 4;
-	}
-
-	int rc = setsockopt (socket->poll_fd_, level, option,
-			(val ? val : (SOCKET_OPT_TYPE) &ival), len);
-
-	if (rc == SOCKET_ERROR) {
-		ThrowException (Exception::Error (String::New (
-				raw_strerror (SOCKET_ERRNO))));
-		return scope.Close (args.This ());
-	}
-	
-	return scope.Close (args.This ());
-}
-
-static void IoEvent (uv_poll_t* watcher, int status, int revents) {
-	SocketWrap *socket = static_cast<SocketWrap*>(watcher->data);
-	socket->HandleIOEvent (status, revents);
-}
-
-}; /* namespace raw */
-
-#endif /* RAW_CC */

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/net-ping/node_modules/raw-socket/src/raw.h
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/net-ping/node_modules/raw-socket/src/raw.h b/blackberry10/node_modules/net-ping/node_modules/raw-socket/src/raw.h
deleted file mode 100644
index a446fe9..0000000
--- a/blackberry10/node_modules/net-ping/node_modules/raw-socket/src/raw.h
+++ /dev/null
@@ -1,100 +0,0 @@
-#ifndef RAW_H
-#define RAW_H
-
-/**
- ** The following warnings are displayed during compilation on win32 platforms
- ** using node-gyp:
- **
- **  - C++ exception handler used, but unwind semantics are not enabled.
- **  - no definition for inline function 'v8::Persistent<T> \
- **       v8::Persistent<T>::New(v8::Handle<T>)'
- **
- ** There don't seem to be any issues which would suggest these are real
- ** problems, so we've disabled them for now.
- **/
-#ifdef _WIN32
-#pragma warning(disable:4506;disable:4530)
-#endif
-
-#include <string>
-
-#include <node.h>
-
-#ifdef _WIN32
-#include <winsock2.h>
-#include <Ws2tcpip.h>
-#define SOCKET_ERRNO WSAGetLastError()
-#define SOCKET_OPT_TYPE char *
-#define SOCKET_LEN_TYPE int
-#else
-#include <errno.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <fcntl.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#define SOCKET int
-#define SOCKET_ERROR -1
-#define SOCKET_ERRNO errno
-#define INVALID_SOCKET -1
-#define closesocket close
-#define SOCKET_OPT_TYPE void *
-#define SOCKET_LEN_TYPE socklen_t
-#endif
-
-using namespace v8;
-
-namespace raw {
-
-Handle<Value> CreateChecksum (const Arguments& args);
-
-void ExportConstants (Handle<Object> target);
-void ExportFunctions (Handle<Object> target);
-
-Handle<Value> Htonl (const Arguments& args);
-Handle<Value> Htons (const Arguments& args);
-Handle<Value> Ntohl (const Arguments& args);
-Handle<Value> Ntohs (const Arguments& args);
-
-class SocketWrap : public node::ObjectWrap {
-public:
-	void HandleIOEvent (int status, int revents);
-	static void Init (Handle<Object> target);
-
-private:
-	SocketWrap ();
-	~SocketWrap ();
-
-	static Handle<Value> Close (const Arguments& args);
-
-	void CloseSocket (void);
-	
-	int CreateSocket (void);
-
-	static Handle<Value> GetOption (const Arguments& args);
-
-	static Handle<Value> New (const Arguments& args);
-
-	static void OnClose (uv_handle_t *handle);
-
-	static Handle<Value> Pause (const Arguments& args);
-	static Handle<Value> Recv (const Arguments& args);
-	static Handle<Value> Send (const Arguments& args);
-	static Handle<Value> SetOption (const Arguments& args);
-
-	bool no_ip_header_;
-
-	uint32_t family_;
-	uint32_t protocol_;
-
-	SOCKET poll_fd_;
-	uv_poll_t poll_watcher_;
-	bool poll_initialised_;
-};
-
-static void IoEvent (uv_poll_t* watcher, int status, int revents);
-
-}; /* namespace raw */
-
-#endif /* RAW_H */

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/net-ping/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/net-ping/package.json b/blackberry10/node_modules/net-ping/package.json
deleted file mode 100644
index 649fb17..0000000
--- a/blackberry10/node_modules/net-ping/package.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-  "name": "net-ping",
-  "version": "1.1.9",
-  "description": "Ping and trace route to many hosts at once.",
-  "main": "index.js",
-  "directories": {
-    "example": "example"
-  },
-  "dependencies": {
-    "raw-socket": "*"
-  },
-  "contributors": [
-    {
-      "name": "Stephen Vickers",
-      "email": "stephen.vickers.sv@gmail.com"
-    }
-  ],
-  "repository": {
-    "type": "mercurial",
-    "url": "https://bitbucket.org/stephenwvickers/node-net-ping"
-  },
-  "keywords": [
-    "echo",
-    "icmp",
-    "monitor",
-    "monitoring",
-    "net",
-    "network",
-    "ping",
-    "trace",
-    "trace-route",
-    "traceroute",
-    "tracert"
-  ],
-  "author": {
-    "name": "Stephen Vickers",
-    "email": "stephen.vickers.sv@gmail.com"
-  },
-  "license": "MIT",
-  "readme": "\n# net-ping - [homepage][homepage]\n\nThis module implements ICMP Echo (ping) support for [Node.js][nodejs].\n\nThis module is installed using [node package manager (npm)][npm]:\n\n    npm install net-ping\n\nIt is loaded using the `require()` function:\n\n    var ping = require (\"net-ping\");\n\nA ping session can then be created to ping or trace route to many hosts:\n\n    var session = ping.createSession ();\n\n    session.pingHost (target, function (error, target) {\n        if (error)\n            console.log (target + \": \" + error.toString ());\n        else\n            console.log (target + \": Alive\");\n    });\n\n[homepage]: http://re-tool.org \"Homepage\"\n[nodejs]: http://nodejs.org \"Node.js\"\n[npm]: https://npmjs.org/ \"npm\"\n\n# Network Protocol Support\n\nThis module supports IPv4 using the ICMP, and IPv6 using the ICMPv6.\n\n# Error Handling\n\nEach request exposed by this module requires one or more mandatory callback\nfunctions.  Callback funct
 ions are typically provided an `error` argument.\n\nAll errors are sub-classes of the `Error` class.  For timed out errors the\nerror passed to the callback function will be an instance of the\n`ping.RequestTimedOutError` class, with the exposed `message` attribute set\nto `Request timed out`.\n\nThis makes it easy to determine if a host responded, a time out occurred, or\nwhether an error response was received:\n\n    session.pingHost (\"1.2.3.4\", function (error, target) {\n        if (error)\n            if (error instanceof ping.RequestTimedOutError)\n                console.log (target + \": Not alive\");\n            else\n                console.log (target + \": \" + error.toString ());\n        else\n            console.log (target + \": Alive\");\n    });\n\nIn addition to the the `ping.RequestTimedOutError` class, the following errors\nare also exported by this module to wrap ICMP error responses:\n\n * `DestinationUnreachableError`\n * `PacketTooBigError`\n * `Parameter
 ProblemError`\n * `RedirectReceivedError`\n * `SourceQuenchError`\n * `TimeExceededError`\n\nThese errors are typically reported by hosts other than the intended target.\nIn all cases each class exposes a `source` attribute which will specify the\nhost who reported the error (which could be the intended target).  This will\nalso be included in the errors `message` attribute, i.e.:\n\n    $ sudo node example/ping-ttl.js 1 192.168.2.10 192.168.2.20 192.168.2.30\n    192.168.2.10: Alive\n    192.168.2.20: TimeExceededError: Time exceeded (source=192.168.1.1)\n    192.168.2.30: Not alive\n\nThe `Session` class will emit an `error` event for any other error not\ndirectly associated with a request.  This is typically an instance of the\n`Error` class with the errors `message` attribute specifying the reason.\n\n# Packet Size\n\nBy default ICMP echo request packets sent by this module are 16 bytes in size.\nSome implementations cannot cope with such small ICMP echo requests.  For\nexample,
  some implementations will return an ICMP echo reply, but will include\nan incorrect ICMP checksum.\n\nThis module exposes a `packetSize` option to the `createSession()` method which\nspecifies how big ICMP echo request packets should be:\n\n    var session = ping.createSession ({packetSize: 64});\n\n# Round Trip Times\n\nSome callbacks used by methods exposed by this module provide two instances of\nthe JavaScript `Date` class specifying when the first ping was sent for a\nrequest, and when a request completed.\n\nThese parameters are typically named `sent` and `rcvd`, and are provided to\nhelp round trip time calculation.\n\nA request can complete in one of two ways.  In the first, a ping response is\nreceived and `rcvd - sent` will yield the round trip time for the request in\nmilliseconds.\n\nIn the second, no ping response is received resulting in a request time out.\nIn this case `rcvd - sent` will yield the total time spent waiting for each\nretry to timeout if any.  For exam
 ple, if the `retries` option to the\n`createSession()` method was specified as `2` and `timeout` as `2000` then\n`rcvd - sent` will yield more than `6000` milliseconds.\n\nAlthough this module provides instances of the `Date` class to help round trip\ntime calculation the dates and times represented in each instance should not be\nconsidered 100% accurate.\n\nEnvironmental conditions can affect when a date and time is actually\ncalculated, e.g. garbage collection introducing a delay or the receipt of many\npackets at once.  There are also a number of functions through which received\npackets must pass, which can also introduce a slight variable delay.\n\nThroughout development experience has shown that, in general the smaller the\nround trip time the less accurate it will be - but the information is still\nuseful nonetheless.\n\n# Constants\n\nThe following sections describe constants exported and used by this module.\n\n## ping.NetworkProtocol\n\nThis object contains constants whic
 h can be used for the `networkProtocol`\noption to the `createSession()` function exposed by this module.  This option\nspecifies the IP protocol version to use when creating the raw socket.\n\nThe following constants are defined in this object:\n\n * `IPv4` - IPv4 protocol\n * `IPv6` - IPv6 protocol\n\n# Using This Module\n\nThe `Session` class is used to issue ping and trace route requests to many\nhosts.  This module exports the `createSession()` function which is used to\ncreate instances of the `Session` class.\n\n## ping.createSession ([options])\n\nThe `createSession()` function instantiates and returns an instance of the\n`Session` class:\n\n    // Default options\n    var options = {\n        networkProtocol: ping.NetworkProtocol.IPv4,\n        packetSize: 16,\n        retries: 1,\n        sessionId: (process.pid % 65535),\n        timeout: 2000,\n        ttl: 128\n    };\n    \n    var session = ping.createSession (options);\n\nThe optional `options` parameter is an object
 , and can contain the following\nitems:\n\n * `networkProtocol` - Either the constant `ping.NetworkProtocol.IPv4` or the\n   constant `ping.NetworkProtocol.IPv6`, defaults to the constant\n   `ping.NetworkProtocol.IPv4`\n * `packetSize` - How many bytes each ICMP echo request packet should be,\n   defaults to `16`, if the value specified is less that `12` then the value\n   `12` will be used (8 bytes are required for the ICMP packet itself, then 4\n   bytes are required to encode a unique session ID in the request and response\n   packets)\n * `retries` - Number of times to re-send a ping requests, defaults to `1`\n * `sessionId` - A unique ID used to identify request and response packets sent\n   by this instance of the `Session` class, valid numbers are in the range of\n   `1` to `65535`, defaults to the value of `process.pid % 65535`\n * `timeout` - Number of milliseconds to wait for a response before re-trying\n   or failing, defaults to `2000`\n * `ttl` - Value to use for the I
 P header time to live field, defaults to `128`\n\nAfter creating the ping `Session` object an underlying raw socket will be\ncreated.  If the underlying raw socket cannot be opened an exception with be\nthrown.  The error will be an instance of the `Error` class.\n\nSeperate instances of the `Session` class must be created for IPv4 and IPv6.\n\n## session.on (\"close\", callback)\n\nThe `close` event is emitted by the session when the underlying raw socket\nis closed.\n\nNo arguments are passed to the callback.\n\nThe following example prints a message to the console when the underlying raw\nsocket is closed:\n\n    session.on (\"close\", function () {\n        console.log (\"socket closed\");\n    });\n\n## session.on (\"error\", callback)\n\nThe `error` event is emitted by the session when the underlying raw socket\nemits an error.\n\nThe following arguments will be passed to the `callback` function:\n\n * `error` - An instance of the `Error` class, the exposed `message` attribute
 \n   will contain a detailed error message.\n\nThe following example prints a message to the console when an error occurs\nwith the underlying raw socket, the session is then closed:\n\n    session.on (\"error\", function (error) {\n        console.log (error.toString ());\n        session.close ();\n    });\n\n## session.close ()\n\nThe `close()` method closes the underlying raw socket, and cancels all\noutstanding requsts.\n\nThe calback function for each outstanding ping requests will be called.  The\nerror parameter will be an instance of the `Error` class, and the `message`\nattribute set to `Socket forcibly closed`.\n\nThe sessoin can be re-used simply by submitting more ping requests, a new raw\nsocket will be created to serve the new ping requests.  This is a way in which\nto clear outstanding requests.\n\nThe following example submits a ping request and prints the target which\nsuccessfully responded first, and then closes the session which will clear the\nother outstanding
  ping requests.\n\n    var targets = [\"1.1.1.1\", \"2.2.2.2\", \"3.3.3.3\"];\n    \n    for (var i = 0; i < targets.length; i++) {\n        session.pingHost (targets[i], function (error, target) {\n            if (! error) {\n                console.log (target);\n                session.close (); \n            }\n        });\n    }\n\n## session.pingHost (target, callback)\n\nThe `pingHost()` method sends a ping request to a remote host.\n\nThe `target` parameter is the dotted quad formatted IP address of the target\nhost for IPv4 sessions, or the compressed formatted IP address of the target\nhost for IPv6 sessions.\n\nThe `callback` function is called once the ping requests is complete.  The\nfollowing arguments will be passed to the `callback` function:\n\n * `error` - Instance of the `Error` class or a sub-class, or `null` if no\n   error occurred\n * `target` - The target parameter as specified in the request\n   still be the target host and NOT the responding gateway\n * `se
 nt` - An instance of the `Date` class specifying when the first ping\n   was sent for this request (refer to the Round Trip Time section for more\n   information)\n * `rcvd` - An instance of the `Date` class specifying when the request\n   completed (refer to the Round Trip Time section for more information)\n\nThe following example sends a ping request to a remote host:\n\n    var target = \"fe80::a00:27ff:fe2a:3427\";\n\n    session.pingHost (target, function (error, target, sent, rcvd) {\n        var ms = rcvd - sent;\n        if (error)\n            console.log (target + \": \" + error.toString ());\n        else\n            console.log (target + \": Alive (ms=\" + ms + \")\");\n    });\n\n## session.traceRoute (target, ttl, feedCallback, doneCallback)\n\nThe `traceRoute()` method provides similar functionality to the trace route\nutility typically provided with most networked operating systems.\n\nThe `target` parameter is the dotted quad formatted IP address of the target\nho
 st for IPv4 sessions, or the compressed formatted IP address of the target\nhost for IPv6 sessions.  The optional `ttl` parameter specifies the maximum\nnumber of hops used by the trace route and defaults to the `ttl` options\nparameter as defined by the `createSession()` method.\n\nSome hosts do not respond to ping requests when the time to live is `0`, that\nis they will not send back an time exceeded error response.  Instead of\nstopping the trace route at the first time out this method will move on to the\nnext hop, by increasing the time to live by 1.  It will do this 2 times,\nmeaning that a trace route will continue until the target host responds or at\nmost 3 request time outs are experienced.\n\nEach requst is subject to the `retries` and `timeout` option parameters to the\n`createSession()` method.  That is, requests will be retried per hop as per\nthese parameters.\n\nThis method will not call a single callback once the trace route is complete.\nInstead the `feedCallback`
  function will be called each time a ping response is\nreceived or a time out occurs. The following arguments will be passed to the\n`feedCallback` function:\n\n * `error` - Instance of the `Error` class or a sub-class, or `null` if no\n   error occurred\n * `target` - The target parameter as specified in the request\n * `ttl` - The time to live used in the request which triggered this respinse\n * `sent` - An instance of the `Date` class specifying when the first ping\n   was sent for this request (refer to the Round Trip Time section for more\n   information)\n * `rcvd` - An instance of the `Date` class specifying when the request\n   completed (refer to the Round Trip Time section for more information)\n\nOnce a ping response has been received from the target, or more than three\nrequest timed out errors are experienced, the `doneCallback` function will be\ncalled. The following arguments will be passed to the `doneCallback` function:\n\n * `error` - Instance of the `Error` class
  or a sub-class, or `null` if no\n   error occurred\n * `target` - The target parameter as specified in the request\n\nOnce the `doneCallback` function has been called the request is complete and\nthe `requestCallback` function will no longer be called.\n\nIf the `feedCallback` function returns a true value when called the trace route\nwill stop and the `doneCallback` will be called.\n\nThe following example initiates a trace route to a remote host:\n\n    function doneCb (error, target) {\n        if (error)\n            console.log (target + \": \" + error.toString ());\n        else\n            console.log (target + \": Done\");\n    }\n\n    function feedCb (error, target, ttl, sent, rcvd) {\n        var ms = rcvd - sent;\n        if (error) {\n            if (error instanceof ping.TimeExceededError) {\n                console.log (target + \": \" + error.source + \" (ttl=\"\n                        + ttl + \" ms=\" + ms +\")\");\n            } else {\n                console.l
 og (target + \": \" + error.toString ()\n                        + \" (ttl=\" + ttl + \" ms=\" + ms +\")\");\n            }\n        } else {\n            console.log (target + \": \" + target + \" (ttl=\" + ttl\n                    + \" ms=\" + ms +\")\");\n        }\n    }\n\n    session.traceRoute (\"192.168.10.10\", 10, feedCb, doneCb);\n\n# Example Programs\n\nExample programs are included under the modules `example` directory.\n\n# Bugs & Known Issues\n\nNone, yet!\n\nBug reports should be sent to <st...@gmail.com>.\n\n# Changes\n\n## Version 1.0.0 - 03/02/2013\n\n * Initial release\n\n## Version 1.0.1 - 04/02/2013\n\n * Minor corrections to the README.md\n * Add note to README.md about error handling\n * Timed out errors are now instances of the `ping.RequestTimedOutError`\n   object\n\n## Version 1.0.2 - 11/02/2013\n\n * The RequestTimedOutError class is not being exported\n\n## Version 1.1.0 - 13/02/2013\n\n * Support IPv6\n\n## Version 1.1.1 - 15/02/2013\n\n *
  The `ping.Session.close()` method was not undefining the sessions raw\n   socket after closing\n * Return self from the `pingHost()` method to chain method calls \n\n## Version 1.1.2 - 04/03/2013\n\n * Use the `raw.Socket.pauseRecv()` and `raw.Socket.resumeRecv()` methods\n   instead of closing a socket when there are no more outstanding requests\n\n## Version 1.1.3 - 07/03/2013\n\n * Sessions were limited to sending 65535 ping requests\n\n## Version 1.1.4 - 09/04/2013\n\n * Add the `packetSize` option to the `createSession()` method to specify how\n   many bytes each ICMP echo request packet should be\n\n## Version 1.1.5 - 17/05/2013\n\n * Incorrectly parsing ICMP error responses resulting in responses matching\n   the wrong request\n * Use a unique session ID per instance of the `Session` class to identify\n   requests and responses sent by a session\n * Added the (internal) `_debugRequest()` and `_debugResponse()` methods, and\n   the `_debug` option to the `createSession()` met
 hod\n * Added example programs `ping-ttl.js` and `ping6-ttl.js`\n * Use MIT license instead of GPL\n\n## Version 1.1.6 - 17/05/2013\n\n * Session IDs are now 2 bytes (previously 1 byte), and request IDs are also\n   now 2 bytes (previously 3 bytes)\n * Each ICMP error response now has an associated error class (e.g. the\n   `Time exceeded` response maps onto the `ping.TimeExceededError` class)\n * Call request callbacks with an error when there are no free request IDs\n   because of too many outstanding requests\n\n## Version 1.1.7 - 19/05/2013\n\n * Added the `traceRoute()` method\n * Added the `ttl` option parameter to the `createSession()` method, and\n   updated the example programs `ping-ttl.js` and `ping6-ttl.js` to use it\n * Response callback for `pingHost()` now includes two instances of the\n   `Date` class to specify when a request was sent and a response received\n\n## Version 1.1.8 - 01/07/2013\n\n * Use `raw.Socket.createChecksum()` instead of automatic checksum genera
 tion\n\n## Version 1.1.9 - 01/07/2013\n\n * Use `raw.Socket.writeChecksum()` instead of manually rendering checksums\n\n# Roadmap\n\nSuggestions and requirements should be sent to <st...@gmail.com>.\n\n# License\n\nCopyright (c) 2013 Stephen Vickers\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNE
 SS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n# Author\n\nStephen Vickers <st...@gmail.com>\n",
-  "readmeFilename": "README.md",
-  "_id": "net-ping@1.1.9",
-  "dist": {
-    "shasum": "7e70d3a2a766b060d281b17686e94ff4948e26c0"
-  },
-  "_from": "net-ping@",
-  "_resolved": "https://registry.npmjs.org/net-ping/-/net-ping-1.1.9.tgz"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/.npmignore b/blackberry10/node_modules/plugman/.npmignore
deleted file mode 100644
index 9daa824..0000000
--- a/blackberry10/node_modules/plugman/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-node_modules

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/.reviewboardrc
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/.reviewboardrc b/blackberry10/node_modules/plugman/.reviewboardrc
deleted file mode 100644
index 30e9587..0000000
--- a/blackberry10/node_modules/plugman/.reviewboardrc
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# Settings for post-review (used for uploading diffs to reviews.apache.org).
-#
-GUESS_FIELDS = True
-OPEN_BROWSER = True
-TARGET_GROUPS = 'cordova'
-REVIEWBOARD_URL = 'http://reviews.apache.org'
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/LICENSE b/blackberry10/node_modules/plugman/LICENSE
deleted file mode 100644
index 45f03a3..0000000
--- a/blackberry10/node_modules/plugman/LICENSE
+++ /dev/null
@@ -1,14 +0,0 @@
-   Copyright 2012 Andrew Lunny, Adobe Systems
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/README.md b/blackberry10/node_modules/plugman/README.md
deleted file mode 100644
index 5f366e4..0000000
--- a/blackberry10/node_modules/plugman/README.md
+++ /dev/null
@@ -1,163 +0,0 @@
-# plugman
-
-A command line tool to install and uninstall plugins for use with [Apache Cordova](http://cordova.io) projects.
-
-This document defines tool usage.
-
-## Plugin Specification
-
---&gt; [plugin_spec.md](plugin_spec.md) &lt;--
-
-## Quickstart
-
-    npm install -g plugman
-
-## Design Goals
-
-* Facilitate programmatic installation and manipulation of plugins
-* Detail the dependencies and components of individual plugins
-* Allow code reuse between different target platforms
-
-## Supported Platforms
-
-* iOS
-* Android
-* BlackBerry 10
-* Windows Phone (7+8)
-
-## Command Line Usage
-
-    plugman --platform <ios|android|blackberry10|wp7|wp8> --project <directory> --plugin <name|url|path> [--plugins_dir <directory>] [--www <directory>] [--variable <name>=<value> [--variable <name>=<value> ...]]
-    plugman --uninstall --platform <ios|android|blackberr10|wp7|wp8> --project <directory> --plugin <id> [--www <directory>] [--plugins_dir <directory>]
-
-* Using minimum parameters, installs a plugin into a cordova project. You must specify a platform and cordova project location for that platform. You also must specify a plugin, with the different `--plugin` parameter forms being:
-  * `name`: The directory name where the plugin contents exist. This must be an existing directory under the `--plugins_dir` path (see below for more info).
-  * `url`: A URL starting with https:// or git://, pointing to a valid git repository that is clonable and contains a `plugin.xml` file. The contents of this repository would be copied into the `--plugins_dir`.
-  * `path`: A path to a directory containing a valid plugin which includes a `plugin.xml` file. This path's contents will be copied into the `--plugins_dir`.
-* `--uninstall`: Uninstalls an already-`--install`'ed plugin from a cordova project. Specify the plugin ID.
-
-Other parameters: 
-
-* `--plugins_dir` defaults to `<project>/cordova/plugins`, but can be any directory containing a subdirectory for each fetched plugin.
-* `--www` defaults to the project's `www` folder location, but can be any directory that is to be used as cordova project application web assets.
-* `--variable` allows to specify certain variables at install time, necessary for certain plugins requiring API keys or other custom, user-defined parameters. Please see the [plugin specification](plugin_spec.md) for more information.
-
-## Node Module Usage
-
-    node
-    > require('plugman')
-    { install: [Function: installPlugin],
-      uninstall: [Function: uninstallPlugin],
-      fetch: [Function: fetchPlugin],
-      prepare: [Function: handlePrepare] }
-
-### `install` method
-
-    module.exports = function installPlugin(platform, project_dir, id, plugins_dir, subdir, cli_variables, www_dir, callback) {
-
-Installs a plugin into a specified cordova project of a specified platform.
-
- * `platform`: one of `android`, `ios`, `blackberry10`, `wp7` or `wp8`
- * `project_dir`: path to an instance of the above specified platform's cordova project
- * `id`: a string representing the `id` of the plugin, a path to a cordova plugin with a valid `plugin.xml` file, or an `https://` or `git://` url to a git repository of a valid cordova plugin
- * `plugins_dir`: path to directory where plugins will be stored, defaults to `<project_dir>/cordova/plugins`
- * `subdir`: subdirectory within the plugin directory to consider as plugin directory root, defaults to `.`
- * `cli_variables`: an object mapping cordova plugin specification variable namess (see [plugin specification](plugin_spec.md)) to values 
- * `www_dir`: path to directory where web assets are to be copied to, defaults to the specified project directory's `www` dir (dependent on platform)
- * `callback`: callback to invoke once complete. If specified, will pass in an error object as a first parameter if the action failed. If not and an error occurs, `plugman` will throw the error
-
-### `uninstall` method
-
-    module.exports = function uninstallPlugin(platform, project_dir, id, plugins_dir, cli_variables, www_dir, callback) {
-
-Uninstalls a previously-installed cordova plugin from a specified cordova project of a specified platform.
-
- * `platform`: one of `android`, `ios`, `blackberry10`, `wp7` or `wp8`
- * `project_dir`: path to an instance of the above specified platform's cordova project
- * `id`: a string representing the `id` of the plugin
- * `plugins_dir`: path to directory where plugins are stored, defaults to `<project_dir>/cordova/plugins`
- * `subdir`: subdirectory within the plugin directory to consider as plugin directory root, defaults to `.`
- * `cli_variables`: an object mapping cordova plugin specification variable namess (see [plugin specification](plugin_spec.md)) to values 
- * `www_dir`: path to directory where web assets are to be copied to, defaults to the specified project directory's `www` dir (dependent on platform)
- * `callback`: callback to invoke once complete. If specified, will pass in an error object as a first parameter if the action failed. If not and an error occurs, `plugman` will throw the error
-
-### `fetch` method
-
-Copies a cordova plugin into a single location that plugman uses to track which plugins are installed into a project.
-
-    module.exports = function fetchPlugin(plugin_dir, plugins_dir, link, subdir, git_ref, callback) {
-
- * `plugin_dir`: path or URL to a plugin directory/repository
- * `plugins_dir`: path housing all plugins used in this project
- * `link`: if `plugin_dir` points to a local path, will create a symbolic link to that folder instead of copying into `plugins_dir`, defaults to `false`
- * `subdir`: subdirectory within the plugin directory to consider as plugin directory root, defaults to `.`
- * `gitref`: if `plugin_dir` points to a URL, this value will be used to pass into `git checkout` after the repository is cloned, defaults to `HEAD`
- * `callback`: callback to invoke once complete. If specified, will pass in an error object as a first parameter if the action failed. If not and an error occurs, `plugman` will throw the error
-
-### `prepare` method
-
-Finalizes plugin installation by making configuration file changes and setting up a JavaScript loader for js-module support.
-
-    module.exports = function handlePrepare(project_dir, platform, plugins_dir) {
-
- * `project_dir`: path to an instance of the above specified platform's cordova project
- * `platform`: one of `android`, `ios`, `blackberry10`, `wp7` or `wp8`
- * `plugins_dir`: path housing all plugins used in this project
-
-## Example Plugins
-
-- Google has a [bunch of plugins](https://github.com/MobileChromeApps/chrome-cordova/tree/master/plugins) which are maintained actively by a contributor to plugman
-- Adobe maintains plugins for its Build cloud service, which are open sourced and [available on GitHub](https://github.com/phonegap-build)
-- BlackBerry has a [bunch of plugins](https://github.com/blackberry/cordova-blackberry/tree/master/blackberry10/plugins) offering deep platform integration
-
-## Development
-
-Basic installation:
-
-    git clone https://git-wip-us.apache.org/repos/asf/cordova-plugman.git
-    cd cordova-plugman
-    npm install -g
-
-Linking the global executable to the git repo:
-
-    git clone https://git-wip-us.apache.org/repos/asf/cordova-plugman.git
-    cd cordova-plugman
-    npm install
-    sudo npm link
-
-### Running Tests
-
-    npm test
-
-## Plugin Directory Structure
-
-A plugin is typically a combination of some web/www code, and some native code.
-However, plugins may have only one of these things - a plugin could be a single
-JavaScript file, or some native code with no corresponding JavaScript.
-
-Here is a sample plugin named foo with android and ios platforms support, and 2 www assets.
-
-```
-foo-plugin/
-|- plugin.xml     # xml-based manifest
-|- src/           # native source for each platform
-|  |- android/
-|  |  `- Foo.java
-|  `- ios/
-|     |- CDVFoo.h
-|     `- CDVFoo.m
-|- README.md
-`- www/
-   |- foo.js
-   `- foo.png
-```
-
-This structure is suggested, but not required.
-
-## Contributors
-
-See the [package.json](package.json) file for attribution notes.
-
-## License
-
-Apache License 2.0

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/doc/help.txt
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/doc/help.txt b/blackberry10/node_modules/plugman/doc/help.txt
deleted file mode 100644
index 412b3ba..0000000
--- a/blackberry10/node_modules/plugman/doc/help.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-plugman installs and uninstalls plugin.xml-compatible cordova plugins into cordova-generated projects.
-
-Usage
-=====
-
-Install a plugin
-----------------
-
-    $ plugman --platform <platform> --project <directory> --plugin <plugin> [--variable NAME=VALUE]
-
-Parameters: 
-
- - <platform>: One of android, ios, blackberry10, wp7 or wp8
- - project <directory>: Path reference to a cordova-generated project of the platform you specify
- - plugin <plugin>: One of a path reference to a local copy of a plugin, or a remote https: or git: URL pointing to a cordova plugin
- - variable NAME=VALUE: Some plugins require install-time variables to be defined. These could be things like API keys/tokens or other app-specific variables.
-
-Uninstall a plugin
-------------------
-
-    $ plugman --uninstall --platform <platform> --project <directory> --plugin <plugin-id>
-
-Parameters:
- - plugin <plugin-id>: The plugin to remove, identified by its id (see the plugin.xml's <plugin id> attribute)
-
-Optional parameters
--------------------
-
- - www <directory>: www assets for the plugin will be installed into this directory. Default is to install into the standard www directory for the platform specified
- - plugins_dir <directory>: a copy of the plugin will be stored in this directory. Default is to install into the <project directory>/plugins folder
-
-Optional flags
---------------
-
- --debug : Verbose mode