Date | Commit message (Collapse) |
|
dir_config may be used to build for libatomic_ops. The
previous use of dir_config was from back when I didn't
understand mkmf.
This means you can now use:
gem install raindrops -- --with-atomic_ops-dir=/usr/local
If you libatomic_ops library was installed in /usr/local
instead of /usr
|
|
Seems to breaks under newer libc headers (on Debian sid).
|
|
We no longer use it.
|
|
|
|
Very few programs can take advantage of inheriting FDs
across exec() boundaries, and inet_diag sockets have no
reason to be used in this way.
|
|
It can detect cross-thread close() calls
|
|
No need to duplicate code
|
|
It can help navigation, we think...
|
|
No need to waste bandwidth of example.com when
we have a meaningful demo site :)
|
|
We know exactly when to invalidate based on the delay :)
|
|
Zbatery sucks at user switching + USR2+QUIT reloads
|
|
Set "Cache-Control: no-transform" to prevent frontend proxies
from flushing data.
|
|
Hopefully people can learn to use the REST API
this way.
|
|
|
|
Portable changes:
* Raindrops are now resizable within the limits of system page size
* Raindrops::Middleware proxies +to_path+ in response bodies
* More documentation
Linux-only changes:
* Raindrops::LastDataRecv[1] Rack application
* Raindrops::Watcher[2] Rack application
* Raindrops::TCP_Info[3] class for capturing TCP connection stats
* IPv6 support for inet_diag
* faster inet_diag stats for multiple sockets
There is also a demo server running the Watcher and Middleware
components. It's capped to 30 concurrent users, so go easy on
it:
Raindrops::Watcher: http://raindrops-demo.bogomips.org/
Raindrops::Middleware: http://raindrops-demo.bogomips.org/_raindrops
[1] http://raindrops.bogomips.org/Raindrops/LastDataRecv.html
[2] http://raindrops.bogomips.org/Raindrops/Watcher.html
[3] http://raindrops.bogomips.org/Raindrops/TCP_Info.html
|
|
Those will cause Aggregate to raise Errno::EDOM
|
|
It takes too long
|
|
Apparently 1.8 Test::Unit doesn't like empty test classes
|
|
|
|
git is on 9418 and my cgit UNIX domain socket
|
|
Oops :x This was totally broken with the all-listener
filter.
|
|
No more splitting all TCP or all UNIX listeners
|
|
Whee!
|
|
nginx makes HTTP/1.0 requests and expects HTTP/1.1 responses
|
|
|
|
|
|
It does streaming!
|
|
It is more accurate than sleep and doesn't require calculating
times
|
|
More confusing for me, actually...
|
|
This matches behavior of the TCP version.
|
|
Sometimes we want more of them
|
|
getaddrinfo() needs to get a list of available interfaces
from the kernel with every single call (since ipv6 could've
been modprobed), so it's a waste of syscalls.
|
|
No need to waste resources on creating/destroying
a socket.
|
|
I thought my compiler would be smarter :<
|
|
The way we dump, we dump it all, it seems.
|
|
This means we can read multiple addresses at once,
even IPv6 ones.
|
|
It's not needed since we don't care to rebind sockets
|
|
It's slow, but at least it works.
|
|
No reason to have an extra method. This also speeds up
the multi-listener case for tcp_listener_stats since it
avoids expensive sendmsg() syscalls.
|
|
|
|
netlink is fast and predictable in response times, so permitting
interrupts would just complicate things and lead to errors.
|
|
Fewer places to check for errors, we think.
|
|
Be stricter about invalid inputs.
|
|
This is a work-in-progress and will probably be modified
before the next release.
|
|
64-bit counters are unnecessarily large for tracking
active or queued connections until we have IP_ROFLSCALE
support :>
|
|
Oops :x
|
|
Too hard to maintain.
|
|
We can't have negative values
|
|
We don't care for this address.
|
|
Oops, strings are always true :x
|