Subject: bug#38079: On Windows tramp hangs after server-start is called

From: Wanrong Lin <[email-masked]>
Date: Tue, 5 Nov 2019 19:52:59 -0500

On Windows, after M-x server-start, tramp no longer works. When I tried 
to connect to a "pscp" remote Linux host, it just hangs at the message 
"Remote prompt found" (something like that).

Today I finally figured out what the problem is, and put in a work 
around as following:

;; On Windows, after "server-start" is called, somehow (system-name) 
will return lower case host name. If the original
;; (system-name) returns upper case host name now 
tramp-restricted-shell-hosts-alist will be out-of-date and cause
;; tramp not to function properly.
(defadvice server-start (after update-restricted-host-list last activate)
   (setf tramp-restricted-shell-hosts-alist
         (when (memq system-type '(windows-nt))
           (list (concat "\\`" (regexp-quote (system-name)) "\\'")))))

But the proper fix should be to make sure (system-name) always returns 
the same string consistently. I found it is this sexp in "server-start" 
function that changes the return value of (system-name):

       (setq server-process
         (apply #'make-network-process ....))

This bug has bothered me for a long time. Even Emacs 26.3 still has it 
(although I am still using 26.2 for daily work). I hope this can lead to 
a fix that saves some frustration for other fellow Emacs users.

Here is my set up:

In GNU Emacs 26.2 (build 1, x86_64-w64-mingw32)
  of 2019-04-13 built on CIRROCUMULUS
Repository revision: fd1b34bfba8f3f6298df47c8e10b61530426f749

Warren