about summary refs log tree commit homepage
DateCommit message (Collapse)
2020-01-08raindrops 0.19.1 v0.19.1
This release fixes some warnings on newer Rubies. We're no longer on bogomips.org since it's due for expiry and I can't pay extortionists for a .org, so s/bogomips.org/yhbt.net/ for now, and be prepared to move again when extortionists move onto extorting the .net TLD. doc: switch homepage to dark216 ext/raindrops/extconf: fix cflags reset on ancient CC fixes for newer rubies replace bogomips.org with yhbt.net
2020-01-06replace bogomips.org with yhbt.net
The expiration for bogomips.org is coming up and I'm not keen on paying or supporting extortionists. Not wanting to be beholden to ICANN or any powerful organizations, .onion sites are available to Tor users: http://raindrops.ou63pmih66umazou.onion/ http://ou63pmih66umazou.onion/raindrops.git/ http://ou63pmih66umazou.onion/raindrops-public/ (the demo is not yet available via .onion, yet, could be a bit)
2020-01-06fixes for newer rubies
Newer rubies have more warnings
2020-01-06ext/raindrops/extconf: fix cflags reset on ancient CC
Oops, but I guess nobody uses i386 anymore...
2019-04-22doc: switch homepage to dark216
Earth Day! https://80x24.org/olddoc-public/20190422014906.4253-1-e@80x24.org/
2017-08-09raindrops 0.19.0 - Rack 2.x middleware compatibility v0.19.0
This release fixes Rack 2.x compatibility for the few users of Raindrops::Middleware <https://bogomips.org/raindrops/Raindrops/Middleware.html>. Thanks to Dmytro Shteflyuk for this release. No need to upgrade unless you use Raindrops::Middleware with Rack 2.x. There's also a few minor, inconsequential cleanups. Dmytro Shteflyuk (1): Properly override respond_to? in Raindrops::Middleware::Proxy Eric Wong (2): Ruby thread compatibility updates tcp_info: remove unnecessary extconf.h include
2017-07-25Properly override respond_to? in Raindrops::Middleware::Proxy
Correct method definition according to Ruby documentation (https://ruby-doc.org/core-2.4.1/Object.html#method-i-respond_to-3F) is: respond_to?(string, include_all=false) → true or false Rack started using second argument starting from version 2: https://github.com/rack/rack/blob/master/lib/rack/body_proxy.rb#L14 If raindrops is used in Rack 2+ applications, an exception is raised: ArgumentError: wrong number of arguments (2 for 1) <ROOT>/gems/raindrops-0.18.0/lib/raindrops/middleware/proxy.rb:30:in `respond_to?' <ROOT>/gems/rack-2.0.3/lib/rack/body_proxy.rb:14:in `respond_to?'
2017-04-26tcp_info: remove unnecessary extconf.h include
ruby.h already pulls in extconf.h and has done so since Ruby 1.8.
2017-04-26Ruby thread compatibility updates
Drop vestigial Ruby 1.8 bits, and start using rb_thread_call_without_gvl on modern Rubies.
2017-03-23raindrops 0.18.0 v0.18.0
The most notable feature of this release is the addition of FreeBSD and OpenBSD TCP_INFO support. This includes the Raindrops::TCP for portably mapping TCP state names to platform-dependent numeric values: https://bogomips.org/raindrops/Raindrops.html#TCP Thanks to Jeremy Evans and Simon Eskildsen on the unicorn-public@bogomips.org mailing list for inspiring these changes to raindrops. There's also a few internal cleanups, and documentation improvements, including some fixes to the largely-forgotten Raindrops::Aggreage::PMQ class: https://bogomips.org/raindrops/Raindrops/Aggregate/PMQ.html 20 changes since 0.17.0: test_inet_diag_socket: fix Fixnum deprecation warning TODO: add item for IPv6 breakage ext: fix documentation for C ext-defined classes TCP_Info: custom documentation for #get! TypedData C-API conversion test_watcher: disable test correctly when aggregate is missing tcp_info: support this struct under FreeBSD define Raindrops::TCP hash for TCP states linux_inet_diag: reduce stack usage and simplify avoid reading errno repeatedly aggregate/pmq: avoid false sharing of lock buffers aggregate/pmq: remove io-extra requirement aggregate/pmq: avoid File#stat allocation Merge remote-tracking branch 'origin/freebsd' Merge remote-tracking branch 'origin/aggregate-pmq' doc: remove private email support address doc: update location of TCP_INFO-related stuff build: avoid olddoc for building the RubyGem doc: document Raindrops::TCP hash aggregate/pmq: update version numbers for Ruby and Linux
2017-03-23aggregate/pmq: update version numbers for Ruby and Linux
Linux is in the 4.x and Ruby is into the 2.x range, by now, so try to get with the times.
2017-03-23doc: document Raindrops::TCP hash
This is part of the stable API, so we shall document it for others to use.
2017-03-23build: avoid olddoc for building the RubyGem
This should make it easier for distros to pick this without picking up olddoc, too. We will still use olddoc for generating the website since it reduces bandwidth costs, and for generating NEWS for our own builds.
2017-03-23doc: update location of TCP_INFO-related stuff
2017-03-20doc: remove private email support address
Email was never private, and won't further burden myself or any future maintainers with trying to maintain someone elses' privacy. Offering private support is also unfair to readers on public lists who may get a watered down or improperly translated summary (if at all). Instead, encourage the use of anonymity tools and scrubbing of sensitive information when the sender deems necessary.
2017-03-18Merge remote-tracking branch 'origin/aggregate-pmq'
* origin/aggregate-pmq: aggregate/pmq: avoid File#stat allocation aggregate/pmq: remove io-extra requirement aggregate/pmq: avoid false sharing of lock buffers
2017-03-18Merge remote-tracking branch 'origin/freebsd'
* origin/freebsd: define Raindrops::TCP hash for TCP states tcp_info: support this struct under FreeBSD
2017-03-18aggregate/pmq: avoid File#stat allocation aggregate-pmq
File#size is available in modern Rubies so the extra syscall is avoided.
2017-03-18aggregate/pmq: remove io-extra requirement
IO.copy_stream is standard in 1.9+ and can use pread when given an offset. We do not need to use pwrite with fcntl locking, actually.
2017-03-18aggregate/pmq: avoid false sharing of lock buffers
And rely on frozen string optimizations in Ruby while we're at it.
2017-03-18avoid reading errno repeatedly
errno is in the thread-specific section and it is slightly cheaper to read it once rather than twice. Recent versions of mainline Ruby itself follows the same pattern.
2017-03-17linux_inet_diag: reduce stack usage and simplify
getnameinfo is overkill for NI_NUMERICHOST + NI_NUMERICSERV usage, and has a more complex and error-prone API than using inet_ntop and snprintf.
2017-03-17define Raindrops::TCP hash for TCP states freebsd
FreeBSD not only uses different values than Linux for TCP states, but different names, too. To ease writing portable code between the OSes, do more CPP metaprogramming via extconf.rb and define a common hash supported on both OSes. Putting all this in a hash allows for easy dumping and mapping in an OS-neutral way, since the actual TCP states are OS-independent.
2017-03-17tcp_info: support this struct under FreeBSD
Of course these fields are not portable between Linux and FreeBSD, but they should remain ABI-compatible for future versions of each OS. Tested on FreeBSD 10.3-RELEASE i386 TCP state names will be another problem...
2017-03-15test_watcher: disable test correctly when aggregate is missing
While we're at it, improve the description of other skips.
2017-03-15TypedData C-API conversion
This provides some extra type safety if combined with other C extensions, as well as allowing us to account for memory usage of the HTTP parser in ObjectSpace. This requires Ruby 1.9.3+ and has remained a stable API since then. This will become officially supported when Ruby 2.3.0 is released later this month. This API has only been documented in doc/extension.rdoc (formerly README.EXT) in the Ruby source tree since April 2015, r50318
2017-03-01TCP_Info: custom documentation for #get!
While #get! is the same as the #initialize method, the former is public and called explicitly by folks wishing to reduce allocation overhead.
2017-03-01ext: fix documentation for C ext-defined classes
Defining the "Raindrops" class explicitly helps RDoc find subclasses for documentation, and ought to reduce the binary size slightly due to the removal of rb_intern calls. Furthermore, use "Socket" to ensure the base class for Raindrops::InetDiagSocket is documented properly in RDoc.
2017-02-23TODO: add item for IPv6 breakage
I've noticed the IPv6 connections on https://raindrops-demo.bogomips.org/ are not being reported correctly. We will have to look into fixing it..
2016-09-27test_inet_diag_socket: fix Fixnum deprecation warning
Ruby 2.4 will unify Fixnum and Bignum.
2016-07-31raindrops 0.17.0 - rack 2.x updates v0.17.0
This release features minor updates to support rack 2.x while maintaining support for rack 1.2 and later. As a result, Ruby 1.8.6 compatibility is gone, but Ruby 1.8.7 probably still works, for now. There's also a minor warning fix, doc updates, and the homepage now supports HTTPS (HTTP remains supported) 5 changes since raindrops 0.16.0: drop Rack::Utils.bytesize dependency gemspec: bump Rack dependency linux_inet_diag: GCC attribute format check use HTTPS and move homepage to https://bogomips.org/raindrops/ examples: add yahns config, zbatery is abandoned
2016-07-31examples: add yahns config, zbatery is abandoned
Since zbatery is abandoned, point users towards yahns instead since that is what I currently use.
2016-07-29use HTTPS and move homepage to https://bogomips.org/raindrops/
While raindrops.bogomips.org exists, having extra subjectAltName entries is bloating the certificate. This will make it easier to mirror the homepage on Tor hidden services.
2016-07-28linux_inet_diag: GCC attribute format check
This helps the compiler detect bugs and quiets down a -Wsuggest-attribute=format warning
2016-07-28gemspec: bump Rack dependency
We are now compatible with Rack 1.2 .. 2.x
2016-07-27drop Rack::Utils.bytesize dependency
rack 2.0 removes this method, but we actually don't need it since any strings we generate are binary and Aggregate#to_s output is 7-bit clean.
2016-02-29raindrops 0.16.0 - minor fixes and workarounds v0.16.0
There's mainly a fix/workaround for Ruby 2.3 now returning locale-aware strings for File.readlink and our test suite using strange paths allowed by *nix. https://bugs.ruby-lang.org/issues/12034 tcp_listener_stats won't return "true" object placeholders if stats are configured for a non-existent listener. There are also minor optimizations for Ruby 2.2+ (at the expense of 2.1 and earlier). And the usual round of minor tweaks and doc updates. 10 changes since v0.15.0: gemspec: avoid circular dependency on unicorn remove optimizations which made sense for older rubies linux: workaround Ruby 2.3 change linux: remove Pathname stdlib dependency add .gitattributes for Ruby method detection middleware: minor bytecode size reduction doc: update URLs and references README: remove indentation from URLs in RDoc linux: tcp_listener_stats drops "true" placeholders build: use '--local' domain for dev gem install
2016-02-25build: use '--local' domain for dev gem install
This avoids unnecessary network requests for disconnected systems.
2016-02-25linux: tcp_listener_stats drops "true" placeholders
With invalid addresses specified which give no currently-bound address, we must avoid leaving placeholders ('true' objects) in our results. Clean up some shadowing "cur" while we're at it.
2016-02-24README: remove indentation from URLs in RDoc
RDoc considers indented text to be preformatted and will not generate links in HTML links for them.
2016-02-24doc: update URLs and references
Neither the GCC nor libatomic_ops URLs are valid, anymore. Update them to the latest versions and ensure the URLs themselves are visible in documentation as links to external sites. Additionally, the current cgit installation on bogomips.org will soon be replaced by a CSS-free web-based viewer. Also, correct the reference to "LGPL-2.1+" while we're at it and add references to the nntp:// mail archives.
2016-02-24middleware: minor bytecode size reduction
The "defineclass" VM instruction takes more operands and uses more space than "setconstant". Since we have no methods or subclasses/constants to define under the "Raindrops::Middleware::Stats" class,
2016-02-24add .gitattributes for Ruby method detection
The "diff" function detection for C does not map well to Ruby files, take advantage of gitattributes(5) to improve method name detection in generated patches as well as making "git diff -W" output more useful.
2016-02-23linux: remove Pathname stdlib dependency
The File.readlink has been available since the earliest SVN import of Ruby from Jan 16 1998. There's no reason to load the Pathname class here since we don't do any further pathname manipulation. So avoid loading the extra .so here and creating extra objects.
2016-02-23linux: workaround Ruby 2.3 change
File.readlink (and thus Pathname#realpath) returns the filesystem encoding (Encoding.find "filesystem"). The filesystem encoding defaults to the locale encoding, which tends to be UTF-8. This is true even on *nix filesystems which can have any byte besides "\0". ref: https://bugs.ruby-lang.org/issues/12034 ref: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/73593
2016-02-02remove optimizations which made sense for older rubies
Since Ruby 2.2, frozen string literals are implied for Hash#[] lookups. Constant lookups have inline caching since Ruby 1.9 (from YARV).
2015-08-29gemspec: avoid circular dependency on unicorn
We can skip tests which require unicorn.
2015-07-22raindrops 0.15.0 - non-glibc compat fix on Linux v0.15.0
Thanks to Doug Forster for sending us the report. No other fixes * check for the existence of linux/tcp.h
2015-07-14check for the existence of linux/tcp.h
The linux/tcp.h header may not exist on alternative libc implementations such as musl. Noticed-by: Doug Forster <doug.forster@gmail.com>
2015-06-25raindrops 0.14.0 - misc doc updates v0.14.0
Eric Wong (7): linux_inet_diag: annotate memory freeing on diag errors README: trim intro and update license modernize packaging and documentation move mailing list to raindrops-public@bogomips.org linux_inet_diag: clarify *fprintf usage without GVL TODO: add item for unix_diag and udp_diag linux_inet_diag: fix Wshorten-64-to-32 warnings Hleb Valoshka (1): Add setup and teardown for ipv6 tests