Commit graph

385 commits

Author SHA1 Message Date
default
79ea0bf4ab Reject MUTEd actor messages ASAP with a 403 status. 2023-03-04 00:26:50 +01:00
default
45f490286a Send to collected inboxes AFTER sending to explicit recipients. 2023-03-03 06:04:40 +01:00
default
8451d66601 Log the user-agent when serving the actor. 2023-03-02 15:34:04 +01:00
default
1ca94dab67 Added user-agent in non-signed http connections. 2023-03-02 13:30:29 +01:00
default
5036cb5e11 Connection jobs are treated as urgent. 2023-03-02 12:38:02 +01:00
default
e705e5c3ed Show a bigger piece of a connection error. 2023-03-02 12:30:00 +01:00
default
4773d6c64c Output to the shared inboxes only the public messages. 2023-03-02 10:26:52 +01:00
default
d53d9af2be Enqueue messages to the collected inboxes first. 2023-03-02 09:28:19 +01:00
default
29b12498dd Simplified is_msg_public(). 2023-03-02 09:15:40 +01:00
default
e74ae0f589 Renamed inboxes/ to inbox/. 2023-03-02 09:01:08 +01:00
default
5e3c50d6e1 New inbox collection functions. 2023-03-02 08:43:50 +01:00
default
eb0c7eabbb Minor refactoring to actor_request().
Including commented out experimental code for collecting sharedInboxes.
2023-03-01 09:22:32 +01:00
default
d75a22adab New function srv_archive_error(). 2023-03-01 08:25:36 +01:00
default
1d82d13d62 In activitypub_request(), retry failed signed requests as non-signed. 2023-02-24 09:00:03 +01:00
default
2bfebba7be Don't wait for 3 seconds if there were some q_items processed. 2023-02-22 08:39:54 +01:00
default
3a97721c30 Unrolled the recipient-to-inbox process in process_user_queue_item().
Instead of calling inbox_list(), waiting for it to end and then
sending to all the "uniqueized" inboxes, the sending is done everytime
a unique inbox is found.
2023-02-20 13:19:29 +01:00
default
58c01be996 Use actor_request() again in get_actor_inbox().
This was faster, but some actors not already here (i.e. some
mentions) were not posted.
2023-02-20 10:02:21 +01:00
default
5230435b31 New boolean argument 'priv' to msg_note(). 2023-02-20 09:32:44 +01:00
default
9083bef5cb Don't try to send to empty email addresses. 2023-02-20 06:12:23 +01:00
default
f1f3e3b116 Email notifications can be disabled. 2023-02-20 06:00:54 +01:00
default
d3da67eaba Don't request the actor in get_actor_inbox(). 2023-02-15 06:01:47 +01:00
default
1af96788f0 Even more tweaks to connection reply logging. 2023-02-14 08:49:17 +01:00
default
e71c72f037 More tweaks to connection reply logging. 2023-02-14 08:32:07 +01:00
default
f832e6a508 Some tweaks to connection reply logging. 2023-02-14 08:26:39 +01:00
default
7e27ccfde8 Try to show a piece of the error after connecting. 2023-02-14 08:15:43 +01:00
default
f5d3859e07 Added the user to the notification. 2023-02-08 14:47:23 +01:00
default
944bd60e06 Deleted old output message processing in user queue. 2023-02-07 13:34:26 +01:00
default
4cca157641 Output messages are now processed by the pool of threads. 2023-02-07 13:31:48 +01:00
default
8f63c6259a Log unexpected q_item types. 2023-02-07 13:19:27 +01:00
default
7be01b7f34 Output messages are sent with send_to_inbox_raw(). 2023-02-07 10:33:58 +01:00
default
3ddf76c2aa New function send_to_inbox_raw(). 2023-02-07 10:29:06 +01:00
default
2db57c9df9 Added internals for Telegram notifications. 2023-02-07 07:37:23 +01:00
default
f6d51357af process_queue() now posts the q_item to the thread pool.
Instead of calling process_queue_item() itself.
2023-02-06 20:29:18 +01:00
default
b2d186cd0f The pool of threads now process q_items.
Also, the purge is commanded as a q_item.
2023-02-06 20:07:29 +01:00
default
71a7569467 Deleted the type argument from object_get_my_md5() and object_get().
It was never used.
2023-02-05 17:45:00 +01:00
default
d49089898f Elevated debug level to bad user / invalid user messages. 2023-02-03 16:51:59 +01:00
default
928f22fbba Email notifications have been moved to the global queue. 2023-02-02 05:21:16 +01:00
default
c639553836 New function queue() (the global queue). 2023-02-02 05:07:20 +01:00
default
108ed072e2 Renamed process_queue_item() to process_user_queue_item(). 2023-02-02 04:55:58 +01:00
default
8d22c448d4 process_queue() has been renamed to process_user_queue(). 2023-02-02 04:50:51 +01:00
default
106c94ef86 queue() renamed to user_queue(). 2023-02-02 04:47:59 +01:00
default
ee77e45abb dequeue() does not need a snac argument. 2023-02-02 04:44:30 +01:00
default
c2524323a9 New function process_queue_item(). 2023-01-31 22:30:34 +01:00
default
cabbdbe209 Deleted dead code. 2023-01-31 20:26:33 +01:00
default
94c4790bd7 Unified queue message field names. 2023-01-31 20:22:36 +01:00
default
4e86847f72 Image attachments in posts can now have descriptions ('alt text'). 2023-01-28 18:22:42 +01:00
default
756e8cb2a7 More tweaks to the default avatar. 2023-01-27 18:28:55 +01:00
default
aecfcacc32 Some tweaks to the default avatar. 2023-01-27 18:21:54 +01:00
default
a3ed2408fc New function default_avatar_base64(). 2023-01-27 18:17:11 +01:00
default
fd1e281cba Use a shorter timeout for first output connections. 2023-01-24 15:06:58 +01:00
default
2921dbe058 Always make ids unique. 2023-01-22 20:31:16 +01:00
default
7199c00403 In msg_note(), store the original content in the sourceContent field. 2023-01-20 10:09:32 +01:00
default
a38c7aeadc Updated year in copyright notices. 2023-01-17 09:50:16 +01:00
default
b262961c93 Process HTML Unicode entities specially in process_tags(). 2023-01-17 09:37:41 +01:00
Andrew Alderwick
3cb1725225 Added OpenBSD's unveil() and pledge() support. 2023-01-13 13:25:14 +01:00
default
11ba44ff9f Some mention formatting tweaks. 2023-01-13 07:12:19 +01:00
default
1d0ab9c156 Added (partial) support for #HashTags in posts. 2023-01-12 13:49:37 +01:00
default
6b344b8c2e Deleted unused argument in timeline_request(). 2023-01-11 20:51:15 +01:00
default
40b3f739d2 Deleted unused argument in timeline_admire(). 2023-01-11 20:47:36 +01:00
default
75f8554e38 Deleted unused arguments in timeline_add(). 2023-01-11 20:40:13 +01:00
default
1aac24ca75 More keyId/signature tweaks. 2023-01-11 09:38:19 +01:00
default
1438d046a5 Log tweaks. 2023-01-10 20:37:53 +01:00
default
23eb05ee99 Use the already loaded actor in check_signature(). 2023-01-10 18:21:00 +01:00
default
292d7c3e95 Fixed log level for 'serving actor'. 2022-12-24 07:05:01 +01:00
default
850259b269 Added a working space to timeline_request(). 2022-12-23 21:41:52 +01:00
default
e762d942de Don't rewrite the id unless it's different. 2022-12-23 21:30:18 +01:00
default
f9f6d96579 Corrected a debug level. 2022-12-23 12:32:59 +01:00
default
f83ff46b6b Fixed crash on some webfinger errors. 2022-12-23 12:20:54 +01:00
default
0bba515cf0 timeline_request() fixes the canonical id for the object. 2022-12-23 10:01:10 +01:00
default
a24b27bf29 Don't generate inReplyTo as an empty string. 2022-12-23 08:05:00 +01:00
default
8461fbfbcc Log the actor request. 2022-12-16 08:35:52 +01:00
default
e6c48cc96a In msg_note(), delete all cc recipients also in the to. 2022-12-16 07:51:10 +01:00
default
25acaf178c Replaced all calls to post() with enqueue_message(). 2022-12-16 07:16:00 +01:00
default
427f7341fa New function enqueue_message(). 2022-12-16 07:09:25 +01:00
default
286eb291c7 Lower debug level to repeated follows. 2022-12-15 16:43:01 +01:00
default
df612873d6 Log repeated Follow messages. 2022-12-15 16:37:34 +01:00
default
6a7007e381 Added support for Update + Note on input. 2022-12-15 11:06:31 +01:00
default
645e7ec43e Some code reordering to placate scan-build's wrath. 2022-12-14 04:55:47 +01:00
default
79270abd09 Log the response date in send_to_inbox() errors. 2022-12-11 09:08:12 +01:00
default
6fd5d14428 In process_queue(), do not retry for 404 or 410 status. 2022-12-10 10:36:31 +01:00
default
cef10f5678 Added level of debug for 'Delete' messages. 2022-12-08 08:19:24 +01:00
Alex Schroeder
a221237637 Pagination of the public and private page
Use the query parameters skip and show to control what you can see,
e.g. /alex/admin?skip=0&show=4

