Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

recursive directory cloning

  • Loading branch information...
commit cc04373984eb1da790b20227cef4fc00475a56aa 1 parent 528afc6
@contra contra authored
Showing with 32,409 additions and 12 deletions.
  1. +4 −3 bin/npkg
  2. +1 −1  lib/izpack.coffee
  3. +3 −2 lib/main.coffee
  4. +9 −4 lib/packer.coffee
  5. +62 −1 lib/util.coffee
  6. +3 −1 package.json
  7. +4 −0 test/.gitignore
  8. +4 −0 test/.npmignore
  9. +20 −0 test/LICENSE
  10. +33 −0 test/lib/index.html
  11. +41 −0 test/lib/main.js
  12. +4 −0 test/npkg-temp/app/.gitignore
  13. +4 −0 test/npkg-temp/app/.npmignore
  14. +20 −0 test/npkg-temp/app/LICENSE
  15. +33 −0 test/npkg-temp/app/lib/index.html
  16. +41 −0 test/npkg-temp/app/lib/main.js
  17. +26 −0 test/npkg-temp/app/package.json
  18. BIN  test/npkg-temp/node/node.exe
  19. +14 −0 test/npkg-temp/node/src/.gitignore
  20. +196 −0 test/npkg-temp/node/src/AUTHORS
  21. +97 −0 test/npkg-temp/node/src/CMakeLists.txt
  22. +7 −0 test/npkg-temp/node/src/CTestConfig.cmake
  23. +1,757 −0 test/npkg-temp/node/src/ChangeLog
  24. +68 −0 test/npkg-temp/node/src/LICENSE
  25. +142 −0 test/npkg-temp/node/src/Makefile
  26. +40 −0 test/npkg-temp/node/src/Makefile.cmake
  27. +77 −0 test/npkg-temp/node/src/README.cmake
  28. +33 −0 test/npkg-temp/node/src/README.md
  29. +33 −0 test/npkg-temp/node/src/TODO
  30. +88 −0 test/npkg-temp/node/src/TODO.win32
  31. +6 −0 test/npkg-temp/node/src/benchmark/buffer_creation.js
  32. +42 −0 test/npkg-temp/node/src/benchmark/fast_buffer2.js
  33. +6 −0 test/npkg-temp/node/src/benchmark/fast_buffer2_creation.js
  34. +4 −0 test/npkg-temp/node/src/benchmark/fast_buffer_creation.js
  35. +43 −0 test/npkg-temp/node/src/benchmark/function_call/bench.js
  36. +19 −0 test/npkg-temp/node/src/benchmark/function_call/binding.cc
  37. +15 −0 test/npkg-temp/node/src/benchmark/function_call/wscript
  38. +95 −0 test/npkg-temp/node/src/benchmark/http_simple.js
  39. +95 −0 test/npkg-temp/node/src/benchmark/http_simple.rb
  40. +77 −0 test/npkg-temp/node/src/benchmark/http_simple_bench.sh
  41. +49 −0 test/npkg-temp/node/src/benchmark/idle_clients.js
  42. +31 −0 test/npkg-temp/node/src/benchmark/idle_server.js
  43. +110 −0 test/npkg-temp/node/src/benchmark/io.c
  44. +109 −0 test/npkg-temp/node/src/benchmark/io.js
  45. +86 −0 test/npkg-temp/node/src/benchmark/plot.R
  46. +19 −0 test/npkg-temp/node/src/benchmark/process_loop.js
  47. +1 −0  test/npkg-temp/node/src/benchmark/report-startup-memory.js
  48. +31 −0 test/npkg-temp/node/src/benchmark/run.js
  49. +15 −0 test/npkg-temp/node/src/benchmark/settimeout.js
  50. +26 −0 test/npkg-temp/node/src/benchmark/startup.js
  51. +48 −0 test/npkg-temp/node/src/benchmark/static_http_server.js
  52. +6 −0 test/npkg-temp/node/src/benchmark/string_creation.js
  53. +5 −0 test/npkg-temp/node/src/benchmark/timers.js
  54. +15 −0 test/npkg-temp/node/src/benchmark/v8_bench.js
  55. +4 −0 test/npkg-temp/node/src/cmake/CTestCustom.cmake
  56. +22 −0 test/npkg-temp/node/src/cmake/codesourcery-arm-toolchain.cmake
  57. +114 −0 test/npkg-temp/node/src/cmake/configure.cmake
  58. +80 −0 test/npkg-temp/node/src/cmake/docs.cmake
  59. +18 −0 test/npkg-temp/node/src/cmake/libc-ares.cmake
  60. +10 −0 test/npkg-temp/node/src/cmake/libev.cmake
  61. +55 −0 test/npkg-temp/node/src/cmake/libs.cmake
  62. +25 −0 test/npkg-temp/node/src/cmake/libv8.cmake
  63. +146 −0 test/npkg-temp/node/src/cmake/node_build.cmake
  64. +39 −0 test/npkg-temp/node/src/cmake/package.cmake
  65. +102 −0 test/npkg-temp/node/src/cmake/v8_build.cmake
  66. +2 −0  test/npkg-temp/node/src/config.h.cmake
  67. +21 −0 test/npkg-temp/node/src/configure
  68. +37 −0 test/npkg-temp/node/src/deps/c-ares/AUTHORS
  69. +1,198 −0 test/npkg-temp/node/src/deps/c-ares/CHANGES
  70. +22 −0 test/npkg-temp/node/src/deps/c-ares/CMakeLists.txt
  71. +21 −0 test/npkg-temp/node/src/deps/c-ares/NEWS
  72. +60 −0 test/npkg-temp/node/src/deps/c-ares/README
  73. +13 −0 test/npkg-temp/node/src/deps/c-ares/README.cares
  74. +118 −0 test/npkg-temp/node/src/deps/c-ares/README.msvc
  75. +21 −0 test/npkg-temp/node/src/deps/c-ares/README.node
  76. +25 −0 test/npkg-temp/node/src/deps/c-ares/RELEASE-NOTES
  77. +23 −0 test/npkg-temp/node/src/deps/c-ares/TODO
  78. +537 −0 test/npkg-temp/node/src/deps/c-ares/ares.h
  79. +66 −0 test/npkg-temp/node/src/deps/c-ares/ares__close_sockets.c
  80. +263 −0 test/npkg-temp/node/src/deps/c-ares/ares__get_hostent.c
  81. +71 −0 test/npkg-temp/node/src/deps/c-ares/ares__read_line.c
  82. +111 −0 test/npkg-temp/node/src/deps/c-ares/ares__timeval.c
  83. +63 −0 test/npkg-temp/node/src/deps/c-ares/ares_cancel.c
  84. +190 −0 test/npkg-temp/node/src/deps/c-ares/ares_data.c
  85. +65 −0 test/npkg-temp/node/src/deps/c-ares/ares_data.h
  86. +105 −0 test/npkg-temp/node/src/deps/c-ares/ares_destroy.c
  87. +90 −0 test/npkg-temp/node/src/deps/c-ares/ares_dns.h
  88. +193 −0 test/npkg-temp/node/src/deps/c-ares/ares_expand_name.c
  89. +75 −0 test/npkg-temp/node/src/deps/c-ares/ares_expand_string.c
  90. +62 −0 test/npkg-temp/node/src/deps/c-ares/ares_fds.c
  91. +39 −0 test/npkg-temp/node/src/deps/c-ares/ares_free_hostent.c
  92. +25 −0 test/npkg-temp/node/src/deps/c-ares/ares_free_string.c
  93. +292 −0 test/npkg-temp/node/src/deps/c-ares/ares_gethostbyaddr.c
  94. +515 −0 test/npkg-temp/node/src/deps/c-ares/ares_gethostbyname.c
  95. +426 −0 test/npkg-temp/node/src/deps/c-ares/ares_getnameinfo.c
  96. +122 −0 test/npkg-temp/node/src/deps/c-ares/ares_getopt.c
  97. +53 −0 test/npkg-temp/node/src/deps/c-ares/ares_getopt.h
  98. +72 −0 test/npkg-temp/node/src/deps/c-ares/ares_getsock.c
  99. +1,665 −0 test/npkg-temp/node/src/deps/c-ares/ares_init.c
  100. +78 −0 test/npkg-temp/node/src/deps/c-ares/ares_ipv6.h
  101. +132 −0 test/npkg-temp/node/src/deps/c-ares/ares_library_init.c
  102. +39 −0 test/npkg-temp/node/src/deps/c-ares/ares_library_init.h
  103. +86 −0 test/npkg-temp/node/src/deps/c-ares/ares_llist.c
  104. +42 −0 test/npkg-temp/node/src/deps/c-ares/ares_llist.h
  105. +195 −0 test/npkg-temp/node/src/deps/c-ares/ares_mkquery.c
  106. +70 −0 test/npkg-temp/node/src/deps/c-ares/ares_nowarn.c
  107. +24 −0 test/npkg-temp/node/src/deps/c-ares/ares_nowarn.h
  108. +253 −0 test/npkg-temp/node/src/deps/c-ares/ares_options.c
  109. +258 −0 test/npkg-temp/node/src/deps/c-ares/ares_parse_a_reply.c
  110. +256 −0 test/npkg-temp/node/src/deps/c-ares/ares_parse_aaaa_reply.c
  111. +170 −0 test/npkg-temp/node/src/deps/c-ares/ares_parse_mx_reply.c
  112. +182 −0 test/npkg-temp/node/src/deps/c-ares/ares_parse_ns_reply.c
  113. +208 −0 test/npkg-temp/node/src/deps/c-ares/ares_parse_ptr_reply.c
  114. +179 −0 test/npkg-temp/node/src/deps/c-ares/ares_parse_srv_reply.c
  115. +201 −0 test/npkg-temp/node/src/deps/c-ares/ares_parse_txt_reply.c
  116. +351 −0 test/npkg-temp/node/src/deps/c-ares/ares_private.h
  117. +1,296 −0 test/npkg-temp/node/src/deps/c-ares/ares_process.c
  118. +183 −0 test/npkg-temp/node/src/deps/c-ares/ares_query.c
  119. +144 −0 test/npkg-temp/node/src/deps/c-ares/ares_rules.h
  120. +322 −0 test/npkg-temp/node/src/deps/c-ares/ares_search.c
  121. +134 −0 test/npkg-temp/node/src/deps/c-ares/ares_send.c
  122. +66 −0 test/npkg-temp/node/src/deps/c-ares/ares_strcasecmp.c
  123. +30 −0 test/npkg-temp/node/src/deps/c-ares/ares_strcasecmp.h
  124. +42 −0 test/npkg-temp/node/src/deps/c-ares/ares_strdup.c
  125. +26 −0 test/npkg-temp/node/src/deps/c-ares/ares_strdup.h
  126. +56 −0 test/npkg-temp/node/src/deps/c-ares/ares_strerror.c
  127. +80 −0 test/npkg-temp/node/src/deps/c-ares/ares_timeout.c
  128. +11 −0 test/npkg-temp/node/src/deps/c-ares/ares_version.c
  129. +24 −0 test/npkg-temp/node/src/deps/c-ares/ares_version.h
  130. +79 −0 test/npkg-temp/node/src/deps/c-ares/ares_writev.c
  131. +36 −0 test/npkg-temp/node/src/deps/c-ares/ares_writev.h
  132. +59 −0 test/npkg-temp/node/src/deps/c-ares/bitncmp.c
  133. +26 −0 test/npkg-temp/node/src/deps/c-ares/bitncmp.h
  134. +360 −0 test/npkg-temp/node/src/deps/c-ares/config-win32.h
  135. +112 −0 test/npkg-temp/node/src/deps/c-ares/cygwin-ia32/ares_build.h
  136. +513 −0 test/npkg-temp/node/src/deps/c-ares/cygwin-ia32/ares_config.h
  137. +198 −0 test/npkg-temp/node/src/deps/c-ares/cygwin-ia32/ares_setup.h
  138. +112 −0 test/npkg-temp/node/src/deps/c-ares/darwin-ia32/ares_build.h
  139. +513 −0 test/npkg-temp/node/src/deps/c-ares/darwin-ia32/ares_config.h
  140. +198 −0 test/npkg-temp/node/src/deps/c-ares/darwin-ia32/ares_setup.h
  141. +112 −0 test/npkg-temp/node/src/deps/c-ares/darwin-x64/ares_build.h
  142. +513 −0 test/npkg-temp/node/src/deps/c-ares/darwin-x64/ares_config.h
  143. +198 −0 test/npkg-temp/node/src/deps/c-ares/darwin-x64/ares_setup.h
  144. +112 −0 test/npkg-temp/node/src/deps/c-ares/freebsd-ia32/ares_build.h
  145. +513 −0 test/npkg-temp/node/src/deps/c-ares/freebsd-ia32/ares_config.h
  146. +198 −0 test/npkg-temp/node/src/deps/c-ares/freebsd-ia32/ares_setup.h
  147. +112 −0 test/npkg-temp/node/src/deps/c-ares/freebsd-x64/ares_build.h
  148. +513 −0 test/npkg-temp/node/src/deps/c-ares/freebsd-x64/ares_config.h
  149. +198 −0 test/npkg-temp/node/src/deps/c-ares/freebsd-x64/ares_setup.h
  150. +35 −0 test/npkg-temp/node/src/deps/c-ares/get_ver.awk
  151. +450 −0 test/npkg-temp/node/src/deps/c-ares/inet_net_pton.c
  152. +31 −0 test/npkg-temp/node/src/deps/c-ares/inet_net_pton.h
  153. +232 −0 test/npkg-temp/node/src/deps/c-ares/inet_ntop.c
  154. +26 −0 test/npkg-temp/node/src/deps/c-ares/inet_ntop.h
  155. +112 −0 test/npkg-temp/node/src/deps/c-ares/linux-arm/ares_build.h
  156. +513 −0 test/npkg-temp/node/src/deps/c-ares/linux-arm/ares_config.h
  157. +198 −0 test/npkg-temp/node/src/deps/c-ares/linux-arm/ares_setup.h
  158. +112 −0 test/npkg-temp/node/src/deps/c-ares/linux-ia32/ares_build.h
  159. +513 −0 test/npkg-temp/node/src/deps/c-ares/linux-ia32/ares_config.h
  160. +198 −0 test/npkg-temp/node/src/deps/c-ares/linux-ia32/ares_setup.h
  161. +112 −0 test/npkg-temp/node/src/deps/c-ares/linux-x64/ares_build.h
  162. +513 −0 test/npkg-temp/node/src/deps/c-ares/linux-x64/ares_config.h
  163. +198 −0 test/npkg-temp/node/src/deps/c-ares/linux-x64/ares_setup.h
  164. +193 −0 test/npkg-temp/node/src/deps/c-ares/nameser.h
  165. +112 −0 test/npkg-temp/node/src/deps/c-ares/openbsd-ia32/ares_build.h
  166. +513 −0 test/npkg-temp/node/src/deps/c-ares/openbsd-ia32/ares_config.h
  167. +198 −0 test/npkg-temp/node/src/deps/c-ares/openbsd-ia32/ares_setup.h
  168. +112 −0 test/npkg-temp/node/src/deps/c-ares/openbsd-x64/ares_build.h
  169. +513 −0 test/npkg-temp/node/src/deps/c-ares/openbsd-x64/ares_config.h
  170. +198 −0 test/npkg-temp/node/src/deps/c-ares/openbsd-x64/ares_setup.h
  171. +488 −0 test/npkg-temp/node/src/deps/c-ares/setup_once.h
  172. +112 −0 test/npkg-temp/node/src/deps/c-ares/sunos-ia32/ares_build.h
  173. +513 −0 test/npkg-temp/node/src/deps/c-ares/sunos-ia32/ares_config.h
  174. +198 −0 test/npkg-temp/node/src/deps/c-ares/sunos-ia32/ares_setup.h
  175. +111 −0 test/npkg-temp/node/src/deps/c-ares/win32-ia32/ares_build.h
  176. +513 −0 test/npkg-temp/node/src/deps/c-ares/win32-ia32/ares_config.h
  177. +198 −0 test/npkg-temp/node/src/deps/c-ares/win32-ia32/ares_setup.h
  178. +22 −0 test/npkg-temp/node/src/deps/c-ares/windows_port.c
  179. +26 −0 test/npkg-temp/node/src/deps/c-ares/wscript
  180. +5 −0 test/npkg-temp/node/src/deps/http_parser/.gitignore
  181. +2 −0  test/npkg-temp/node/src/deps/http_parser/CMakeLists.txt
  182. +4 −0 test/npkg-temp/node/src/deps/http_parser/CONTRIBUTIONS
  183. +23 −0 test/npkg-temp/node/src/deps/http_parser/LICENSE-MIT
  184. +46 −0 test/npkg-temp/node/src/deps/http_parser/Makefile
  185. +171 −0 test/npkg-temp/node/src/deps/http_parser/README.md
  186. +1,647 −0 test/npkg-temp/node/src/deps/http_parser/http_parser.c
  187. +194 −0 test/npkg-temp/node/src/deps/http_parser/http_parser.h
  188. +2,036 −0 test/npkg-temp/node/src/deps/http_parser/test.c
  189. +26 −0 test/npkg-temp/node/src/deps/libeio/CMakeLists.txt
  190. +35 −0 test/npkg-temp/node/src/deps/libeio/Changes
  191. +36 −0 test/npkg-temp/node/src/deps/libeio/LICENSE
  192. +15 −0 test/npkg-temp/node/src/deps/libeio/Makefile.am
