From e116a5d1f558c14160afebbaeac969a53af6a089 Mon Sep 17 00:00:00 2001 From: frosty Date: Tue, 24 Feb 2026 12:01:02 -0500 Subject: add image proxying --- src/Routes/Images.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/Routes/Images.c') diff --git a/src/Routes/Images.c b/src/Routes/Images.c index f10554e..a4770c5 100644 --- a/src/Routes/Images.c +++ b/src/Routes/Images.c @@ -231,8 +231,23 @@ int images_handler(UrlParams *params) { xmlChar *rurl = tit_node ? xmlGetProp(tit_node, (const xmlChar *)"href") : NULL; if (iurl && strlen((char *)iurl) > 0) { + char *proxy_url = NULL; + CURL *esc_curl = curl_easy_init(); + if (esc_curl) { + char *encoded = curl_easy_escape(esc_curl, (char *)iurl, 0); + if (encoded) { + size_t proxy_len = strlen("/proxy?url=") + strlen(encoded) + 1; + proxy_url = malloc(proxy_len); + if (proxy_url) { + snprintf(proxy_url, proxy_len, "/proxy?url=%s", encoded); + } + curl_free(encoded); + } + curl_easy_cleanup(esc_curl); + } + image_matrix[image_count] = malloc(sizeof(char *) * 4); - image_matrix[image_count][0] = strdup((char *)iurl); + image_matrix[image_count][0] = proxy_url ? proxy_url : strdup((char *)iurl); image_matrix[image_count][1] = strdup(title ? (char *)title : "Image"); image_matrix[image_count][2] = strdup(rurl ? (char *)rurl : "#"); image_matrix[image_count][3] = strdup(full_url ? (char *)full_url : "#"); -- cgit v1.2.3