• Matthew Leach's avatar
    Add external socket launching support · e390b7b5
    Matthew Leach authored
    * src/process.c (connect_network_socket): Allow a pre-allocated socket
    descriptor to be used if passed to Emacs, avoiding the call to
    'socket' and 'bind'.
    (Fmake_network_process): Allow users to pass ':use-external-socket' in
    the parameter plist to use any sockets that have been passed to Emacs.
    (wait_reading_process_output): Call 'socket' and 'bind' every time.
    (syms_of_process): New symbol ':use-external-socket'.
    (set_external_socket_descriptor): New function.
    (external_sock_fd): New variable.
    * src/lisp.h: (set_external_socket_descriptor): New declaration.
    * src/emacs.c (main): Call 'sd_listen_fds' to read the number of sockets
    passed and call 'set_external_socket_descriptor' to set the external
    * src/Makefile.in: Add libsystemd library and C flags to the Emacs
    compilation options.
    * configure.ac: Add new default-on option "systemd" and check for
    libsystemd at configure time.
    * lisp/server.el (server-start): Set ':use-external-socket' to 't' when
    calling 'make-network-process'.
    * etc/NEWS: Document new socket-passing functionality and the configure
    option to disable systemd interaction.
    * doc/emacs/misc.texi (Emacs Server): Document systemd socket passing
    functionality and provide systemd unit examples.
    * doc/lispref/processes.texi (Network Processes): Document new
    'make-network-process' option ':use-external-socket'.
process.c 232 KB