Don't use or save the timeline cache if either is set.

The following functions were changed from accepting a single max
parameter to accepting both skip and show:
timeline_simple_list, timeline_list, index_list_desc.
2022-12-06 18:27:33 +01:00
Alex Schroeder
20f862a651 Use "new" instead of "New" for log messages
The messages for new "Like" and new "Delete" started with an uppercase
n instead of a lowercase n like all the other log messages.
2022-12-04 10:35:01 +01:00
default
af6d31ff83 New function timeline_simple_list(). 2022-12-03 07:27:26 +01:00
default
a133427e8d More old code cleaning. 2022-12-02 20:56:51 +01:00
default
3e2891b100 Renamed timeline_here() to object_here(). 2022-12-02 20:44:51 +01:00
default
c06136a8ac Fixed one post queries. 2022-12-02 19:39:17 +01:00
default
33c8a73c17 Fixed RSS and outbox to use the new data storage. 2022-12-02 19:30:59 +01:00
default
c00e3afcdc Big data storage change. 2022-12-02 19:14:59 +01:00
default
e98dbe4eb5 Added the profile="" argument to Person content-type. 2022-12-01 19:38:11 +01:00
default
8b4dbfd708 Deleted dump of debugging code. 2022-11-28 17:54:32 +01:00
default
f209c3205d Use xs_set in recipient_list() and inbox_list(). 2022-11-28 15:49:56 +01:00
default
07fec71273 Upgraded followers to the new db. 2022-11-28 10:46:42 +01:00
default
832bbfd5eb Dump bad signature headers to /tmp/ (temporary). 2022-11-27 09:18:35 +01:00
default
a9d3e0ca79 I was using fclose() instead of pclose(). What a moron. 2022-11-27 09:09:55 +01:00
default
1243e26a0d New function object_add_ow(). 2022-11-26 05:18:48 +01:00
default
afeec970a3 Also call object_del() on a renewed actor in actor_request(). 2022-11-25 12:50:19 +01:00
default
e2c332c68a On Update + Person, call object_del() before actor_add(). 2022-11-25 12:09:30 +01:00
default
9145cca97a In msg_note(), also add the in_reply_to author as a tag.Mention. 2022-11-22 20:31:22 +01:00
default
f4bebf0323 Logging tweaks. 2022-11-18 18:08:09 +01:00
default
e6bf647b98 Always log process_queue sending. 2022-11-18 08:04:20 +01:00
default
f0e17d6753 Queue messages to inboxes instead of actors. 2022-11-17 18:33:54 +01:00
default
a12da31bdf Move send to actor logging to process_queue(). 2022-11-17 10:16:54 +01:00
default
35ad83e9ec Also log the inbox in send_to_actor(). 2022-11-17 09:16:25 +01:00
default
afce422785 Use endpoints/sharedInbox instead of inbox, if there is one. 2022-11-17 09:04:24 +01:00
default
21c676487a Set "u-url mention" class for mentions. 2022-11-13 15:15:16 +01:00
default
73323a7fc0 Some formatting refactoring. 2022-11-13 08:41:50 +01:00
default
2364d960b7 Fixed memory leak. 2022-11-07 19:37:05 +01:00
default
c0d5016e1e Use the newly resolved actor in msg_follow() instead of rewriting the old one. 2022-11-02 21:36:55 +01:00
default
dbe60be4f3 Fixed bug when following by @user@host. 2022-11-02 20:28:40 +01:00
default
1fd14a850d People page started. 2022-11-02 10:13:14 +01:00
default
34a2b47e85 Don't store objects other than 'Note' in timeline_request(). 2022-11-01 20:13:23 +01:00
default
78b3a30447 Some code moving to avoid false positive leaks. 2022-10-25 13:59:15 +02:00
default
2ab428ab0a Fixed leak. 2022-10-25 10:19:42 +02:00
default
084731fec2 Send notification emails through the queue. 2022-10-21 19:07:20 +02:00
default
6ffbb3a4fc Fixed typo. 2022-10-21 10:37:08 +02:00
default
d210674569 Don't notify about admirations of things by others. 2022-10-21 10:36:09 +02:00
default
6e470440f9 Rewritten notify() to write the message in bulk.
This was meant to avoid some 32 EPIPE from sendmail,
but it's still happening.
2022-10-21 10:26:45 +02:00
default
a52ed9be78 New function notify(). 2022-10-21 09:41:29 +02:00
default
a16600e330 Better 'Delete' message logging. 2022-10-20 10:34:32 +02:00
default
395f80bdc4 Added support for HEAD methods.
Mastodon uses them when it founds an attachment.
2022-10-16 19:00:17 +02:00
default
78ec3b077b Media can be attached to notes.
The web interface limits this (by now) to only one
attachment, given the URL.
2022-10-10 09:03:15 +02:00
default
849913dc59 Use the time functions of xs_time.h. 2022-10-02 09:27:17 +02:00
default
be3191ee5d Fixed crash. 2022-10-01 21:01:54 +02:00
default
366c23ab85 Also accept 'Delete' on input. 2022-10-01 19:48:13 +02:00
default
82e9a03925 Implemented 'Delete'. 2022-10-01 19:37:47 +02:00
default
37925a020e timeline_request() also triggers an actor_request(). 2022-10-01 18:48:05 +02:00
default
2c00c7b0b5 New web action 'Unfollow'. 2022-10-01 09:12:33 +02:00
default
fa9c90c00e Add a date to a Follow message if it doesn't include one. 2022-09-30 18:12:32 +02:00
default
392c014c26 New function check_signature() (incomplete). 2022-09-29 14:44:24 +02:00
default
49bca7e273 html_entry() is built in its own string and then added.
This will be faster.
2022-09-29 09:11:43 +02:00
default
c5a7a9c475 Treat 410 Gone from actors specially. 2022-09-28 21:09:50 +02:00
default
2be2c07e9c The input queue also has retries. 2022-09-28 20:41:07 +02:00
default
51ed24be47 If an actor cannot be retrieved, move the message back to the queue. 2022-09-28 20:24:47 +02:00
default
e4967cfcb3 Process 'Update' + 'Person'. 2022-09-28 20:08:02 +02:00
default
c38cc09e4c Process 'Undo' + 'Follow'. 2022-09-28 19:59:19 +02:00
default
045498652f 'Announce' messages also try to bring the announced actor. 2022-09-28 07:12:16 +02:00
default
3b8a43013d Check for muted actors in Announce messages. 2022-09-28 05:16:17 +02:00
default
03b0e105b5 Delete the _snac field in outbox. 2022-09-28 04:52:17 +02:00
default
32661d2be7 The outbox returns now some entries. 2022-09-28 04:48:23 +02:00
default
94ef803701 Timeline pages are also served. 2022-09-27 19:00:24 +02:00
default
66a7f633b3 Call process_tags() from msg_note(). 2022-09-27 18:33:25 +02:00
default
b6c4906c6a New function process_tags() (untested). 2022-09-27 18:20:25 +02:00
default
8ac32f0d81 'Accept' messages are processed. 2022-09-27 15:38:09 +02:00
default
05bf4b2c3c New function msg_follow(). 2022-09-27 15:28:08 +02:00
default
6144e0eeeb More work in msg_note(). 2022-09-27 14:50:13 +02:00
default
0b6540f503 Notes can be posted WOW!. 2022-09-27 14:07:36 +02:00
default
26a3b260d5 Started function not_really_markdown(). 2022-09-27 09:38:46 +02:00
default
ec9115717b 'Follow' messages are now processed. 2022-09-27 07:54:05 +02:00
default
e550e86afb Check the digest before enqueueing. 2022-09-27 07:16:46 +02:00
default
8f738e1417 Serve the actor as the correct content-type. 2022-09-26 12:29:26 +02:00
default
fd6f71bfe3 More work but signatures seem to still fail. 2022-09-26 11:19:45 +02:00
default
acc467c034 New function msg_admiration(). 2022-09-26 10:08:14 +02:00
default
f410e3a40a New function post. 2022-09-26 09:28:39 +02:00
default
c37a99b97c New function is_msg_public(). 2022-09-26 09:25:35 +02:00
default
e0e86d269a Renamed to recipient_list(). 2022-09-26 09:22:32 +02:00
default
46ee4a4a18 New function recipients(). 2022-09-26 09:22:05 +02:00
default
74aef6994a Link to local if the child id is from this actor. 2022-09-26 09:08:03 +02:00
default
5321295005 Resolve object id instead of discarding like or boost. 2022-09-26 07:19:45 +02:00
default
d1a2a7438d New metadata 'referrer', that contains an actor.
This field contains the actor that boosted an entry.
2022-09-26 07:13:39 +02:00
default
b5be6a0172 Return the correct content-type. 2022-09-26 00:01:19 +02:00
default
d86f6ee27f Backported from xs. 2022-09-25 22:57:18 +02:00
default
a63c9c24c1 Avoid crashing on empty q_items. 2022-09-25 21:55:29 +02:00
default
bf1ee12da2 More sign work (I'm tired). 2022-09-25 21:45:58 +02:00
default
e132ce5076 New function msg_actor(). 2022-09-25 21:02:47 +02:00
default
6f7f98ded3 Fixed a bug in the digest header. 2022-09-25 18:50:53 +02:00
default
6169932733 New function timeline_request(). 2022-09-25 18:28:15 +02:00
default
bb70101fec New function timeline_admire(). 2022-09-25 17:42:39 +02:00
default
4f328eec1f Some fixes to timeline_add(). 2022-09-25 09:07:43 +02:00
default
5792ef5d24 Process 'Create' messages (untested). 2022-09-25 07:58:25 +02:00
default
b070d2d8f8 The HTTP request headers are stored in a plain dict. 2022-09-25 07:42:57 +02:00
default
e9afd7cd13 More work. 2022-09-24 11:54:35 +02:00
default
a7202dcd1c More message work. 2022-09-24 11:04:35 +02:00
default
ea57b47264 Started creating messages. 2022-09-24 10:43:57 +02:00
default
a6712ba79a Also store the req object in enqueue_input(). 2022-09-24 10:03:27 +02:00
default
3df33c845d More ActivityPub work. 2022-09-23 23:49:09 +02:00
default
c181c57f56 New function enqueue_input(). 2022-09-23 23:09:09 +02:00
default
b4a4fa0b0d Fixed memleak. 2022-09-23 21:01:35 +02:00
default
6e6c315494 New function activitypub_get_handler(). 2022-09-23 20:59:19 +02:00
default
1d694a245a xs_httpd_request() also returns the payload. 2022-09-23 20:28:23 +02:00
default
bbf5471039 New function process_queue(). 2022-09-23 19:37:01 +02:00
default
cf59d68491 New functions send_to_inbox() and send_to_actor(). 2022-09-23 19:07:45 +02:00
default
6586be50a0 Fixed bug in actor_request(). 2022-09-23 18:46:30 +02:00
default
a0bcc4e6c0 Improved activitypub_request(). 2022-09-23 18:15:59 +02:00
default
bdc166111d [activitypub.c] New file. 2022-09-23 17:33:33 +02:00