| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
When the TVL binary cache gets gc'd, we are left with nothing — we want
to avoid bootstrapping nixpkgs from scratch at least.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Cabal is a bit pedantic about not putting useless ghc-options into
common blocks if they are included by a library.
|
| |
|
|
|
|
|
| |
See also https://github.com/GaloisInc/curl/pull/25, seems to be a
relatively recent development.
|
|
|
|
|
|
|
|
| |
See https://github.com/haskell/cabal/issues/8458 for details. Basically,
cabal-install 3.8.1.0 sorts source-dirs and then picks the first
matching module from that list whereas it'd respect the order in the
source file before. This caused it to pick up server/Main.hs over
test/Main.hs when building the test suite, failing the build.
|
|
|
|
| |
Upstream seems abandoned and it no longer builds in nixpkgs.
|
|
|
|
|
| |
We need to reinvent less and also get the workaround for cabal-install
3.8.1.0 requiring GHC in PATH for free.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The actual change is a bit cheesy, since we could have a non-CPP
solution as well by adding a FromString constraint, but this one is
stupid and simple.
Additionally tested with both GHC 8.10.7, 9.0.1 and
cabal v2-build --constraint='aeson >= 2.0'
Increase version number to 1.0.0.1 (no observable changes) for a release
that benefits Stackage Nightly mostly.
Resolves #51.
|
|
|
|
|
|
| |
This will avoid compiling cheddar in GitHub Actions. The rest of the
build is very quick and doesn't really benefit from persistent cache
between runs.
|
| |
|
| |
|
|
|
|
| |
2.0 does indeed break compilation of spacecookie, ref #51.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
The 1.0.0.0 version number was chosen not to indicate completeness, but
rather to indicate how harsh of a jump it is from 0.2.1.2 to 1.0.0.0 for
library users since the core API was changed.
For server users which are probably the majority it should go relatively
smoothly in comparison.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This allows us to use sendAllBuilder which should make MenuResponses
more efficient as less conversions and passing around are required.
|
| |
|
|
|
|
|
|
| |
The close call was missing due to a previous oversight. While the socket
should have been closed by its finalizer, doing it explicitly is cleaner
and probably also means more predictable performance.
|
|
|
|
|
|
|
|
|
|
|
| |
Upper bounds need constant maintenance which is not really worth it as
often the downstream usage doesn't break and if it breaks it breaks at
compile time, so we don't really need upper bounds to tell us that
beforehand.
Ideally I'll notice in time so nobody wastes time with futile
compilation. This should be possible with the cron CI and stackage could
also help if we add spacecookie to that.
|
| |
|
| |
|
|
|
|
|
| |
This should allow CI to pick up on build issues we introduce by
forgetting to add stuff to extra-source-files.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Redo section on socket activation whilst adding a note about the
requirement of the spacecookie.socket file describing a v6 socket.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Additionally to limiting the request size we
* Perform multiple recvs if no newline is contained within the initial
message received.
* Fail if there is no newline is contained within the received request
(i. e. it was truncated) or data is sent after the newline
* Fail if a timeout of 10s runs out
|
|
|
|
|
|
|
|
| |
* Don't duplicate changes affecting both types of users
* Add TL;DR section
* Add note about man pages
* Add note about new closing behavior
* Change next version number to 1.0.0.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is not necessary to implement privilege dropping as part of the main
Network.Gopher API anymore since it can easily be done in the ready
action passed to runGopherManual.
To ease transition we expose an exception-throwing version of the
formerly internal function dropPrivileges via Network.Gopher.Util
which can be plugged into the ready action of runGopherManual if
desired.
feat(server): exit if dropPrivileges fails
We don't catch the exception of dropPrivileges anymore, exiting on
a failure related to it instead (user doesn't exist, insufficient
privileges).
BREAKING CHANGES:
* cRunUserName has been removed from GopherConfig. This breaks all library
usage which relied on this feature.
* The spacecookie server daemon now exits if changing user fails instead
of just logging an error like before.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
After sending the response, we now send TCP FIN by calling shutdown(2)
on the socket. We then wait up to 1 second for the client to finish
reading and closing the socket on their end before finally closing the
socket on our side. This prevents read broken pipes for clients like
curl which would occasionally happen.
Resolves #42.
|
|
|
|
|
|
|
| |
Mimic the behavior of 'close' in toFd: replace the old file descriptor
with (-1). This ensures that further calls on the 'Socket' are “safe” in
a sense as they won't block indefinetely. Instead they will throw an
exception as if close was called on the Socket.
|
|
|
|
|
|
|
|
| |
Move file descriptor conversion into top level bindings, throw
IOExceptions on errors and document them.
SystemdException no longer contains the invalid file descriptor
exception.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This uses htmlman from tvl's depot and should allow us to deduplicate
the documentation by removing all the stuff we explain in the man pages
from the README and just link the appropriate man page in its place.
See also: https://code.tvl.fyi/about/users/sterni/htmlman
Fingers crossed this works first try.
|
| |
|