emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] 01/01: * web-server: Don't use CL.


From: Stefan Monnier
Subject: [elpa] 01/01: * web-server: Don't use CL.
Date: Sun, 02 Nov 2014 05:13:15 +0000

monnier pushed a commit to branch master
in repository elpa.

commit 6b24b5795a00ccd75b8bfcfe62a60c6f3298ca69
Author: Stefan Monnier <address@hidden>
Date:   Sun Nov 2 01:13:11 2014 -0400

    * web-server: Don't use CL.
---
 packages/web-server/web-server.el |   77 +++++++++++++++++-------------------
 1 files changed, 36 insertions(+), 41 deletions(-)

diff --git a/packages/web-server/web-server.el 
b/packages/web-server/web-server.el
index 2e8f9e7..41ff18d 100644
--- a/packages/web-server/web-server.el
+++ b/packages/web-server/web-server.el
@@ -1,4 +1,4 @@
-;;; web-server.el --- Emacs Web Server
+;;; web-server.el --- Emacs Web Server  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 2013-2014 Free Software Foundation, Inc.
 
@@ -47,7 +47,6 @@
 (require 'mm-encode)              ; to look-up mime types for files
 (require 'url-util)               ; to decode url-encoded params
 (require 'eieio)
-(eval-when-compile (require 'cl))
 (require 'cl-lib)
 
 (defclass ws-server ()
@@ -137,7 +136,7 @@ function.
                         (goto-char (point-max))
                         (insert (format "%s\t%s\t%s\t%s"
                                         (format-time-string ws-log-time-format)
-                                        (first c) (second c) message))))))
+                                        (cl-first c) (cl-second c) 
message))))))
            network-args))
     (push server ws-servers)
     server))
