Commit Graph

1065 Commits

Author SHA1 Message Date
405f1c5229 Ugh, this design is ugly like my butt.
2001-01-16  Jeffrey Stedfast  <fejj@ximian.com>

	Ugh, this design is ugly like my butt.

	* camel-session.c (camel_session_query_cert_authenticator): New
	function which will be useful when we integrate SSL.

	* camel-tcp-stream-ssl.c (ssl_auth_cert): Callback to authenticate
	a certificate.
	(ssl_bad_cert): Callback that gets the reason the certificate is
	bad and then calls camel's cert-authenticator callback to notify
	the user and to allow the user to override the check.
	(stream_connect): Set the URL we expect to connect with and setup
	the auth_cert and bad_cert callbacks.
	(camel_tcp_stream_ssl_new): Now takes a CamelSession and a
	expected_host argument that it will use for certificate
	authentication.
	(camel_tcp_stream_ssl_finalize): Unref the session and free the
	expected_host.

svn path=/trunk/; revision=7531
2001-01-16 07:19:49 +00:00
e3a451cb33 Chganged len back to be unsigned. And do a simple range check on the
2001-01-16  Not Zed  <NotZed@Ximian.com>

        * camel-folder-summary.c (camel_folder_summary_decode_string):
        Chganged len back to be unsigned.  And do a simple range check on
        the string value to try and detect corrupted summary files.

        * providers/imap/camel-imap-command.c (imap_read_untagged): Handle
        cancelled stream reads with an appropriate exception.

        * providers/imap/camel-imap-private.h: Fix the include-once
        macro.  Doh, confliced with camel-private.h.

        * providers/imap/camel-imap-store.c (imap_store_refresh_folders):
        A copy of camel_remote_store_refresh_folders.  We avoid locking
        each folder when we call it though.  This should be removed when i
        can work out how to remove the folder lock from this function
        easily.

        * camel-stream-fs.c (stream_write): Fix n' argument of select.
        (stream_read): Likewise.

        * camel-remote-store.c (socket_connect): Bump the connect timeout
        upto 4 minutes.
        (socket_connect): Oops, fix the 'n' argument of select.

        * camel-session.c (camel_cancel_cancel): If we are given no
        cancellation node, then do it for all active ones.

svn path=/trunk/; revision=7526
2001-01-16 03:54:45 +00:00
d9b76e981f If the close() is successful, set the fd to -1.
2001-01-15  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-stream-fs.c (stream_close): If the close() is successful,
	set the fd to -1.

	* camel-tcp-stream-raw.c: Removed the disconnect() method.
	(stream_close): If the close() is successful, set the sockfd to
	-1.

	* camel-tcp-stream-ssl.c: Removed the disconnect() method.
	(stream_close): If the close() is successful, set the sockfd to
	NULL.

	* camel-tcp-stream.c (camel_tcp_stream_disconnect): Removed,
	easier to just use the close() method as it did the same thing
	anyway.

svn path=/trunk/; revision=7522
2001-01-16 00:54:18 +00:00
ffe3a796ed Updated to be able to get the CAMEL_SOCKOPT_NONBLOCKING socket opt.
2001-01-15  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-tcp-stream-raw.c (stream_getsockopt): Updated to be able
	to get the CAMEL_SOCKOPT_NONBLOCKING socket opt.
	(stream_setsockopt): Updated to be able to set the
	CAMEL_SOCKOPT_NONBLOCKING socket opt.

svn path=/trunk/; revision=7519
2001-01-15 23:31:40 +00:00
98814270d1 Lock around the imap_rescan, which needs it.
2001-01-15  Peter Williams  <peterw@ximian.com>

       * providers/imap/camel-imap-folder.c (camel_imap_folder_new): Lock around the
       imap_rescan, which needs it.

svn path=/trunk/; revision=7513
2001-01-15 21:35:40 +00:00
b64ffc9183 A cancellable connection routine. (remote_send_string): Return cancelled
2001-01-15  Not Zed  <NotZed@Ximian.com>

        * camel-remote-store.c (socket_connect): A cancellable connection
        routine.
        (remote_send_string): Return cancelled exception if we were.
        (remote_send_stream): "
        (remote_recv_line): "

        * camel-stream-fs.c (stream_read): First cut at cancellation
        stuff.  Its looking a bit ugly.

