about summary refs log tree commit homepage
DateCommit message (Collapse)
2016-07-10INSTALL: postfix and spamassassin are optional for HTTP mirrors
Not everybody needs to run an -mda or -watch
2016-07-09view: add "infourl" for reply information
2016-07-09view: show most recently updated topics, first
This probably makes the most sense as it's structured like a changelog.
2016-07-09view: improve grouping for topic view
This reduces the amount of mbox/Atom links while keeping better track of overall thread count. We no longer loop to fill up slots to simplify the code a bit and hopefully get better grouping.
2016-07-09httpd/async: reinstate D::S timer usage for cleanup
EvCleanup::asap events are not guaranteed to run after Danga::Socket closes sockets at the event loop. Thus we must use slower Danga::Socket timers which are guaranteed to run at the end of the event loop.
2016-07-09httpd/async: do not attempt future writes on closed sockets
Danga::Socket::close does not clear the write_buf_size field, so it's conceivable we could attempt to queue up data and callbacks we can never flush out.
2016-07-09www: add configurable limiters
Currently only for git-http-backend use, this allows limiting the number of spawned processes per-inbox or by group, if there are multiple large inboxes amidst a sea of small ones. For example, a "big" repo limiter could be used for big inboxes: which would be shared between multiple repos: [limiter "big"] max = 4 [publicinbox "git"] address = git@vger.kernel.org mainrepo = /path/to/git.git ; shared limiter with giant: httpbackendmax = big [publicinbox "giant"] address = giant@project.org mainrepo = /path/to/giant.git ; shared limiter with git: httpbackendmax = big ; This is a tiny inbox, use the default limiter with 32 slots: [publicinbox "meta"] address = meta@public-inbox.org mainrepo = /path/to/meta.git
2016-07-09qspawn: allow configurable limiters
And bump the default limit to 32 so we match git-daemon behavior. This shall allow us to configure different levels of concurrency for different repositories and prevent clones of giant repos from stalling service to small repos.
2016-07-09cleanup some unnecessary use/requires
Hopefully this can reduce memory overhead for people that use one-shot CGI.
2016-07-09feed: remove dead code and unneeded use
We've cleaned up our code in recent days and WwwStream provides a consistent header for our HTML pages.
2016-07-09www: cleanup parameter passing
Reduce the size of hashes a bit and drops some unneeded hash lookups for uncommon paths.
2016-07-09www: drop unused constants
We no longer generate our footer, here. We are not currently advertising ssoma, here.
2016-07-09nntp: return if a client drops on us
Danga::Socket::write will set the closed flag on a socket, automatically, and we do not need to bring down an entire server when one client breaks the connection :P
2016-07-08examples: add logrotate sample to show USR1 reopening
Same as nginx :>
2016-07-08examples: minimize differences for systemd examples
Our nntpd and httpd are similar so configuration differences should be minimized
2016-07-08http: drop extra newline in error message
We already add the extra newline when we call print.
2016-07-07http: additional info for write failures
There was a spurious test failure in t/httpd-corner.t which I have not been able to reproduce.
2016-07-07nntpd: avoid exiting subroutine via next
Fixes: 33cef7f24d3d ("config: introduce each_inbox for iteration")
2016-07-07view: per-message view links to real previous sibling
This is closer to the behavior of thread-aware MUAs.
2016-07-07view: preserve attribution for current message
It should be harmless if the "[this message]" text goes past the boundary as we bold the entire line to make it stand out.
2016-07-07view: reduce visual noise in conversation view
No need for ' / ' delimiters on lines dedicated for hyperlinks.
2016-07-07www: remove old footer generation code and normalize new.html
We now generate all of our HTML using WwwStream which forces us to have consistent headers and footers in the HTML itself. This also makes the search-capable vs search-less installs go to the new.html endpoint to maintain consistency (in case an admin decides to enable Xapian).
2016-07-07inbox: cleanup and consolidate object weakening
This fixes some layering violations and consolidates the cleanup into the inbox object itself. Keeping in mind weakening does not work at all without our PSGI server.
2016-07-07t/git-http-backend: check BSD::Resource availability
We should not fail tests when this is not available.
2016-07-07githttpbackend: avoid intermediate array creation from stat
No need to keep an extra array around for this.
2016-07-06feed: fix links to attachments in Atom feed
Oops...
2016-07-06www: use HTML <hr> instead of XHTML <hr />
We only need XHTML-compatibility inside Atom feeds, as anecdotally, feed readers are stricter than normal browsers and some do not support HTML, only XHTML. So we will continue to accomodate them. However we favor HTML elsewhere since it tends to be smaller than the equivalent well-formed XHTML.
2016-07-06view: fix double-escaping of ghost links
Oops :x
2016-07-06extmsg: switch to wwwstream for partial match, too
Another step towards a consistent WWW UI...
2016-07-06extmsg: disable automatic inbox switching
Automatic inbox switching was a potentially deceptive pattern and surprises readers who do not check the URL bar closely. Furthermore, a message could be cross-posted to multiple lists, too.
2016-07-06wwwstream: allow undef noop callback
This can be use to specify a small response using -html_tip.
2016-07-06address: attempt to handle comments somewhat
They're uncommon, fortunately, but we make no attempt to handle nested comments (which would open us up to things like CVE-2015-7686) or use the comment in place of a missing name.
2016-07-06hval: get rid of unused parameter for new_msgid
Exposing compressed Message-IDs in URLs was a mistake, remove a remnant of it.
2016-07-06daemon: disable USR2/TTIN/TTOU/WINCH in workers
If using a master/worker setup, a careless user could be trying to signal all processes using "killall". This may trigger bad side-effects; but try to limit the side-effects as much as possible.
2016-07-06scripts/dc-dlvr: ensure temporary files are removed
Oops :x
2016-07-03examples/varnish-4.vcl: comments and tweaks
Document and simplify things a bit. The major functional change is we no longer waste space caching objects from dumb HTTP clones.
2016-07-03examples: remove X-Forwarded-For mentions
We don't need to care about client IPs anywhere.
2016-07-03view: remove self-linkification in thread views
There is no point for diverting readers' attention with an unnecessary link, here.
2016-07-03githttpbackend: match Content-Type of git-http-backend(1)
This will allow cache proxies such as Varnish to avoid caching data sent by us.
2016-07-02wwwstream: wording/grammar tweaks in trailer
git.git documentation uses "clonable" so that's probably a better term than "clone-able". Also, shorten the section for retrieving our code and remove an obvious typo.
2016-07-02nntp: respect 3 minute idle time for shutdown
This avoids breaking clients on graceful shutdown since NNTP responses should usually be quick.
2016-07-02nntp: simplify update_idle_time
This ought to make things easier when we add TLS support.
2016-07-02config: introduce each_inbox for iteration
This fills in the internal lookup hashes and simplifies callers.
2016-07-02linkify: allow '!' in URLs
GoogleGroups URLs often contain '!' in them
2016-07-02www: remove Plack::Request dependency entirely
Lighter and ever-so-slightly faster! Most importantly, this won't do non-obvious stuff behind our backs like trying to parse a POST request body for a query string param.
2016-07-02view: rely on internal query parser for 'o' param
Plack::Request will check the request body by merely calling "param", totally unnecessary and sneaky.
2016-07-02www: use PSGI env directly
More work on on the Plack::Request/CGI.pm removal front, No need to access the PSGI env through an extra hash lookup.
2016-07-02extmsg: rework to use Inbox objects
This is less code and hopefully easier-to-understand.
2016-07-02inbox: base_url method takes PSGI env hashref instead
This is lighter and we can work further towards eliminating our Plack::Request dependency entirely.
2016-07-02TODO: clarify streaming Email::MIME replacement
I bet there's a billion other improvements to be made elsewhere.