Function: dns-read-name
dns-read-name is a byte-compiled function defined in dns.el.gz.
Signature
(dns-read-name &optional BUFFER)
Source Code
;; Defined in /usr/src/emacs/lisp/net/dns.el.gz
(defun dns-read-name (&optional buffer)
(let ((ended nil)
(name nil)
length)
(while (not ended)
(setq length (dns-read-bytes 1))
(if (= 192 (logand length (ash 3 6)))
(let ((offset (+ (* (logand 63 length) 256)
(dns-read-bytes 1))))
(save-excursion
(when buffer
(set-buffer buffer))
(goto-char (1+ offset))
(setq ended (dns-read-name buffer))))
(if (zerop length)
(setq ended t)
(push (buffer-substring (point)
(progn (forward-char length) (point)))
name))))
(if (stringp ended)
(if (null name)
ended
(concat (mapconcat #'identity (nreverse name) ".") "." ended))
(mapconcat #'identity (nreverse name) "."))))