Date | Commit message (Collapse) |
|
This release fixes a build issue on FreeBSD. There are various
documentation and code cleanups, too.
|
|
A non-profit TLD makes more sense for a Free Software project.
|
|
Found in the check-warnings target in pkg.mk
|
|
It's not needed.
|
|
* check-warnings option added
* locale-independent grep invocation
|
|
This appears to cause __BSD_VISIBLE to not be defined,
which is required for MAP_ANON to be visible in
sys/mman.h
Thanks for Aleksandar Simic for the hint and Troex Nevelin
for the bug report!
|
|
No need to cast when C has handy unions. Maybe the compiler
will be able to make better optimization choices here, but
at least it'll be less noisy.
|
|
The last_data_recv field is dependent on the CONFIG_HZ of
the kernel, so the stock 250 HZ kernel can change the
timing on us.
|
|
formatting is hard :<
|
|
I copied and pasted off the Raindrops::LastDataRecv
documentation. While the headers and mathematical meanings are
identical, they measure different things (but for the same
purpose)
Noticed-by: Troex Nevelin
|
|
TCP_INFO support couldn't compile under non-Linux, this was
broken since 0.5.0 when TCP_INFO support was introduced.
Thanks to Ben Bleything for the report.
|
|
We can't even pull in linux/*.h headers to check
for TCP_INFO.
|
|
Following up the huge 0.5.0 release, 0.6.0 makes
some minor improvements:
* minor UI/UX improvements for Watcher Rack app
* set close-on-exec by default for inet_diag sockets
* inet_diag build fixes for newer GNU libc6
* --with-atomic_ops-dir= build option added
|
|
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
|