# 15 NNTP: Newsgroup Protocol

▼ |  | Net: Networking Libraries

1 | URLs and HTTP
2 | URI Codec: Encoding and Decoding URIs
3 | Web Socket
4 | FTP: Client Downloading
5 | Send URL: Opening a Web Browser
6 | SMTP: Sending E-Mail
7 | sendmail: Sending E-Mail
8 | Headers: Parsing and Constructing
9 | IMAP: Reading Mail
10 | POP3: Reading Mail
11 | MIME: Decoding Internet Data
12 | Base 64: Encoding and Decoding
13 | Quoted-Printable: Encoding and Decoding
14 | DNS: Domain Name Service Queries
15 | NNTP: Newsgroup Protocol
16 | TCP: Unit and Signature
17 | TCP Redirect: tcp^ via Channels
18 | SSL Unit: tcp^ via SSL
19 | CGI Scripts
20 | Cookie: HTTP Client Storage
| Bibliography
| Index

► | 15 | NNTP: Newsgroup Protocol

15.1 | Connection and Operations
15.2 | Exceptions
15.3 | NNTP Unit
15.4 | NNTP Signature

On this page:

15.1`` Connection and Operations
communicator
connect-to-server
disconnect-from-server
open-news-group
authenticate-user
head-of-message
body-of-message
newnews-since
generic-message-command
make-desired-header
extract-desired-headers
15.2`` Exceptions
nntp
unexpected-response
bad-status-line
premature-close
bad-newsgroup-line
non-existent-group
article-not-in-group
no-group-selected
article-not-found
authentication-rejected
15.3`` NNTP Unit
nntp@
15.4`` NNTP Signature
nntp^

top ← prev up next →

### 15`` NNTP: Newsgroup Protocol

( require net/nntp )

The net/nntp module provides tools to access Usenet group via NNTP [RFC977].

#### 15.1`` Connection and Operations

> > struct

> > ( struct |  | communicator (sender receiver server port)
> > |  | #:extra-constructor-name make-communicator )

> sender : output-port?
> receiver : input-port?
> server : string?
> port : ( integer-in 0 65535)

Once a connection to a Usenet server has been established, its state is stored in a communicator, and other procedures take communicators as an argument.

> > procedure

> > ( connect-to-server server [port-number]) → communicator?

> server : string?
> port-number : ( integer-in 0 65535) = 119

Connects to server at port-number.

> > procedure

> > ( disconnect-from-server communicator) → void?

> communicator : communicator?

Disconnects an NNTP communicator.

> > procedure

> > ( open-news-group communicator newsgroup)

> →

> exact-nonnegative-integer?
> exact-nonnegative-integer?
> exact-nonnegative-integer?

> communicator : communicator?
> newsgroup : string?

Selects the newsgroup of an NNTP connection. The returned values are the total number of articles in the group, the first available article, and the last available article.

> > procedure

> > ( authenticate-user |  | communicator |  |  |  |
> > |  | username |  |  |  |
> > |  | password) |  | → |  | void?

> communicator : communicator?
> username : string?
> password : string?

Tries to authenticate a user with the original authinfo command (uses cleartext). The password argument is ignored if the server does not ask for it.

> > procedure

> > ( head-of-message |  | communicator |  |  |  |
> > |  | message-index) |  | → |  | ( listof string? )

> communicator : communicator?
> message-index : exact-nonnegative-integer?

Given a message number, returns its header lines.

> > procedure

> > ( body-of-message |  | communicator |  |  |  |
> > |  | message-index) |  | → |  | ( listof string? )

> communicator : communicator?
> message-index : exact-nonnegative-integer?

Given a message number, returns the body of the message.

> > procedure

> > ( newnews-since communicator message-index) → ( listof string? )

> communicator : communicator?
> message-index : exact-nonnegative-integer?

Implements the NEWNEWS command (often disabled on servers).

> > procedure

> > (( generic-message-command |  | command |  |  |  |
> > |  | ok-code) |  |  |  |
> > |  | communicator |  |  |  |
> > |  | message-index) |  | → |  | ( listof string? )

> command : string?
> ok-code : exact-integer?
> communicator : communicator?
> message-index : exact-nonnegative-integer?

Useful primitive for implementing head-of-message, body-of-message and other similar commands.

> > procedure

> > ( make-desired-header tag-string) → regexp?

> tag-string : string?

Takes a header field’s tag and returns a regexp to match the field

> > procedure

> > ( extract-desired-headers header desireds) → ( listof string? )

> header : ( listof string? )
> desireds : ( listof regexp? )

Given a list of header lines and of desired regexps, returns the header lines that match any of the desireds.

#### 15.2`` Exceptions

> > struct

> > ( struct |  | nntp exn ()
> > |  | #:extra-constructor-name make-nntp )

The supertype of all NNTP exceptions.

> > struct

> > ( struct |  | unexpected-response nntp (code text)
> > |  | #:extra-constructor-name make-unexpected-response )

> code : exact-integer?
> text : string?

Raised whenever an unexpected response code is received. The text field holds the response text sent by the server.

> > struct

> > ( struct |  | bad-status-line nntp (line)
> > |  | #:extra-constructor-name make-bad-status-line )

> line : string?

Raised for mal-formed status lines.

> > struct

> > ( struct |  | premature-close nntp (communicator)
> > |  | #:extra-constructor-name make-premature-close )

> communicator : communicator?

Raised when a remote server closes its connection unexpectedly.

> > struct

> > ( struct |  | bad-newsgroup-line nntp (line)
> > |  | #:extra-constructor-name make-bad-newsgroup-line )

> line : string?

Raised when the newsgroup line is improperly formatted.

> > struct

> > ( struct |  | non-existent-group nntp (group)
> > |  | #:extra-constructor-name make-non-existent-group )

> group : string?

Raised when the server does not recognize the name of the requested group.

> > struct

> > ( struct |  | article-not-in-group nntp (article)
> > |  | #:extra-constructor-name make-article-not-in-group )

> article : exact-integer?

Raised when an article is outside the server’s range for that group.

> > struct

> > ( struct |  | no-group-selected nntp ()
> > |  | #:extra-constructor-name make-no-group-selected )

Raised when an article operation is used before a group has been selected.

> > struct

> > ( struct |  | article-not-found nntp (article)
> > |  | #:extra-constructor-name make-article-not-found )

> article : exact-integer?

Raised when the server is unable to locate the article.

> > struct

> > ( struct |  | authentication-rejected nntp ()
> > |  | #:extra-constructor-name make-authentication-rejected )

Raised when the server reject an authentication attempt.

#### 15.3`` NNTP Unit

> > > nntp@ and nntp^ are deprecated. They exist for backward-compatibility and will likely be removed in the future. New code should use the net/nntp module.

( require net/nntp-unit )

> > value

> > nntp@ : unit?

Imports nothing, exports nntp^.

#### 15.4`` NNTP Signature

( require net/nntp-sig )

> > signature

> > nntp^ : signature

Includes everything exported by the net/nntp module.

top ← prev up next →