summaryrefslogtreecommitdiff
path: root/data.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2026-02-05strip_exif support for the OpenBSD sandboxGravatar Alvar Penning1-13/+6
Change the strip_exif logic to work with the already existing OpenBSD sandbox and allow ffmpeg and mogrify to be executed. The previous strip_exif implementation relied on system(3), effectively starting "/bin/sh" and executing the required tool within a shell session. Making this work in the sandbox would require to allow executing "/bin/sh", rendering the sandbox useless. Thus, the code now starts determining the absolute path of the tools - unless they are given as ffmpeg_path or mogrify_path - and allowing them to be executed via unveil(2). Then, instead of the system(3) call, the good old fork(2) and execve(2) dance is performed. The sbox_enter code was made aware of strip_exif, which resulted in a pledge(2) violation before when disable_email_notifications was set to false. Furthermore, the detected paths of the tools are now allowed.
2026-02-02Use the translated month names in date labels.Gravatar grunfink1-0/+1
2026-02-02Added translatable month names.Gravatar grunfink1-0/+13
2026-01-25notifications filterGravatar byte1-1/+65
2026-01-25fixing leak in reallocated stringGravatar byte1-3/+3
2026-01-06Implement configurable EXIF stripping for uploaded mediaGravatar Stefano Marinelli1-2/+11
- Add `strip_exif` configuration option to enable metadata removal. - Add `mogrify_path` configuration to specify external tool location. - Implement strip_media using `mogrify -strip`. - Support multiple image formats: jpg, png, webp, heic, heif, avif, tiff, gif, bmp. - Add strict startup check: fail to start if `strip_exif` is enabled but `mogrify` is missing/broken. - Update documentation in `doc/snac.8`.
2026-01-01Bumped copyright year.Gravatar grunfink1-1/+1
2025-12-18Fixed leak in emoji_reacted().Gravatar grunfink1-3/+3
2025-12-18Fixed leak in timeline_admire().Gravatar grunfink1-3/+4
2025-12-18Fixed some xs_dup() leaks.Gravatar grunfink1-1/+1
2025-12-18Added emoji reactions (contributed by violette).Gravatar violette1-8/+116
2025-11-30Fix user matchingGravatar rako1-4/+4
In order to be a proper prefix, the actor url must end with a '/' otherwise it can match another user that starts with the same prefix: for example 'testuser' will match anything made by 'testuser2'
2025-11-29Moved is_msg_mine() to data.c.Gravatar grunfink1-0/+14
2025-10-24Keep track of deleted users and return 410 Gone for them.Gravatar grunfink1-0/+29
2025-10-13xs_http.h: new file.Gravatar grunfink1-0/+1
2025-09-28New function actor_failure() (again, but much better).Gravatar grunfink1-0/+39
2025-09-28Revert "New function actor_failure()."Gravatar grunfink1-18/+9
This reverts commit 335b90a9d1654aadb4e0d87114b82685defcd50b.
2025-09-28New function actor_failure().Gravatar grunfink1-9/+18
2025-09-20implementing visibility scopesGravatar byte1-3/+7
2025-09-13Set default max_failing_days to 15 days.Gravatar grunfink1-1/+1
2025-09-13New configuration directive 'max_failing_days'.Gravatar grunfink1-1/+2
2025-09-12Fixed bug in instance_failure() path.Gravatar grunfink1-1/+1
2025-09-12New function instance_failure().Gravatar grunfink1-0/+53
2025-09-07Always do a deferred fsck at startup.Gravatar grunfink1-0/+11
2025-09-07Changed fsck debug level.Gravatar grunfink1-1/+1
2025-09-07New command-line option 'fsck'.Gravatar grunfink1-0/+58
2025-09-03Always add a user's posts to the public timeline, even if it's not really ↵Gravatar grunfink1-0/+3
public.
2025-09-03Revert "Also keep a 'personal' folder for better organization."Gravatar grunfink1-17/+7
This reverts commit 0c3665fc49064f1fd5a04f2427056f9ea37f8d70.
2025-09-03Also keep a 'personal' folder for better organization.Gravatar grunfink1-7/+17
2025-09-03Renamed function list_content() to list_members().Gravatar grunfink1-3/+3
2025-09-03New function enqueue_collect_outbox().Gravatar grunfink1-0/+13
2025-08-18New function enqueue_collect_replies().Gravatar grunfink1-0/+13
2025-08-12content_search() also looks in the attributedTo field.Gravatar grunfink1-0/+3
2025-08-03New function unhide().Gravatar grunfink1-1/+9
2025-07-30New server knob 'propagate_local_purge'.Gravatar grunfink1-1/+2
2025-07-25New function delete_purged_posts().Gravatar grunfink1-0/+39
2025-06-18Added 'alias' and 'alias_raw' as forced update in user_persist().Gravatar grunfink1-1/+2
2025-06-16Renamed webhook 'inReplyTo' to 'reply'.Gravatar grunfink1-1/+1
2025-06-16In enqueue_notify_webhook(), also add the inReplyTo object if there is one.Gravatar grunfink1-0/+10
2025-05-30More webhook checks.Gravatar grunfink1-1/+1
2025-05-30Added uid, basedir and baseurl to the notify webhook message.Gravatar grunfink1-0/+4
2025-05-30Added a new server knob disable_notify_webhook.Gravatar grunfink1-2/+3
2025-05-30More notify_webhook work.Gravatar grunfink1-1/+10
2025-05-30New function enqueue_notify_webhook().Gravatar grunfink1-0/+19
2025-05-27New function timeline_here().Gravatar grunfink1-0/+8
2025-05-27Renamed timeline_here() to timeline_here_by_md5(), as it always should have ↵Gravatar grunfink1-2/+2
been.
2025-05-25Increase verbosity for srv_debug() in tag_index()Gravatar shtrophic1-1/+1
2025-05-22Minor memory leak fixes.Gravatar grunfink1-4/+4
2025-05-22add missed replacement to the `content_match` functionGravatar postscriptum1-1/+1
2025-05-22use utf-8 lowercase function for tags #396Gravatar postscriptum1-2/+2