src/server/daemon/rewrite.c

changeset 647
ffbc5076b4bf
parent 646
f64ebb0c5fa9
child 651
ed74879c7041
--- a/src/server/daemon/rewrite.c	Mon Dec 01 21:16:45 2025 +0100
+++ b/src/server/daemon/rewrite.c	Mon Dec 01 21:21:54 2025 +0100
@@ -28,6 +28,31 @@
 
 #include "rewrite.h"
 
+
+RewriteRule* rewrite_rule_create(const CxAllocator *a, cxmutstr regex, cxmutstr url) {
+    regex_t reg;
+    if(regex.ptr) {
+        if(regcomp(&reg, regex.ptr, REG_EXTENDED)) {
+            log_ereport(LOG_FAILURE, "rewrite: cannot compile regex: %s", regex.ptr);
+            return NULL;
+        }
+    }
+    
+    RewriteRule *rule = cxMalloc(a, sizeof(RewriteRule));
+    if(!rule) {
+        return NULL;
+    }
+    rule->has_regex = regex.ptr != NULL;
+    rule->regex = reg;
+    rule->url = string_template_compile(a, cx_strcast(url));
+    if(!rule->url) {
+        return NULL;
+    }
+    
+    return rule;
+}
+
+
 typedef struct RVar {
     cxstring str;
     regmatch_t *match;

mercurial