210 Commits
Author SHA1 Message Date
Eric Ireland fcff80e9be Give snacforge distinct documentation and artwork 2026-09-11 12:20:22 +10:00
Eric Ireland 3c5d4816be Identify the running software as snacforge
Assisted-by: OpenAI Codex (GPT-5)
Reviewed-by: Eric Ireland
2026-09-11 11:42:10 +10:00
Eric Ireland 2f244e31f2 Bound HTTP response writes with a send timeout
Assisted-by: OpenAI Codex (GPT-5)
Reviewed-by: Eric Ireland
2026-09-11 11:41:55 +10:00
grunfink 2e4a9a9420 More text browser friendly stuff. 2026-09-01 15:01:08 +02:00
grunfink b3af603083 Fixed redirection loop in the /users special case. 2026-08-06 19:00:20 +02:00
grunfink 460b6cc589 changed order of nodeinfo links. 2026-08-03 06:26:24 +02:00
grunfink a0fada72cc Tweaked first httpd log line. 2026-06-10 09:46:33 +02:00
Santtu Lakkala 4a5f9150d0 Fix error body leaks
activitypub_post_handler uses custom error responses for 400 and 403.
The 400 NULL check was reversed and 403 was missing the check in
httpd_connection and both errors were lost and leaked.

Add a common custom error gate around all default errors to avoid
similar issues in the future.
2026-05-22 11:08:56 +03:00
grunfink 5e1dbb5890 Serve the baseURL in nodeinfo's metadata. 2026-04-15 07:58:02 +02:00
Giuseppe Ranieri e21a933a6e Implemented tootfinder.ch compatibility mimic Mastodon Behaviour
Added aliases list on webfinger response
Return the /users/<actor> in the webfinger response ( mimic Mastodon )
Implemented /users endpoint redirect to access actor profile

Files changed:
	modified:   data.c
	modified:   httpd.c
	modified:   snac.h
	modified:   webfinger.c
2026-03-19 11:50:03 +01:00
Alvar Penning c29d691d32 httpd: Log xs_socket_accept failure reason
So far, it was expected that xs_socket_accept should work and while its
failure results in a termination, it was not properly logged. With this
change, an error message including the strerror message is being logged.

After experiencing some unexpected snac httpd shutdowns, I added a bit
of additional logging, including when xs_socket_accept fails. This
proved useful, as it unveiled a deeper error on my machine:

> xs_socket_accept failed: Too many open files

Since entering this code path results in termination, I thought
upstreaming this logging might be useful for others.
2026-02-17 22:55:29 +01:00
grunfink 11af00194e Bumped copyright year. 2026-01-01 17:01:03 +01:00
grunfink ee7483cf0d New query variable terse=anything.
If set to any value, a public post page doesn't show any headline.
2025-12-09 13:31:37 +01:00
grunfink 1a42fdc8bd Keep track of deleted users and return 410 Gone for them. 2025-10-24 05:02:28 +02:00
grunfink 212284c792 xs_http.h: new file. 2025-10-13 13:07:06 +02:00
byte d23ac2b9f5 making sure that global data is immutable 2025-09-22 23:27:47 +00:00
grunfink 7796bf39f0 Always do a deferred fsck at startup. 2025-09-07 08:30:18 +02:00
grunfink fee442dbf2 Ensure the tag is a string in server_get_handler(). 2025-08-23 20:19:14 +02:00
grunfink cd05398133 Added nodeinfo 2.1 support. 2025-08-14 11:17:49 +02:00
grunfink 26502fa62e Added metadata to nodeinfo 2.0. 2025-07-10 05:45:22 +02:00
grunfink 9403fb41ef More webmention hook tweaks. 2025-06-24 14:34:55 +02:00
grunfink 1aa8fe8573 "voided" unused arguments in server_post_handler(). 2025-06-24 14:08:59 +02:00
grunfink f88bdd7960 Added a webmention hook. 2025-06-24 14:06:41 +02:00
grunfink 0594197af7 Renamed server knob to 'rss_hashtag_poll_hours'. 2025-05-28 09:16:23 +02:00
grunfink a1369b39c1 Activated hashtag RSS polling. 2025-05-28 09:07:19 +02:00
grunfink 859de583d9 Renamed timeline_to_rss() to rss_from_timeline(). 2025-05-28 07:44:34 +02:00
grunfink 38ff37703e Added header "access-control-expose-headers" with the "Link" value.
This helps paging in Mastodon clients.
2025-05-09 08:37:16 +02:00
green 21a99e5508 emoji: refactor + emoji in display names on front page 2025-04-13 14:43:44 +02:00
default 02bc18eb11 Redefined L() to use lang_str(). 2025-02-14 10:04:46 +01:00
default 292b2fd122 Force the Content-Security-Policy header, instead of just suggesting it in the docs. 2025-02-13 19:44:21 +01:00
default f4fee170ce If 'def_timeline_entries' is not set, 'max_timeline_entries' is used (instead of the default). 2025-02-06 19:16:49 +01:00
Alexandre Oliva 8e1a2c5ff9 Merged 53ad5cdf0371fc068fa03bf287fc94be. 2025-02-06 09:04:36 +01:00
default 2611c816b0 Hide the 'relay' user from the greeting list. 2025-01-21 20:25:50 +01:00
default 4416e3a28a Fixed check for the basedir (contributed by an-im-dugud). 2025-01-20 18:37:21 +01:00
default 202d99c815 Added the USER_AGENT to HTTP errors. 2025-01-20 08:39:06 +01:00
default 04803b628b Changed Boost/Like order in the /authorize_interaction page. 2025-01-16 18:19:19 +01:00
default b993e26346 Implemented Mastodon-like /authorize_interaction. 2025-01-16 14:20:07 +01:00
default 932227bbac Bumped copyright year. 2025-01-08 16:59:14 +01:00
default f6e06be278 In the /share page, set the charset explicitly to utf-8. 2025-01-06 17:02:01 +01:00
default 17d7e0027a Use the site's CSS in the /share page. 2025-01-05 08:34:26 +01:00
default b7ab926c25 More /share tweaks. 2025-01-05 08:06:14 +01:00
default 7f2be13079 Serve BASE_URL/style.css.
I thought I was already doing this 🤦(not that it really matters much).
2025-01-02 07:27:48 +01:00
default 00079323cc Minor tweak to the /share webpoint. 2025-01-02 07:11:58 +01:00
default 7f6047268e The shared post is really sent. 2025-01-01 13:37:35 +01:00
default 33b6f2af00 More work in the Mastodon-share webpoint. 2024-12-31 17:42:33 +01:00
default 5c330660cd Started support for Mastodon-like /share endpoint. 2024-12-31 17:01:08 +01:00
default b9e0c6e742 Added pidfile locking. 2024-12-16 19:47:27 +01:00
default c6562fa39b New function timeline_link_header(). 2024-12-15 22:52:41 +01:00
default 876c892960 The server creates a pidfile inside the base directory. 2024-11-17 10:21:15 +01:00
default 0f8ade8c60 Propagate 'last-modified' and 'etag' fields while proxying.
But does it work?
2024-11-07 19:42:02 +01:00