Subject: bug#9909: emacsclient -a "" -s server-name does not start/connect to named server

From: Dan Nicolaescu <[email-masked]>
Date: Sun, 30 Oct 2011 18:35:49 -0400

Gregor Zattler <[email-masked]> writes:

> Hi emacs developers,
>
> emacsclient -a "" 
> starts a new server if there is none before and connects to it.
>
> I would expect that emacsclient -a "" -s my-server-name behaves the
> same but starts a server with server-name my-server-name and connects
> to this specific emacs server.
>
> But 
>
> emacsclient.emacs-snapshot -a "" -s my-server-name
> does not start a server but instead says:
>     emacsclient.emacs-snapshot: can't find socket; have you started the
>     server?
>     To start the server in Emacs, type "M-x server-start".
>     Error: Could not start the Emacs daemon
>
> ps (1) shows no emacs server
>
>
> while 
>
> emacsclient.emacs23 -a "" -s my-server-name 
> starts a server but is not able to connect and says at the end of the
> output:
>
>     Starting Emacs daemon.
>     Emacs daemon should have started, trying to connect again
>     emacsclient.emacs23: can't find socket; have you started the server?
>     To start the server in Emacs, type "M-x server-start".
>     Error: Cannot connect even after starting the Emacs daemon
>     
>     
> ps (1) shows 
>     emacs --daemon=????t)????d)??

This regressions seems to have been introduced by change 105655.
In set_local_socket the value of socket_name is destroyed in case of
failing to connect to the server.  That value is needed for starting the
daemon.