aboutsummaryrefslogtreecommitdiffstats
path: root/src/config
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2025-08-29 21:45:42 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2025-08-29 21:45:42 +0000
commit1679a62c2cd2cdfed10a0f699cbc29e123dcb4e2 (patch)
treeca69a633bcba73f025da8a51c32f4944fd44e3a4 /src/config
parentc548d06d3857295b72c1f993d15480a21935a9a7 (diff)
downloadtipidee-1679a62c2cd2cdfed10a0f699cbc29e123dcb4e2.tar.gz
Add realtime and norealtime options, cork/uncork responses
Diffstat (limited to 'src/config')
-rw-r--r--src/config/lexparse.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/config/lexparse.c b/src/config/lexparse.c
index e87c501..b8d8a5d 100644
--- a/src/config/lexparse.c
+++ b/src/config/lexparse.c
@@ -55,6 +55,8 @@ enum directivevalue_e
T_NOAUTH,
T_AUTOCHUNK,
T_NOAUTOCHUNK,
+ T_REALTIME,
+ T_NOREALTIME,
T_FILETYPE,
T_CUSTOMRESPONSE
} ;
@@ -365,7 +367,7 @@ static inline void parse_rproxy (char const *s, size_t const *word, size_t n, ch
static void parse_bitattr (char const *s, size_t const *word, size_t n, char const *domain, size_t domainlen, mdt const *md, uint8_t bit, int h)
{
- static char const *const attr[3][2] = { { "noncgi", "cgi" }, { "nonnph", "nph", }, { "noauth", "basic-auth" } } ;
+ static char const *const attr[4][2] = { { "noncgi", "cgi" }, { "nonnph", "nph", }, { "noauth", "basic-auth" }, { "norealtime", "realtime" } } ;
if (n != 1)
strerr_dief8x(1, "too ", n > 1 ? "many" : "few", " arguments to directive ", attr[bit][h], " in file ", g.storage.s + md->filepos, " line ", md->linefmt) ;
if (!domain)
@@ -505,9 +507,11 @@ static inline void process_line (char const *s, size_t const *word, size_t n, st
{ .name = "noautochunk", .value = T_NOAUTOCHUNK },
{ .name = "noncgi", .value = T_NONCGI },
{ .name = "nonnph", .value = T_NONNPH },
+ { .name = "norealtime", .value = T_NOREALTIME },
{ .name = "noredirect", .value = T_NOREDIRECT },
{ .name = "nph", .value = T_NPH },
{ .name = "nph-prefix", .value = T_NPHPREFIX },
+ { .name = "realtime", .value = T_REALTIME },
{ .name = "redirect", .value = T_REDIRECT },
{ .name = "rproxy", .value = T_RPROXY },
} ;
@@ -606,6 +610,12 @@ static inline void process_line (char const *s, size_t const *word, size_t n, st
case T_NOAUTOCHUNK :
parse_bitattr(s, word, n, domain->s, domain->len, md, 3, 0) ;
break ;
+ case T_REALTIME :
+ parse_bitattr(s, word, n, domain->s, domain->len, md, 4, 1) ;
+ break ;
+ case T_NOREALTIME :
+ parse_bitattr(s, word, n, domain->s, domain->len, md, 4, 0) ;
+ break ;
case T_FILETYPE :
parse_filetype(s, word, n, domain->s, domain->len, md) ;
break ;