about summary refs log tree commit homepage
DateCommit message (Collapse)
2016-05-01mda: export @BAD_HEADERS variable
This should allow users to change and add headers as needed. While we're at it, add the X-Original-To header Postfix likes to add; it seems like pointless bloat with the existence of (important) Received: headers.
2016-05-01linkify: match more URL characters [:,\$] and schemes
Adding ':' (colon), ',' (comma), '$' (dollar sign) and supporting TLS-enabled schemes: ftps, nntps variants as well as gopher :D
2016-05-01linkify: match '~' (tilde) in URLs
Tilde is common for some homepages: http://example.org/~user/ There's probably some other acceptable characters I'm missing.
2016-04-30daemon: graceful shutdown warning and limit removal
git clones may take longer than 30s, much longer... So prepare to wait almost indefinitely for sockets to timeout and document the second signal behavior for immediate shutdown. While we're at it, move parent death handling to a separate class to avoid Danga::Socket->AddOtherFds, since that does not allow proper handling the parent pipe being closed and would actually misterminate a worker prematurely. t/nntpd.t is update to illustrate the failure with workers enabled. We will work to keep memory usage low and let clients take their time without interrupting them.
2016-04-30http: graceful shutdown for pi-httpd.async callers
git clones may take a long time and it's wrong to drop connections in the middle of a transaction.
2016-04-30searchmsg: ensure long subject lines are not broken
Noticed when using a long URL in the subject.
2016-04-29http: avoid lseek if no input
This saves us a system call for common GET/HEAD requests with no upload body.
2016-04-29TODO: add item for .mailmap support
Email addresses get out-of-date, so make sure they're mapped properly for future readers. git and linux-kernel already have an established convention for this, so we will follow it.
2016-04-29http: improve error handling for aborted responses
We need to abort connections properly if a response is prematurely truncated. This includes problems with serving static files, since a clumsy admin or broken FS could return truncated responses and inadvertently leave a client waiting (since the client saw "Content-Length" in the header and expected a certain length).
2016-04-29git-http-backend: check EINTR as well as EAGAIN
The blocking PSGI server may cause EINTR to be hit, here.
2016-04-29http: avoid corking on "Content-Length: 0" response
We must use a normal write instead of send(.., MSG_MORE) when writing responses of "Content-Length: 0" to avoid the corking effect MSG_MORE provides. We only want to cork headers if we will send a non-empty body. Fixes: c3eeaf664cf0 ("http: clarify intent for persistence") This needs a proper test.
2016-04-28githttpbackend: clamp to one smart HTTP request at-a-time
Server admins may not be able to afford to have too many git-pack-objects processes running at once. Since PSGI HTTP servers should already be configured to use multiple processes for other requests; limit concurrency of smart backends to one; and fall back to dumb responses if we're already generating a pack.
2016-04-28githttpbackend: fall back to dumb if smart HTTP is off
Using http.getanyfile still keeps the http-backend process alive, so it's better to break out of that process and handle serving entirely within the HTTP server.
2016-04-28import: run git-update-server-info when done
We should update $GIT_DIR/info/refs for dumb HTTP clients whenever we make changes to the repository. The best place to update is immediately after making commits. This fixes a bug where public-inbox-learn did not properly update $GIT_DIR/info/refs after inserting or removing messages.
2016-04-27import: document API for public consumption
This is probably trivial enough to be final?
2016-04-25t/feed.t: run properly without ssoma installed
While we're at it, update some references to ssoma in the Makefile.PL comment.
2016-04-25TODO: various updates
2016-04-25githttpbackend: require IO::File explicitly
This is used all over the place, but may not be in the future, so ensure we explicitly load it ourselves.
2016-04-25remove GIT_DIR env usage in favor of --git-dir
No need to maintain per-block environment state when we can localize it to per-command. We've had --git-dir= in git since 1.4.2 (2006-08-12) and already use it all over the place.
2016-04-25remove ssoma dependency
By converting to using ourt git-fast-import-based Import module. This should allow us to be more easily installed.
2016-04-25import: extra check for final byte read
The read could fail entirely and leave $lf undefined.
2016-04-25nntp: reduce timers for weakening
Danga::Socket timers are not cheap, so avoid creating up to 3 timers per-newsgroup by batching resource weakening. This lets us reduce resource consumption for scheduing additional resource consumption reduction :)
2016-04-25nntp: remove unused hdr_val subroutine
hdr_val has not been used since commit 1d236e649df1 ("nntp: implement OVER/XOVER summary in search document")
2016-04-25split out NNTPD and HTTPD* modules
Hopefully this modularizes things a little and allows us to work on a combined super server to save RAM.
2016-04-25mda: don't clobber existing List-Id header
We may be importing mail from other lists, so do not clobber the existing List-Id header.
2016-04-25searchview: add "rel=next" and "rel=prev" here, too
ref: https://www.w3.org/TR/html/links.html#sequential-link-types Followup-to: c4183f56aab6 ("www: add rel=next and rel=prev navigation hints")
2016-04-25www: add rel=next and rel=prev navigation hints
This can makes navigation easier with some browsers or or browser extensions. ref: https://www.w3.org/TR/html/links.html#sequential-link-types
2016-04-25view: fix link generation for replies in threads
Oops, gotta test this :x
2016-04-24view: add extra newline in flat thread view for lynx
This shouldn't show up in other browsers (tested with w3m, too), but the extra newline makes a difference for delineating messages when viewed with lynx.
2016-04-24view: more consistent prefixing for thread skeletons
This will allow potential tinkerers to switch away from the '` ' prefix more easily.
2016-04-21mda: reject multiple Message-IDs up front
While ssoma now documents it uses the first Message-ID, they are confusing and could be a sign of a broken mail software, and broken mail software is often a sign of spam... ref: http://public-inbox.org/meta/20160421221128.4910-1-e@80x24.org/
2016-04-16view: show flat thread view in chronological order
Allowing readers new to a topic to follow in chronological order probably makes the most sense. Reverse chronological order may reduce scrolling (e.g. log view); but nearly all non-threaded conversation displays seem to be chronological so perhaps there's a good reason for that.
2016-04-15view: thread skeleton tweaks
Allow the Subject: <-> skeleton line to point to each other so the reader can bounce around between them without refocusing their browser.
2016-04-15www: redirect /$MESSAGE_ID/f/ endpoints
Quote-folding was a major design mistake pre-1.0. Since this project is still in its infancy and unlikely to be in wide use at the moment, redirect the /f/ endpoints back to the plain message.
2016-04-15doc: update design notes on WWW development
Start documenting our anchors and CSS classes for in case users want to write their own CSS or even JavaScript for local usage.
2016-04-14view: drop vestigial elements of quote folding
...And mark quotes as <span class="q"> since it barely costs us anything and allows users to choose colors themselves with custom, user-supplied CSS. Reduce allocations of the Linkify object, too.
2016-04-13www: stop generating /$MESSAGE_ID/f/ links
Quote-folding can be detrimental as it fails to hide the real problem of over-quoting. Over-quoting wastes bandwidth and space for all readers, not just WWW readers of the public-inbox. So hopefully removing quote-folding support from the WWW interface can shame those repliers into quoting only relevant portions of what they reply to.
2016-04-13view: fix link to view replies from $MESSAGE_ID/f/ links
Oops, $MESSAGE_ID/f/R/ screws up rather badly.
2016-04-13searchview: deal with the removal of rsort
Oops. While we're at it, simplify the calls to do threading slightly by reducing the places where we touch Mail::Thread globals. Fixes: 56164afc2034 (view: allow topics to be "bumped" by new replies)
2016-04-12mbox: do not clobber existing archive headers in WWW
When serving archives, it's more robust to keep existing archive links in one server goes down.
2016-04-12view: allow topics to be "bumped" by new replies
This ought to prevent new replies from getting lost for readers relying on the WWW index interface.
2016-04-12import: filter out [<>] from user names
It confuses the git ident parser and may not be a great idea to fix in git since it could break interopability with older versions.
2016-04-11import: use bytes::length for true data length in bytes
git is byte-oriented and fast-import will not tolerate miscalculations. This is necessary for wide characters in commit messages (email Subjects).
2016-04-11import: set binmode before printing author names
Author names may have wide characters in them, so avoid warnings as git favors UTF-8 for names and fast-import even requires them for commit messages
2016-04-11import: initial module + test case
This will allow us to write fast importers for existing archives as well as eventually removing the ssoma dependency for performance and ease-of-installation.
2016-04-11git: add support for qx wrapper
This lets us one-line git commands easily like ``, but without having to remember --git-dir or escape arguments.
2016-04-11mbox: unconditionally add trailing newline
This may be necessary for compatibility with non-mboxrd aware parsers which expect "\nFrom " for everything but the first record.
2016-04-09public-inbox-learn: drop leading "From " line from mboxes
It can confuse Email::MIME if we have it.
2016-04-09filter: remove out dated comments
Followup-to commit 5a590bcb6813 ("filter: preserve Mail-Followup-To and Mail-Reply-To")
2016-04-09filter: preserve Mail-Followup-To and Mail-Reply-To
Allow users to do wacky things here if they really wish... It's bad practice, but at least allow other readers to mock users of these headers :P