diff options
author | Chris Toshok <toshok@helixcode.com> | 2000-09-06 06:32:49 +0800 |
---|---|---|
committer | Chris Toshok <toshok@src.gnome.org> | 2000-09-06 06:32:49 +0800 |
commit | eafd7dbe013871f1090e0179e99ca309626c2076 (patch) | |
tree | 0198b4af5bd69ee48a278d8acfed8cf52326dab9 /camel/providers/nntp/camel-nntp-folder.c | |
parent | 54a6d12d79b8d2e761866594e4f18dcd751125be (diff) | |
download | gsoc2013-evolution-eafd7dbe013871f1090e0179e99ca309626c2076.tar gsoc2013-evolution-eafd7dbe013871f1090e0179e99ca309626c2076.tar.gz gsoc2013-evolution-eafd7dbe013871f1090e0179e99ca309626c2076.tar.bz2 gsoc2013-evolution-eafd7dbe013871f1090e0179e99ca309626c2076.tar.lz gsoc2013-evolution-eafd7dbe013871f1090e0179e99ca309626c2076.tar.xz gsoc2013-evolution-eafd7dbe013871f1090e0179e99ca309626c2076.tar.zst gsoc2013-evolution-eafd7dbe013871f1090e0179e99ca309626c2076.zip |
care about response code. (get_HEAD_headers): same.
2000-09-05 Chris Toshok <toshok@helixcode.com>
* providers/nntp/camel-nntp-utils.c (get_OVER_headers): care about
response code.
(get_HEAD_headers): same.
(camel_nntp_get_headers): same.
* providers/nntp/camel-nntp-store.h: get rid of
CAMEL_NNTP_OK/ERR/FAIL.
* providers/nntp/camel-nntp-store.c
(camel_nntp_store_get_extensions): take CamelException arg and
pass along to camel_nntp_command.
(camel_nntp_store_get_overview_fmt): same.
(nntp_store_connect): convert to using constants in
camel-nntp-resp-codes.h
(nntp_store_get_folder): make use of camel_nntp_folder_new.
(camel_nntp_command_send_recv): new function to deal with auth
challenge.
(camel_nntp_command): split out most of this function into
camel_nntp_command_send_recv. also, return the actual response
code instead of CAMEL_NNTP_OK/ERR/FAIL.
* providers/nntp/camel-nntp-resp-codes.h: new file.
* providers/nntp/camel-nntp-folder.h: prototype for
camel_nntp_folder_new.
* providers/nntp/camel-nntp-folder.c (camel_nntp_folder_new): new
convenience function.
(nntp_folder_get_message): care more about the actual response
code.
* providers/nntp/Makefile.am (libcamelnntp_la_SOURCES): add
camel-nntp-auth.c.
(libcamelnntpinclude_HEADERS): add camel-nntp-auth.h.
* providers/nntp/camel-nntp-auth.h: new file.
* providers/nntp/camel-nntp-auth.c: new file.
svn path=/trunk/; revision=5212
Diffstat (limited to 'camel/providers/nntp/camel-nntp-folder.c')
-rw-r--r-- | camel/providers/nntp/camel-nntp-folder.c | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/camel/providers/nntp/camel-nntp-folder.c b/camel/providers/nntp/camel-nntp-folder.c index 43209758a7..6ab92923a2 100644 --- a/camel/providers/nntp/camel-nntp-folder.c +++ b/camel/providers/nntp/camel-nntp-folder.c @@ -35,6 +35,7 @@ #include <fcntl.h> #include "camel-folder-summary.h" +#include "camel-nntp-resp-codes.h" #include "camel-nntp-store.h" #include "camel-nntp-folder.h" #include "camel-nntp-store.h" @@ -85,12 +86,6 @@ nntp_folder_init (CamelFolder *folder, CamelStore *parent_store, /* XX */ nntp_folder->group_name = g_strdup (strrchr (name, '/') + 1); - -#if 0 - /* get (or create) uid list */ - if (!(nntp_load_uid_list (nntp_folder) > 0)) - nntp_generate_uid_list (nntp_folder); -#endif } static void @@ -209,16 +204,21 @@ nntp_folder_get_message (CamelFolder *folder, const gchar *uid, CamelException * parent_store = camel_folder_get_parent_store (folder); message_id = strchr (uid, ',') + 1; - status = camel_nntp_command (CAMEL_NNTP_STORE( parent_store ), NULL, "ARTICLE %s", message_id); + status = camel_nntp_command (CAMEL_NNTP_STORE( parent_store ), ex, NULL, "ARTICLE %s", message_id); /* if the message_id was not found, raise an exception and return */ - if (status != CAMEL_NNTP_OK) { + if (status == NNTP_NO_SUCH_ARTICLE) { camel_exception_setv (ex, CAMEL_EXCEPTION_FOLDER_INVALID_UID, "message %s not found.", message_id); return NULL; } + else if (status != NNTP_ARTICLE_FOLLOWS) { + /* XXX */ + g_warning ("weird nntp error %d\n", status); + return NULL; + } /* XXX ick ick ick. read the entire message into a buffer and then create a stream_mem for it. */ @@ -395,3 +395,16 @@ camel_nntp_folder_get_type (void) return camel_nntp_folder_type; } + +CamelFolder * +camel_nntp_folder_new (CamelStore *parent, const char *folder_name, CamelException *ex) +{ + CamelFolder *new_folder = CAMEL_FOLDER (camel_object_new (CAMEL_NNTP_FOLDER_TYPE)); + + CF_CLASS (new_folder)->init (new_folder, parent, NULL, + folder_name, ".", FALSE, ex); + + CF_CLASS (new_folder)->refresh_info (new_folder, ex); + + return new_folder; +} |