Function: url-http--get-referer
url-http--get-referer is a byte-compiled function defined in
url-http.el.gz.
Signature
(url-http--get-referer URL)
Source Code
;; Defined in /usr/src/emacs/lisp/url/url-http.el.gz
(defun url-http--get-referer (url)
(url-http-debug "getting referer from buffer: buffer:%S target-url:%S lastloc:%S" (current-buffer) url url-current-lastloc)
(when url-current-lastloc
(if (not (url-p url-current-lastloc))
(setq url-current-lastloc (url-generic-parse-url url-current-lastloc)))
(let ((referer (copy-sequence url-current-lastloc)))
(setf (url-host referer) (puny-encode-domain (url-host referer)))
(let ((referer-string (url-recreate-url referer)))
(when (and (not (memq url-privacy-level '(low high paranoid)))
(not (and (listp url-privacy-level)
(memq 'lastloc url-privacy-level))))
;; url-privacy-level allows referer. But url-lastloc-privacy-level
;; may restrict who we send it to.
(cl-case url-lastloc-privacy-level
(host-match
(let ((referer-host (url-host referer))
(url-host (url-host url)))
(when (string= referer-host url-host)
referer-string)))
(domain-match
(let ((referer-domain (url-domain referer))
(url-domain (url-domain url)))
(when (and referer-domain
url-domain
(string= referer-domain url-domain))
referer-string)))
(otherwise
referer-string)))))))