diff --git a/src/gui/client/certificates-window.lisp b/src/gui/client/certificates-window.lisp index d772693..f6fe866 100644 --- a/src/gui/client/certificates-window.lisp +++ b/src/gui/client/certificates-window.lisp @@ -48,7 +48,7 @@ (loop for selection in selections do (let ((url (gui:id selection))) (ev:with-enqueued-process-and-unblock () - (comm:make-request :gemini-delete-certificate + (comm:make-request :gemini-delete-client-certificate 1 url)) (let ((new-rows (all-rows))) diff --git a/src/gui/client/main-window.lisp b/src/gui/client/main-window.lisp index 356496a..8c004f9 100644 --- a/src/gui/client/main-window.lisp +++ b/src/gui/client/main-window.lisp @@ -401,7 +401,7 @@ (when (gui:ask-yesno meta :title (_ "Server certificate error") :parent main-window) - (cev:enqueue-request-and-wait-results :gemini-delete-certificate + (cev:enqueue-request-and-wait-results :gemini-delete-tofu-certificate 1 ev:+maximum-event-priority+ iri) @@ -1071,7 +1071,7 @@ local file paths." (when (gui:ask-yesno (_ "The certificate for this address has changed, replace the old with the one I just received?") :title (_ "Server certificate error") :parent main-window) - (cev:enqueue-request-and-wait-results :gemini-delete-certificate + (cev:enqueue-request-and-wait-results :gemini-delete-tofu-certificate 1 ev:+maximum-event-priority+ iri) diff --git a/src/gui/server/public-api-gemini-certificates.lisp b/src/gui/server/public-api-gemini-certificates.lisp index 279480a..fc7ea75 100644 --- a/src/gui/server/public-api-gemini-certificates.lisp +++ b/src/gui/server/public-api-gemini-certificates.lisp @@ -45,11 +45,11 @@ certificate-row))))))) (make-instance 'gemini-certificates :contents certificates-with-hash))) -(defun invalidate-cached-value (cache-key) - (db:cache-invalidate cache-key) +(defun gemini-delete-client-certificate (url) + (db:cache-invalidate url) t) -(defun gemini-delete-certificate (iri) +(defun gemini-delete-tofu-certificate (iri) (let ((host (uri:host (iri:iri-parse iri)))) (db:tofu-delete host))) diff --git a/src/gui/server/public-api.lisp b/src/gui/server/public-api.lisp index d021c13..3fef560 100644 --- a/src/gui/server/public-api.lisp +++ b/src/gui/server/public-api.lisp @@ -35,6 +35,10 @@ (db:purge-history) t) +(defun invalidate-cached-value (cache-key) + (db:cache-invalidate cache-key) + t) + (defmacro prepare-rpc (&body body) `(let ((rpc:*function-db* '())) (gen-rpc "complete-net-address" @@ -74,9 +78,12 @@ 'gemini-save-url-db-history "iri" 0) (gen-rpc "gemini-certificates" 'gemini-certificates) - (gen-rpc "gemini-delete-certificate" - 'gemini-delete-certificate - "cache-key" 0) + (gen-rpc "gemini-delete-tofu-certificate" + 'gemini-delete-tofu-certificate + "host" 0) + (gen-rpc "gemini-delete-client-certificate" + 'gemini-delete-client-certificate + "url" 0) (gen-rpc "gemini-import-certificate" 'gemini-import-certificate "uri" 0 diff --git a/src/misc-utils.lisp b/src/misc-utils.lisp index 8384383..fbab58d 100644 --- a/src/misc-utils.lisp +++ b/src/misc-utils.lisp @@ -65,12 +65,18 @@ (apply #'dbg format-string parameters) (uiop:quit)) -(defun dbg-stdout (format-string &rest parameters) +(defun debug-stream (stream format-string &rest parameters) ((lambda (a b) - (apply #'format t a b)) + (apply #'format stream a b)) (concatenate 'string format-string "~%") parameters)) +(defun dbg-stdout (format-string &rest parameters) + (apply #'debug-stream *standard-output* format-string parameters)) + +(defun dbg-stderr (format-string &rest parameters) + (apply #'debug-stream *error-output* format-string parameters)) + (defun dump-hash-table (table) (let ((res '())) (maphash (lambda (k v) (push (format nil "~s -> ~s~%" k v) res)) table) diff --git a/src/package.lisp b/src/package.lisp index 53702c9..7dd3fa0 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -148,6 +148,7 @@ :dbg :dbg-and-quit :dbg-stdout + :dbg-stderr :code->char :char->code :swap