Function: nsm-save-host
nsm-save-host is a byte-compiled function defined in nsm.el.gz.
Signature
(nsm-save-host HOST PORT STATUS WHAT PROBLEMS PERMANENCY)
Source Code
;; Defined in /usr/src/emacs/lisp/net/nsm.el.gz
(defun nsm-save-host (host port status what problems permanency)
(let* ((id (nsm-id host port))
(saved-fingerprints (plist-get (nsm-host-settings id) :fingerprints))
(fingerprints (cl-delete-duplicates
(append saved-fingerprints
(list (or (nsm-fingerprint status)
;; Plain connection.
:none)))
:test #'string=))
(saved (list :id id :fingerprints fingerprints)))
(when (or (eq what 'conditions)
nsm-save-host-names)
(nconc saved (list :host (format "%s:%s" host port))))
;; We either want to save/update the fingerprint or the conditions
;; of the certificate/unencrypted connection.
(cond
((eq what 'conditions)
(plist-put saved :conditions problems))
;; Make sure the conditions are not erased when we save a
;; fingerprint
((eq what 'fingerprint)
;; Store additional protocol settings.
(let ((settings (nsm-host-settings id)))
(when settings
(setq saved settings))
(if (plist-get saved :conditions)
(plist-put saved :conditions
(cl-delete-duplicates
(nconc (plist-get saved :conditions) problems)))
(plist-put saved :conditions problems)))))
(if (eq permanency 'always)
(progn
(nsm-remove-temporary-setting id)
(nsm-remove-permanent-setting id)
(push saved nsm-permanent-host-settings)
(nsm-write-settings))
(nsm-remove-temporary-setting id)
(push saved nsm-temporary-host-settings))))