NNTP
----
Subscribing to a foreign group from an NNTP server is rather easy.
You just specify `nntp' as method and the address of the NNTP server as
the, uhm, address.
If the NNTP server is located at a non-standard port, setting the
third element of the select method to this port number should allow you
to connect to the right port. You'll have to edit the group info for
that (Note:Foreign Groups).
The name of the foreign group can be the same as a native group. In
fact, you can subscribe to the same group from as many different servers
you feel like. There will be no name collisions.
The following variables can be used to create a virtual `nntp'
server:
`nntp-server-opened-hook'
is run after a connection has been made. It can be used to send
commands to the NNTP server after it has been contacted. By
default it sends the command `MODE READER' to the server with the
`nntp-send-mode-reader' function. This function should always be
present in this hook.
`nntp-authinfo-function'
This function will be used to send `AUTHINFO' to the NNTP server.
The default function is `nntp-send-authinfo', which looks through
your `~/.authinfo' (or whatever you've set the
`nntp-authinfo-file' variable to) for applicable entries. If none
are found, it will prompt you for a login name and a password. The
format of the `~/.authinfo' file is (almost) the same as the `ftp'
`~/.netrc' file, which is defined in the `ftp' manual page, but
here are the salient facts:
1. The file contains one or more line, each of which define one
server.
2. Each line may contain an arbitrary number of token/value
pairs.
The valid tokens include `machine', `login', `password',
`default'. In addition Gnus introduces two new tokens, not
present in the original `.netrc'/`ftp' syntax, namely `port'
and `force'. (This is the only way the `.authinfo' file
format deviates from the `.netrc' file format.) `port' is
used to indicate what port on the server the credentials
apply to and `force' is explained below.
Here's an example file:
machine news.uio.no login larsi password geheimnis
machine nntp.ifi.uio.no login larsi force yes
The token/value pairs may appear in any order; `machine' doesn't
have to be first, for instance.
In this example, both login name and password have been supplied
for the former server, while the latter has only the login name
listed, and the user will be prompted for the password. The
latter also has the `force' tag, which means that the authinfo
will be sent to the NNTP server upon connection; the default
(i.e., when there is not `force' tag) is to not send authinfo to
the NNTP server until the NNTP server asks for it.
You can also add `default' lines that will apply to all servers
that don't have matching `machine' lines.
default force yes
This will force sending `AUTHINFO' commands to all servers not
previously mentioned.
Remember to not leave the `~/.authinfo' file world-readable.
`nntp-server-action-alist'
This is a list of regexps to match on server types and actions to
be taken when matches are made. For instance, if you want Gnus to
beep every time you connect to innd, you could say something like:
(setq nntp-server-action-alist
'(("innd" (ding))))
You probably don't want to do that, though.
The default value is
'(("nntpd 1\\.5\\.11t"
(remove-hook 'nntp-server-opened-hook
'nntp-send-mode-reader)))
This ensures that Gnus doesn't send the `MODE READER' command to
nntpd 1.5.11t, since that command chokes that server, I've been
told.
`nntp-maximum-request'
If the NNTP server doesn't support NOV headers, this back end will
collect headers by sending a series of `head' commands. To speed
things up, the back end sends lots of these commands without
waiting for reply, and then reads all the replies. This is
controlled by the `nntp-maximum-request' variable, and is 400 by
default. If your network is buggy, you should set this to 1.
`nntp-connection-timeout'
If you have lots of foreign `nntp' groups that you connect to
regularly, you're sure to have problems with NNTP servers not
responding properly, or being too loaded to reply within reasonable
time. This is can lead to awkward problems, which can be helped
somewhat by setting `nntp-connection-timeout'. This is an integer
that says how many seconds the `nntp' back end should wait for a
connection before giving up. If it is `nil', which is the default,
no timeouts are done.
`nntp-server-hook'
This hook is run as the last step when connecting to an NNTP
server.
`nntp-open-connection-function'
This function is used to connect to the remote system. Four
pre-made functions are supplied:
`nntp-open-network-stream'
This is the default, and simply connects to some port or
other on the remote system.
`nntp-open-rlogin'
Does an `rlogin' on the remote system, and then does a
`telnet' to the NNTP server available there.
`nntp-open-rlogin'-related variables:
`nntp-rlogin-program'
Program used to log in on remote machines. The default
is `rsh', but `ssh' is a popular alternative.
`nntp-rlogin-parameters'
This list will be used as the parameter list given to
`rsh'.
`nntp-rlogin-user-name'
User name on the remote system.
`nntp-open-telnet'
Does a `telnet' to the remote system and then another `telnet'
to get to the NNTP server.
`nntp-open-telnet'-related variables:
`nntp-telnet-command'
Command used to start `telnet'.
`nntp-telnet-switches'
List of strings to be used as the switches to the
`telnet' command.
`nntp-telnet-user-name'
User name for log in on the remote system.
`nntp-telnet-passwd'
Password to use when logging in.
`nntp-telnet-parameters'
A list of strings executed as a command after logging in
via `telnet'.
`nntp-telnet-shell-prompt'
Regexp matching the shell prompt on the remote machine.
The default is `bash\\|\$ *\r?$\\|> *\r?'.
`nntp-open-telnet-envuser'
If non-`nil', the `telnet' session (client and server
both) will support the `ENVIRON' option and not prompt
for login name. This works for Solaris `telnet', for
instance.
`nntp-open-ssl-stream'
Opens a connection to a server over a "secure" channel. To
use this you must have SSLay installed
(`ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL', and you also need
`ssl.el' (from the W3 distribution, for instance). You then
define a server as follows:
;; Type `C-c C-c' after you've finished editing.
;;
;; "snews" is port 563 and is predefined
;; in our /etc/services
;;
(nntp "snews.bar.com"
(nntp-open-connection-function
nntp-open-ssl-stream)
(nntp-port-number "snews")
(nntp-address "snews.bar.com"))
`nntp-end-of-line'
String to use as end-of-line marker when talking to the NNTP
server. This is `\r\n' by default, but should be `\n' when using
`rlogin' to talk to the server.
`nntp-rlogin-user-name'
User name on the remote system when using the `rlogin' connect
function.
`nntp-address'
The address of the remote system running the NNTP server.
`nntp-port-number'
Port number to connect to when using the `nntp-open-network-stream'
connect function.
`nntp-buggy-select'
Set this to non-`nil' if your select routine is buggy.
`nntp-nov-is-evil'
If the NNTP server does not support NOV, you could set this
variable to `t', but `nntp' usually checks automatically whether
NOV can be used.
`nntp-xover-commands'
List of strings used as commands to fetch NOV lines from a server.
The default value of this variable is `("XOVER" "XOVERVIEW")'.
`nntp-nov-gap'
`nntp' normally sends just one big request for NOV lines to the
server. The server responds with one huge list of lines. However,
if you have read articles 2-5000 in the group, and only want to
read article 1 and 5001, that means that `nntp' will fetch 4999 NOV
lines that you will not need. This variable says how big a gap
between two consecutive articles is allowed to be before the
`XOVER' request is split into several request. Note that if your
network is fast, setting this variable to a really small number
means that fetching will probably be slower. If this variable is
`nil', `nntp' will never split requests. The default is 5.
`nntp-prepare-server-hook'
A hook run before attempting to connect to an NNTP server.
`nntp-warn-about-losing-connection'
If this variable is non-`nil', some noise will be made when a
server closes connection.
`nntp-record-commands'
If non-`nil', `nntp' will log all commands it sends to the NNTP
server (along with a timestamp) in the `*nntp-log*' buffer. This
is useful if you are debugging a Gnus/NNTP connection that doesn't
seem to work.