"Fossies" - the Fresh Open Source Software Archive 
Member "tin-2.6.1/include/nntplib.h" (22 Dec 2021, 9034 Bytes) of package /linux/misc/tin-2.6.1.tar.xz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style:
standard) with prefixed line numbers and
code folding option.
Alternatively you can here
view or
download the uninterpreted source code file.
For more information about "nntplib.h" see the
Fossies "Dox" file reference documentation and the latest
Fossies "Diffs" side-by-side code changes report:
2.6.0_vs_2.6.1.
1 /*
2 * Project : tin - a Usenet reader
3 * Module : nntplib.h
4 * Author : I.Lea
5 * Created : 1991-04-01
6 * Updated : 2018-02-10
7 * Notes : nntp.h 1.5.11/1.6 with extensions for tin
8 *
9 * Copyright (c) 1991-2022 Iain Lea <iain@bricbrac.de>
10 * All rights reserved.
11 *
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
14 * are met:
15 *
16 * 1. Redistributions of source code must retain the above copyright notice,
17 * this list of conditions and the following disclaimer.
18 *
19 * 2. Redistributions in binary form must reproduce the above copyright
20 * notice, this list of conditions and the following disclaimer in the
21 * documentation and/or other materials provided with the distribution.
22 *
23 * 3. Neither the name of the copyright holder nor the names of its
24 * contributors may be used to endorse or promote products derived from
25 * this software without specific prior written permission.
26 *
27 * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
30 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
31 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
32 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
33 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
35 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
36 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
37 * POSSIBILITY OF SUCH DAMAGE.
38 */
39
40
41 #ifndef NNTPLIB_H
42 #define NNTPLIB_H 1
43
44 #ifndef NNTP_SERVER_FILE
45 # define NNTP_SERVER_FILE "/etc/nntpserver"
46 #endif /* !NNTP_SERVER_FILE */
47
48 #define NNTP_TCP_NAME "nntp"
49 #define NNTP_TCP_PORT "119"
50
51 /*
52 * # times to try and reconnect to server after timeout
53 */
54 #define NNTP_TRY_RECONNECT 2
55
56 /*
57 * @(#)Header: nntp.h,v 1.81 92/03/12 02:08:31 sob Exp $
58 *
59 * First digit:
60 *
61 * 1xx Informative message
62 * 2xx Command ok
63 * 3xx Command ok so far, continue
64 * 4xx Command was correct, but couldn't be performed
65 * for some specified reason.
66 * 5xx Command unimplemented, incorrect, or a
67 * program error has occurred.
68 *
69 * Second digit:
70 *
71 * x0x Connection, setup, miscellaneous
72 * x1x Newsgroup selection
73 * x2x Article selection
74 * x3x Distribution
75 * x4x Posting
76 */
77 #if 0 /* unused */
78 # define CHAR_INF '1'
79 # define CHAR_OK '2'
80 # define CHAR_CONT '3'
81 # define CHAR_ERR '4'
82 # define CHAR_FATAL '5'
83 #endif /* 0 */
84
85 /* TODO: cleanup against RFC 2980, RFC 3977, RFC 4643, RFC 6048, RFC 8054 */
86 #define INF_HELP 100 /* Help text on way */
87 #define INF_CAPABILITIES 101 /* Capability list follows */
88 #define INF_DATE 111 /* yyyymmddhhmmss Server date and time */
89
90 #define OK_CANPOST 200 /* Hello; you can post */
91 #define OK_NOPOST 201 /* Hello; you can't post */
92 #define OK_EXTENSIONS 202 /* extensions supported follow */
93 #define OK_GOODBYE 205 /* Closing connection */
94 #define OK_COMPRESS 206 /* Compression active */
95 #define OK_GROUP 211 /* Group selected */
96 #define OK_GROUPS 215 /* Newsgroups follow */
97 #define OK_MOTD 215 /* News motd follows */
98
99 #define OK_ARTICLE 220 /* Article (head & body) follows */
100 #define OK_HEAD 221 /* Head follows */
101 #define OK_XHDR 221 /* headers follow */
102 #define OK_XPAT 221 /* headers follow */
103 #define OK_BODY 222 /* Body follows */
104 #define OK_NOTEXT 223 /* No text sent -- stat, next, last */
105 #define OK_XOVER 224 /* .overview data follows */
106 #define OK_HDR 225 /* headers follow */
107 #define OK_NEWNEWS 230 /* New articles by message-id follow */
108 #define OK_NEWGROUPS 231 /* New newsgroups follow */
109 #define OK_XFERED 235 /* Article transferred successfully */
110 #define OK_POSTED 240 /* Article posted successfully */
111 #define OK_AUTHSYS 280 /* Authorization system ok */
112 #define OK_AUTH 281 /* Authorization (user/pass) ok */
113 #define OK_BIN 282 /* binary data follows */
114 #define OK_LIST 282 /* list follows */
115 #define OK_AUTH_SASL 283 /* authentication accepted (with success data) */
116
117 #define CONT_XFER 335 /* Continue to send article */
118 #define CONT_POST 340 /* Continue to post article */
119 #define NEED_AUTHINFO 380 /* authorization is required */
120 #define NEED_AUTHDATA 381 /* <type> authorization data required */
121 #define NEED_AUTHDATA_SASL 383 /* continue with SASL exchange */
122
123 #define ERR_GOODBYE 400 /* Have to hang up for some reason */
124 #define ERR_STATE 401 /* The client must change the state of the connection */
125 #define ERR_COMPRESS 403 /* Unable to activate compression */
126 #define ERR_NOGROUP 411 /* No such newsgroup */
127 #define ERR_NCING 412 /* Not currently in newsgroup */
128
129 #define ERR_NOCRNT 420 /* No current article selected */
130 #define ERR_NONEXT 421 /* No next article in this group */
131 #define ERR_NOPREV 422 /* No previous article in this group */
132 #define ERR_NOARTIG 423 /* No such article in this group */
133 #define ERR_NOART 430 /* No such article at all */
134 #define ERR_GOTIT 435 /* Already got that article, don't send */
135 #define ERR_XFERFAIL 436 /* Transfer failed */
136 #define ERR_XFERRJCT 437 /* Article rejected, don't resend */
137 #define ERR_NOPOST 440 /* Posting not allowed */
138 #define ERR_POSTFAIL 441 /* Posting failed */
139 #define ERR_NOAUTH 480 /* authorization required for command */
140 #define ERR_AUTHFAIL 481 /* Authentication failed/rejected */
141 #define ERR_AUTHSEQ 482 /* Authentication commands issued out of sequence or SASL protocol error */
142 #define ERR_ENCRYPT 483 /* encryption required */
143
144 #define ERR_COMMAND 500 /* Command not recognized */
145 #define ERR_CMDSYN 501 /* Command syntax error */
146 #define ERR_ACCESS 502 /* Access to server denied */
147 #define ERR_FAULT 503 /* Program fault, command not performed */
148 #define ERR_MOTD 503 /* No news motd file */
149 #define ERR_COMPRESS_ALG 503 /* Compression algorithm not supported */
150 #define ERR_AUTHBAD 580 /* Authorization Failed */
151
152 /*
153 * RFC 977 defines this; don't change it.
154 */
155 #define NNTP_STRLEN 512
156 /*
157 * RFC 3977 3.1
158 */
159 #define NNTP_GRPLEN 497
160
161 /*
162 * OVERVIEW.FMT field types
163 */
164 enum f_type { OVER_T_ERROR, OVER_T_INT, OVER_T_STRING, OVER_T_FSTRING };
165
166 /*
167 * CAPABILITIES
168 * remember to update init.c and nntplib.c:check_extensions() if you change
169 * t_capabilities
170 */
171 enum extension_type { NONE, CAPABILITIES, BROKEN };
172
173 enum sasl_types {
174 SASL_NONE = 0,
175 SASL_PLAIN = 1 << 0,
176 SASL_CRAM_MD5 = 1 << 1,
177 SASL_DIGEST_MD5 = 1 << 2,
178 SASL_GSSAPI = 1 << 3,
179 SASL_EXTERNAL = 1 << 4,
180 SASL_OTP = 1 << 5,
181 SASL_NTLM = 1 << 6,
182 SASL_LOGIN = 1 << 7
183 };
184 enum c_algorithms { COMPRESS_NONE, COMPRESS_DEFLATE };
185
186 struct t_capabilities {
187 enum extension_type type; /* NONE, CAPABILITIES, BROKEN */
188 unsigned int version; /* CAPABILITIES version */
189 t_bool mode_reader:1; /* MODE-READER: "MODE READER" */
190 t_bool reader:1; /* READER: "ARTICLE", "BODY", "DATE", "GROUP", "LAST", "LISTGROUP", "NEWGROUPS", "NEXT" */
191 t_bool post:1; /* POST */
192 t_bool list_active:1; /* LIST ACTIVE */
193 t_bool list_active_times:1; /* LIST ACTIVE.TIMES, optional */
194 t_bool list_distrib_pats:1; /* LIST DISTRIB.PATS, optional */
195 t_bool list_headers:1; /* LIST HEADERS */
196 char *headers_range; /* list of headers by range */
197 char *headers_id; /* list of headers by id */
198 t_bool list_newsgroups:1; /* LIST NEWSGROUPS */
199 t_bool list_overview_fmt:1; /* LIST OVERVIEW.FMT */
200 t_bool list_motd:1; /* LIST MOTD, "private" extension */
201 t_bool list_subscriptions:1; /* LIST SUBSCRIPTIONS, "private" extension, RFC 2980 */
202 t_bool list_distributions:1; /* LIST DISTRIBUTIONS, "private" extension, RFC 2980 */
203 t_bool list_moderators:1; /* LIST MODERATORS, "private" extension */
204 t_bool list_counts:1; /* LIST COUNTS, "private" extension */
205 t_bool xpat:1; /* XPAT, "private" extension, RFC 2980 */
206 t_bool hdr:1; /* HDR: "HDR", "LIST HEADERS" */
207 const char *hdr_cmd; /* [X]HDR */
208 t_bool over:1; /* OVER: "OVER", "LIST OVERVIEW.FMT" */
209 t_bool over_msgid:1; /* OVER: "OVER mid" */
210 const char *over_cmd; /* [X]OVER */
211 t_bool newnews:1; /* NEWNEWS */
212 char *implementation; /* IMPLEMENTATION */
213 t_bool starttls:1; /* STARTTLS */
214 t_bool authinfo_user:1; /* AUTHINFO USER/PASS */
215 t_bool authinfo_sasl:1; /* AUTHINFO SASL */
216 t_bool authinfo_state:1; /* AUTHINFO not supported in current state */
217 enum sasl_types sasl; /* SASL_NONE, SASL_PLAIN, SASL_CRAM_MD5, SASL_DIGEST_MD5, SASL_GSSAPI, SASL_EXTERNAL, SASL_OTP, SASL_NTLM, SASL_LOGIN */
218 t_bool compress:1; /* COMPRESS */
219 enum c_algorithms compress_algorithm; /* COMPRESS_NONE, COMPRESS_DEFLATE */
220 #if 0
221 t_bool streaming:1; /* STREAMING: "MODE STREAM", "CHECK", "TAKETHIS" */
222 t_bool ihave:1; /* IHAVE: "IHAVE" */
223 #endif /* 0 */
224 t_bool broken_listgroup:1; /* LISTGROUP doesn't select newsgroup */
225 };
226
227 #endif /* !NNTPLIB_H */