summaryrefslogtreecommitdiff
path: root/libproto/nntp/nntp_list_newsgroups.c
diff options
context:
space:
mode:
Diffstat (limited to 'libproto/nntp/nntp_list_newsgroups.c')
-rw-r--r--libproto/nntp/nntp_list_newsgroups.c117
1 files changed, 0 insertions, 117 deletions
diff --git a/libproto/nntp/nntp_list_newsgroups.c b/libproto/nntp/nntp_list_newsgroups.c
deleted file mode 100644
index af47dbb7c..000000000
--- a/libproto/nntp/nntp_list_newsgroups.c
+++ /dev/null
@@ -1,117 +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/>. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <string.h>
-
-#include <stddef.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <mailutils/error.h>
-#include <mailutils/sys/nntp.h>
-
-/*
- LIST NEWSGROUPS command, return an iterator that contains the result.
- It is the responsability of the caller to destroy the iterator(mu_iterator_destroy).
- */
-int
-mu_nntp_list_newsgroups (mu_nntp_t nntp, const char *wildmat, mu_iterator_t *piterator)
-{
- int status = 0;
-
- if (nntp == NULL)
- return EINVAL;
- if (piterator == NULL)
- return MU_ERR_OUT_PTR_NULL;
-
- switch (nntp->state)
- {
- case MU_NNTP_NO_STATE:
- if (wildmat == NULL || *wildmat == '\0')
- status = mu_nntp_writeline (nntp, "LIST NEWSGROUPS\r\n");
- else
- status = mu_nntp_writeline (nntp, "LIST NEWSGROUPS %s\r\n", wildmat);
- MU_NNTP_CHECK_ERROR (nntp, status);
- mu_nntp_debug_cmd (nntp);
- nntp->state = MU_NNTP_LIST_NEWSGROUPS;
-
- case MU_NNTP_LIST_NEWSGROUPS:
- status = mu_nntp_send (nntp);
- MU_NNTP_CHECK_EAGAIN (nntp, status);
- nntp->acknowledge = 0;
- nntp->state = MU_NNTP_LIST_NEWSGROUPS_ACK;
-
- case MU_NNTP_LIST_NEWSGROUPS_ACK:
- status = mu_nntp_response (nntp, NULL, 0, NULL);
- MU_NNTP_CHECK_EAGAIN (nntp, status);
- mu_nntp_debug_ack (nntp);
- MU_NNTP_CHECK_CODE (nntp, MU_NNTP_RESP_CODE_LIST_FOLLOW);
- status = mu_nntp_iterator_create (nntp, piterator);
- MU_NNTP_CHECK_ERROR(nntp, status);
- nntp->state = MU_NNTP_LIST_NEWSGROUPS_RX;
-
- case MU_NNTP_LIST_NEWSGROUPS_RX:
- break;
-
- /* They must deal with the error first by reopening. */
- case MU_NNTP_ERROR:
- status = ECANCELED;
- break;
-
- default:
- status = EINPROGRESS;
- }
-
- return status;
-}
-
-int
-mu_nntp_parse_list_newsgroups (const char *buffer, char **group, char **description)
-{
- char *name;
- char *desc;
-
- if (buffer == NULL || *buffer == '\0')
- return EINVAL;
-
- name = calloc(512, 1);
- if (name == NULL)
- return ENOMEM;
-
- desc = calloc(512, 1);
- if (desc == NULL)
- {
- free (name);
- return ENOMEM;
- }
-
- sscanf (buffer, "%511s %511s", name, desc);
-
- if (group == NULL)
- free (name);
- else
- *group = name;
-
- if (description == NULL)
- free (desc);
- else
- *description = desc;
- return 0;
-}

Return to:

Send suggestions and report system problems to the System administrator.