summaryrefslogtreecommitdiff
path: root/include/mailutils/sys/nntp.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/mailutils/sys/nntp.h')
-rw-r--r--include/mailutils/sys/nntp.h221
1 files changed, 0 insertions, 221 deletions
diff --git a/include/mailutils/sys/nntp.h b/include/mailutils/sys/nntp.h
deleted file mode 100644
index 99a006e39..000000000
--- a/include/mailutils/sys/nntp.h
+++ /dev/null
@@ -1,221 +0,0 @@
-/* GNU Mailutils -- a suite of utilities for electronic mail
- Copyright (C) 2004-2019 Free Software Foundation, Inc.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 3 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General
- Public License along with this library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _MAILUTILS_SYS_NNTP_H
-#define _MAILUTILS_SYS_NNTP_H
-
-#include <sys/types.h>
-#include <mailutils/nntp.h>
-#include <mailutils/errno.h>
-
-#ifdef DMALLOC
-# include <dmalloc.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Response codes. */
-
-#define MU_NNTP_RESP_CODE_HELP_FOLLOW 100
-#define MU_NNTP_RESP_CODE_SERVER_DATE 111
-
-#define MU_NNTP_RESP_CODE_POSTING_ALLOWED 200
-#define MU_NNTP_RESP_CODE_POSTING_PROHIBITED 201
-#define MU_NNTP_RESP_CODE_EXTENSIONS_FOLLOW 202
-
-#define MU_NNTP_RESP_CODE_CLOSING 205
-#define MU_NNTP_RESP_CODE_GROUP_SELECTED 211
-
-#define MU_NNTP_RESP_CODE_LIST_FOLLOW 215
-
-#define MU_NNTP_RESP_CODE_ARTICLE_FOLLOW 220
-#define MU_NNTP_RESP_CODE_HEAD_FOLLOW 221
-#define MU_NNTP_RESP_CODE_BODY_FOLLOW 222
-#define MU_NNTP_RESP_CODE_ARTICLE_FOUND 223
-
-#define MU_NNTP_RESP_CODE_NEWNEWS_FOLLOW 230
-#define MU_NNTP_RESP_CODE_NEWGROUPS_FOLLOW 231
-#define MU_NNTP_RESP_CODE_TRANSFER_OK 235
-
-#define MU_NNTP_RESP_CODE_ARTICLE_RECEIVED 240
-
-#define MU_NNTP_RESP_CODE_TRANSFER_ARTICLE 335
-#define MU_NNTP_RESP_CODE_SEND_ARTICLE 340
-
-#define MU_NNTP_RESP_CODE_TEMP_UNAVAILABLE 400
-#define MU_NNTP_RESP_CODE_NO_EXTENSION 402
-#define MU_NNTP_RESP_CODE_NO_ARTICLE_WITH_MID 430
-#define MU_NNTP_RESP_CODE_NO_GROUP_SELECTED 412
-#define MU_NNTP_RESP_CODE_NUMBER_INVALID 420
-#define MU_NNTP_RESP_CODE_NO_ARTICLE 422
-#define MU_NNTP_RESP_CODE_NO_ARTICLE_IN_RANGE 423
-#define MU_NNTP_RESP_CODE_ARTICLE_NOT_WANTED 435
-#define MU_NNTP_RESP_CODE_TRANSFER_NOT_POSSIBLE 436
-#define MU_NNTP_RESP_CODE_TRANSFER_REJECTED 437
-#define MU_NNTP_RESP_CODE_POSTING_NOT_PERMITTED 440
-#define MU_NNTP_RESP_CODE_POSTING_FAILED 441
-#define MU_NNTP_RESP_CODE_PERM_UNAVAILABLE 502
-
-enum mu_nntp_state
- {
- MU_NNTP_NO_STATE,
- MU_NNTP_CONNECT, MU_NNTP_GREETINGS,
- MU_NNTP_MODE_READER, MU_NNTP_MODE_READER_ACK,
- MU_NNTP_LIST_EXTENSIONS, MU_NNTP_LIST_EXTENSIONS_ACK, MU_NNTP_LIST_EXTENSIONS_RX,
- MU_NNTP_LIST_ACTIVE, MU_NNTP_LIST_ACTIVE_ACK, MU_NNTP_LIST_ACTIVE_RX,
- MU_NNTP_LIST_ACTIVE_TIMES, MU_NNTP_LIST_ACTIVE_TIMES_ACK, MU_NNTP_LIST_ACTIVE_TIMES_RX,
- MU_NNTP_LIST_DISTRIBUTIONS, MU_NNTP_LIST_DISTRIBUTIONS_ACK, MU_NNTP_LIST_DISTRIBUTIONS_RX,
- MU_NNTP_LIST_DISTRIB_PATS, MU_NNTP_LIST_DISTRIB_PATS_ACK, MU_NNTP_LIST_DISTRIB_PATS_RX,
- MU_NNTP_LIST_NEWSGROUPS, MU_NNTP_LIST_NEWSGROUPS_ACK, MU_NNTP_LIST_NEWSGROUPS_RX,
- MU_NNTP_QUIT, MU_NNTP_QUIT_ACK,
- MU_NNTP_GROUP, MU_NNTP_GROUP_ACK,
- MU_NNTP_LAST, MU_NNTP_LAST_ACK,
- MU_NNTP_NEXT, MU_NNTP_NEXT_ACK,
- MU_NNTP_ARTICLE, MU_NNTP_ARTICLE_ACK, MU_NNTP_ARTICLE_RX,
- MU_NNTP_HEAD, MU_NNTP_HEAD_ACK, MU_NNTP_HEAD_RX,
- MU_NNTP_BODY, MU_NNTP_BODY_ACK, MU_NNTP_BODY_RX,
- MU_NNTP_STAT, MU_NNTP_STAT_ACK,
- MU_NNTP_DATE, MU_NNTP_DATE_ACK,
- MU_NNTP_HELP, MU_NNTP_HELP_ACK, MU_NNTP_HELP_RX,
- MU_NNTP_NEWGROUPS, MU_NNTP_NEWGROUPS_ACK, MU_NNTP_NEWGROUPS_RX,
- MU_NNTP_NEWNEWS, MU_NNTP_NEWNEWS_ACK, MU_NNTP_NEWNEWS_RX,
- MU_NNTP_POST, MU_NNTP_POST_ACK, MU_NNTP_POST_0, MU_NNTP_POST_1, MU_NNTP_POST_2, MU_NNTP_POST_3,
- MU_NNTP_IHAVE, MU_NNTP_IHAVE_ACK, MU_NNTP_IHAVE_0, MU_NNTP_IHAVE_1, MU_NNTP_IHAVE_2, MU_NNTP_IHAVE_3,
- MU_NNTP_DONE, MU_NNTP_UNKNOWN, MU_NNTP_ERROR
- };
-
-/* Structure holding the data necessary to do proper buffering. */
-struct mu_nntp_work_buf
- {
- char *buf;
- char *ptr;
- char *nl;
- size_t len;
- };
-
-/* Structure holding the data for post. */
-struct mu_nntp_post_buf
- {
- char *buf;
- int sent_crlf;
- size_t nread;
- long offset;
- size_t len;
- };
-
-/* Structure to hold things general to nntp connection, like its state, etc ... */
-struct _mu_nntp
- {
- /* Working I/O buffer.
- io.buf: Working io buffer
- io.ptr: Points to the end of the buffer, the non consumed chars
- io.nl: Points to the '\n' char in the string
- io.len: Len of io_buf. */
- struct mu_nntp_work_buf io;
-
- /* Holds the first line response of the last command, i.e the ACK:
- ack.buf: Buffer for the ack
- ack.ptr: Working pointer, indicate the start of the non consumed chars
- ack.len: Size 512 according to RFC2449. */
- struct mu_nntp_work_buf ack;
- int acknowledge;
-
- /* Holds the buffer/offset etc ... for the article to post. */
- struct mu_nntp_post_buf post;
-
- unsigned timeout; /* Default is 10 minutes. */
-
- enum mu_nntp_state state; /* Indicate the state of the running command. */
-
- mu_stream_t carrier; /* TCP Connection. */
- };
-
-extern int mu_nntp_debug_cmd (mu_nntp_t);
-extern int mu_nntp_debug_ack (mu_nntp_t);
-extern int mu_nntp_iterator_create (mu_nntp_t, mu_iterator_t *iterator);
-extern int mu_nntp_stream_create (mu_nntp_t nntp, mu_stream_t *pstream);
-extern int mu_nntp_carrier_is_ready (mu_stream_t carrier, int flag, int timeout);
-extern int mu_nntp_parse_article (mu_nntp_t nntp, int code, unsigned long *pnum, char **mid);
-
-
-/* Check for non recoverable error.
- The error is consider not recoverable if not part of the signal set:
- EAGAIN, EINPROGRESS, EINTR.
- For unrecoverable error we reset, by moving the working ptr
- to the begining of the buffer and setting the state to error.
- */
-#define MU_NNTP_CHECK_EAGAIN(nntp, status) \
-do \
- { \
- if (status != 0) \
- { \
- if (status != EAGAIN && status != EINPROGRESS && status != EINTR) \
- { \
- nntp->io.ptr = nntp->io.buf; \
- nntp->state = MU_NNTP_ERROR; \
- } \
- return status; \
- } \
- } \
-while (0)
-
-/* If error return.
- Check status an reset(see MU_NNTP_CHECK_EAGAIN) the buffer.
- */
-#define MU_NNTP_CHECK_ERROR(nntp, status) \
-do \
- { \
- if (status != 0) \
- { \
- nntp->io.ptr = nntp->io.buf; \
- nntp->state = MU_NNTP_ERROR; \
- return status; \
- } \
- } \
-while (0)
-
-/* Check if we got the rigth. In NNTP protocol and ack of "2xx" means the command was completed.
- */
-#define MU_NNTP_CHECK_CODE(nntp, code) \
-do \
- { \
- if (mu_nntp_response_code (nntp) != code) \
- { \
- nntp->state = MU_NNTP_NO_STATE; \
- return EACCES; \
- } \
- } \
-while (0)
-
-#define MU_NNTP_CHECK_CODE2(nntp, code1, code2) \
-do \
- { \
- if (mu_nntp_response_code (nntp) != code1 && mu_nntp_response_code (nntp) != code2) \
- { \
- nntp->state = MU_NNTP_NO_STATE; \
- return EACCES; \
- } \
- } \
-while (0)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _MAILUTILS_SYS_NNTP_H */

Return to:

Send suggestions and report system problems to the System administrator.