about summary refs log tree commit diff stats
path: root/src/server
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2023-12-13 12:08:05 +0100
committerbptato <nincsnevem662@gmail.com>2023-12-13 12:56:28 +0100
commitab203acf554993d15e37604773f160c84b4d8252 (patch)
tree45428aa45bc751f788cc5c52c32b15bb8a2363f1 /src/server
parentbf761bcb6dcc5288a86aa5e8c2b67df3f0df056b (diff)
downloadchawan-ab203acf554993d15e37604773f160c84b4d8252.tar.gz
Move http out of main binary
Now it is (technically) no longer mandatory to link to libcurl.

Also, Chawan is at last completely protocol and network backend
agnostic :)

* Implement multipart requests in local CGI
* Implement simultaneous download of CGI data
* Add REQUEST_HEADERS env var with all headers
* cssparser: add a missing check in consumeEscape
Diffstat (limited to 'src/server')
-rw-r--r--src/server/buffer.nim12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/server/buffer.nim b/src/server/buffer.nim
index cdbfc16b..77404c7c 100644
--- a/src/server/buffer.nim
+++ b/src/server/buffer.nim
@@ -315,7 +315,7 @@ func getClickable(styledNode: StyledNode): Element =
       return Element(styledNode.node)
     styledNode = stylednode.parent
 
-func submitForm(form: HTMLFormElement, submitter: Element): Option[Request]
+proc submitForm(form: HTMLFormElement, submitter: Element): Option[Request]
 
 func canSubmitOnClick(fae: FormAssociatedElement): bool =
   if fae.form == nil:
@@ -330,7 +330,7 @@ func canSubmitOnClick(fae: FormAssociatedElement): bool =
       return true
   return false
 
-func getClickHover(styledNode: StyledNode): string =
+proc getClickHover(styledNode: StyledNode): string =
   let clickable = styledNode.getClickable()
   if clickable != nil:
     case clickable.tagType
@@ -1084,7 +1084,7 @@ proc dispatchEvent(buffer: Buffer, ctype: string, elem: Element): tuple[
       break
   return (called, canceled)
 
-const BufferSize = 4096
+const BufferSize = 16384
 
 proc finishLoad(buffer: Buffer): EmptyPromise =
   if buffer.state != LOADING_PAGE:
@@ -1148,7 +1148,7 @@ proc onload(buffer: Buffer) =
   of LOADING_PAGE:
     discard
   let op = buffer.sstream.getPosition()
-  var s = newSeqUninitialized[uint8](buffer.readbufsize)
+  var s {.noInit.}: array[16384, uint8]
   try:
     buffer.sstream.setPosition(op + buffer.available)
     let n = buffer.istream.readData(addr s[0], buffer.readbufsize)
@@ -1222,7 +1222,7 @@ proc serializePlainTextFormData(kvs: seq[(string, string)]): string =
     result &= "\r\n"
 
 # https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#form-submission-algorithm
-func submitForm(form: HTMLFormElement, submitter: Element): Option[Request] =
+proc submitForm(form: HTMLFormElement, submitter: Element): Option[Request] =
   if form.constructingEntryList:
     return
   let entrylist = form.constructEntryList(submitter).get(@[])
@@ -1352,7 +1352,7 @@ type ReadSuccessResult* = object
   open*: Option[Request]
   repaint*: bool
 
-func implicitSubmit(input: HTMLInputElement): Option[Request] =
+proc implicitSubmit(input: HTMLInputElement): Option[Request] =
   let form = input.form
   if form != nil and form.canSubmitImplicitly():
     var defaultButton: Element