From 3a222c18c5ebbe3796b5f757eb4950ccda8042d2 Mon Sep 17 00:00:00 2001 From: Stelian Ionescu Date: Sat, 29 Dec 2007 04:39:29 +0100 Subject: [PATCH] Improve LOOKUP-PROTOCOL. Signed-off-by: Stelian Ionescu --- sockets/namedb/protocols.lisp | 10 +++++----- sockets/namedb/services.lisp | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/sockets/namedb/protocols.lisp b/sockets/namedb/protocols.lisp index d02d543..6e62c86 100644 --- a/sockets/namedb/protocols.lisp +++ b/sockets/namedb/protocols.lisp @@ -118,12 +118,12 @@ (defun lookup-protocol (protocol) "Lookup a protocol by name or number. Signals an UNKNOWN-PROTOCOL error if no protocol is found." - (when (keywordp protocol) - (setf protocol (string-downcase protocol))) - (let ((parsed-number (parse-number-or-nil protocol))) - (when parsed-number (setf protocol parsed-number))) + (check-type protocol (or unsigned-byte string keyword) "an unsigned-byte, a string or a keyword") (update-monitor *protocols-monitor*) - (let ((proto (etypecase protocol + (let ((protocol (or (and (keywordp protocol) (string-downcase protocol)) + (parse-number-or-nil protocol) + protocol)) + (proto (etypecase protocol (unsigned-byte (lookup-protocol-by-number protocol)) (string (lookup-protocol-by-name protocol))))) (if proto (values (protocol-number proto) diff --git a/sockets/namedb/services.lisp b/sockets/namedb/services.lisp index e8ccf1e..10734c0 100644 --- a/sockets/namedb/services.lisp +++ b/sockets/namedb/services.lisp @@ -183,4 +183,4 @@ of :TCP, :UDP or :ANY." (defun ensure-numerical-service (service &optional (protocol :tcp)) (etypecase service (tcp-port service) - (t (lookup-service service protocol)))) + (t (nth-value 0 (lookup-service service protocol))))) -- 2.11.4.GIT