AUTHINFO GENERIC

Introduction

AUTHINFO GENERIC is an NNTP command used when a news client connects to a news server. It is designed to allow arbitrary authentication mechanisms to be used without having to modify either the server or the client software, except in the first place to actually support AUTHINFO GENERIC.

This web page collects work I've done to support it in various newsreaders. Please send any additional relevant information you have to me at rjk@greenend.org.uk.

Gnus

I wrote a Perl script called authinfo-kludge [1]. The first thing you should do is install this somewhere on your path and make it executable. Test it by executing it with the name of your news server on the command line and with NNTPAUTH set in your environment. You should get a 200 response after it authenticates; for example:

: chiark; echo $NNTPAUTH
md5cookie1way richard
: chiark; authinfo-kludge news.chiark.greenend.org.uk
200 Proxy NNRP service ready (posting ok)

Type "quit" to terminate the connection:

: chiark; echo $NNTPAUTH
md5cookie1way richard
: chiark; authinfo-kludge news.chiark.greenend.org.uk
200 Proxy NNRP service ready (posting ok)
quit
205 goodbye.
: chiark; 

Next you should add a few lines of elisp to your .gnus (or .emacs) to enable access to it. I took this code from the Gnus sources and modified it a bit to suit my purposes. Really there should be an open-connection-function which supports running arbitrary programs.

(defun nntp-open-authinfo-kludge (buffer)
  "Open a connection to SERVER using authinfo-kludge."
  (let ((proc (start-process
                 "nntpd" buffer "authinfo-kludge" nntp-address)))
    (set-buffer buffer)
    (nntp-wait-for-string "^\r*200")
    (beginning-of-line)
    (delete-region (point-min) (point))
    proc))

Finally you must specify it in a select method. For example, here is what I use:

(setq gnus-select-method
      '(nntp "proxy to chiark"
             (nntp-address "news.chiark.greenend.org.uk")
             (nntp-open-connection-function nntp-open-authinfo-kludge)))

I've checked this approach with various pieces of software:

Platform Emacs Gnus Status
Debian Emacs 19.34.1 5.3 fails
Debian Emacs 20.7.2 5.8.8 ok
Debian Emacs 21.2.1 5.8.8 ok
Debian lenny Emacs 22.2.1 5.11 ok
Debian XEmacs 20.4 5.5 ok
Debian XEmacs 21.1.10 5.8.3 ok
Debian XEmacs 21.4 Oort ok

2001-08-02: posting when using authinfo-kludge should now work. Emacs executes commands in a tty, which by default mangles line ending characters. authinfo-kludge now calls stty to fix this.

2003-04-13: now supports recent versions of Perl with brain-damaged default close-on-exec policy.

[1] Incidentally, I pronounce "kludge" to rhyme with "fudge" and "grudge". So there.

slrn

I have a patch against slrn 0.9.8.0 which enables AUTHINFO GENERIC support. It seems to work for me. I've mailed it to slrn-user@lists.sourceforge.net.

tin

I'm told that tin supports AUTHINFO GENERIC (at least in 1.8.3), invoked as tin -r -A.

Other Newsreaders

trn seems to support AUTHINFO GENERIC natively. I'm told that tin supports it. Please mail me details of any other newsreaders that support it. The authinfo-kludge script that I use with Gnus might prove useful in adapting other newsreaders.

Further Information

Copyright © 2000, 2001, 2002, 2007, 2008, 2009 Richard Kettlewell

RJK | Contents