diff options
author | bptato <nincsnevem662@gmail.com> | 2024-03-15 22:13:02 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2024-03-15 22:13:02 +0100 |
commit | 63337efd3ad3b87bd0a5b42c3617918cb65205b1 (patch) | |
tree | b80583e1714dc3358873e54d40f13ab3f4e867ce /adapter | |
parent | 6391a9a2abde4e6a681cb0a1a1831d0c1b87026a (diff) | |
download | chawan-63337efd3ad3b87bd0a5b42c3617918cb65205b1.tar.gz |
data: content type fixes
* do not skip first 5 chars (this is legacy from when we used query strings) * allow practically anything but control chars (so we can use parameters)
Diffstat (limited to 'adapter')
-rw-r--r-- | adapter/protocol/data.nim | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/adapter/protocol/data.nim b/adapter/protocol/data.nim index 5f43f9da..e6c7318a 100644 --- a/adapter/protocol/data.nim +++ b/adapter/protocol/data.nim @@ -10,14 +10,12 @@ import utils/twtstr proc main() = let str = getEnv("MAPPED_URI_PATH") - const si = "data:".len # start index const iu = $int(ERROR_INVALID_URL) - var ct = str.until(',', si) - for c in ct: - if c notin AsciiAlphaNumeric and c != '/': - stdout.write("Cha-Control: ConnectionError " & iu & " invalid data URL") - return - let sd = si + ct.len + 1 # data start + var ct = str.until(',') + if AllChars - Ascii + Controls - {'\t', ' '} in ct: + stdout.write("Cha-Control: ConnectionError " & iu & " invalid data URL") + return + let sd = ct.len + 1 # data start let body = percentDecode(str, sd) if ct.endsWith(";base64"): try: |