These functions are called direct because they open a direct connection between your machine and the NNTP server. The behavior of these functions is also affected by commonly understood variables (see Common Variables).
nntp-open-network-stream
This is the default, and simply connects to some port or other on the remote system. If both Emacs and the server supports it, the connection will be upgraded to an encrypted STARTTLS connection automatically.
network-only
The same as the above, but don’t do automatic STARTTLS upgrades.
nntp-open-tls-stream
Opens a connection to a server over a secure channel. To use this you must have GnuTLS installed. You then define a server as follows:
;; "nntps" is port 563 and is predefined in our /etc/services ;; however, ‘gnutls-cli -p’ doesn’t like named ports. ;; (nntp "snews.bar.com" (nntp-open-connection-function nntp-open-tls-stream) (nntp-port-number 563) (nntp-address "snews.bar.com"))
nntp-open-ssl-stream
Opens a connection to a server over a secure channel. To use this you must have OpenSSL installed. You then define a server as follows:
;; "snews" is port 563 and is predefined in our /etc/services ;; however, ‘openssl s_client -port’ doesn’t like named ports. ;; (nntp "snews.bar.com" (nntp-open-connection-function nntp-open-ssl-stream) (nntp-port-number 563) (nntp-address "snews.bar.com"))
nntp-open-netcat-stream
Opens a connection to an NNTP server using the netcat
program. You might wonder why this function exists, since we have
the default nntp-open-network-stream
which would do the job. (One
of) the reason(s) is that if you are behind a firewall but have direct
connections to the outside world thanks to a command wrapper like
runsocks
, you can use it like this:
(nntp "socksified" (nntp-pre-command "runsocks") (nntp-open-connection-function nntp-open-netcat-stream) (nntp-address "the.news.server"))
With the default method, you would need to wrap your whole Emacs session, which is not a good idea.
nntp-open-telnet-stream
Like nntp-open-netcat-stream
, but uses telnet
rather than
netcat
. telnet
is a bit less robust because of things
like line-end-conversion, but sometimes netcat is simply
not available. The previous example would turn into:
(nntp "socksified" (nntp-pre-command "runsocks") (nntp-open-connection-function nntp-open-telnet-stream) (nntp-address "the.news.server") (nntp-end-of-line "\n"))