@@ -162,7 +161,7 @@ function.
 
 (defun ws-parse-query-string (string)
   "Thin wrapper around `url-parse-query-string'."
-  (mapcar (lambda (pair) (cons (first pair) (second pair)))
+  (mapcar (lambda (pair) (cons (cl-first pair) (cl-second pair)))
           (url-parse-query-string string nil 'allow-newlines)))
 
 (defun ws-parse (proc string)
@@ -184,7 +183,7 @@ function.
             (credentials (match-string 2 string)))
         (list (cons :AUTHORIZATION
                     (cons protocol
-                          (case protocol
+                          (cl-case protocol
                             (:BASIC
                              (let ((cred (base64-decode-string credentials)))
                                (if (string-match ":" cred)
@@ -256,7 +255,7 @@ Return non-nil only when parsing is complete."
         (while (setq next-index (string-match delimiter pending index))
           (let ((tmp (+ next-index (length delimiter))))
             (if (= index next-index) ; double \r\n ends current run of headers
-                (case context
+                (cl-case context
                   ;; Parse URL data.
                   ;; http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4
                   (application/x-www-form-urlencoded
@@ -330,7 +329,7 @@ Return non-nil only when parsing is complete."
         (goto-char (point-max))
         (insert (format "%s\t%s\t%s\tWS-ERROR: %s"
                         (format-time-string ws-log-time-format)
-                        (first c) (second c)
+                        (cl-first c) (cl-second c)
                         (apply #'format msg args)))))
     (apply #'ws-send-500 proc msg args)))
 
@@ -441,13 +440,13 @@ See RFC6455."
                     (let ((place 0))
                       (apply #'+
                        (mapcar (lambda (bit)
-                                 (prog1 (if bit (expt 2 place) 0) (incf 
place)))
+                                 (prog1 (if bit (expt 2 place) 0) (cl-incf 
place)))
                                (reverse bits)))))
                   (bits (length)
                     (apply #'append
                            (mapcar (lambda (int) (int-to-bits int 8))
                                    (cl-subseq
-                                    pending index (incf index length))))))
+                                    pending index (cl-incf index length))))))
         (let (fin rsvs opcode mask pl mask-key)
           ;; Parse fin bit, rsvs bits and opcode
           (let ((byte (bits 1)))
@@ -455,7 +454,7 @@ See RFC6455."
                   rsvs (cl-subseq byte 1 4)
                   opcode
                   (let ((it (bits-to-int (cl-subseq byte 4))))
-                    (case it
+                    (cl-case it
                       (0 :CONTINUATION)
                       (1 :TEXT)
                       (2 :BINARY)
@@ -483,7 +482,8 @@ See RFC6455."
            ((= pl 126) (setq pl (bits-to-int (bits 2))))
            ((= pl 127) (setq pl (bits-to-int (bits 8)))))
           ;; unmask data
-          (when mask (setq mask-key (cl-subseq pending index (incf index 4))))
+          (when mask
+            (setq mask-key (cl-subseq pending index (cl-incf index 4))))
           (setq data (concat data
                              (ws-web-socket-mask
                               mask-key (cl-subseq pending index (+ index 
pl)))))
@@ -506,7 +506,7 @@ See RFC6455."
   "Frame STRING for web socket communication."
   (let* ((fin 1) ;; set to 0 if not final frame
          (len (length string))
-         (opcode (ecase (or opcode :TEXT) (:TEXT 1) (:BINARY 2))))
+         (opcode (cl-ecase (or opcode :TEXT) (:TEXT 1) (:BINARY 2))))
     ;; Does not do any masking which is only required of client communication
     (concat
      (cond
@@ -572,7 +572,7 @@ compressed using the command specified in `ws-gzip-cmd'."
       (set-process-plist proc
         (append
          (list :content-encoding
-               (ecase (intern content)
+               (cl-ecase (intern content)
                  ((compress x-compress) (ws-encoding-cmd-to-fn 
ws-compress-cmd))
                  ((deflate x-deflate)   (ws-encoding-cmd-to-fn ws-deflate-cmd))
                  ((gzip x-gzip)         (ws-encoding-cmd-to-fn ws-gzip-cmd))
@@ -586,7 +586,7 @@ compressed using the command specified in `ws-gzip-cmd'."
         (append
          (when (string= transfer "chunked") (list :ender "0\r\n\r\n"))
          (list :transfer-encoding
-               (ecase (intern transfer)
+               (cl-ecase (intern transfer)
                  (chunked  #'ws-chunk)
                  ((compress x-compress) (ws-encoding-cmd-to-fn 
ws-compress-cmd))
                  ((deflate x-deflate)   (ws-encoding-cmd-to-fn ws-deflate-cmd))
@@ -681,33 +681,28 @@ challenge.  Optional arguments UNAUTH and INVALID should 
be
 functions which are called on the request when no authentication
 information, or invalid authentication information are provided
 respectively."
-  (lexical-let ((handler handler)
-                (credentials credentials)
-                (realm realm)
-                (unauth unauth)
-                (invalid invalid))
-    (lambda (request)
-      (with-slots (process headers) request
-        (let ((auth (cddr (assoc :AUTHORIZATION headers))))
-          (cond
-           ;; no authentication information provided
-           ((not auth)
-            (if unauth
-                (funcall unauth request)
-              (ws-response-header process 401
-                (cons "WWW-Authenticate"
-                      (format "Basic realm=%S" (or realm "restricted")))
-                '("Content-type" . "text/plain"))
-              (process-send-string process "authentication required")))
-           ;; valid authentication information
-           ((string= (cdr auth) (cdr (assoc (car auth) credentials)))
-            (funcall handler request))
-           ;; invalid authentication information
-           (t
-            (if invalid
-                (funcall invalid request)
-              (ws-response-header process 403 '("Content-type" . "text/plain"))
-              (process-send-string process "invalid credentials")))))))))
+  (lambda (request)
+    (with-slots (process headers) request
+      (let ((auth (cddr (assoc :AUTHORIZATION headers))))
+        (cond
+         ;; no authentication information provided
+         ((not auth)
+          (if unauth
+              (funcall unauth request)
+            (ws-response-header process 401
+                                (cons "WWW-Authenticate"
+                                      (format "Basic realm=%S" (or realm 
"restricted")))
+                                '("Content-type" . "text/plain"))
+            (process-send-string process "authentication required")))
+         ;; valid authentication information
+         ((string= (cdr auth) (cdr (assoc (car auth) credentials)))
+          (funcall handler request))
+         ;; invalid authentication information
+         (t
+          (if invalid
+              (funcall invalid request)
+            (ws-response-header process 403 '("Content-type" . "text/plain"))
+            (process-send-string process "invalid credentials"))))))))
 
 (defun ws-web-socket-handshake (key)
   "Perform the handshake defined in RFC6455."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]