Function: erc-dcc-server
erc-dcc-server is a byte-compiled function defined in erc-dcc.el.gz.
Signature
(erc-dcc-server NAME FILTER SENTINEL)
Documentation
Start listening on a port for an incoming DCC connection.
Returns the newly created subprocess, or nil.
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc-dcc.el.gz
(defun erc-dcc-server (name filter sentinel)
"Start listening on a port for an incoming DCC connection.
Returns the newly created subprocess, or nil."
(let ((port (or (and erc-dcc-port-range (car erc-dcc-port-range)) t))
(upper (and erc-dcc-port-range (cdr erc-dcc-port-range)))
process)
(while (not process)
(condition-case err
(progn
(setq process
(make-network-process :name name
:buffer nil
:host (erc-dcc-host)
:service port
:noquery nil
:filter filter
:sentinel sentinel
:log #'erc-dcc-server-accept
:server t))
(when (processp process)
(when (fboundp 'set-process-coding-system)
(set-process-coding-system process 'binary 'binary))))
(file-error
(unless (and (string= "Cannot bind server socket" (nth 1 err))
(string= "address already in use" (downcase (nth 2 err))))
(signal (car err) (cdr err)))
(setq port (1+ port))
(unless (< port upper)
(error "No available ports in erc-dcc-port-range")))))
process))