From f248fc9e6706ce0cf3681266cf1cc10cc2b7e20f Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Wed, 26 Jun 2024 13:47:56 +0200 Subject: [PATCH] web/server: use woo as server component, + fixing stream access; + other fixes --- core/core.lisp | 2 +- scopes-web.asd | 3 ++- web/server.lisp | 6 +++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/core/core.lisp b/core/core.lisp index 69d9888..91f0085 100644 --- a/core/core.lisp +++ b/core/core.lisp @@ -15,7 +15,7 @@ (defclass action-spec () ((pattern :reader pattern :initarg :pattern :initform nil) - (handlers :reader handlers :initarg :handlers))) + (handlers :accessor handlers :initarg :handlers))) (defun select (msg acts) (let ((h (message:head-as-list msg)) diff --git a/scopes-web.asd b/scopes-web.asd index 9f66847..69adb24 100644 --- a/scopes-web.asd +++ b/scopes-web.asd @@ -6,7 +6,8 @@ :version "0.0.1" :homepage "https://www.cyberconcepts.org" :description "Web client and server functionality." - :depends-on (:clack :dexador :lack :lack-component :lack-app-file :quri + :depends-on (:clack :dexador :flexi-streams + :lack :lack-component :lack-app-file :quri :scopes-core) :components ((:file "web/client") (:file "web/server")) diff --git a/web/server.lisp b/web/server.lisp index 9b5230a..561ceaf 100644 --- a/web/server.lisp +++ b/web/server.lisp @@ -22,6 +22,7 @@ ;;;; listener = server process (defun app (ctx env) + ;(print env) (funcall (select-app ctx env))) (defun start (ctx) @@ -30,6 +31,7 @@ (clack:clackup #'(lambda (env) (app ctx env)) :port (parse-integer (port cfg)) :address (address cfg) + :server :woo :silent t)))) (defun stop (ctx) @@ -86,7 +88,9 @@ (mapcar #'(lambda (e) (as-keyword e)) (getf env :message-head))) (defun post-data (env) - (quri.decode:url-decode-params (read-line (getf env :raw-body)))) + (let* ((raw (getf env :raw-body)) + (str (read-line (flexi-streams:make-flexi-stream raw)))) + (quri.decode:url-decode-params str))) (defun plist (alst) (let ((a2 (mapcar #'(lambda (p) (cons (as-keyword (car p)) (cdr p))) alst)))