FYI i've attached the patch in its final form below. I changed some of the exception handling around and avoided a double date-request failure. This is now committed to head (2.3.x).
Thanks again. Michael On Wed, 2005-04-13 at 19:58 +0200, Alessandro Decina wrote: > Hello, > > since it is the first time I look at evolution, I am posting this little > patch here, so that it could be eventually reviewed. > > This small patch fixes the camel nntp provider to handle properly > newsservers that do not support the DATE command. > > The nntp_get_date function is used to update the date of the last news > list, to use the NEWGROUPS command to fetch new newsgroups when > required. > > Some (small) newsservers (such as SN) do not support the DATE command. > This patch makes the provider download the complete list of newsgroups > when DATE is unimplemented (the same behaviour already implemented when > the NEWGROUPS command is unavailable). >
Index: camel/providers/nntp/ChangeLog =================================================================== RCS file: /cvs/gnome/evolution-data-server/camel/providers/nntp/ChangeLog,v retrieving revision 1.1 diff -u -p -r1.1 ChangeLog --- camel/providers/nntp/ChangeLog 16 Mar 2005 08:42:43 -0000 1.1 +++ camel/providers/nntp/ChangeLog 22 Apr 2005 02:57:11 -0000 @@ -1,3 +1,13 @@ +2005-04-22 Not Zed <[email protected]> + + * camel-nntp-store.c (nntp_store_get_folder_info_all): don't set + exceptions for failed date commands from last patch. + +2005-04-22 Alessandro Decina <[EMAIL PROTECTED]> + + * camel-nntp-store.c (nntp_store_get_folder_info_all): If we fail + to get the date, just abort. + 2005-03-16 Not Zed <[email protected]> * modified patch below to make it a bit simpler. Index: camel/providers/nntp/camel-nntp-store.c =================================================================== RCS file: /cvs/gnome/evolution-data-server/camel/providers/nntp/camel-nntp-store.c,v retrieving revision 1.78 diff -u -p -r1.78 camel-nntp-store.c --- camel/providers/nntp/camel-nntp-store.c 16 Mar 2005 08:42:43 -0000 1.78 +++ camel/providers/nntp/camel-nntp-store.c 22 Apr 2005 02:57:12 -0000 @@ -779,9 +779,10 @@ nntp_store_get_folder_info_all(CamelNNTP date[6] = ' '; memcpy(date + 7, summary->last_newslist + 8, 6); /* HHMMSS */ date[13] = '\0'; - - if (!nntp_get_date (nntp_store, ex)) - goto error; + + /* Some servers don't support date (!), so fallback if they dont */ + if (!nntp_get_date (nntp_store, NULL)) + goto do_complete_list_nodate; ret = camel_nntp_command (nntp_store, ex, NULL, (char **) &line, "newgroups %s", date); if (ret == -1) @@ -801,9 +802,8 @@ nntp_store_get_folder_info_all(CamelNNTP do_complete_list: /* seems we do need a complete list */ /* at first, we do a DATE to find out the last load occasion */ - if (!nntp_get_date (nntp_store, ex)) - goto error; - + nntp_get_date (nntp_store, NULL); + do_complete_list_nodate: ret = camel_nntp_command (nntp_store, ex, NULL, (char **)&line, "list"); if (ret == -1) goto error;
