commit 3ddf76c

default  ·  2023-02-07 09:29:06 +0000 UTC
parent 67f2d43
New function send_to_inbox_raw().
3 files changed,  +30, -8
M snac.h
+16, -4
 1@@ -160,14 +160,16 @@ int timeline_request(snac *snac, char **id, d_char **wrk)
 2 }
 3 
 4 
 5-int send_to_inbox(snac *snac, char *inbox, char *msg, d_char **payload, int *p_size, int timeout)
 6+int send_to_inbox_raw(const char *keyid, const char *seckey,
 7+                  const xs_str *inbox, const xs_dict *msg,
 8+                  xs_val **payload, int *p_size, int timeout)
 9 /* sends a message to an Inbox */
10 {
11     int status;
12-    d_char *response;
13-    xs *j_msg = xs_json_dumps_pp(msg, 4);
14+    xs_dict *response;
15+    xs *j_msg = xs_json_dumps_pp((xs_dict *)msg, 4);
16 
17-    response = http_signed_request(snac, "POST", inbox,
18+    response = http_signed_request_raw(keyid, seckey, "POST", inbox,
19         NULL, j_msg, strlen(j_msg), &status, payload, p_size, timeout);
20 
21     xs_free(response);
22@@ -176,6 +178,16 @@ int send_to_inbox(snac *snac, char *inbox, char *msg, d_char **payload, int *p_s
23 }
24 
25 
26+int send_to_inbox(snac *snac, const xs_str *inbox, const xs_dict *msg,
27+                  xs_val **payload, int *p_size, int timeout)
28+/* sends a message to an Inbox */
29+{
30+    char *seckey = xs_dict_get(snac->key, "secret");
31+
32+    return send_to_inbox_raw(snac->actor, seckey, inbox, msg, payload, p_size, timeout);
33+}
34+
35+
36 d_char *get_actor_inbox(snac *snac, char *actor)
37 /* gets an actor's inbox */
38 {
+3, -3
 1@@ -295,14 +295,14 @@ static void *job_thread(void *arg)
 2 {
 3     long long pid = (long long)arg;
 4 
 5-    srv_debug(1, xs_fmt("job thread %ld started", pid));
 6+    srv_debug(0, xs_fmt("job thread %ld started", pid));
 7 
 8     for (;;) {
 9         xs *job = NULL;
10 
11         job_wait(&job);
12 
13-        srv_debug(1, xs_fmt("job thread %ld wake up", pid));
14+        srv_debug(0, xs_fmt("job thread %ld wake up", pid));
15 
16         if (job == NULL)
17             break;
18@@ -322,7 +322,7 @@ static void *job_thread(void *arg)
19         }
20     }
21 
22-    srv_debug(1, xs_fmt("job thread %ld stopped", pid));
23+    srv_debug(0, xs_fmt("job thread %ld stopped", pid));
24 
25     return NULL;
26 }
M snac.h
+11, -1
 1@@ -142,6 +142,12 @@ xs_dict *dequeue(const char *fn);
 2 void purge(snac *snac);
 3 void purge_all(void);
 4 
 5+xs_dict *http_signed_request_raw(const char *keyid, const char *seckey,
 6+                            const char *method, const char *url,
 7+                            xs_dict *headers,
 8+                            const char *body, int b_size,
 9+                            int *status, xs_str **payload, int *p_size,
10+                            int timeout);
11 xs_dict *http_signed_request(snac *snac, const char *method, const char *url,
12                             xs_dict *headers,
13                             const char *body, int b_size,
14@@ -168,7 +174,11 @@ d_char *msg_update(snac *snac, char *object);
15 
16 int activitypub_request(snac *snac, char *url, d_char **data);
17 int actor_request(snac *snac, char *actor, d_char **data);
18-int send_to_inbox(snac *snac, char *inbox, char *msg, d_char **payload, int *p_size, int timeout);
19+int send_to_inbox_raw(const char *keyid, const char *seckey,
20+                  const xs_str *inbox, const xs_dict *msg,
21+                  xs_val **payload, int *p_size, int timeout);
22+int send_to_inbox(snac *snac, const xs_str *inbox, const xs_dict *msg,
23+                  xs_val **payload, int *p_size, int timeout);
24 d_char *get_actor_inbox(snac *snac, char *actor);
25 int send_to_actor(snac *snac, char *actor, char *msg, d_char **payload, int *p_size, int timeout);
26 int is_msg_public(snac *snac, char *msg);