svn path=/trunk/; revision=7496
2001-01-15 07:55:30 +00:00
e12bc65aa5 Uses an SSL socket now although there's still a few things missing (like
2001-01-15  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-tcp-stream-ssl.c (stream_connect): Uses an SSL socket now
	although there's still a few things missing (like certificate
	handling and such).

	* camel.c (camel_ssl_init): A replacement function for
	camel_init() that also initializes SSL.

svn path=/trunk/; revision=7494
2001-01-15 06:25:23 +00:00
24a2d4baa8 Implemented. (stream_setsockopt): Implemented.
2001-01-14  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-tcp-stream-ssl.c (stream_getsockopt): Implemented.
	(stream_setsockopt): Implemented.

	* camel-tcp-stream-raw.c (stream_getsockopt): Implemented.
	(stream_setsockopt): Implemented.

	* camel-tcp-stream.c (camel_tcp_stream_getsockopt): New method.
	(camel_tcp_stream_setsockopt): Another new method. I think you get
	the idea of what these are for so I won't explain them.

svn path=/trunk/; revision=7491
2001-01-14 22:48:09 +00:00
5608af39dd New CamelTcpStream class that implements nspr sockets and eventually will
2001-01-14  Jeffrey Stedfast  <fejj@helixcode.com>

	* camel-tcp-stream-ssl.[c,h]: New CamelTcpStream class that
	implements nspr sockets and eventually will use nss for
	SSL/TLS. Currently doesn't do any SSL/TLS but it should still
	work. It's functionally equivalent to CamelTcpStreamRaw at the
	moment only it uses nspr i/o.

	* camel-tcp-stream-raw.[c,h]: New CamelTcpStream class that
	implements native sockets. Should be usable but may have some bugs
	yet.

svn path=/trunk/; revision=7489
2001-01-14 08:21:00 +00:00
e973bab480 New abstract class for TCP streams. The next step is to write child
2001-01-13  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-tcp-stream.[c,h]: New abstract class for TCP streams. The
	next step is to write child classes (CamelTcpStreamBSD and
	CamelTcpStreamSSL). The BSD stream will use normal BSD sockets
	while SSL will use Mozilla's NSPR and NSS libraries to do Secure
	Socket Layers which wille ventually replace CamelStreamSSL which I
	just commit'd. Oh well.

svn path=/trunk/; revision=7488
2001-01-14 04:40:46 +00:00
0f10d3f701 New stream for handling SSL/TLS connections.
2001-01-13  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-stream-ssl.[c,h]: New stream for handling SSL/TLS
	connections.

svn path=/trunk/; revision=7486
2001-01-14 02:44:59 +00:00
01a5bc2c2c (camel_folder_thread_messages_new): Added casts to rmeove some
warnings for the analites out there.

svn path=/trunk/; revision=7426
2001-01-12 03:43:53 +00:00
fcab7b5779 Perform a final pass, removing any pseudo nodes we added earlier. Quick
2001-01-12  Not Zed  <NotZed@Ximian.com>

        * camel-folder-thread.c (camel_folder_thread_messages_new):
        Perform a final pass, removing any pseudo nodes we added earlier.
        Quick patch to test the idea.

svn path=/trunk/; revision=7424
2001-01-12 02:48:45 +00:00
2805b11f12 (imap_copy_message_to): Fix this up: sync flags to the server
before copying so that they end up correct in the remote folder.
	And poke the destination folder after doing the copy so it notices
	the new message right away.
	(imap_move_message_to): Call imap_copy_message_to for most of the
	work rather than duplicating the code (since it's much more
	complicated now).

svn path=/trunk/; revision=7419
2001-01-11 23:56:50 +00:00
a974fb1de3 Fix a bug in previous commit: don't check for deleted messages if there
* providers/imap/camel-imap-folder.c (camel_imap_folder_selected):
	Fix a bug in previous commit: don't check for deleted messages if
	there are no known messages in the folder (because it would end up
	sending "FETCH 0 ...").

svn path=/trunk/; revision=7412
2001-01-11 22:50:10 +00:00
47d864c709 New function to check for added/deleted messages when re-selecting a
* providers/imap/camel-imap-folder.c (camel_imap_folder_selected):
	New function to check for added/deleted messages when re-selecting
	a folder.
	(imap_refresh_info, imap_rescan, imap_update_summary): Various
	locking tweaks that turn out to be irrelevant since command_lock
	is recursive, but whatever.

	* providers/imap/camel-imap-command.c (camel_imap_command): When
	selecting a new folder, call camel_imap_folder_selected on it.

