summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--activitypub.c14
-rw-r--r--xs_curl.h11
2 files changed, 22 insertions, 3 deletions
diff --git a/activitypub.c b/activitypub.c
index bcb733a..104110d 100644
--- a/activitypub.c
+++ b/activitypub.c
@@ -2724,6 +2724,12 @@ int process_user_queue(snac *snac)
2724} 2724}
2725 2725
2726 2726
2727xs_str *str_status(int status)
2728{
2729 return xs_fmt("%d %s", status, status < 0 ? xs_curl_strerr(status) : http_status_text(status));
2730}
2731
2732
2727void process_queue_item(xs_dict *q_item) 2733void process_queue_item(xs_dict *q_item)
2728/* processes an item from the global queue */ 2734/* processes an item from the global queue */
2729{ 2735{
@@ -2780,7 +2786,9 @@ void process_queue_item(xs_dict *q_item)
2780 else 2786 else
2781 payload = xs_str_new(NULL); 2787 payload = xs_str_new(NULL);
2782 2788
2783 srv_log(xs_fmt("output message: sent to inbox %s %d%s", inbox, status, payload)); 2789 xs *s_status = str_status(status);
2790
2791 srv_log(xs_fmt("output message: sent to inbox %s (%s)%s", inbox, s_status, payload));
2784 2792
2785 if (!valid_status(status)) { 2793 if (!valid_status(status)) {
2786 retries++; 2794 retries++;
@@ -2798,10 +2806,10 @@ void process_queue_item(xs_dict *q_item)
2798 || status == HTTP_STATUS_UNPROCESSABLE_CONTENT 2806 || status == HTTP_STATUS_UNPROCESSABLE_CONTENT
2799 || status < 0) 2807 || status < 0)
2800 /* explicit error: discard */ 2808 /* explicit error: discard */
2801 srv_log(xs_fmt("output message: error %s %d", inbox, status)); 2809 srv_log(xs_fmt("output message: error %s (%s)", inbox, s_status));
2802 else 2810 else
2803 if (retries > queue_retry_max) 2811 if (retries > queue_retry_max)
2804 srv_log(xs_fmt("output message: giving up %s %d", inbox, status)); 2812 srv_log(xs_fmt("output message: giving up %s (%s)", inbox, s_status));
2805 else { 2813 else {
2806 /* requeue */ 2814 /* requeue */
2807 enqueue_output_raw(keyid, seckey, msg, inbox, retries, status); 2815 enqueue_output_raw(keyid, seckey, msg, inbox, retries, status);
diff --git a/xs_curl.h b/xs_curl.h
index f0cfd98..657644a 100644
--- a/xs_curl.h
+++ b/xs_curl.h
@@ -9,6 +9,8 @@ xs_dict *xs_http_request(const char *method, const char *url,
9 const xs_str *body, int b_size, int *status, 9 const xs_str *body, int b_size, int *status,
10 xs_str **payload, int *p_size, int timeout); 10 xs_str **payload, int *p_size, int timeout);
11 11
12const char *xs_curl_strerr(int errnum);
13
12#ifdef XS_IMPLEMENTATION 14#ifdef XS_IMPLEMENTATION
13 15
14#include <curl/curl.h> 16#include <curl/curl.h>
@@ -194,6 +196,15 @@ xs_dict *xs_http_request(const char *method, const char *url,
194 return response; 196 return response;
195} 197}
196 198
199
200const char *xs_curl_strerr(int errnum)
201{
202 CURLcode cc = errnum < 0 ? -errnum : errnum;
203
204 return curl_easy_strerror(cc);
205}
206
207
197#endif /* XS_IMPLEMENTATION */ 208#endif /* XS_IMPLEMENTATION */
198 209
199#endif /* _XS_CURL_H */ 210#endif /* _XS_CURL_H */