ietf-nntp Formal syntax of NNTP commands
Paul Overell <paulo@turnpike.com> Tue, 02 September 1997 14:44 UTC
Received: from cnri by ietf.org id aa08201; 2 Sep 97 10:44 EDT
Received: from announcer.academ.com (majordomo@ANNOUNCER.ACADEM.COM [198.137.249.60]) by cnri.reston.va.us (8.8.5/8.7.3) with ESMTPid KAA23860 for <ietf-archive@cnri.reston.va.us>; Tue, 2 Sep 1997 10:48:03 -0400 (EDT)
Received: (from majordomo@localhost) by announcer.academ.com (8.8.5/8.8.5) id JAA24080; Tue, 2 Sep 1997 09:43:07 -0500 (CDT)
Received: from academ.com (root@ACADEM.COM [198.137.249.2]) by announcer.academ.com (8.8.5/8.8.5) with ESMTP id JAA24075 for <ietf-nntp@ANNOUNCER.ACADEM.COM>; Tue, 2 Sep 1997 09:43:05 -0500 (CDT)
Received: from demon.net (internal.mail.demon.net [193.195.224.3]) by academ.com (8.8.5/8.8.5) with ESMTP id JAA05757 for <ietf-nntp@academ.com>; Tue, 2 Sep 1997 09:43:03 -0500 (CDT)
Received: from pillar.turnpike.com (pillar.turnpike.com [194.70.55.2]) by demon.net with SMTP id PAA22799 for <ietf-nntp@academ.com>; Tue, 2 Sep 1997 15:43:00 +0100 (BST)
Message-ID: <PxJ8jHANWCD0QAKh@turnpike.com>
Date: Tue, 02 Sep 1997 15:41:17 +0100
To: ietf-nntp@academ.com
From: Paul Overell <paulo@turnpike.com>
Subject: ietf-nntp Formal syntax of NNTP commands
MIME-Version: 1.0
X-Mailer: Turnpike Version 3.04 <U2yaxlNz9m7tpk5wwwfqeW1so7>
Sender: owner-ietf-nntp@academ.com
Precedence: bulk
I would like to offer this formal syntax of the NNTP commands for inclusion in the next draft. I have tried to represent as closely as possible the commands described in draft-ietf-nntpext-base-01.txt. The only liberty that I have taken is to allow extraneous whitespace before a command's CRLF. The text is silent on this matter but current NNTP implementations seem to allow it. Draft 1, Paul Overell <paulo@turnpike.com>, Turnpike Ltd ----------------------------------------------------------- NNTP command syntax specified in Augmented BNF for Syntax Specifications: ABNF (draft-ieft-drums-abnt-03.txt) This syntax defines the non-terminal "command". The non-terminal "parameter" is used for command parameters whose syntax is specified elsewhere. The syntax is in alphabetical order. Note that ABNF strings are case insensitive. article-command = "ARTICLE" [1*WSP (msg-id / article-number)] *WSP CRLF article-number = 1*16DIGIT augument = parameter ; excluding sequence ".." authenticator = parameter ; excluding sequence ".." authinfo-generic-command = "AUTHINFO" 1*WSP "GENERIC" 1*WSP authenticator *(1*WSP argument) *WSP CRLF authinfo-pass-command = "AUTHINFO" 1*WSP "PASS" 1*WSP password *WSP CRLF authinfo-user-command = "AUTHINFO" 1*WSP "USER" 1*WSP username *WSP CRLF body-command = "BODY" [1*WSP (msg-id / article-number)] *WSP CRLF charset = parameter charset-command = "CHARSET" [1*WSP charset] *WSP CRLF command = article-command / authinfo-generic-command / authinfo-pass-command / authinfo-user-command / body-command / charset-command / date-command / group-command / head-command / help-command / ihave-command / last-command / list-active-times-command / list-distrib-pats-command / list-distributions-command / list-extensions-command / list-newsgroups-command / list-overview-fmt-command / list-subscriptions-command / list-command / listgroup-command / mode-reader-command / newgroups-command / newnews-command / next-command / over-command / pat-command / post-command / quit-command / stat-command CR = %x0D CRLF = CR LF date-command = "DATE" *WSP CRLF date = 6*8DIGIT DIGIT = %x30-39 distribution = parameter group-command = "GROUP" 1*WSP newsgroup *WSP CRLF head-command = "HEAD" [1*WSP (msg-id / article-number)] *WSP CRLF header = parameter help-command = "HELP" *WSP CRLF HT = %x09 ihave-command = "IHAVE" 1*WSP msg-id *WSP CRLF last-command = "LAST" *WSP CRLF LF = %x0A list-active-times-command = "LIST" 1*WSP "ACTIVE.TIMES" [1*WSP wildmat] *WSP CRLF list-command = "LIST" [1*WSP "ACTIVE" [1*WSP wildmat]] *WSP CRLF list-distrib-pats-command = "LIST" 1*WSP "DISTRIB.PATS" *WSP CRLF list-distributions-command = "LIST" 1*WSP "DISTRIBUTIONS" *WSP CRLF list-extensions-command = "LIST" 1*WSP "EXTENSIONS" *WSP CRLF list-newsgroups-command = "LIST" 1*WSP "NEWSGROUPS" [1*WSP wildmat] *WSP CRLF list-overview-fmt-command = "LIST" 1*WSP "OVERVIEW.FMT" *WSP CRLF list-subscriptions-command = "LIST" 1*WSP "SUBSCRIPTIONS" *WSP CRLF listgroup-command = "LISTGROUP" [1*WSP newsgroup] *WSP CRLF mode-reader-command = "MODE" 1*WSP "READER" *WSP CRLF msg-id = <defined in RFC822> newgroups-command = "NEWGROUPS" 1*WSP date 1*WSP time [1*WSP "GMT"] [1*WSP "<" wildmat ">"] *WSP CRLF newnews-command = "NEWNEWS" 1*WSP newsgroup *("," newsgroup) 1*WSP date 1*WSP time [1*WSP "GMT"] [1*WSP "<" distribution *("," distribution) ">"] *WSP CRLF newsgroup = parameter next-command = "NEXT" *WSP CRLF over-command = "OVER" [1*WSP range] *WSP CRLF parameter = 1*(%x21-FF) ; generic command parameter password = parameter pat-command = "PAT" 1*WSP header 1*WSP (range / msg-id) *(1*WSP wildmat) *WSP CRLF post-command = "POST" *WSP CRLF quit-command = "QUIT" *WSP CRLF range = article-number ["-" [article-number]] SP = %x20 stat-command = "STAT" [1*WSP (msg-id / article-number)] *WSP CRLF time = 6DIGIT username = parameter wildmat = 1*("*" / "?" / wildmat-exact / wildmat-set / "\" %x21-FF) wildmat-exact = %x21-29 / %x2B-3E / %x40-5A / %x5D-FF ; exclude space * ? [ \ wildmat-non-hyphen = %x21-2C / %x2E-FF ; exclude space - wildmat-set = "[" ["^"] ["]" / "-"] *(wildmat-non-hypen ["-" wildmat-non-hypen]) ["-"] "]" WSP = SP / HT -- Paul Overell T U R N P I K E Ltd
- ietf-nntp Formal syntax of NNTP commands Paul Overell