ChangeLog in kgio-1.1.0 vs ChangeLog in kgio-1.2.0
- old
+ new
@@ -1,6 +1,73 @@
ChangeLog from git://git.bogomips.org/kgio.git ()
+ commit 414dd17f1009c571e2d7657721271756e3d4dd8e
+ Author: Eric Wong <e@yhbt.net>
+ Date: Tue Oct 5 16:09:40 2010 -0700
+
+ kgio 1.2.0 - cleanups and minor improvements
+
+ The C extension is now split into several files for
+ ease-of-maintenance.
+
+ Slightly more common, client-triggerable exceptions (EOFError,
+ Errno::EPIPE, Errno::ECONNRESET) are now less expensive as they
+ are generated without backtraces.
+
+ commit e085bb9600b190692beb5efc85656ebf127ae08c
+ Author: Eric Wong <e@yhbt.net>
+ Date: Tue Oct 5 15:45:16 2010 -0700
+
+ generate empty backtraces for EPIPE and ECONNRESET
+
+ Malicious clients may disconnect during big writes to cause
+ EPIPE and ECONNRESET exceptions. Generating backtraces can be
+ expensive with Ruby, so mitigate the DoS vector by lowering the
+ cost of generating an exception.
+
+ commit b168cc894037620cab82fa82f3ab37a3aab81570
+ Author: Eric Wong <e@yhbt.net>
+ Date: Tue Oct 5 15:26:57 2010 -0700
+
+ add kgio_read! methods which may raise EOFError
+
+ Except EOFError is gently raised to not include a huge
+ backtrace. Large backtraces can be a performance problem on
+ busy servers that malicious clients may exploit to deny service.
+
+ commit 870ada92db7071c7982913e508ac35b97d6e8761
+ Author: Eric Wong <e@yhbt.net>
+ Date: Tue Oct 5 11:45:02 2010 -0700
+
+ GNUmakefile: use portable tar invocation
+
+ We've been spoiled by GNU tar.
+
+ commit 2a6115a89d5c95428bd6c3e0bc10e5a3a4c3c3be
+ Author: Eric Wong <e@yhbt.net>
+ Date: Wed Sep 29 18:25:58 2010 -0700
+
+ refactor and split into separate files
+
+ Making the code easier to read and navigate. This also
+ frees us from having to use the stupid A4_ prefix for
+ accept4(2) flags since it conflicts with the socket(2)
+ ones.
+
+ commit 8fe89997453d6c530c3f5e08bc9c1da40a621248
+ Author: Eric Wong <e@yhbt.net>
+ Date: Wed Sep 29 17:13:21 2010 -0700
+
+ Make kgio_trywrite more aggressive with retrying
+
+ Partial writes can be retried until completely denied with
+ EAGAIN. Often times, it is beneficial to retry immediately
+ after a partial write because the kernel may allocate more
+ buffers or the reader can drain the buffers.
+
+ This helps the caller avoid crossing the Ruby <-> C boundary
+ more than necessary.
+
commit 39c851e595970a2349a8a39878afd94a3324e102
Author: Eric Wong <e@yhbt.net>
Date: Tue Sep 28 18:16:53 2010 -0700
kgio 1.1.0 - flexible accept methods