svn path=/trunk/; revision=7410
2001-01-11 22:04:29 +00:00
093c24b9a7 Fix a locking problem. (One branch of an if statement was returning with
* camel-folder.c (camel_folder_copy_message_to): Fix a locking
	problem. (One branch of an if statement was returning with the
	lock still locked.) Also remove the deprecation comments, to match
	move_message_to.

svn path=/trunk/; revision=7409
2001-01-11 21:53:34 +00:00
42ad657dfd Changed the descriptions for mh, mbox, and maildir to be more
2001-01-10  Jeffrey Stedfast  <fejj@helixcode.com>

	* providers/local/camel-local-provider.c: Changed the descriptions
	for mh, mbox, and maildir to be more "user-friendly".

svn path=/trunk/; revision=7373
2001-01-10 21:28:28 +00:00
69553dbfda New header to prevent recursive #include problems
* providers/imap/camel-imap-types.h: New header to prevent
	recursive #include problems

svn path=/trunk/; revision=7368
2001-01-10 20:20:02 +00:00
e1ffe7ed97 New header to prevent recursive #include problems
* providers/imap/camel-imap-types.h: New header to prevent
	recursive #include problems

	* providers/imap/*.h: Replace some #includes with #include
	"camel-imap-types.h", remove typedefs that were moved to
	camel-imap-types.h

	* providers/imap/*.c: Add #includes to make up for #includes
	removed from .h files

	* providers/imap/Makefile.am (libcamelimapinclude_HEADERS): Add
	camel-imap-types.h

svn path=/trunk/; revision=7367
2001-01-10 20:19:45 +00:00
54c085cc3c New class function, parallel to camel_folder_sync. (The default
* camel-store.c (camel_store_sync): New class function, parallel
	to camel_folder_sync. (The default implementation just calls
	camel_folder_sync on each cached folder.)

	* providers/imap/camel-imap-store.c (get_folder_info): Call
	camel_store_sync before doing anything else so that the IMAP
	server and Camel are working from the same data. Don't ask the
	server for the unread message count of the current folder, since
	UW will return often-incorrect cached data, and we can calculate
	it without talking to the server anyway.

svn path=/trunk/; revision=7365
2001-01-10 17:10:44 +00:00
461e7fcb4f Mostly IMAP changes. Use the NAMESPACE extension (where
available). Deal with servers that don't return LIST flags in
	response to LSUB (like UW) to get rid of the "not a selectable
	folder" error messages in the UI. Take advantage of the \Marked
	and \Unmarked flags to try to speed up the folder scan by not
	doing STATUS on unmarked folders. Some further tweaks on the shape
	of the resulting folder tree in various situations...

	* camel-store.h: Remove the (read) message_count, since nothing
	uses it, and we can speed up IMAP a bit this way.

	* camel-store.c (camel_folder_info_build): Redo this a bit to make
	it more useful for IMAP since that's the only thing that uses it.

	* camel-remote-store.c (camel_remote_store_connected): Public
	function to check if the store is connected, and try to connect it
	if it's not.
	(remote_send_string, remote_send_stream, remote_recv_line): Use
	that.

	* providers/imap/camel-imap-store.c (camel_imap_store_finalize):
	fix up for changes.
	(camel_imap_store_init): Initialize subscribed_folders to NULL
	rather than an empty hash table.
	(imap_connect): Get the list of subscribed folders here. If the
	server doesn't claim that any of them are either Marked or
	Unmarked, then assume that it doesn't do that for LSUB and
	remember that for later. If the server supports the NAMESPACE
	extension and the user didn't specify a namespace, use the
	server-provided one.
	(imap_disconnect): Free the list of subscribed folders, and the
	namespace.
	(get_folder): check camel_remote_store_connected
	(get_folder_info): check camel_remote_store_connected. Add a bunch
	of new cleverness. If we learned that the server doesn't do LSUB
	usefully, do a bunch of LISTs by hand. Then, if we're getting
	unread counts, only do it for folders that weren't listed as
	Unmarked. Also, deal with namespaces that end with the separator
	character, and update for changes to camel_folder_info_build.
	(folder_subscribed): Add a g_return_val_if_fail.
	(subscribe_folder, unsubscribe_folder): check
	camel_remote_store_connected.

	* providers/nntp/camel-nntp-store.c (build_folder_info,
	build_folder_info_from_grouplist, nntp_store_get_folder_info):
	Don't fill in message_count since it doesn't exist any more.

svn path=/trunk/; revision=7343
2001-01-09 22:25:50 +00:00
0d54c48352 Kill off a long-hated Camel kludge: "empty" URLs and
query_auth_types_generic.

	* camel-url.c: Remove "empty" from CamelURL.
	(camel_url_new): No longer set it.
	(camel_url_to_string): Treat "" as equivalent to NULL for
	authmech. (Unrelated change, but it simplifies some stuff with the
	new config dialog.)

	* camel-service.c (camel_service_new): Remove url->empty check: if
	the URL isn't valid, we don't create the service.
	(camel_service_query_auth_types): No longer need to switch between
	generic and connected variants.

	* providers/smtp/camel-smtp-transport.c (query_auth_types):
	* providers/pop3/camel-pop3-store.c (query_auth_types):
	* providers/nntp/camel-nntp-store.c (nntp_store_query_auth_types):
	* providers/imap/camel-imap-store.c (query_auth_types):
	* camel-remote-store.c (remote_query_auth_types): Remove generic
	version, rename connected version.

svn path=/trunk/; revision=7327
2001-01-09 19:27:27 +00:00
7404de7250 Dont try and unref a messageinfo that wasn't there, and use the right free
2001-01-06  Not Zed  <NotZed@HelixCode.com>

        * providers/vee/camel-vee-folder.c (vee_folder_build_folder): Dont
        try and unref a messageinfo that wasn't there, and use the right
        free function too.  Modified patch from Iain.
        (vee_move_message_to): New method, call the real folders'
        move_message_to method.

svn path=/trunk/; revision=7278
2001-01-06 02:25:04 +00:00
85e5e335ee Remove conflict thingie from a while back
svn path=/trunk/; revision=7259
2001-01-04 21:48:22 +00:00
f80697d7a5 oops, forgot the changelog entry
svn path=/trunk/; revision=7258
2001-01-04 21:47:21 +00:00
356797dc29 fix includes for compilation
2001-01-04  JP Rosevear  <jpr@helixcode.com>

	* tests/lib/Makefile.am: fix includes for compilation

	* tests/message/Makefile.am: Build test3 again

	* tests/message/test2.c: Kill warnings with header includes

	* tests/message/test3.c: ditto

	* tests/lib/streams.c: ditto

	* tests/lib/camel-test.c: ditto

	* tests/lib/messages.c: ditto

	* tests/lib/folders.c: ditto

svn path=/trunk/; revision=7253
2001-01-04 19:40:10 +00:00
5be1cc987a oops. commit-o
svn path=/trunk/; revision=7252
2001-01-04 18:53:41 +00:00
85661c534b Fix two problems in figuring out server-expunged messages.
* providers/imap/camel-imap-folder.c (imap_rescan): Fix two
	problems in figuring out server-expunged messages.

svn path=/trunk/; revision=7251
2001-01-04 18:40:57 +00:00
349554fff6 Fix two problems in figuring out server-expunged messages.
* providers/imap/camel-imap-folder.c (imap_rescan): Fix two
	problems in figuring out server-expunged messages.

svn path=/trunk/; revision=7247
2001-01-04 16:57:39 +00:00
bf08ae0bb2 If we have a lot of messages changed, promote it to a folder changed
2001-01-04  Not Zed  <NotZed@HelixCode.com>

        * camel-folder.c (thaw): If we have a lot of messages changed,
        promote it to a folder changed event.

svn path=/trunk/; revision=7245
2001-01-04 07:28:40 +00:00
d5f7afcbd6 Implemented. (search_header_exists): Implemented.
2000-01-03  Jeffrey Stedfast  <fejj@helixcode.com>

	* camel-folder-search.c (search_header_matches): Implemented.
	(search_header_exists): Implemented.
	(search_header_starts_with): Implemented.
	(search_header_ends_with): Implemented.

svn path=/trunk/; revision=7243
2001-01-04 06:40:33 +00:00
b497fd53eb Initialize the exists variable so that we don't do random things if the
2001-01-03  Christopher James Lahey  <clahey@helixcode.com>

	* providers/imap/camel-imap-folder.c (camel_imap_folder_new):
	Initialize the exists variable so that we don't do random things
	if the imap server misbehaves.

svn path=/trunk/; revision=7235
2001-01-03 17:33:11 +00:00
ef48c6d6b0 REmove warning, this isn't really deprecated, sigh.
2000-12-29  Not Zed  <NotZed@HelixCode.com>

        * camel-folder.c (camel_folder_move_message_to): REmove warning,
        this isn't really deprecated, sigh.

        * camel-mime-utils.c (header_fold): Comment out some debug.

svn path=/trunk/; revision=7222
2001-01-03 00:15:54 +00:00
33d8b1d31c Finishing the removal of these directories.
svn path=/trunk/; revision=7220
2001-01-02 23:49:44 +00:00
dbad1c19f8 Removed these directories since they're unused.
2001-01-02  Christopher James Lahey  <clahey@helixcode.com>

	* providers/maildir/, providers/mbox/, providers/mh/: Removed
	these directories since they're unused.

svn path=/trunk/; revision=7219
2001-01-02 23:48:27 +00:00
70844a59a3 fix off-by-one
svn path=/trunk/; revision=7217
2001-01-02 22:13:32 +00:00
b1a4da002f IMAP randomness.
* providers/imap/camel-imap-stream.[ch]: Remove. To be replaced.

	* providers/imap/Makefile.am (libcamelimapinclude_HEADERS): Remove
	camel-imap-stream.h

	* providers/imap/camel-imap-utils.c (imap_parse_flag_list): Take a
	char ** instead of char *, to return the position at the end of
	parsing like the string parsing functions.
	(imap_parse_string_generic): New function to parse a string,
	nstring, or astring.
	(imap_parse_nstring, imap_parse_astring): Now macros
	(imap_parse_string): Added

	* providers/imap/camel-imap-folder.h: Remove the "exists" field
	from CamelImapFolder.

	* providers/imap/camel-imap-folder.c: Remove unused include of
	camel-imap-stream.h.
	(camel_imap_folder_init): Remove no-longer-relevant summary
	initialization.
	(camel_imap_folder_new): Update for imap_parse_flag_list change,
	exists removal, and imap_rescan.
	(imap_rescan): New function that does most of the work of the old
	imap_refresh_info, but taking "exists" as an argument instead of
	getting it from the folder. Also calls camel_imap_folder_changed
	to do the summary updating and signalling, rather than duplicating
	that code.
	(imap_refresh_info): Just call imap_rescan (using the size of the
	folder summary as "exists").
	(imap_update_summary): Update for imap_parse_flag_list change
	(camel_imap_folder_changed): Update for "exists" change.

svn path=/trunk/; revision=7216
2001-01-02 22:07:44 +00:00
af35d99587 New function to return just foo/bar with no parameters.
* camel-mime-utils.c (header_content_type_simple): New function to
	return just foo/bar with no parameters.

	* camel-data-wrapper.c (get_mime_type): Use
	header_content_type_simple rather than header_content_type_format.

svn path=/trunk/; revision=7213
2001-01-02 19:33:34 +00:00
156996ac5e Remove this. It was only a thin wrapper around struct _header_content_type
* gmime-content-field.[ch]: Remove this. It was only a thin
	wrapper around struct _header_content_type anyway, and didn't
	match the naming scheme of anything else.

	* Makefile.am: Remove gmime-content-field.[ch]

	* camel.h: Remove gmime-content-field.h

	* camel-types.h: Add CamelContentType as a typedef for struct
	_header_content_type (especially for use outside of camel).

	* camel-multipart.c:
	* camel-mime-part.c:
	* camel-mime-message.c:
	* camel-folder-summary.c:
	* camel-folder-search.c:
	* camel-data-wrapper.[ch]: Use CamelContentType and
	header_content_type_* functions rather than the GMime stuff.

	* camel-mime-part-utils.c:
	* camel-medium.c: Remove unused gmime-content-field.h include.

svn path=/trunk/; revision=7186
2000-12-28 19:28:39 +00:00
5f5ddfccb6 Fix the APOP check to not crash on servers that don't return any
* providers/pop3/camel-pop3-store.c (connect_to_server): Fix the
	APOP check to not crash on servers that don't return any
	information on the +OK greeting line.

svn path=/trunk/; revision=7184
2000-12-27 19:10:06 +00:00
d187b5887d (camel_imap_folder_changed): Make sure we unref the summary lookup.
svn path=/trunk/; revision=7156
2000-12-24 01:42:27 +00:00
5363e65d85 clean up a stubborn and hard to remove imap_folder->summary.
svn path=/trunk/; revision=7155
2000-12-24 01:41:17 +00:00
d5b5b5f097 Minor compilation fixes.
svn path=/trunk/; revision=7151
2000-12-24 00:51:54 +00:00
6de256c2a2 Lock the command channel while searching. (imap_body_contains): If
2000-12-24  Not Zed  <NotZed@HelixCode.com>

        * providers/imap/camel-imap-search.c (imap_body_contains): Lock
        the command channel while searching.
        (imap_body_contains): If performing a whole uid search, then add
        references to our own summary items, dont look it up in the
        folder.  This way they can't vanish unexpectedly.

        * providers/imap/camel-imap-folder.h (CamelImapFolder): Added a
        private field.

        * providers/imap/camel-imap-private.h: Added lock for imap
        searches.

        * Merge from camel-mt-branch.

        * providers/imap/camel-imap-folder.c (imap_update_summary): Merge
        fix, use the folder->summary.
        (imap_get_message_flags, imap_set_message_flags,
        imap_get_message_user_flag, imap_set_message_user_flag): Removed
        again.
        (camel_imap_folder_init): Setup private data/lock.
        (imap_finalize): Free private data/search lock.
        (imap_search_free): Lock the search_lock.
        (imap_search_by_expression): Lock the search lock when using the
        search object.  Also copy/ref hte summary, rather than getting it
        directly.
        (imap_refresh_info): Free any info lookups.  Use folder->summary
        not imap_folder->summary.  And lock around commands.

svn path=/trunk/; revision=7150
2000-12-24 00:46:20 +00:00
7706c0163b When getting the top-level folder list, include INBOX even if it's not
* providers/imap/camel-imap-store.c (get_folder_info): When
	getting the top-level folder list, include INBOX even if it's not
	subscribed. Don't show subscribed folders outside of the given
	namespace. Do a better job of pruning the namespace from the
	returned folder tree.

svn path=/trunk/; revision=7131
2000-12-22 20:33:00 +00:00
b1ed87891b New CamelFolderSearch subclass that just reimplements body_contains (using
* providers/imap/camel-imap-search.c: New CamelFolderSearch
	subclass that just reimplements body_contains (using the IMAP
	SEARCH command). All other kinds of searching are done against the
	local summary.

	* providers/imap/camel-imap-folder.c (imap_search_by_expression):
	Use a CamelImapSearch to do searching.

	* providers/imap/camel-imap-utils.c (imap_translate_sexp, etc): No
	longer needed.

	* camel-folder-search.h: Add missing CAMEL_FOLDER_SEARCH_TYPE
	#define

svn path=/trunk/; revision=7119
2000-12-21 19:50:09 +00:00
d812b5e331 Update the doc comment: since it always NUL-terminates the buffer, it
* camel-stream-buffer.c (camel_stream_buffer_gets): Update the
	doc comment: since it always NUL-terminates the buffer, it reads
	at most @max-1 bytes, not @max.

	* camel-remote-store.c (remote_recv_line): Fix the "did
	camel_stream_buffer_gets fill the whole buffer" check. Fixes a bug
	when reading lines longer than 1024 characters (eg, IMAP SEARCH
	responses in very large folders).

svn path=/trunk/; revision=7117
2000-12-21 17:14:07 +00:00
739f0eda9d Oops. Don't do "FETCH 1:0" when the folder is empty.
* providers/imap/camel-imap-folder.c (imap_refresh_info): Oops.
	Don't do "FETCH 1:0" when the folder is empty.
	(imap_protocol_get_summary_specifier): Request RFC822.SIZE too.
	(imap_update_summary): Parse RFC822.SIZE and add it to the
	summary.

svn path=/trunk/; revision=7088
2000-12-19 20:40:12 +00:00
fb91cdbd3a Add "guint32 server_flags" to CamelImapMessageInfo to keep track of the
* providers/imap/camel-imap-summary.c: Add "guint32 server_flags"
        to CamelImapMessageInfo to keep track of the last known message
        flag state on the server.
        (message_info_save, message_info_load): Save/load the
        server_flags.

        * providers/imap/camel-imap-folder.c: Make this use
        CamelFolderChangeInfo and emit folder_changed notifications as it
        gets them rather than only on refresh_info.
        (imap_refresh_info): Notice flags that get cleared on the server
        as well as flags that get set.
        (imap_update_summary): Remove a comment that never actually
        applied to the committed code.

svn path=/trunk/; revision=7086
2000-12-19 19:42:15 +00:00