[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/url-scgi f868b8be51 05/48: Support using xmlrpc over a
From: |
ELPA Syncer |
Subject: |
[elpa] externals/url-scgi f868b8be51 05/48: Support using xmlrpc over a file bound socket |
Date: |
Fri, 28 Oct 2022 22:58:28 -0400 (EDT) |
branch: externals/url-scgi
commit f868b8be51a0ac4bbb3e14c839b08472d1f7ecbc
Author: Stefan Kangas <skangas@skangas.se>
Commit: Stefan Kangas <skangas@skangas.se>
Support using xmlrpc over a file bound socket
---
url-scgi.el | 60 +++++++++++++++++++++++++++++++-----------------------------
1 file changed, 31 insertions(+), 29 deletions(-)
diff --git a/url-scgi.el b/url-scgi.el
index 09dc501d09..4e3f98cfe5 100644
--- a/url-scgi.el
+++ b/url-scgi.el
@@ -64,19 +64,11 @@
url-callback-arguments))
(apply url-callback-function url-callback-arguments))
-(defun url-scgi-get-connection (host port)
- "Set up a new connection and return it."
- (let ((buf (generate-new-buffer " *url-scgi-temp*")))
- ;; `url-open-stream' needs a buffer in which to do things
- ;; like authentication. But we use another buffer afterwards.
- (unwind-protect
- (let ((proc (url-open-stream host buf host port)))
- ;; url-open-stream might return nil.
- (when (processp proc)
- ;; Drop the temp buffer link before killing the buffer.
- (set-process-buffer proc nil))
- proc)
- (kill-buffer buf))))
+(defun url-scgi-handle-home-dir (filename)
+ (expand-file-name
+ (if (string-match "^/~" filename)
+ (substring filename 1)
+ filename)))
;;;###autoload
(defun url-scgi (url callback cbargs)
@@ -85,32 +77,42 @@
(declare (special url-scgi-connection-opened
url-callback-function
url-callback-arguments))
+
(let* ((host (url-host url))
- (port (url-port url))
- (connection (url-scgi-get-connection host port))
- (buffer (generate-new-buffer
- (format " *scgi %s:%d*" host port))))
+ (port (url-port url))
+ (filename (url-filename url))
+ (buffer (generate-new-buffer
+ (format " *scgi %s:%d%s*" host port filename)))
+ (connection (cond
+ ((string-match "^/." filename)
+ ;; local socket
+ (let ((filename (url-scgi-handle-home-dir filename)))
+ (make-network-process :name "scgi"
+ :buffer buffer
+ :remote filename)))
+ (t
+ ;; networked scgi
+ (url-open-stream host buffer host port)))))
(if (not connection)
- ;; Failed to open the connection for some reason
- (progn
- (kill-buffer buffer)
- (setq buffer nil)
- (error "Could not create connection to %s:%d" host port))
+ ;; Failed to open the connection for some reason
+ (progn
+ (kill-buffer buffer)
+ (setq buffer nil)
+ (error "Could not create connection to %s:%d" host port))
(with-current-buffer buffer
- (setq url-current-object url
- mode-line-format "%b [%s]")
+ (setq url-current-object url
+ mode-line-format "%b [%s]")
(dolist (var '(url-scgi-connection-opened
url-callback-function
url-callback-arguments))
(set (make-local-variable var) nil))
- (setq url-callback-function callback
- url-callback-arguments cbargs
- url-scgi-connection-opened nil)
+ (setq url-callback-function callback
+ url-callback-arguments cbargs
+ url-scgi-connection-opened nil)
- (set-process-buffer connection buffer)
- (pcase (process-status connection)
+ (pcase (process-status connection)
(`connect
;; Asynchronous connection
(set-process-sentinel connection 'url-scgi-async-sentinel))
- [elpa] branch externals/url-scgi created (now ce5e1d5fd1), ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 2d43fa147c 02/48: Add url-scgi.el: SCGI Uniform Resource Locator retrieval code, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 103dd508e1 03/48: url-scgi.el: Support Emacs 24, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 62a6cf9305 07/48: Update documentation and add new doc/ directory, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 248962b6d6 08/48: url-scgi: Fix scgi socket on absolute path, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 8f5564a783 10/48: url-scgi: untabify, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 60154c472f 01/48: Add COPYING file containing the GPLv3., ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 3686dad2bd 04/48: Cleanups in url-scgi.el, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi f868b8be51 05/48: Support using xmlrpc over a file bound socket,
ELPA Syncer <=
- [elpa] externals/url-scgi 1f76fba6a2 06/48: Use lexical binding, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi efd8de5ec8 09/48: url-scgi: fix compile time warning, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 44ee68353b 12/48: url-scgi: Add first unit tests, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 37f3ce8fa6 22/48: Fix some comments and docstrings, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 66a7d265ff 13/48: Fix the workaround for bug in xml-rpc.el, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi a5fa019e7f 21/48: url-scgi: Fix cl-check-type bug on Emacs 26.1, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 2b22e6ffa9 11/48: url-scgi: Fix naming to not clutter namespace, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi a6ceb9f71d 14/48: Silence byte compiler warnings, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi e9e8323d86 15/48: Use new 'cl-lib rather than old 'cl, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 0d031d258f 18/48: Bump copyright year to 2017, ELPA Syncer, 2022/10/28