Sorry, we could not display the entire diff because too many files (1,709) changed.
View
7 bin/npkg
@@ -15,7 +15,8 @@ short =
o: ['--out']
parsed = nopt known, short, process.argv, 2
-return log.error 'Please enter all required parameters' unless parsed.in and parsed.out
+return log.error 'Please enter all required parameters' unless parsed.in
+parsed.out ?= path.join parsed.in, '/build/'
logo = ''
logo += ' _ \r\n'
@@ -25,10 +26,10 @@ logo += '| _ \\ | _ \\ | |_/ )/ _ |\r\n'
logo += '| | | || |_| || _ (( (_| |\r\n'
logo += '|_| |_|| __/ |_| \\_)\\___ |\r\n'
logo += ' |_| (_____|\r\n'
-console.log logo
+console.log logo.red
npkg = require '../lib/main'
-basedir = './temp/'
+basedir = path.join parsed.in, '/npkg-temp/'
try
npkg.build basedir, parsed, ->
log.info 'Build completed! - Files located at ' + parsed.out
View
2  lib/izpack.coffee
@@ -11,7 +11,7 @@ module.exports =
url: pack.homepage
author: pack.author
requiresjdk: 'no'
- createdBy: 'npkg' # Shameless watermarking, this isnt displayed anywhere
+ generator: 'npkg' # Shameless watermarking, this isnt displayed anywhere
# Installer variables - TODO: Let devs have a config to change these via CLI
# Example - These can be used to automatically tick desktop shortcuts etc.
View
5 lib/main.coffee
@@ -1,3 +1,4 @@
+require 'protege'
log = require 'node-log'
log.setName 'npkg'
@@ -17,6 +18,7 @@ module.exports =
log.info 'Starting ' + pack.name + ' build'
dirs = {}
dirs.temp = temp
+ dirs.app = path.join temp, 'app/'
dirs.node = path.join temp, 'node/'
dirs.deps = path.join temp, 'deps/'
dirs.npm = path.join dirs.node, 'node_modules/'
@@ -26,8 +28,7 @@ module.exports =
if path.existsSync(dirs[dir])
rimraf.sync dirs[dir]
fs.mkdirSync dirs[dir], 0777
-
+
packer.save dirs, pack, opt, ->
info = izpack.generateXML dirs, pack, opt # Todo: Run it through izpack compile, run it though converter utils
cb()
-
View
13 lib/packer.coffee
@@ -6,7 +6,11 @@ fs = require 'fs'
util = require './util'
async = require 'async'
rimraf = require 'rimraf'
-
+
+copyApp = (dirs, pack, opt, cb) ->
+ log.info 'Cloning application...'
+ util.cloneDirectory opt.in, dirs.app, true, ['npkg-temp'], cb
+
saveNPM = (dirs, pack, opt, cb) ->
log.info 'Analyzing dependencies...'
npm.resolve opt.in, (deps) ->
@@ -22,10 +26,10 @@ saveNPM = (dirs, pack, opt, cb) ->
fs.mkdir outf, 0777, (err) ->
throw err if err
util.unpack result, outf, true, (err) ->
- throw err if err
+ if err then log.error 'Unpacking ' + dep + ' failed! Error: ' + err
call()
- async.forEach Object.keys(deps), saveModule, -> rimraf(dirs.deps, cb)
+ async.forEach Object.keys(deps), saveModule, -> rimraf dirs.deps, cb
return
saveNode = (dirs, pack, opt, cb) ->
@@ -60,4 +64,5 @@ module.exports =
## TODO: Writing installation scripts to config folder and app data to app
npmfn = (call) -> saveNPM dirs, pack, opt, call
nodefn = (call) -> saveNode dirs, pack, opt, call
- async.parallel [npmfn, nodefn], cb
+ copyfn = (call) -> copyApp dirs, pack, opt, call
+ async.parallel [copyfn, npmfn, nodefn], cb
View
63 lib/util.coffee
@@ -1,11 +1,72 @@
path = require 'path'
log = require 'node-log'
fs = require 'fs'
+path = require 'path'
exec = require('child_process').exec
+async = require 'async'
module.exports =
unpack: (inf, out, striptop, cb) ->
cmd = 'tar -xvzf ' + inf + ' -C ' + out
if striptop then cmd += ' --strip 1'
exec cmd, (err, stdout, stderr) ->
- cb(err || stderr)
+ err ?= stderr if stderr? and !stderr.containsIgnoreCase 'Ignoring unknown extended header keyword'
+ cb err
+
+ cloneDirectory: (dir, newdir, ignore, excludes, cb) ->
+ if !cb
+ cb = excludes
+ excludes = []
+
+ clone = (file, call) ->
+ oldf = path.join dir, file
+ newf = path.join newdir, file
+ fs.stat oldf, (err, stat) ->
+ throw err if err
+ if stat.isDirectory()
+ module.exports.cloneDirectory oldf, newf, true, excludes, call
+ else
+ fs.readFile oldf, (err, data) ->
+ throw err if err
+ fs.writeFile newf, data, (err) ->
+ throw err if err
+ call()
+
+ copyAll = (call) ->
+ fs.readdir dir, (err, files) ->
+ excludes = excludes.unique()
+ files = (x for x in files when excludes.indexOf(x) is -1) # TODO: REGEX TESTING
+ async.forEach files, clone, call
+
+ npmExclude = (call) ->
+ npmignore = path.join dir, '/.npmignore'
+ path.exists npmignore, (exists) ->
+ return call() unless exists
+ fs.readFile npmignore, (err, data) ->
+ throw err if err
+ excludes.merge data.toString().split '\n'
+ call()
+
+ gitExclude = (call) ->
+ gitignore = path.join dir, '/.gitignore'
+ path.exists gitignore, (exists) ->
+ return call() unless exists
+ fs.readFile gitignore, (err, data) ->
+ throw err if err
+ excludes.merge data.toString().split '\n'
+ call()
+
+ run = (call) ->
+ if ignore
+ async.parallel [npmExclude, gitExclude], -> copyAll call
+ else
+ copyAll call
+
+ path.exists newdir, (exists) ->
+ if exists
+ run cb
+ else
+ fs.mkdir newdir, 0777, (err) ->
+ throw err if err
+ run cb
+
View
4 package.json
@@ -14,6 +14,7 @@
"dependencies":{
"coffee-script":"*",
"node-log":"*",
+ "colors":"*",
"protege":"*",
"nopt":"*",
"get":"*",
@@ -21,7 +22,8 @@
"semver":"*",
"rimraf":"*",
"jsontoxml":"*",
- "async":"*"
+ "async":"*",
+ "wrench":"*"
},
"engines":{
"node":">= 0.4.0"
View
4 test/.gitignore
@@ -0,0 +1,4 @@
+.DS_Store
+*.log
+node_modules
+temp
View
4 test/.npmignore
@@ -0,0 +1,4 @@
+.DS_Store
+*.log
+node_modules
+temp
View
20 test/LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2011 Fractal <contact@wearefractal.com>
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
View
33 test/lib/index.html
@@ -0,0 +1,33 @@
+<html>
+<head>
+<title>Fusker - Test Page</title>
+<script type="text/javascript" src="/socket.io/socket.io.js"></script>
+<script>
+ var socket = io.connect();
+
+ socket.on('connect', function () {
+ console.log('Socket.IO connected!');
+ });
+
+ socket.on('HelloClient', function (msg) {
+ console.log('Server: ' + msg);
+ socket.emit('TestObject', {username: 'ez-money', message: 'waz gud diz ya boi e-z e'});
+
+ //Uncomment this block to send attacks to the server on page load
+ /*
+ socket.emit('TestXSS', '"><img src=x onerror=alert("XSS")><noscript>');
+ socket.emit('TestLFI', '../../etc/passwd/');
+ socket.emit('TestSQL', '\' OR \'1\'=\'1');*/
+ });
+</script>
+</head>
+<body bgcolor="black" background="http://content.ytmnd.com/content/1/d/b/1db6ede2772ba8f5428dbff9f1f2e3be.gif">
+<br/><br/>
+<center>
+<h1>Fusker Test Page</h1><br/>
+<img src="http://content.ytmnd.com/content/1/7/c/17c9f89183c18613f48450a649e3f64c.gif"/><br/>
+<embed src="http://www.youtube.com/v/pOu1BvuhtRw?autoplay=1" type="application/x-shockwave-flash" wmode="transparent" width="1" height="1"></embed>
+</center>
+</body>
+</html>
+
View
41 test/lib/main.js
@@ -0,0 +1,41 @@
+var log = require('node-log')
+log.setName('TestApp')
+var fusker = require('fusker');
+
+fusker.config.dir = __dirname;
+fusker.config.banLength = 1;
+fusker.config.verbose = true;
+fusker.http.detect('csrf', 'xss', 'sqli', 'lfi', '404');
+fusker.http.punish('blacklist', 'bush');
+fusker.socket.detect('xss', 'sqli', 'lfi');
+fusker.socket.punish('blacklist');
+
+var server = fusker.http.createServer(8080);
+var io = fusker.socket.listen(server);
+
+io.sockets.on('connection', function(socket) {
+ socket.emit('HelloClient', 'o hay thar client');
+
+ socket.on('TestObject', function(msg) {
+ return console.log('HelloServer1! Contents: ' + msg);
+ });
+ socket.on('TestObject', function(msg) {
+ return console.log('HelloServer2! Contents: ' + msg);
+ });
+ socket.on('TestObject', function(msg) {
+ return console.log('HelloServer3! Contents: ' + msg);
+ });
+
+ /* Uncomment the attack senders in index.html to test these */;
+ socket.on('TestSQL', function(msg) {
+ return console.log('SQL Handled! Contents: ' + msg);
+ });
+
+ socket.on('TestLFI', function(msg) {
+ return console.log('LFI Handled! Contents: ' + msg);
+ });
+
+ socket.on('TestXSS', function(msg) {
+ return console.log('XSS Handled! Contents: ' + msg);
+ });
+});
View
4 test/npkg-temp/app/.gitignore
@@ -0,0 +1,4 @@
+.DS_Store
+*.log
+node_modules
+temp
View
4 test/npkg-temp/app/.npmignore
@@ -0,0 +1,4 @@
+.DS_Store
+*.log
+node_modules
+temp
View
20 test/npkg-temp/app/LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2011 Fractal <contact@wearefractal.com>
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
View
33 test/npkg-temp/app/lib/index.html
@@ -0,0 +1,33 @@
+<html>
+<head>
+<title>Fusker - Test Page</title>
+<script type="text/javascript" src="/socket.io/socket.io.js"></script>
+<script>
+ var socket = io.connect();
+
+ socket.on('connect', function () {
+ console.log('Socket.IO connected!');
+ });
+
+ socket.on('HelloClient', function (msg) {
+ console.log('Server: ' + msg);
+ socket.emit('TestObject', {username: 'ez-money', message: 'waz gud diz ya boi e-z e'});
+
+ //Uncomment this block to send attacks to the server on page load
+ /*
+ socket.emit('TestXSS', '"><img src=x onerror=alert("XSS")><noscript>');
+ socket.emit('TestLFI', '../../etc/passwd/');
+ socket.emit('TestSQL', '\' OR \'1\'=\'1');*/
+ });
+</script>
+</head>
+<body bgcolor="black" background="http://content.ytmnd.com/content/1/d/b/1db6ede2772ba8f5428dbff9f1f2e3be.gif">
+<br/><br/>
+<center>
+<h1>Fusker Test Page</h1><br/>
+<img src="http://content.ytmnd.com/content/1/7/c/17c9f89183c18613f48450a649e3f64c.gif"/><br/>
+<embed src="http://www.youtube.com/v/pOu1BvuhtRw?autoplay=1" type="application/x-shockwave-flash" wmode="transparent" width="1" height="1"></embed>
+</center>
+</body>
+</html>
+
View
41 test/npkg-temp/app/lib/main.js
@@ -0,0 +1,41 @@
+var log = require('node-log')
+log.setName('TestApp')
+var fusker = require('fusker');
+
+fusker.config.dir = __dirname;
+fusker.config.banLength = 1;
+fusker.config.verbose = true;
+fusker.http.detect('csrf', 'xss', 'sqli', 'lfi', '404');
+fusker.http.punish('blacklist', 'bush');
+fusker.socket.detect('xss', 'sqli', 'lfi');
+fusker.socket.punish('blacklist');
+
+var server = fusker.http.createServer(8080);
+var io = fusker.socket.listen(server);
+
+io.sockets.on('connection', function(socket) {
+ socket.emit('HelloClient', 'o hay thar client');
+
+ socket.on('TestObject', function(msg) {
+ return console.log('HelloServer1! Contents: ' + msg);
+ });
+ socket.on('TestObject', function(msg) {
+ return console.log('HelloServer2! Contents: ' + msg);
+ });
+ socket.on('TestObject', function(msg) {
+ return console.log('HelloServer3! Contents: ' + msg);
+ });
+
+ /* Uncomment the attack senders in index.html to test these */;
+ socket.on('TestSQL', function(msg) {
+ return console.log('SQL Handled! Contents: ' + msg);
+ });
+
+ socket.on('TestLFI', function(msg) {
+ return console.log('LFI Handled! Contents: ' + msg);
+ });
+
+ socket.on('TestXSS', function(msg) {
+ return console.log('XSS Handled! Contents: ' + msg);
+ });
+});
View
26 test/npkg-temp/app/package.json
@@ -0,0 +1,26 @@
+{
+ "name":"TestApp",
+ "description":"TestApp for npkg",
+ "version":"0.0.1",
+ "homepage":"http://github.com/wearefractal/npkg",
+ "repository":"git://github.com/wearefractal/npkg.git",
+ "author":"Fractal <contact@wearefractal.com> (http://wearefractal.com/)",
+ "main":"./lib/main.js",
+
+ "dependencies":{
+ "coffee-script":"*",
+ "node-log":"*",
+ "fusker":"*",
+ "protege":"*",
+ "get":"*"
+ },
+ "engines":{
+ "node":">= 0.4.0"
+ },
+ "licenses":[
+ {
+ "type":"MIT",
+ "url":"http://github.com/wearefractal/npkg/raw/master/LICENSE"
+ }
+ ]
+}
View
BIN  test/npkg-temp/node/node.exe
Binary file not shown
View
14 test/npkg-temp/node/src/.gitignore
@@ -0,0 +1,14 @@
+build
+.waf*
+tags
+.lock-wscript
+*.pyc
+doc/api.xml
+tools/nodejs.pc
+tmp/
+node
+node_g
+*.swp
+.benchmark_reports
+/.project
+/.cproject
View
196 test/npkg-temp/node/src/AUTHORS
@@ -0,0 +1,196 @@
+# Authors ordered by first contribution.
+
+Ryan Dahl <ry@tinyclouds.org>
+Urban Hafner <urban@bettong.net>
+Joshaven Potter <yourtech@gmail.com>
+Abe Fettig <abefettig@gmail.com>
+Kevin van Zonneveld <kevin@vanzonneveld.net>
+Michael Carter <cartermichael@gmail.com>
+Jeff Smick <sprsquish@gmail.com>
+Jon Crosby <jon@joncrosby.me>
+Felix Geisendörfer <felix@debuggable.com>
+Ray Morgan <rmorgan@zappos.com>
+Jérémy Lal <kapouer@melix.org>
+Isaac Z. Schlueter <i@izs.me>
+Brandon Beacher <brandon.beacher@gmail.com>
+Tim Caswell <tim@creationix.com>
+Connor Dunn <connorhd@gmail.com>
+Johan Sørensen <johan@johansorensen.com>
+Friedemann Altrock <frodenius@gmail.com>
+Onne Gorter <onne@onnlucky.com>
+Rhys Jones <rhys@wave.to>
+Jan Lehnardt <jan@apache.org>
+Simon Willison <simon@simonwillison.net>
+Chew Choon Keat <choonkeat@gmail.com>
+Jered Schmidt <tr@nslator.jp>
+Michaeljohn Clement <inimino@inimino.org>
+Karl Guertin <grayrest@gr.ayre.st>
+Xavier Shay <xavier@rhnh.net>
+Christopher Lenz <cmlenz@gmail.com>
+TJ Holowaychuk <tj@vision-media.ca>
+Johan Dahlberg <jfd@distrop.com>
+Simon Cornelius P. Umacob <simoncpu@gmail.com>
+Ryan McGrath <ryan@venodesigns.net>
+Rasmus Andersson <rasmus@notion.se>
+Micheil Smith <micheil@brandedcode.com>
+Jonas Pfenniger <jonas@pfenniger.name>
+David Sklar <david.sklar@gmail.com>
+Charles Lehner <celehner1@gmail.com>
+Elliott Cable <me@ell.io>
+Benjamin Thomas <benjamin@benjaminthomas.org>
+San-Tai Hsu <v@fatpipi.com>
+Ben Williamson <benw@pobox.com>
+Joseph Pecoraro <joepeck02@gmail.com>
+Erich Ocean <erich.ocean@me.com>
+Alexis Sellier <self@cloudhead.net>
+Blaine Cook <romeda@gmail.com>
+Stanislav Opichal <opichals@gmail.com>
+Aaron Heckmann <aaron.heckmann@gmail.com>
+Mikeal Rogers <mikeal.rogers@gmail.com>
+Matt Brubeck <mbrubeck@limpet.net>
+Michael Stillwell <mjs@beebo.org>
+Yuichiro MASUI <masui@masuidrive.jp>
+Mark Hansen <mark@markhansen.co.nz>
+Zoran Tomicic <ztomicic@gmail.com>
+Jeremy Ashkenas <jashkenas@gmail.com>
+Scott González <scott.gonzalez@gmail.com>
+James Duncan <james@joyent.com>
+Arlo Breault <arlolra@gmail.com>
+Kris Kowal <kris.kowal@cixar.com>
+Jacek Becela <jacek.becela@gmail.com>
+Rob Ellis <kazoomer@gmail.com>
+Tim Smart <timehAndGod@gmail.com>
+Herbert Vojčík <herby@mailbox.sk>
+Krishna Rajendran <krishna@emptybox.org>
+Nicholas Kinsey <pyrotechnick@feistystudios.com>
+Scott Taylor <scott@railsnewbie.com>
+Carson McDonald <carson@ioncannon.net>
+Matt Ranney <mjr@ranney.com>
+James Herdman <james.herdman@gmail.com>
+Julian Lamb <thepurlieu@gmail.com>
+Brian Hammond <brian@fictorial.com>
+Mathias Pettersson <mape@mape.me>
+Trevor Blackwell <tlb@tlb.org>
+Thomas Lee <thomas.lee@shinetech.com>
+Daniel Berger <code+node@dpbis.net>
+Paulo Matias <paulo.matias@usp.br>
+Peter Griess <pg@std.in>
+Jonathan Knezek <jdknezek@gmail.com>
+Jonathan Rentzsch <jwr.git@redshed.net>
+Ben Noordhuis <info@bnoordhuis.nl>
+Elijah Insua <tmpvar@gmail.com>
+Andrew Johnston <apjohnsto@gmail.com>
+Brian White <mscdex@mscdex.net>
+Aapo Laitinen <aapo.laitinen@iki.fi>
+Sam Hughes <sam@samuelhughes.com>
+Orlando Vazquez <ovazquez@gmail.com>
+Raffaele Sena <raff367@gmail.com>
+Brian McKenna <brian@brianmckenna.org>
+Paul Querna <pquerna@apache.org>
+Ben Lowery <ben@blowery.org>
+Peter Dekkers <soderblom.peter@gmail.com>
+David Siegel <david@artcom.de>
+Marshall Culpepper <marshall.law@gmail.com>
+Ruben Rodriguez <cha0s@therealcha0s.net>
+Dmitry Baranovskiy <Dmitry@Baranovskiy.com>
+Blake Mizerany <blake.mizerany@gmail.com>
+Jerome Etienne <jerome.etienne@gmail.com>
+Dmitriy Shalashov <skaurus@gmail.com>
+Adam Wiggins <adam@heroku.com>
+Rick Olson <technoweenie@gmail.com>
+David Siegel <david.siegel@artcom.de>
+Sergey Kzyzhanovsky <skryzhanovsky@gmail.com>
+Marco Rogers <marco.rogers@gmail.com>
+Benjamin Fritsch <beanie@benle.de>
+Jan Kassens <jan@kassens.net>
+Robert Keizer <root@black.bluerack.ca>
+Sam Shull <brickysam26@gmail.com>
+Chandra Sekar S <chandru.in@gmail.com>
+Andrew Naylor <argon@mkbot.net>
+Benjamin Kramer <benny.kra@gmail.com>
+Danny Coates <dannycoates@gmail.com>
+Nick Stenning <nick@whiteink.com>
+Bert Belder <bertbelder@gmail.com>
+Trent Mick <trentm@gmail.com>
+Fedor Indutny <fedor.indutny@gmail.com>
+Illarionov Oleg <oleg@emby.ru>
+Aria Stewart <aredridel@nbtsc.org>
+Johan Euphrosine <proppy@aminche.com>
+Russell Haering <russellhaering@gmail.com>
+Bradley Meck <bradley.meck@gmail.com>
+Tobie Langel <tobie.langel@gmail.com>
+Tony Metzidis <tonym@tonym.us>
+Mark Nottingham <mnot@mnot.net>
+Sam Stephenson <sam@37signals.com>
+Jorge Chamorro Bieling <jorge@jorgechamorro.com>
+Evan Larkin <evan.larkin.il.com>
+Sean Coates <sean@seancoates.com>
+Tom Hughes <tom.hughes@palm.com>
+Joshua Peek <josh@joshpeek.com>
+Nathan Rajlich <nathan@tootallnate.net>
+Peteris Krumins <peteris.krumins@gmail.com>
+AJ ONeal <coolaj86@gmail.com>
+Sami Samhuri <sami.samhuri@gmail.com>
+Nikhil Marathe <nsm.nikhil@gmail.com>
+Vitali Lovich <vitali.lovich@palm.com>
+Stéphan Kochen <stephan@kochen.nl>
+Oleg Efimov <efimovov@gmail.com>
+Guillaume Tuton <guillaume@tuton.fr>
+Tim Cooijmans <tim@aapopfiets.nl>
+Dan Søndergaard <dan1990@gmail.com>
+Silas Sewell <silas@sewell.ch>
+Wade Simmons <wade@wades.im>
+Daniel Gröber <darklord@darkboxed.org>
+Travis Swicegood <development@domain51.com>
+Oleg Slobodskoi <oleg008@gmail.com>
+Jeremy Martin <jmar777@gmail.com>
+Michael W <gcr@sneakygcr.net>
+Sean Braithwaite <brapse@gmail.com>
+Anders Conbere <aconbere@gmail.com>
+Devin Torres <devin@devintorres.com>
+Theo Schlossnagle <jesus@omniti.com>
+Kai Chen <kaichenxyz@gmail.com>
+Daniel C <333222@gmail.com>
+Mihai Călin Bazon <mihai@bazon.net>
+Ali Farhadi <a.farhadi@gmail.com>
+Daniel Ennis <aikar@aikar.co>
+Carter Allen <CarterA@opt-6.com>
+Greg Hughes <greg@ghughes.com>
+David Trejo <david.daniel.trejo@gmail.com>
+Joe Walnes <joe@walnes.com>
+Koichi Kobayashi <koichik@improvement.jp>
+Daniel Gröber <dxld@darkboxed.org>
+Konstantin Käfer <github@kkaefer.com>
+Richard Rodger <richard@ricebridge.com>
+Andreas Reich <andreas@reich.name>
+Dean McNamee <dean@gmail.com>
+Trevor Burnham <trevor@databraid.com>
+Zachary Scott <zachary.s.scott@gmail.com>
+Arnout Kazemier <info@3rd-Eden.com>
+George Stagas <gstagas@gmail.com>
+Scott McWhirter <scott.mcwhirter@joyent.com>
+Jakub Lekstan <jakub.lekstan@dreamlab.pl>
+Tim Baumann <tim@timbaumann.info>
+Robert Mustacchi <rm@joyent.com>
+George Miroshnykov <george.miroshnykov@gmail.com>
+Marcel Laverdet <marcel@laverdet.com>
+Alexandre Marangone <a.marangone@gmail.com>
+Mark Cavage <mark.cavage@joyent.com>
+Ryan Petrello <lists@ryanpetrello.com>
+Siddharth Mahendraker <siddharth_mahen@hotmail.com>
+Mathias Buus <m@ge.tt>
+Yoshihiro KIKUCHI <yknetg@gmail.com>
+Brett Kiefer <kiefer@gmail.com>
+Mariano Iglesias <mariano@cricava.com>
+Jörn Horstmann <git@jhorstmann.net>
+Joe Shaw <joeshaw@litl.com>
+Alex Xu <alex_y_xu@yahoo.ca>
+Kip Gebhardt <kip.gebhardt@voxer.com>
+Stefan Rusu <saltwaterc@gmail.com>
+Wojciech Wnętrzak <w.wnetrzak@gmail.com>
+Reid Burke <me@reidburke.com>
+Vicente Jimenez Aguilar <googuy@gmail.com>
+SAWADA Tadashi <cesare@mayverse.jp>
+Logan Smyth <loganfsmyth@gmail.com>
+Christopher Wright <christopherwright@gmail.com>
+Mickaël Delahaye <mickael.delahaye@gmail.com>
View
97 test/npkg-temp/node/src/CMakeLists.txt
@@ -0,0 +1,97 @@
+cmake_minimum_required(VERSION 2.6)
+project(node)
+
+if(USE_GCOV)
+ set(CMAKE_BUILD_TYPE "Debug")
+
+ # Set global c and c++ flags
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
+
+ # Link flags used for creating executables
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov -fprofile-arcs")
+
+ # Link flags used for creating shared libraries
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -lgcov -profile-arcs")
+endif()
+
+#
+# options
+#
+
+find_package(PythonInterp 2 REQUIRED)
+
+option(SHARED_V8 "use system shared V8 library")
+option(SHARED_LIBEV "use system shared libev library")
+option(SHARED_CARES "use system shared c-ares library")
+option(V8_SNAPSHOT "turn on snapshot when building stock v8")
+option(V8_OPROFILE "Add oprofile support")
+option(V8_GDBJIT "add gdbjit support")
+option(DTRACE "build with DTrace (experimental)")
+
+# cmake policies to get rid of some warnings
+cmake_policy(SET CMP0009 NEW) # GLOB_RECURSE should no follow symlinks
+
+# generic cmake configuration
+include("cmake/configure.cmake")
+
+# find and configure libs
+include("cmake/libs.cmake")
+
+# setup node build targets
+include("cmake/node_build.cmake")
+
+# setup v8 build targets
+include("cmake/v8_build.cmake")
+
+# docs
+## might want to move this to doc/CMakeLists.txt
+include("cmake/docs.cmake")
+
+# tests
+enable_testing()
+include(CTest)
+add_subdirectory("test/")
+
+# package
+include("cmake/package.cmake")
+
+
+#
+# Final build configuration output
+#
+
+message("** Build Summary **")
+message(" Version: ${node_version_string}")
+message(" Prefix: ${PREFIX}")
+message(" Build Type: ${CMAKE_BUILD_TYPE}")
+message(" Architecture: ${CMAKE_SYSTEM_PROCESSOR}")
+message(" Platform: ${node_platform}")
+
+if(SHARED_V8)
+message(" V8: ${V8_LIBRARY_PATH}")
+#else()
+#message(" V8 jobs: ${parallel_jobs}")
+endif()
+
+if(SHARED_libev)
+ message(" libev: ${LIBEV_LIBRARY}")
+endif()
+
+if(SHARED_CARES)
+ message(" libc-ares: ${LIBCARES_LIBRARY}")
+endif()
+
+message(" RT library: ${RT}")
+message(" DL library: ${DL}")
+
+if(${OPENSSL_FOUND} MATCHES TRUE)
+ message(" OpenSSL: ${OPENSSL_LIBRARIES}")
+endif()
+
+if(USE_GCOV)
+ message(" gcov: enabled")
+endif()
+
+message(" CCFLAGS: ${CCFLAGS}")
+message(" CPPFLAGS: ${CPPFLAGS}")
View
7 test/npkg-temp/node/src/CTestConfig.cmake
@@ -0,0 +1,7 @@
+set(CTEST_PROJECT_NAME "node")
+set(CTEST_NIGHTLY_START_TIME "00:00:00 EST")
+
+set(CTEST_DROP_METHOD "http")
+set(CTEST_DROP_SITE "my.cdash.org")
+set(CTEST_DROP_LOCATION "/submit.php?project=node")
+set(CTEST_DROP_SITE_CDASH TRUE)
View
1,757 test/npkg-temp/node/src/ChangeLog
@@ -0,0 +1,1757 @@
+2011.09.15, Version 0.4.12 (stable)
+
+* Improve docs
+
+* #1563 overflow in ChildProcess custom_fd.
+
+* #1569, parse error on multi-line HTTP headers. (Ben Noordhuis)
+
+* #1586 net: Socket write encoding case sensitivity (koichik)
+
+* #1610 Remove DigiNotar CA from trusted list (isaacs)
+
+* #1624 buffer: Avoid overrun with 'binary' encoding. (koichik)
+
+* #1633 buffer: write() should always set _charsWritten. (koichik)
+
+* #1707 hasOwnProperty usage security hole in querystring (isaacs)
+
+* #1719 Drain OpenSSL error queue
+
+* Fix error reporting in net.Server.listen
+
+
+2011.08.17, Version 0.4.11 (stable), a745d19ce7d1c0e3778371af4f0346be70cf2c8e
+
+* #738 Fix crypto encryption/decryption with Base64. (SAWADA Tadashi)
+
+* #1202 net.createConnection defer DNS lookup error events to next tick
+ (Ben Noordhuis)
+
+* #1374 fix setting ServerResponse.statusCode in writeHead (Trent Mick)
+
+* #1417 Fix http.ClientRequest crashes if end() was called twice
+
+* #1497 querystring: Replace 'in' test with 'hasOwnProperty' (isaacs)
+
+* #1546 http perf improvement
+
+* fix memleak in libeio (Tom Hughes)
+
+* cmake improvements (Tom Hughes)
+
+* node_net.cc: fix incorrect sizeof() (Tom Hughes)
+
+* Windows/cygwin: no more GetConsoleTitleW errors on XP (Bert Belder)
+
+* Doc improvments (koichik, Logan Smyth, Ben Noordhuis, Arnout Kazemier)
+
+
+2011.07.19, Version 0.4.10 (stable), 1b8dd65d6e3b82b6863ef38835cc436c5d30c1d5
+
+* #394 Fix Buffer drops last null character in UTF-8
+
+* #829 Backport r8577 from V8 (Ben Noordhuis)
+
+* #877 Don't wait for HTTP Agent socket pool to establish connections.
+
+* #915 Find kqueue on FreeBSD correctly (Brett Kiefer)
+
+* #1085 HTTP: Fix race in abort/dispatch code (Stefan Rusu)
+
+* #1274 debugger improvement (Yoshihiro Kikuchi)
+
+* #1291 Properly respond to HEAD during end(body) hot path (Reid Burke)
+
+* #1304 TLS: Fix race in abort/connection code (Stefan Rusu)
+
+* #1360 Allow _ in url hostnames.
+
+* Revert 37d529f8 - unbreaks debugger command parsing.
+
+* Bring back global execScript
+
+* Doc improvements
+
+
+2011.06.29, Version 0.4.9 (stable)
+
+* Improve documentation
+
+* #1095 error handling bug in stream.pipe() (Felix Geisendörfer)
+
+* #1097 Fix a few leaks in node_crypto.cc (Ben Noordhuis)
+
+* #562 #1078 Parse file:// urls properly (Ryan Petrello)
+
+* #880 Option to disable SSLv2 (Jérémy Lal)
+
+* #1087 Disabling SSL compression disabled with early OpenSSLs.
+
+* #1144 debugger: don't allow users to input non-valid commands
+ (Siddharth Mahendraker)
+
+* Perf improvement for util.inherits
+
+* #1166 Support for signature verification with RSA/DSA public keys
+ (Mark Cavage)
+
+* #1177 Remove node_modules lookup optimization to better support
+ nested project structures (Mathias Buus)
+
+* #1203 Add missing scope.Close to fs.sendfileSync
+
+* #1187 Support multiple 'link' headers
+
+* #1196 Fix -e/--eval can't load module from node_modules (Koichi Kobayashi)
+
+* Upgrade V8 to 3.1.8.25, upgrade http-parser.
+
+
+2011.05.20, Version 0.4.8 (stable), 7dd22c26e4365698dc3efddf138c4d399cb912c8
+
+* #974 Properly report traceless errors (isaacs)
+
+* #983 Better JSON.parse error detection in REPL (isaacs)
+
+* #836 Agent socket errors bubble up to req only if req exists
+
+* #1041 Fix event listener leak check timing (koichik)
+
+* #1038 Fix dns.resolve() with 'PTR' throws Error: Unknown type "PTR"
+ (koichik)
+
+* #1073 Share SSL context between server connections (Fedor Indutny)
+
+* Disable compression with OpenSSL. Improves memory perf.
+
+* Implement os.totalmem() and os.freemem() for SunOS (Alexandre Marangone)
+
+* Fix a special characters in URL regression (isaacs)
+
+* Fix idle timeouts in HTTPS (Felix Geisendörfer)
+
+* SlowBuffer.write() with 'ucs2' throws ReferenceError. (koichik)
+
+* http.ServerRequest 'close' sometimes gets an error argument
+ (Felix Geisendörfer)
+
+* Doc improvements
+
+* cleartextstream.destroy() should close(2) the socket. Previously was being
+ mapped to a shutdown(2) syscall.
+
+* No longer compile out asserts and debug statements in normal build.
+
+* Debugger improvements.
+
+* Upgrade V8 to 3.1.8.16.
+
+
+2011.04.22, Version 0.4.7 (stable)
+
+* Don't emit error on ECONNRESET from read() #670
+
+* Fix: Multiple pipes to the same stream were broken #929
+ (Felix Geisendörfer)
+
+* URL parsing/formatting corrections #954 (isaacs)
+
+* make it possible to do repl.start('', stream) (Wade Simmons)
+
+* Add os.loadavg for SunOS (Robert Mustacchi)
+
+* Fix timeouts with floating point numbers #897 (Jorge Chamorro Bieling)
+
+* Improve docs.
+
+
+2011.04.13, Version 0.4.6 (stable)
+
+* Don't error on ENOTCONN from shutdown() #670
+
+* Auto completion of built-in debugger suggests prefix match rather than
+ partial match. (koichik)
+
+* circular reference in vm modules. #822 (Jakub Lekstan)
+
+* http response.readable should be false after 'end' #867 (Abe Fettig)
+
+* Implement os.cpus() and os.uptime() on Solaris (Scott McWhirter)
+
+* fs.ReadStream: Allow omission of end option for range reads #801
+ (Felix Geisendörfer)
+
+* Buffer.write() with UCS-2 should not be write partial char
+ #916 (koichik)
+
+* Pass secureProtocol through on tls.Server creation (Theo Schlossnagle)
+
+* TLS use RC4-SHA by default
+
+* Don't strangely drop out of event loop on HTTPS client uploads #892
+
+* Doc improvements
+
+* Upgrade v8 to 3.1.8.10
+
+
+2011.04.01, Version 0.4.5 (stable)
+
+* Fix listener leak in stream.pipe() (Mikeal Rogers)
+
+* Retain buffers in fs.read/write() GH-814 (Jorge Chamorro Bieling)
+
+* TLS performance improvements
+
+* SlowBuffer.prototype.slice bug GH-843
+
+* process.stderr.write should return true
+
+* Immediate pause/resume race condition GH-535 (isaacs)
+
+* Set default host header properly GH-721 (isaacs)
+
+* Upgrade V8 to 3.1.8.8
+
+
+2011.03.26, Version 0.4.4 (stable), 25122b986a90ba0982697b7abcb0158c302a1019
+
+* CryptoStream.end shouldn't throw if not writable GH-820
+
+* Drop out if connection destroyed before connect() GH-819
+
+* expose https.Agent
+
+* Correctly setsid in tty.open GH-815
+
+* Bug fix for failed buffer construction
+
+* Added support for removing .once listeners (GH-806)
+
+* Upgrade V8 to 3.1.8.5
+
+
+2011.03.18, Version 0.4.3 (stable), c095ce1a1b41ca015758a713283bf1f0bd41e4c4
+
+* Don't decrease server connection counter again if destroy() is called more
+ than once GH-431 (Andreas Reich, Anders Conbere)
+
+* Documentation improvements (koichik)
+
+* Fix bug with setMaxListeners GH-682
+
+* Start up memory footprint improvement. (Tom Hughes)
+
+* Solaris improvements.
+
+* Buffer::Length(Buffer*) should not invoke itself recursively GH-759 (Ben
+ Noordhuis)
+
+* TLS: Advertise support for client certs GH-774 (Theo Schlossnagle)
+
+* HTTP Agent bugs: GH-787, GH-784, GH-803.
+
+* Don't call GetMemoryUsage every 5 seconds.
+
+* Upgrade V8 to 3.1.8.3
+
+
+2011.03.02, Version 0.4.2 (stable), 39280e1b5731f3fcd8cc42ad41b86cdfdcb6d58b
+
+* Improve docs.
+
+* Fix process.on edge case with signal event (Alexis Sellier)
+
+* Pragma HTTP header comma separation
+
+* In addition to 'aborted' emit 'close' from incoming requests
+ (Felix Geisendörfer)
+
+* Fix memleak in vm.runInNewContext
+
+* Do not cache modules that throw exceptions (Felix Geisendörfer)
+
+* Build system changes for libnode (Aria Stewart)
+
+* Read up the prototype of the 'env' object. (Nathan Rajlich)
+
+* Add 'close' and 'aborted' events to Agent responses
+
+* http: fix missing 'drain' events (Russell Haering)
+
+* Fix process.stdout.end() throws ENOTSOCK error. (Koichi Kobayashi)
+
+* REPL bug fixes (isaacs)
+
+* node_modules folders should be highest priority (isaacs)
+
+* URL parse more safely (isaacs)
+
+* Expose errno with a string for dns/cares (Felix Geisendörfer)
+
+* Fix tty.setWindowSize
+
+* spawn: setuid after chdir (isaacs)
+
+* SIGUSR1 should break the VM without delay
+
+* Upgrade V8 to 3.1.8.
+
+
+2011.02.19, Version 0.4.1 (stable), e8aef84191bc2c1ba2bcaa54f30aabde7f03769b
+
+* Fixed field merging with progressive fields on writeHead()
+ (TJ Holowaychuk)
+
+* Make the repl respect node_modules folders (isaacs)
+
+* Fix for DNS fail in HTTP request (Richard Rodger)
+
+* Default to port 80 for http.request and http.get.
+
+* Improve V8 support for Cygwin (Bert Belder)
+
+* Fix fs.open param parsing. (Felix Geisendörfer)
+
+* Fixed null signal.
+
+* Fix various HTTP and HTTPS bugs
+
+* cmake improvements (Tom Hughes)
+
+* Fix: TLS sockets should not be writable after 'end'
+
+* Fix os.cpus() on cygwin (Brian White)
+
+* MinGW: OpenSSL support (Bert Belder)
+
+* Upgrade V8 to 3.1.5, libev to 4.4.
+
+
+2011.02.10, Version 0.4.0 (stable)
+
+* require() improvements (isaacs)
+ - understand package.json (isaacs)
+ - look for 'node_modules' dir
+
+* cmake fixes (Daniel Gröber)
+
+* http: fix buffer writes to outgoing messages (Russell Haering)
+
+* Expose UCS-2 Encoding (Konstantin Käfer)
+
+* Support strings for octal modes (isaacs)
+
+* Support array-ish args to Buffer ctor (isaacs)
+
+* cygwin and mingw improvements (Bert Belder)
+
+* TLS improvements
+
+* Fewer syscalls during require (Bert Belder, isaacs)
+
+* More DTrace probes (Bryan Cantrill, Robert Mustacchi)
+
+* 'pipe' event on pipe() (Mikeal Rogers)
+
+* CRL support in TLS (Theo Schlossnagle)
+
+* HTTP header manipulation methods (Tim Caswell, Charlie Robbins)
+
+* Upgrade V8 to 3.1.2
+
+
+2011.02.04, Version 0.3.8 (unstable)
+
+* Add req.abort() for client side requests.
+
+* Add exception.code for easy testing:
+ Example: if (err.code == 'EADDRINUSE');
+
+* Add process.stderr.
+
+* require.main is the main module. (Isaac Schlueter)
+
+* dgram: setMulticastTTL, setMulticastLoopback and addMembership.
+ (Joe Walnes)
+
+* Fix throttling in TLS connections
+
+* Add socket.bufferSize
+
+* MinGW improvements (Bert Belder)
+
+* Upgrade V8 to 3.1.1
+
+2011.01.27, Version 0.3.7 (unstable)
+
+* Expose agent in http and https client. (Mikeal Rogers)
+
+* Fix bug in http request's end method. (Ali Farhadi)
+
+* MinGW: better net support (Bert Belder)
+
+* fs.open should set FD_CLOEXEC
+
+* DTrace probes (Bryan Cantrill)
+
+* REPL fixes and improvements (isaacs, Bert Belder)
+
+* Fix many bugs with legacy http.Client interface
+
+* Deprecate process.assert. Use require('assert').ok
+
+* Add callback parameter to socket.setTimeout(). (Ali Farhadi)
+
+* Fixing bug in http request default encoding (Ali Farhadi)
+
+* require: A module ID with a trailing slash must be a dir.
+ (isaacs)
+
+* Add ext_key_usage to getPeerCertificate (Greg Hughes)
+
+* Error when child_process.exec hits maxBuffer.
+
+* Fix option parsing in tls.connect()
+
+* Upgrade to V8 3.0.10
+
+
+2011.01.21, Version 0.3.6 (unstable), bb3e71466e5240626d9d21cf791fe43e87d90011
+
+* REPL and other improvements on MinGW (Bert Belder)
+
+* listen/bind errors should close net.Server
+
+* New HTTP and HTTPS client APIs
+
+* Upgrade V8 to 3.0.9
+
+
+2011.01.16, Version 0.3.5 (unstable), b622bc6305e3c675e0edfcdbaa387d849ad0bba0
+
+* Built-in debugger improvements.
+
+* Add setsid, setuid, setgid options to child_process.spawn
+ (Isaac Schlueter)
+
+* tty module improvements.
+
+* Upgrade libev to 4.3, libeio to latest, c-ares to 1.7.4
+
+* Allow third party hooks before main module load.
+ (See 496be457b6a2bc5b01ec13644b9c9783976159b2)
+
+* Don't stat() on cached modules. (Felix Geisendörfer)
+
+
+2011.01.08, Version 0.3.4 (unstable)
+
+* Primordial mingw build (Bert Belder)
+
+* HTTPS server
+
+* Built in debugger 'node debug script.js'
+
+* realpath files during module load (Mihai Călin Bazon)
+
+* Rename net.Stream to net.Socket (existing name will continue to be
+ supported)
+
+* Fix process.platform
+
+
+2011.01.02, Version 0.3.3 (unstable), 57544ba1c54c7d0da890317deeb73076350c5647
+
+* TLS improvements.
+
+* url.parse(url, true) defaults query field to {} (Jeremy Martin)
+
+* Upgrade V8 to 3.0.4
+
+* Handle ECONNABORT properly (Theo Schlossnagle)
+
+* Fix memory leaks (Tom Hughes)
+
+* Add os.cpus(), os.freemem(), os.totalmem(), os.loadavg() and other
+ functions for OSX, Linux, and Cygwin. (Brian White)
+
+* Fix REPL syntax error bug (GH-543), improve how REPL commands are
+ evaluated.
+
+* Use process.stdin instead of process.openStdin().
+
+* Disable TLS tests when node doesn't have OpenSSL.
+
+
+2010.12.16, Version 0.3.2 (unstable), 4bb914bde9f3c2d6de00853353b6b8fc9c66143a
+
+* Rip out the old (broken) TLS implementation introduce new tested
+ implementation and API. See docs. HTTPS not supported in this release.
+
+* Introduce 'os' and 'tty' modules.
+
+* Callback parameters for socket.write() and socket.connect().
+
+* Support CNAME lookups in DNS module. (Ben Noordhuis)
+
+* cmake support (Tom Hughes)
+
+* 'make lint'
+
+* oprofile support (./configure --oprofile)
+
+* Lots of bug fixes, including:
+ - Memory leak in ChildProcess:Spawn(). (Tom Hughes)
+ - buffer.slice(0, 0)
+ - Global variable leaks
+ - clearTimeouts calling multiple times (Michael W)
+ - utils.inspect's detection of circular structures (Tim Cooijmans)
+ - Apple's threaded write()s bug (Jorge Chamorro Bieling)
+ - Make sure raw mode is disabled when exiting a terminal-based REPL.
+ (Brian White)
+
+* Deprecate process.compile, process.ENV
+
+* Upgrade V8 to 3.0.3, upgrade http-parser.
+
+
+2010.11.16, Version 0.3.1 (unstable), ce9a54aa1fbf709dd30316af8a2f14d83150e947
+
+* TLS improvements (Paul Querna)
+ - Centralize error handling in SecureStream
+ - Add SecurePair for handling of a ssl/tls stream.
+
+* New documentation organization (Micheil Smith)
+
+* allowHalfOpen TCP connections disabled by default.
+
+* Add C++ API for constructing fast buffer from string
+
+* Move idle timers into its own module
+
+* Gracefully handle EMFILE and server.maxConnections
+
+* make "node --eval" eval in the global scope.
+ (Jorge Chamorro Bieling)
+
+* Let exit listeners know the exit code (isaacs)
+
+* Handle cyclic links smarter in fs.realpath (isaacs)
+
+* Remove node-repl (just use 'node' without args)
+
+* Rewrite libeio After callback to use req->result instead of req->errorno
+ for error checking (Micheil Smith)
+
+* Remove warning about deprecating 'sys' - too aggressive
+
+* Make writes to process.env update the real environment. (Ben Noordhuis)
+
+* Set FD_CLOEXEC flag on stdio FDs before spawning. (Guillaume Tuton)
+
+* Move ev_loop out of javascript
+
+* Switch \n with \r\n for all strings printed out.
+
+* Added support for cross compilation (Rasmus Andersson)
+
+* Add --profile flag to configure script, enables gprof profiling.
+ (Ben Noordhuis)
+
+* writeFileSync could exhibit pathological behavior when a buffer
+ could not be written to the file in a single write() call.
+
+* new path.join behavior (isaacs)
+ - Express desired path.join behavior in tests.
+ - Update fs.realpath to reflect new path.join behavior
+ - Update url.resolve() to use new path.join behavior.
+
+* API: Move process.binding('evals') to require('vm')
+
+* Fix V8 build on Cygwin (Bert Belder)
+
+* Add ref to buffer during fs.write and fs.read
+
+* Fix segfault on test-crypto
+
+* Upgrade http-parser to latest and V8 to 2.5.3
+
+
+2010.10.23, Version 0.3.0 (unstable) 1582cfebd6719b2d2373547994b3dca5c8c569c0
+
+* Bugfix: Do not spin on accept() with EMFILE
+
+* Improvements to readline.js (Trent Mick, Johan Euphrosine, Brian White)
+
+* Safe constructors (missing 'new' doesn't segfault)
+
+* Fix process.nextTick so thrown errors don't confuse it.
+ (Benjamin Thomas)
+
+* Allow Strings for ports on net.Server.listen (Bradley Meck)
+
+* fs bugfixes (Tj Holowaychuk, Tobie Langel, Marco Rogers, isaacs)
+
+* http bug fixes (Fedor Indutny, Mikeal Rogers)
+
+* Faster buffers; breaks C++ API (Tim-Smart, Stéphan Kochen)
+
+* crypto, tls improvements (Paul Querna)
+
+* Add lfs flags to node addon script
+
+* Simpler querystring parsing; breaks API (Peter Griess)
+
+* HTTP trailers (Mark Nottingham)
+
+* http 100-continue support (Mark Nottingham)
+
+* Module system simplifications (Herbert Vojčík, isaacs, Tim-Smart)
+ - remove require.async
+ - remove registerExtension, add .extensions
+ - expose require.resolve
+ - expose require.cache
+ - require looks in node_modules folders
+
+* Add --eval command line option (TJ Holowaychuk)
+
+* Commas last in sys.inspect
+
+* Constants moved from process object to require('constants')
+
+* Fix parsing of linux memory (Vitali Lovich)
+
+* inspect shows function names (Jorge Chamorro Bieling)
+
+* uncaughtException corner cases (Felix Geisendörfer)
+
+* TCP clients now buffer writes before connection
+
+* Rename sys module to 'util' (Micheil Smith)
+
+* Properly set stdio handlers to blocking on SIGTERM and SIGINT
+ (Tom Hughes)
+
+* Add destroy methods to HTTP messages
+
+* base64 improvements (isaacs, Jorge Chamorro Bieling)
+
+* API for defining REPL commands (Sami Samhuri)
+
+* child_process.exec timeout fix (Aaron Heckmann)
+
+* Upgrade V8 to 2.5.1, Libev to 4.00, libeio, http-parser
+
+
+2010.08.20, Version 0.2.0, 9283e134e558900ba89d9a33c18a9bdedab07cb9
+
+* process.title support for FreeBSD, Macintosh, Linux
+
+* Fix OpenSSL 100% CPU usage on error (Illarionov Oleg)
+
+* Implement net.Server.maxConnections.
+
+* Fix process.platform, add process.version.
+
+* Add --without-snapshot configure option.
+
+* Readline REPL improvements (Trent Mick)
+
+* Bug fixes.
+
+* Upgrade V8 to 2.3.8
+
+
+2010.08.13, Version 0.1.104
+
+* Various bug fixes (console, querystring, require)
+
+* Set cwd for child processes (Bert Belder)
+
+* Tab completion for readline (Trent Mick)
+
+* process.title getter/setter for OSX, Linux, Cygwin.
+ (Rasmus Andersson, Bert Belder)
+
+* Upgrade V8 to 2.3.6
+
+
+2010.08.04, Version 0.1.103, 0b925d075d359d03426f0b32bb58a5e05825b4ea
+
+* Implement keep-alive for http.Client (Mikeal Rogers)
+
+* base64 fixes. (Ben Noordhuis)
+
+* Fix --debug-brk (Danny Coates)
+
+* Don't let path.normalize get above the root. (Isaac Schlueter)
+
+* Allow signals to be used with process.on in addition to
+ process.addListener. (Brian White)
+
+* Globalize the Buffer object
+
+* Use kqueue on recent macintosh builds
+
+* Fix addrlen for unix_dgram sockets (Benjamin Kramer)
+
+* Fix stats.isDirectory() and friends (Benjamin Kramer)
+
+* Upgrade http-parser, V8 to 2.3.5
+
+
+2010.07.25, Version 0.1.102, 2a4568c85f33869c75ff43ccd30f0ec188b43eab
+
+* base64 encoding for Buffers.
+
+* Buffer support for Cipher, Decipher, Hmac, Sign and Verify
+ (Andrew Naylor)
+
+* Support for reading byte ranges from files using fs.createReadStream.
+ (Chandra Sekar)
+
+* Fix Buffer.toString() on 0-length slices. (Peter Griess)
+
+* Cache modules based on filename rather than ID (Isaac Schlueter)
+
+* querystring improvments (Jan Kassens, Micheil Smith)
+
+* Support DEL in the REPL. (Jérémy Lal)
+
+* Upgrade http-parser, upgrade V8 to 2.3.2
+
+
+2010.07.16, Version 0.1.101, 0174ceb6b24caa0bdfc523934c56af9600fa9b58
+
+* Added env to child_process.exec (Сергей Крыжановский)
+
+* Allow modules to optionally be loaded in separate contexts
+ with env var NODE_MODULE_CONTEXTS=1.
+
+* setTTL and setBroadcast for dgram (Matt Ranney)
+
+* Use execPath for default NODE_PATH, not installPrefix
+ (Isaac Schlueter)
+
+* Support of console.dir + console.assert (Jerome Etienne)
+
+* on() as alias to addListener()
+
+* Use javascript port of Ronn to build docs (Jérémy Lal)
+
+* Upgrade V8 to 2.3.0
+
+
+2010.07.03, Version 0.1.100, a6b8586e947f9c3ced180fe68c233d0c252add8b
+
+* process.execPath (Marshall Culpepper)
+
+* sys.pump (Mikeal Rogers)
+
+* Remove ini and mjsunit libraries.
+
+* Introduce console.log() and friends.
+
+* Switch order of arguments for Buffer.write (Blake Mizerany)
+
+* On overlapping buffers use memmove (Matt Ranney)
+
+* Resolve .local domains with getaddrinfo()
+
+* Upgrade http-parser, V8 to 2.2.21
+
+
+2010.06.21, Version 0.1.99, a620b7298f68f68a855306437a3b60b650d61d78
+
+* Datagram sockets (Paul Querna)
+
+* fs.writeFile could not handle utf8 (Felix Geisendörfer)
+ and now accepts Buffers (Aaron Heckmann)
+
+* Fix crypto memory leaks.
+
+* A replacement for decodeURIComponent that doesn't throw.
+ (Isaac Schlueter)
+
+* Only concatenate some incoming HTTP headers. (Peter Griess)
+
+* Upgrade V8 to 2.2.18
+
+
+2010.06.11, Version 0.1.98, 10d8adb08933d1d4cea60192c2a31c56d896733d
+
+* Port to Windows/Cygwin (Raffaele Sena)
+
+* File descriptor passing on unix sockets. (Peter Griess)
+
+* Simple, builtin readline library. REPL is now entered by
+ executing "node" without arguments.
+
+* Add a parameter to spawn() that sets the child's stdio file
+ descriptors. (Orlando Vazquez)
+
+* Upgrade V8 to 2.2.16, http-parser fixes, upgrade c-ares to 1.7.3.
+
+
+2010.05.29, Version 0.1.97, 0c1aa36835fa6a3557843dcbc6ed6714d353a783
+
+* HTTP throttling: outgoing messages emit 'drain' and write() returns false
+ when send buffer is full.
+
+* API: readFileSync without encoding argument now returns a Buffer
+
+* Improve Buffer C++ API; addons now compile with debugging symbols.
+
+* Improvements to path.extname() and REPL; add fs.chown().
+
+* fs.ReadStream now emits buffers, fs.readFileSync returns buffers.
+
+* Bugfix: parsing HTTP responses to HEAD requests.
+
+* Port to OpenBSD.
+
+* Upgrade V8 to 2.2.12, libeio, http-parser.
+
+
+2010.05.21, Version 0.1.96, 9514a4d5476225e8c8310ce5acae2857033bcaaa
+
+* Thrown errors in http and socket call back get bubbled up.
+
+* Add fs.fsync (Andrew Johnston)
+
+* Bugfix: signal unregistering (Jonas Pfenniger)
+
+* Added better error messages for async and sync fs calls with paths
+ (TJ Holowaychuk)
+
+* Support arrays and strings in buffer constructor.
+ (Felix Geisendörfer)
+
+* Fix errno reporting in DNS exceptions.
+
+* Support buffers in fs.WriteStream.write.
+
+* Bugfix: Safely decode a utf8 streams that are broken on a multbyte
+ character (http and net). (Felix Geisendörfer)
+
+* Make Buffer's C++ constructor public.
+
+* Deprecate sys.p()
+
+* FIX path.dirname('/tmp') => '/'. (Jonathan Rentzsch)
+
+
+2010.05.13, Version 0.1.95, 0914d33842976c2c870df06573b68f9192a1fb7a
+
+* Change GC idle notify so that it runs alongside setInterval
+
+* Install node_buffer.h on make install
+
+* fs.readFile returns Buffer by default (Tim Caswell)
+
+* Fix error reporting in child_process callbacks
+
+* Better logic for testing if an argument is a port
+
+* Improve error reporting (single line "node.js:176:9" errors)
+
+* Bugfix: Some http responses being truncated (appeared in 0.1.94)
+
+* Fix long standing net idle timeout bugs. Enable 2 minute timeout
+ by default in HTTP servers.
+
+* Add fs.fstat (Ben Noordhuis)
+
+* Upgrade to V8 2.2.9
+
+
+2010.05.06, Version 0.1.94, f711d5343b29d1e72e87107315708e40951a7826
+
+* Look in /usr/local/lib/node for modules, so that there's a way
+ to install modules globally (Issac Schlueter)
+
+* SSL improvements (Rhys Jones, Paulo Matias)
+
+* Added c-ares headers for linux-arm (Jonathan Knezek)
+
+* Add symbols to release build
+
+* HTTP upgrade improvements, docs (Micheil Smith)
+
+* HTTP server emits 'clientError' instead of printing message
+
+* Bugfix: Don't emit 'error' twice from http.Client
+
+* Bugfix: Ignore SIGPIPE
+
+* Bugfix: destroy() instead of end() http connection at end of
+ pipeline
+
+* Bugfix: http.Client may be prematurely released back to the
+ free pool. (Thomas Lee)
+
+* Upgrade V8 to 2.2.8
+
+
+2010.04.29, Version 0.1.93, 557ba6bd97bad3afe0f9bd3ac07efac0a39978c1
+
+ * Fixed no 'end' event on long chunked HTTP messages
+ http://github.com/ry/node/issues/#issue/77
+
+ * Remove legacy modules http_old and tcp_old
+
+ * Support DNS MX queries (Jérémy Lal)
+
+ * Fix large socket write (tlb@tlb.org)
+
+ * Fix child process exit codes (Felix Geisendörfer)
+
+ * Allow callers to disable PHP/Rails style parameter munging in
+ querystring.stringify (Thomas Lee)
+
+ * Upgrade V8 to 2.2.6
+
+
+2010.04.23, Version 0.1.92, caa828a242f39b6158084ef4376355161c14fe34
+
+ * OpenSSL support. Still undocumented (see tests). (Rhys Jones)
+
+ * API: Unhandled 'error' events throw.
+
+ * Script class with eval-function-family in binding('evals') plus tests.
+ (Herbert Vojcik)
+
+ * stream.setKeepAlive (Julian Lamb)
+
+ * Bugfix: Force no body on http 204 and 304
+
+ * Upgrade Waf to 1.5.16, V8 to 2.2.4.2
+
+
+2010.04.15, Version 0.1.91, 311d7dee19034ff1c6bc9098c36973b8d687eaba
+
+ * Add incoming.httpVersion
+
+ * Object.prototype problem with C-Ares binding
+
+ * REPL can be run from multiple different streams. (Matt Ranney)
+
+ * After V8 heap is compact, don't use a timer every 2 seconds.
+
+ * Improve nextTick implementation.
+
+ * Add primative support for Upgrading HTTP connections.
+ (See commit log for docs 760bba5)
+
+ * Add timeout and maxBuffer options to child_process.exec
+
+ * Fix bugs.
+
+ * Upgrade V8 to 2.2.3.1
+
+
+2010.04.09, Version 0.1.90, 07e64d45ffa1856e824c4fa6afd0442ba61d6fd8
+
+ * Merge writing of networking system (net2)
+ - New Buffer object for binary data.
+ - Support UNIX sockets, Pipes
+ - Uniform stream API
+ - Currently no SSL
+ - Legacy modules can be accessed at 'http_old' and 'tcp_old'
+
+ * Replace udns with c-ares. (Krishna Rajendran)
+
+ * New documentation system using Markdown and Ronn
+ (Tim Caswell, Micheil Smith)
+
+ * Better idle-time GC
+
+ * Countless small bug fixes.
+
+ * Upgrade V8 to 2.2.X, WAF 1.5.15
+
+
+2010.03.19, Version 0.1.33, 618296ef571e873976f608d91a3d6b9e65fe8284
+
+ * Include lib/ directory in node executable. Compile on demand.
+
+ * evalcx clean ups (Isaac Z. Schlueter, Tim-Smart)
+
+ * Various fixes, clean ups
+
+ * V8 upgraded to 2.1.5
+
+
+2010.03.12, Version 0.1.32, 61c801413544a50000faa7f58376e9b33ba6254f
+
+ * Optimize event emitter for single listener
+
+ * Add process.evalcx, require.registerExtension (Tim Smart)
+
+ * Replace --cflags with --vars
+
+ * Fix bugs in fs.create*Stream (Felix Geisendörfer)
+
+ * Deprecate process.mixin, process.unloop
+
+ * Remove the 'Error: (no message)' exceptions, print stack
+ trace instead
+
+ * INI parser bug fixes (Isaac Schlueter)
+
+ * FreeBSD fixes (Vanilla Hsu)
+
+ * Upgrade to V8 2.1.3, WAF 1.5.14a, libev
+
+
+2010.03.05, Version 0.1.31, 39b63dfe1737d46a8c8818c92773ef181fd174b3
+
+ * API: - Move process.watchFile into fs module
+ - Move process.inherits to sys
+
+ * Improve Solaris port
+
+ * tcp.Connection.prototype.write now returns boolean to indicate if
+ argument was flushed to the kernel buffer.
+
+ * Added fs.link, fs.symlink, fs.readlink, fs.realpath
+ (Rasmus Andersson)
+
+ * Add setgid,getgid (James Duncan)
+
+ * Improve sys.inspect (Benjamin Thomas)
+
+ * Allow passing env to child process (Isaac Schlueter)
+
+ * fs.createWriteStream, fs.createReadStream (Felix Geisendörfer)
+
+ * Add INI parser (Rob Ellis)
+
+ * Bugfix: fs.readFile handling encoding (Jacek Becela)
+
+ * Upgrade V8 to 2.1.2
+
+
+2010.02.22, Version 0.1.30, bb0d1e65e1671aaeb21fac186b066701da0bc33b
+
+ * Major API Changes
+
+ - Promises removed. See
+ http://groups.google.com/group/nodejs/msg/426f3071f3eec16b
+ http://groups.google.com/group/nodejs/msg/df199d233ff17efa
+ The API for fs was
+
+ fs.readdir("/usr").addCallback(function (files) {
+ puts("/usr files: " + files);
+ });
+
+ It is now
+
+ fs.readdir("/usr", function (err, files) {
+ if (err) throw err;
+ puts("/usr files: " + files);
+ });
+
+ - Synchronous fs operations exposed, use with care.
+
+ - tcp.Connection.prototype.readPause() and readResume()
+ renamed to pause() and resume()
+
+ - http.ServerResponse.prototype.sendHeader() renamed to
+ writeHeader(). Now accepts reasonPhrase.
+
+ * Compact garbage on idle.
+
+ * Configurable debug ports, and --debug-brk (Zoran Tomicic)
+
+ * Better command line option parsing (Jeremy Ashkenas)
+
+ * Add fs.chmod (Micheil Smith), fs.lstat (Isaac Z. Schlueter)
+
+ * Fixes to process.mixin (Rasmus Andersson, Benjamin Thomas)
+
+ * Upgrade V8 to 2.1.1
+
+
+2010.02.17, Version 0.1.29, 87d5e5b316a4276bcf881f176971c1a237dcdc7a
+
+ * Major API Changes
+ - Remove 'file' module
+ - require('posix') -----------------> require('fs')
+ - fs.cat ---------------------------> fs.readFile
+ - file.write -----------------------> fs.writeFile
+ - TCP 'receive' event --------------> 'data'
+ - TCP 'eof' event ------------------> 'end'
+ - TCP send() -----------------------> write()
+ - HTTP sendBody() ------------------> write()
+ - HTTP finish() --------------------> close()
+ - HTTP 'body' event ----------------> 'data'
+ - HTTP 'complete' event ------------> 'end'
+ - http.Client.prototype.close() (formerly finish()) no longer
+ takes an argument. Add the 'response' listener manually.
+ - Allow strings for the flag argument to fs.open
+ ("r", "r+", "w", "w+", "a", "a+")
+
+ * Added multiple arg support for sys.puts(), print(), etc.
+ (tj@vision-media.ca)
+
+ * sys.inspect(Date) now shows the date value (Mark Hansen)
+
+ * Calculate page size with getpagesize for armel (Jérémy Lal)
+
+ * Bugfix: stderr flushing.
+
+ * Bugfix: Promise late chain (Yuichiro MASUI)
+
+ * Bugfix: wait() on fired promises
+ (Felix Geisendörfer, Jonas Pfenniger)
+
+ * Bugfix: Use InstanceTemplate() instead of PrototypeTemplate() for
+ accessor methods. Was causing a crash with Eclipse debugger.
+ (Zoran Tomicic)
+
+ * Bugfix: Throw from connection.connect if resolving.
+ (Reported by James Golick)
+
+
+2010.02.09, Version 0.1.28, 49de41ef463292988ddacfb01a20543b963d9669
+
+ * Use Google's jsmin.py which can be used for evil.
+
+ * Add posix.truncate()
+
+ * Throw errors from server.listen()
+
+ * stdio bugfix (test by Mikeal Rogers)
+
+ * Module system refactor (Felix Geisendörfer, Blaine Cook)
+
+ * Add process.setuid(), getuid() (Michael Carter)
+
+ * sys.inspect refactor (Tim Caswell)
+
+ * Multipart library rewrite (isaacs)
+
+
+2010.02.03, Version 0.1.27, 0cfa789cc530848725a8cb5595224e78ae7b9dd0
+
+ * Implemented __dirname (Felix Geisendörfer)
+
+ * Downcase process.ARGV, process.ENV, GLOBAL
+ (now process.argv, process.env, global)
+
+ * Bug Fix: Late promise promise callbacks firing
+ (Felix Geisendörfer, Jonas Pfenniger)
+
+ * Make assert.AssertionError instance of Error
+
+ * Removed inline require call for querystring
+ (self@cloudhead.net)
+
+ * Add support for MX, TXT, and SRV records in DNS module.
+ (Blaine Cook)
+
+ * Bugfix: HTTP client automatically reconnecting
+
+ * Adding OS X .dmg build scripts. (Standa Opichal)
+
+ * Bugfix: ObjectWrap memory leak
+
+ * Bugfix: Multipart handle Content-Type headers with charset
+ (Felix Geisendörfer)
+
+ * Upgrade http-parser to fix header overflow attack.
+
+ * Upgrade V8 to 2.1.0
+
+ * Various other bug fixes, performance improvements.
+
+
+2010.01.20, Version 0.1.26, da00413196e432247346d9e587f8c78ce5ceb087
+
+ * Bugfix, HTTP eof causing crash (Ben Williamson)
+
+ * Better error message on SyntaxError
+
+ * API: Move Promise and EventEmitter into 'events' module
+
+ * API: Add process.nextTick()
+
+ * Allow optional params to setTimeout, setInterval
+ (Micheil Smith)
+
+ * API: change some Promise behavior (Felix Geisendörfer)
+ - Removed Promise.cancel()
+ - Support late callback binding
+ - Make unhandled Promise errors throw an exception
+
+ * Upgrade V8 to 2.0.6.1
+
+ * Solaris port (Erich Ocean)
+
+
+2010.01.09, Version 0.1.25, 39ca93549af91575ca9d4cbafd1e170fbcef3dfa
+
+ * sys.inspect() improvements (Tim Caswell)
+
+ * path module improvements (isaacs, Benjamin Thomas)
+
+ * API: request.uri -> request.url
+ It is no longer an object, but a string. The 'url' module
+ was addded to parse that string. That is, node no longer
+ parses the request URL automatically.
+
+ require('url').parse(request.url)
+
+ is roughly equivlent to the old request.uri object.
+ (isaacs)
+
+ * Bugfix: Several libeio related race conditions.
+
+ * Better errors for multipart library (Felix Geisendörfer)
+
+ * Bugfix: Update node-waf version to 1.5.10
+
+ * getmem for freebsd (Vanilla Hsu)
+
+
+2009.12.31, Version 0.1.24, 642c2773a7eb2034f597af1cd404b9e086b59632
+
+ * Bugfix: don't chunk responses to HTTP/1.0 clients, even if
+ they send Connection: Keep-Alive (e.g. wget)
+
+ * Bugfix: libeio race condition
+
+ * Bugfix: Don't segfault on unknown http method
+
+ * Simplify exception reporting
+
+ * Upgrade V8 to 2.0.5.4
+
+
+2009.12.22, Version 0.1.23, f91e347eeeeac1a8bd6a7b462df0321b60f3affc
+
+ * Bugfix: require("../blah") issues (isaacs)
+
+ * Bugfix: posix.cat (Jonas Pfenniger)
+
+ * Do not pause request for multipart parsing (Felix Geisendörfer)
+
+
+2009.12.19, Version 0.1.22, a2d809fe902f6c4102dba8f2e3e9551aad137c0f
+
+ * Bugfix: child modules get wrong id with "index.js" (isaacs)
+
+ * Bugfix: require("../foo") cycles (isaacs)
+
+ * Bugfix: require() should throw error if module does.
+
+ * New URI parser stolen from Narwhal (isaacs)
+
+ * Bugfix: correctly check kqueue and epoll. (Rasmus Andersson)
+
+ * Upgrade WAF to 1.5.10
+
+ * Bugfix: posix.statSync() was crashing
+
+ * Statically define string symbols for performance improvement
+
+ * Bugfix: ARGV[0] weirdness
+
+ * Added superCtor to ctor.super_ instead superCtor.prototype.
+ (Johan Dahlberg)
+
+ * http-parser supports webdav methods
+
+ * API: http.Client.prototype.request() (Christopher Lenz)
+
+
+2009.12.06, Version 0.1.21, c6affb64f96a403a14d20035e7fbd6d0ce089db5
+
+ * Feature: Add HTTP client TLS support (Rhys Jones)
+
+ * Bugfix: use --jobs=1 with WAF
+
+ * Bugfix: Don't use chunked encoding for 1.0 requests
+
+ * Bugfix: Duplicated header weren't handled correctly
+
+ * Improve sys.inspect (Xavier Shay)
+
+ * Upgrade v8 to 2.0.3
+
+ * Use CommonJS assert API (Felix Geisendörfer, Karl Guertin)
+
+
+2009.11.28, Version 0.1.20, aa42c6790da8ed2cd2b72051c07f6251fe1724d8
+
+ * Add gnutls version to configure script
+
+ * Add V8 heap info to process.memoryUsage()
+
+ * process.watchFile callback has 2 arguments with the stat object
+ (choonkeat@gmail.com)
+
+
+2009.11.28, Version 0.1.19, 633d6be328708055897b72327b88ac88e158935f
+
+ * Feature: Initial TLS support for TCP servers and clients.
+ (Rhys Jones)
+
+ * Add options to process.watchFile()
+
+ * Add process.umask() (Friedemann Altrock)
+
+ * Bugfix: only detach timers when active.
+
+ * Bugfix: lib/file.js write(), shouldn't always emit errors or success
+ (onne@onnlucky.com)
+
+ * Bugfix: Memory leak in fs.write
+ (Reported by onne@onnlucky.com)
+
+ * Bugfix: Fix regular expressions detecting outgoing message headers.
+ (Reported by Elliott Cable)
+
+ * Improvements to Multipart parser (Felix Geisendörfer)
+
+ * New HTTP parser
+
+ * Upgrade v8 to 2.0.2
+
+
+2009.11.17, Version 0.1.18, 027829d2853a14490e6de9fc5f7094652d045ab8
+
+ * Feature: process.watchFile() process.unwatchFile()
+
+ * Feature: "uncaughtException" event on process
+ (Felix Geisendörfer)
+
+ * Feature: 'drain' event to tcp.Connection
+
+ * Bugfix: Promise.timeout() blocked the event loop
+ (Felix Geisendörfer)
+
+ * Bugfix: sendBody() and chunked utf8 strings
+ (Felix Geisendörfer)
+
+ * Supply the strerror as a second arg to the tcp.Connection close
+ event (Johan Sørensen)
+
+ * Add EventEmitter.removeListener (frodenius@gmail.com)
+
+ * Format JSON for inspecting objects (Felix Geisendörfer)
+
+ * Upgrade libev to latest CVS
+
+
+2009.11.07, Version 0.1.17, d1f69ef35dac810530df8249d523add168e09f03
+
+ * Feature: process.chdir() (Brandon Beacher)
+
+ * Revert http parser upgrade. (b893859c34f05db5c45f416949ebc0eee665cca6)
+ Broke keep-alive.
+
+ * API: rename process.inherits to sys.inherits
+
+
+2009.11.03, Version 0.1.16, 726865af7bbafe58435986f4a193ff11c84e4bfe
+
+ * API: Use CommonJS-style module requiring
+ - require("/sys.js") becomes require("sys")
+ - require("circle.js") becomes require("./circle")
+ - process.path.join() becomes require("path").join()
+ - __module becomes module
+
+ * API: Many namespacing changes
+ - Move node.* into process.*
+ - Move node.dns into module "dns"
+ - Move node.fs into module "posix"
+ - process is no longer the global object. GLOBAL is.
+
+ For more information on the API changes see:
+ http://thread.gmane.org/gmane.comp.lang.javascript.nodejs/6
+ http://thread.gmane.org/gmane.comp.lang.javascript.nodejs/14
+
+ * Feature: process.platform, process.memoryUsage()
+
+ * Feature: promise.cancel() (Felix Geisendörfer)
+
+ * Upgrade V8 to 1.3.18
+
+
+2009.10.28, Version 0.1.15, eca2de73ed786b935507fd1c6faccd8df9938fd3
+
+ * Many build system fixes (esp. for OSX users)
+
+ * Feature: promise.timeout() (Felix Geisendörfer)
+
+ * Feature: Added external interface for signal handlers, process.pid, and
+ process.kill() (Brandon Beacher)
+
+ * API: Rename node.libraryPaths to require.paths
+
+ * Bugfix: 'data' event for stdio should emit a string
+
+ * Large file support
+
+ * Upgrade http_parser
+
+ * Upgrade v8 to 1.3.16
+
+
+2009.10.09, Version 0.1.14, b12c809bb84d1265b6a4d970a5b54ee8a4890513
+
+ * Feature: Improved addon builds with node-waf
+
+ * Feature: node.SignalHandler (Brandon Beacher)
+
+ * Feature: Enable V8 debugging (but still need to make a debugger)
+
+ * API: Rename library /utils.js to /sys.js
+
+ * Clean up Node's build system
+
+ * Don't use parseUri for HTTP server
+
+ * Remove node.pc
+
+ * Don't use /bin/sh to create child process except with exec()
+
+ * API: Add __module to reference current module
+
+ * API: Remove include() add node.mixin()
+
+ * Normalize http headers; "Content-Length" becomes "content-length"
+
+ * Upgrade V8 to 1.3.15
+
+
+2009.09.30, Version 0.1.13, 58493bb05b3da3dc8051fabc0bdea9e575c1a107
+
+ * Feature: Multipart stream parser (Felix Geisendörfer)
+
+ * API: Move node.puts(), node.exec() and others to /utils.js
+
+ * API: Move http, tcp libraries to /http.js and /tcp.js
+
+ * API: Rename node.exit() to process.exit()
+
+ * Bugfix: require() and include() should work in callbacks.
+
+ * Pass the Host header in http.cat calls
+
+ * Add warning when coroutine stack size grows too large.
+
+ * Enhance repl library (Ray Morgan)
+
+ * Bugfix: build script for
+ GCC 4.4 (removed -Werror in V8),
+ on Linux 2.4,
+ and with Python 2.4.4.
+
+ * Add read() and write() to /file.js to read and write
+ whole files at once.
+
+
+2009.09.24, Version 0.1.12, 2f56ccb45e87510de712f56705598b3b4e3548ec
+
+ * Feature: System modules, node.libraryPaths
+
+ * API: Remove "raw" encoding, rename "raws" to "binary".
+
+ * API: Added connection.setNoDElay() to disable Nagle algo.
+
+ * Decrease default TCP server backlog to 128
+
+ * Bugfix: memory leak involving node.fs.* methods.
+
+ * Upgrade v8 to 1.3.13
+
+
+2009.09.18, Version 0.1.11, 5ddc4f5d0c002bac0ae3d62fc0dc58f0d2d83ec4
+
+ * API: default to utf8 encoding for node.fs.cat()
+
+ * API: add node.exec()
+
+ * API: node.fs.read() takes a normal encoding parameter.
+
+ * API: Change arguments of emit(), emitSuccess(), emitError()
+
+ * Bugfix: node.fs.write() was stack allocating buffer.
+
+ * Bugfix: ReportException shouldn't forget the top frame.
+
+ * Improve buffering for HTTP outgoing messages
+
+ * Fix and reenable x64 macintosh build.
+
+ * Upgrade v8 to 1.3.11
+
+
+2009.09.11, Version 0.1.10, 12bb0d46ce761e3d00a27170e63b40408c15b558
+
+ * Feature: raw string encoding "raws"
+
+ * Feature: access to environ through "ENV"
+
+ * Feature: add isDirectory, isFile, isSocket, ... methods
+ to stats object.
+
+ * Bugfix: Internally use full paths when loading modules
+ this fixes a shebang loading problem.
+
+ * Bugfix: Add '--' command line argument for seperating v8
+ args from program args.
+
+ * Add man page.
+
+ * Add node-repl
+
+ * Upgrade v8 to 1.3.10
+
+2009.09.05, Version 0.1.9, d029764bb32058389ecb31ed54a5d24d2915ad4c
+
+ * Bugfix: Compile on Snow Leopard.
+
+ * Bugfix: Malformed URIs raising exceptions.
+
+2009.09.04, Version 0.1.8, e6d712a937b61567e81b15085edba863be16ba96
+
+ * Feature: External modules
+
+ * Feature: setTimeout() for node.tcp.Connection
+
+ * Feature: add node.cwd(), node.fs.readdir(), node.fs.mkdir()
+
+ * Bugfix: promise.wait() releasing out of order.
+
+ * Bugfix: Asyncly do getaddrinfo() on Apple.
+
+ * Disable useless evcom error messages.
+
+ * Better stack traces.
+
+ * Built natively on x64.
+
+ * Upgrade v8 to 1.3.9
+
+2009.08.27, Version 0.1.7, f7acef9acf8ba8433d697ad5ed99d2e857387e4b
+
+ * Feature: global 'process' object. Emits "exit".
+
+ * Feature: promise.wait()
+
+ * Feature: node.stdio
+
+ * Feature: EventEmitters emit "newListener" when listeners are
+ added
+
+ * API: Use flat object instead of array-of-arrays for HTTP
+ headers.
+
+ * API: Remove buffered file object (node.File)
+
+ * API: require(), include() are synchronous. (Uses
+ continuations.)
+
+ * API: Deprecate onLoad and onExit.
+
+ * API: Rename node.Process to node.ChildProcess
+
+ * Refactor node.Process to take advantage of evcom_reader/writer.
+
+ * Upgrade v8 to 1.3.7
+
+2009.08.22, Version 0.1.6, 9c97b1db3099d61cd292aa59ec2227a619f3a7ab
+
+ * Bugfix: Ignore SIGPIPE.
+
+2009.08.21, Version 0.1.5, b0fd3e281cb5f7cd8d3a26bd2b89e1b59998e5ed
+
+ * Bugfix: Buggy connections could crash node.js. Now check
+ connection before sending data every time (Kevin van Zonneveld)
+
+ * Bugfix: stdin fd (0) being ignored by node.File. (Abe Fettig)
+
+ * API: Remove connnection.fullClose()
+
+ * API: Return the EventEmitter from addListener for chaining.
+
+ * API: tcp.Connection "disconnect" event renamed to "close"
+
+ * Upgrade evcom
+ Upgrade v8 to 1.3.6
+
+2009.08.13, Version 0.1.4, 0f888ed6de153f68c17005211d7e0f960a5e34f3
+
+ * Major refactor to evcom.
+
+ * Enable test-tcp-many-clients.
+
+ * Add -m32 gcc flag to udns.
+
+ * Add connection.readPause() and connection.readResume()
+ Add IncomingMessage.prototype.pause() and resume().
+
+ * Fix http benchmark. Wasn't correctly dispatching.
+
+ * Bugfix: response.setBodyEncoding("ascii") not working.
+
+ * Bugfix: Negative ints in HTTP's on_body and node.fs.read()
+
+ * Upgrade v8 to 1.3.4
+ Upgrade libev to 3.8
+ Upgrade http_parser to v0.2
+
+2009.08.06, Version 0.1.3, 695f0296e35b30cf8322fd1bd934810403cca9f3
+
+ * Upgrade v8 to 1.3.2
+
+ * Bugfix: node.http.ServerRequest.setBodyEncoding('ascii') not
+ working
+
+ * Bugfix: node.encodeUtf8 was broken. (Connor Dunn)
+
+ * Add ranlib to udns Makefile.
+
+ * Upgrade evcom - fix accepting too many connections issue.
+
+ * Initial support for shebang
+
+ * Add simple command line switches
+
+ * Add node.version API
+
+
+2009.08.01, Version 0.1.2, 025a34244d1cea94d6d40ad7bf92671cb909a96c
+
+ * Add DNS API
+
+ * node.tcp.Server's backlog option is now an argument to listen()
+
+ * Upgrade V8 to 1.3.1
+