Commit Graph

716 Commits

Author SHA1 Message Date
3089422b9e Remove this evolutionary dead end
svn path=/trunk/; revision=10042
2001-05-29 17:10:11 +00:00
43795a43b5 Create a CamelDiscoDiary. (imap_disconnect_offline): And free it.
* providers/imap/camel-imap-store.c (imap_connect_online,
	imap_connect_offline): Create a CamelDiscoDiary.
	(imap_disconnect_offline): And free it.

	* providers/imap/camel-imap-folder.c (camel_imap_folder_selected):
	If RESYNCING, don't do any sort of checking that the remote folder
	matches the summary, beyond making sure that the UIDVALIDITY is
	correct.
	(imap_rescan): Add a missing camel_folder_summary_info_free when
	removing a UID from the summary.
	(imap_expunge_uids_offline): Implement. Fairly simple.
	(imap_expunge_uids_resyncing): Implement. If the store supports
	UIDPLUS, we can just use imap_expunge_uids_online. If not, we need
	to temporarily undelete any messages marked deleted on the server
	that aren't supposed to get expunged.
	(imap_append_offline): Implement, using cache and summary
	operations, and triggering the folder_changed event by hand.
	(imap_append_resyncing): Implement. Redo imap_append_online a bit
	in the process to make them able to share more code.
	(imap_copy_offline): Implement.
	(imap_copy_online): Move parts of this out into a helper.
	(imap_copy_resyncing): Implement. In most cases this is just like
	imap_copy_online, but if you are copying a message that was itself
	copied or appended into the folder, and the server doesn't do
	UIDPLUS, it will be necessary to replace at least part of the copy
	operation with one or more appends.

	* providers/imap/camel-imap-command.c (imap_read_response): Don't
	record the current folder in the response when in RESYNCING mode.
	(This means that EXISTS and EXPUNGE responses won't be processed,
	which is needed because the summary may not match the folder at
	this point.)
	(imap_read_response): On error, call
	camel_imap_response_free_without_processing, not
	camel_imap_response_free.

	* providers/imap/camel-imap-utils.c (imap_uid_array_to_set): Make
	this work better when operating on UIDs that aren't in the summary.

	* providers/imap/camel-imap-summary.c
	(camel_imap_summary_add_offline): New routine used by
	imap_append_offline and imap_copy_offline to create new summary
	entries.

svn path=/trunk/; revision=10041
2001-05-29 17:09:12 +00:00
364cdf26e7 Add a "need_rescan" flag saying if we want to rescan the entire folder for
* providers/imap/camel-imap-folder.c: Add a "need_rescan" flag
	saying if we want to rescan the entire folder for flag changes
	next time it's selected.
	(camel_imap_folder_init): Set need_rescan TRUE.
	(camel_imap_folder_selected): If need_rescan is TRUE, call
	imap_rescan.
	(imap_refresh_info): Only do a full rescan if need_rescan is TRUE.
	Otherwise just do a NOOP, making this a MUCH more lightweight
	operation. Also, don't call imap_rescan directly if the folder
	isn't selected, since that could end up causing the folder to be
	scanned *twice* (imap_rescan -> camel_imap_command ->
	camel_imap_folder_selected -> imap_rescan).
	(imap_rescan): Set need_rescan FALSE.
	(imap_sync_online): Don't NOOP if no changes were pushed: the
	caller will call refresh_info if it wants to poll for changes.
	Fixes evolution-mail doing lots of unnecessary extra work at
	quit time.

svn path=/trunk/; revision=10010
2001-05-26 17:17:10 +00:00
bc117a4331 Oops. Use a strNcmp to make sure the response begins with a 334 code, not
2001-05-25  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/smtp/camel-smtp-transport.c (smtp_auth): Oops. Use a
	strNcmp to make sure the response begins with a 334 code, not a
	strcmp. Duh.

svn path=/trunk/; revision=10004
2001-05-25 22:15:01 +00:00
6815fa8a39 remove the summary info so we are not out-of-sync with the maildir folder.
2001-05-25  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/local/camel-maildir-folder.c (maildir_append_message):
	remove the summary info so we are not out-of-sync with the maildir
	folder.

	* providers/local/camel-mh-folder.c (mh_append_message): remove
	the summary info so we are not out-of-sync with the mh folder.

	* providers/local/camel-mbox-folder.c (mbox_append_message):
	remove the summary info so we are not out-of-sync with the mbox.

svn path=/trunk/; revision=9996
2001-05-25 19:58:37 +00:00
671a256001 s/folder_deleted/folder_created - result of a bad copy/paste.
2001-05-23  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/local/camel-local-folder.c
	(camel_local_folder_construct): s/folder_deleted/folder_created -
	result of a bad copy/paste.

svn path=/trunk/; revision=9957
2001-05-24 02:08:59 +00:00
57bdb1acbf Optimize the match "" case.
2001-05-23  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/imap/camel-imap-search.c (imap_body_contains):
	Optimize the match "" case.

svn path=/trunk/; revision=9955
2001-05-24 01:04:38 +00:00
cb92bb76a6 Store the CamelFolderInfo tree that was returned from
2001-05-21  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/imap/camel-imap-store.c (get_folder_info_online):
	Store the CamelFolderInfo tree that was returned from
	camel_folder_info_build() in a new variable, 'tree', rather than
	'fi' since we later use 'fi' when syncing folders. Not only does
	this fix a memory leak, but it also fixes the bug where the user
	would only see the last folder in the folder list and/or it's
	subfolders.

svn path=/trunk/; revision=9911
2001-05-21 22:53:15 +00:00
96dab8cb19 Don't check the initial auth response until we get into the while-loop
2001-05-11  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/smtp/camel-smtp-transport.c (smtp_auth): Don't check
	the initial auth response until we get into the while-loop
	otherwise we have problems if the SASL mechanism supported a
	client initiated challenge (like PLAIN and LOGIN do).

svn path=/trunk/; revision=9771
2001-05-11 20:34:10 +00:00
5f3f0da8b1 Pass appropriate parameters to CF_CLASS and add comment explaining why my
2001-05-09  Peter Williams  <peterw@ximian.com>

       * providers/imap/camel-imap-folder.c (imap_move_messages_to): Pass
       appropriate parameters to CF_CLASS and add comment explaining why
       my initial attempt at a solution didn't work.

svn path=/trunk/; revision=9742
2001-05-10 02:51:20 +00:00
630241d74b Set the disconnected status. (camel_disco_store_can_work_offline): Return
* camel-disco-store.c (camel_disco_set_status): Set the
	disconnected status.
	(camel_disco_store_can_work_offline): Return whether or not a
	given CamelDiscoStore can work offline or not.

	* camel-disco-folder.c (camel_disco_folder_cache_message):
	Explicitly tell a folder to cache a message. (Better than using
	get_message, because for IMAP that doesn't guarantee you'll get
	all the message parts.)
	(camel_disco_folder_prepare_for_offline): Prepare a folder for
	offline use by caching all messages meeting given search criteria
	(and doing anything else the particular folder implementation
	needs).

	* camel-session.c (camel_session_set_online,
	camel_session_is_online): A session-wide online/offline toggle.
	(camel_session_init): Set online to TRUE.

	* providers/imap/camel-imap-store.c (can_work_offline):
	Implementation of CamelDiscoStore::can_work_offline. (Checks that
	the store has been used online at least once.)
	(imap_get_folder_online, imap_get_folder_offline): Deal with
	request for "inbox" properly. ("Don't you mean... 'INBOX'?").

	* providers/imap/camel-imap-folder.c (imap_cache_message):
	Implementation of CamelDiscoFolder::cache_message.

	* camel.h: Add camel-disco-store.h and camel-disco-folder.h

svn path=/trunk/; revision=9738
2001-05-09 21:57:32 +00:00
c76080568d remove something jeff didn't mean to commit
svn path=/trunk/; revision=9737
2001-05-09 21:55:57 +00:00
3f207278fb Wrap the content-id with <>'s.
2001-05-09  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-part.c (camel_mime_part_set_content_id): Wrap the
	content-id with <>'s.

svn path=/trunk/; revision=9734
2001-05-09 20:17:12 +00:00
416d8fa6cd Add support for using OpenSSL.
2001-05-04  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/smtp/camel-smtp-transport.c (connect_to_server): Add
	support for using OpenSSL.

	* camel-remote-store.c (remote_connect): Add support for using the
	OpenSSL implementation.

	* camel-tcp-stream-ssl.c (ssl_bad_cert): Hmmmm, don't pass in a
	NULL as the last argument to alert_user - prototype doesn't take
	that argument anymore?

	* camel-tcp-stream-openssl.c (camel_tcp_stream_openssl_finalize):
	(ssl_verify): Use a global hash table to try and lookup the
	CamelTcpStreamOpenSSL object given the ssl context since OpenSSL
	doesn't think one needs to pass data around, we should all be
	living in a world of global variables, duh!

svn path=/trunk/; revision=9697
2001-05-07 20:33:25 +00:00
39319663e8 Fix up refcounting on current_folder.
* providers/imap/camel-imap-store.c (get_folder_online): Fix up
	refcounting on current_folder.

	* camel-disco-folder.c, camel-disco-store.h: Remove
	CamelDiscoDiary refs that weren't supposed to escape yet.

svn path=/trunk/; revision=9667
2001-05-04 15:26:13 +00:00
7c553e6e5b new abstract class for disconnectable remote stores
* camel-disco-store.c: new abstract class for disconnectable
	remote stores

	* camel-disco-folder.c: new abstract class for folders on
	disconnectable stores.

	* Makefile.am: Add camel-disco-folder.[ch] and
	camel-disco-store.[ch].

	* providers/imap/camel-imap-store.c: Make this a subclass of
	CamelDiscoStore, and fix up the offline interfaces for the changes
	since they were first written (particularly the fact that some
	IMAP stores don't just use subscribed folders).

	* providers/imap/camel-imap-folder.c: Make this a subclass of
	CamelDiscoFolder, although most ops still fail in disconnected
	mode.

	* camel-store.c (camel_store_get_folder_info): Change gboolean,
	gboolean, gboolean to guint32 in the prototype for this function.

	* providers/local/camel-local-store.c (get_folder_info): Update
	for prototype change.

svn path=/trunk/; revision=9659
2001-05-03 20:52:59 +00:00
d0edb93139 Clean this up a bit. Add a "tag_prefix" member. Move "useful_lsub" into
* providers/imap/camel-imap-store.h: Clean this up a bit. Add a
	"tag_prefix" member. Move "useful_lsub" into capabilities.

	* providers/imap/camel-imap-store.c (camel_imap_store_init):
	Initialize the tag_prefix, based on a static variable.

	* providers/imap/camel-imap-command.c (camel_imap_command): Use
	the store's tag_prefix character rather than "A" at the start of
	the tag. Makes the verbose debug output easier to parse when
	connected to multiple IMAP servers. (Well, unless you're connected
	to more than 26 servers...)

svn path=/trunk/; revision=9649
2001-05-02 19:53:53 +00:00
d01a793455 Fix this up... it was losing count in some cases and giving a more verbose
* providers/imap/camel-imap-utils.c (imap_uid_array_to_set): Fix
	this up... it was losing count in some cases and giving a more
	verbose answer than it needed to.

svn path=/trunk/; revision=9644
2001-05-02 16:50:43 +00:00
42233e110a Rescue the KPOP code from bit rot.
* providers/pop3/camel-pop3-store.c: Rescue the KPOP code from bit
	rot.

svn path=/trunk/; revision=9643
2001-05-02 13:53:21 +00:00
6a5e6fbbea Redo command locking. Since command_lock is recursive, we can just get a
* providers/imap/camel-imap-command.c (camel_imap_command): Redo
	command locking. Since command_lock is recursive, we can just get
	a lock here, and release it either on error, or when the caller
	frees the response data. (This simplifies a lot of stuff, and
	fixes some problems with camel_imap_folder_changed being called
	without the command_lock locked because of the 2001-03-22 change.)

	(camel_imap_response_free):
	(camel_imap_response_free_without_processing):
	(camel_imap_response_extract):
	(camel_imap_response_extract_continuation): These all take a
	CamelImapStore now as well, to deal with locking.

	* providers/imap/camel-imap-private.h: Add
	CAMEL_IMAP_STORE_ASSERT_LOCKED, which defaults to a noop, but can
	be made to call e_mutex_assert_locked.

	* providers/imap/camel-imap-folder.c, camel-imap-search.c,
	camel-imap-store.c: Simplify using new locking stuff. Add a few
	CAMEL_IMAP_STORE_ASSERT_LOCKED checks.

svn path=/trunk/; revision=9639
2001-05-01 19:16:14 +00:00
22f54199e7 remove unused assignment that calls non-existent function.
svn path=/trunk/; revision=9636
2001-05-01 15:44:06 +00:00
eb7438182a Support the IMAP UIDPLUS extension (RFC 2359), which lets you
resync after disconnected operation more efficiently, but also
	makes it possible to do appends and moves/copies more efficiently
	now.

	* providers/imap/camel-imap-folder.c (imap_append_message): If the
	server supports UIDPLUS, grab the APPENDUID response and cache the
	message into the folder's message cache.
	(imap_copy_messages_to): Likewise, for COPYUID, copy any message
	parts we have cached between the source and destination folder
	caches.
	(imap_get_message): If the entire message is already in the cache,
	just return that rather than building it from parts.
	(imap_update_summary): Fetch just the "UID FLAGS RFC822.SIZE" of
	the new messages first, then only fetch the headers for messages
	where we don't already have the headers cached.

	* providers/imap/camel-imap-message-cache.c: Add gtk-doc comments.
	(cache_put): Fix refcounting stuff here.
	(camel_imap_message_cache_insert_stream,
	camel_imap_message_cache_insert_wrapper): New.
	(camel_imap_message_cache_get): Fix a bug here so the memory
	caching actually works.
	(camel_imap_message_cache_copy): New routine, used by
	imap_copy_messages_to.

	* providers/imap/camel-imap-utils.c (imap_uid_set_to_array):
	Inverse operation of imap_uid_array_to_set. Used to parse COPYUID
	response.

svn path=/trunk/; revision=9635
2001-05-01 14:51:36 +00:00
8ad89adf8c New-and-improved version of get_uid_set() from camel-imap-folder.c. Looks
* providers/imap/camel-imap-utils.c (imap_uid_array_to_set):
	New-and-improved version of get_uid_set() from
	camel-imap-folder.c. Looks at the summary as it goes so that if
	you ask for messages 5, 6, 8, and 9, and there is no message 7,
	then you get "5:9" instead of "5:6,8:9"

	* providers/imap/camel-imap-folder.c (imap_copy_messages_to): Use
	imap_uid_array_to_set() rather than get_uid_set().
	(get_uid_set): Gone

svn path=/trunk/; revision=9632
2001-04-30 18:13:45 +00:00
63e96e1002 Redo this a lot so that instead of having a class full of callbacks, we
* camel-session.c: Redo this a lot so that instead of having a
	class full of callbacks, we have a subclassable class. Also,
	replace the increasingly horrifying
	camel_session_query_authenticator with three new routines,
	camel_session_get_password, camel_session_forget_password, and
	camel_session_alert_user.

	* camel-pgp-context.c:
	* camel-pkcs7-context.c:
	* camel-smime-context.c:
	* providers/imap/camel-imap-store.c:
	* providers/pop3/camel-pop3-store.c:
	* providers/smtp/camel-smtp-transport.c:
	Use camel_session_get_password / camel_session_forget_password.

	* camel-tcp-stream-ssl.c (ssl_bad_cert): Use
	camel_session_alert_user.

svn path=/trunk/; revision=9617
2001-04-27 21:08:08 +00:00
84e075645b New file, with the int, string, time_t, and off_t encode/decode routines
* camel-file-utils.c: New file, with the int, string, time_t, and
	off_t encode/decode routines from camel-folder-summary.c moved
	here and renamed, for the enjoyment of non-CamelFolderSummary
	subclasses.

	* Makefile.am (libcamel_la_SOURCES): Add camel-file-utils.c
	(libcamelinclude_HEADERS): and camel-file-utils.h

	* camel-folder-summary.c: Remove functions that were moved to
	camel-file-utils.c, update uses of them for the new names.
	(camel_folder_summary_{en,de}code_token are still here.)

	* providers/local/camel-mbox-summary.c: Use camel_file_util_*
	names

	* providers/imap/camel-imap-summary.c: Use camel_file_util_* names

	* providers/imap/camel-imap-store.c (imap_store_setup_online,
	imap_store_setup_offline): Use camel_file_util_* names, which
	makes much more sense since this isn't folder summary stuff.

svn path=/trunk/; revision=9590
2001-04-26 19:44:50 +00:00
18af050c05 Remove UNICODE_CFLAGS (and some other stuff that's redundant with
* Makefile.am (INCLUDES): Remove UNICODE_CFLAGS (and some other
	stuff that's redundant with EXTRA_GNOME_CFLAGS)
	(libcamel_la_LIBADD): Replace UNICODE_LIBS with GAL_LIBS.

	* camel-search-private.c:
	* camel-pgp-context.c:
	* camel-mime-utils.c: Use gunicode interfaces rather than
	libunicode.

	* camel-charset-map.c: Use gunicode rather than libunicode. (The
	charmap-regen code still depends on libunicode though.)

	* camel-mime-filter-charset.h:
	* tests/message/test2.c (convert): Use iconv rather than
	unicode_iconv.

	* providers/smtp/Makefile.am (libcamelsmtp_la_LIBADD):
	* providers/pop3/Makefile.am (libcamelpop3_la_LIBADD):
	* providers/local/Makefile.am (libcamellocal_la_LIBADD): Remove
	UNICODE_LIBS.

	* camel.c (camel_init): Remove call to unicode_init.

	* camel-mime-parser.c: Remove unused unicode.h include.

svn path=/trunk/; revision=9585
2001-04-26 18:21:32 +00:00
7d9faeb00c Applied jacob's patches for e-poolv stuff.
2001-04-26  Not Zed  <NotZed@Ximian.com>

        * Applied jacob's patches for e-poolv stuff.

svn path=/trunk/; revision=9571
2001-04-26 01:09:05 +00:00
113cb67b33 Changed GTK_INCLUDEDIR to EXTRA_GNOME_CFLAGS.
2001-04-23  Mikael Hallendal  <micke@codefactory.se>

	* providers/nntp/Makefile.am (INCLUDES):
	Changed GTK_INCLUDEDIR to EXTRA_GNOME_CFLAGS.

svn path=/trunk/; revision=9494
2001-04-23 00:16:10 +00:00
765e7194f1 Free base_url and storage_path.
* providers/imap/camel-imap-store.c (camel_imap_store_finalize):
        Free base_url and storage_path.

        * providers/pop3/camel-pop3-store.c (finalize): Free the
        implementation string.
        (camel_pop3_command): Clarify documentation to mention that
        @ex isn't set (and *@ret is) on CAMEL_POP3_ERR.
        (connect_to_server): Set @ex properly on CAMEL_POP3_ERR.

        * providers/pop3/camel-pop3-folder.c (pop3_refresh_info,
        pop3_get_message): Set @ex properly on CAMEL_POP3_ERR.

svn path=/trunk/; revision=9450
2001-04-18 17:59:56 +00:00
fa748c3bdc Don't we want to tell where we are by using the start of the message? I
2001-04-16  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/local/camel-mbox-summary.c (summary_rebuild): Don't we
	want to tell where we are by using the start of the message? I
	think this should be using camel_mime_parser_tell_start_from()
	instead. Also divide by the size *before* multiplying by 100 so
	that we don't overflow the int which was giving us negative values
	for our progress status (oops).

svn path=/trunk/; revision=9394
2001-04-16 23:06:07 +00:00
8cc3a0e4dc Remove the EXTRA_GNOME_CFLAGS include.
2001-04-16  Jeffrey Stedfast  <fejj@ximian.com>

	* Makefile.am: Remove the EXTRA_GNOME_CFLAGS include.

	* camel-store.c (camel_mkdir_hier): Convenience function that it
	seems a number of camel-store implementations used gal for.

	* providers/nntp/camel-nntp-store.c (ensure_news_dir_exists): Lets
	not depend on gal for just e_mkdir_hier() - use camel_mkdir_hier()
	instead.

	* providers/nntp/camel-imap-store.c: Lets not depend on gal for
	just e_mkdir_hier() - use camel_mkdir_hier() instead.

	* camel-session.c (camel_session_get_storage_path): Don't depend
	on e_mkdir_heir() anymore, use the CamelStore version.

	* camel-folder-search.h: Removed gal dependency, why was this even
	there in the first place?

	* providers/imap/camel-imap-folder.c: Don't need gal/util/e-util.h
	here, so remove it.

	* string-utils.c (strstrcase): New function, well more like old
	function brought back to life so we don't have to depend on gal.

	* providers/imap/camel-imap-store.c (imap_store_setup_online): Use
	strstrcase rather than e_strstrcase so we don't depend on gal.
	(get_unread_online): Same here.

	* providers/smtp/camel-smtp-transport.c (smtp_helo): Use
	strstrcase.

svn path=/trunk/; revision=9383
2001-04-16 17:09:38 +00:00
2c05dbde2c s/imap_store/store/, fixing a typo that was causing the build to fail.
2001-04-13  Jon Trowbridge  <trow@ximian.com>

        * providers/imap/camel-imap-store.c (imap_disconnect):
        s/imap_store/store/, fixing a typo that was causing the build to
        fail.

svn path=/trunk/; revision=9306
2001-04-13 22:21:47 +00:00
044fde0583 Plug leaks.
* camel-object.c (camel_object_hook_event):
        * camel-uid-cache.c (camel_uid_cache_get_new_uids):
        * camel-url.c (camel_url_new_with_base): Plug leaks.

        * camel-remote-store.c (camel_remote_store_init): Don't
        re-initialize the folders hash table.

        * providers/imap/camel-imap-store.c (imap_disconnect): Free
        authtypes since they'll be re-read on re-connect.
        (get_folder_info): Free folderinfos that we're discarding from the
        list.

svn path=/trunk/; revision=9302
2001-04-13 21:36:09 +00:00
13acd44e98 Plug memory leaks.
* providers/imap/camel-imap-message-cache.c
	(camel_imap_message_cache_remove):
	* camel-url.c (camel_url_to_string): Plug memory leaks.

svn path=/trunk/; revision=9271
2001-04-12 17:22:54 +00:00
b1c4145cd9 s/IMAP/SMTP
svn path=/trunk/; revision=9265
2001-04-12 15:40:05 +00:00
c1a395bcc2 Simplify peterw's imap_is_atom_char fix.
* providers/imap/camel-imap-utils.c (imap_parse_string_generic):
	Simplify peterw's imap_is_atom_char fix.

svn path=/trunk/; revision=9250
2001-04-11 21:39:37 +00:00
f132c28d7f Check if gethostbyname_r take five params
2001-04-11  JP Rosevear  <jpr@ximian.com>

	* configure.in: Check if gethostbyname_r take five params

	* acconfig.h: add GETHOSTBYNAME_R_FIVE_ARGS

2001-04-11  JP Rosevear  <jpr@ximian.com>

	* providers/imap/Makefile.am: user GNOME_INCLUDEDIR since gnome
	files are included in the top level camel headers and the gtk
	include dir is now versioned and such

	* providers/local/Makefile.am: ditto

	* providers/pop3/Makefile.am: ditto

	* providers/smtp/Makefile.am: ditto

	* providers/sendmail/Makefile.am: ditto

	* camel-service.c: use five arg version of gethostbyname_r if
	appropriate
	(camel_get_host_byname): check if msg->herr is non-zero instead of
	checking if msg->hp is null since we may not always have msg->hp

svn path=/trunk/; revision=9239
2001-04-11 16:10:30 +00:00
9582b8384d It would be a good idea to recognize '\0'. Before, this code was running
001-04-07  Peter Williams  <peterw@ximian.com>

	* providers/imap/camel-imap-utils.c (imap_parse_string_generic): It
	would be a good idea to recognize '\0'. Before, this code was running
	off the ends of strings and intermittently coredumping (if it didn't
	hit an imap_atom_char first) -- whoops!

svn path=/trunk/; revision=9202
2001-04-08 00:38:00 +00:00
2ac5b884fe merge from evolution-0-10-branch to evolution-0-10-merge-0
2001-04-05  Not Zed  <NotZed@Ximian.com>

        * merge from evolution-0-10-branch to evolution-0-10-merge-0

svn path=/trunk/; revision=9194
2001-04-05 02:31:47 +00:00
14d0e2456b (imap_update_summary): When reading message flags, set the
server_flags field as well, and don't overwrite any flags set by
	camel_folder_summary_info_new_from_message. Might help with some
	of the flag problems...

svn path=/trunk/; revision=9149
2001-04-03 22:03:18 +00:00
4392191f4f (imap_get_message): If the server_level < IMAP4rev1, always fetch
messages all-at-once, since they don't support the [#.MIME]
	syntax.

svn path=/trunk/; revision=9145
2001-04-03 21:46:32 +00:00
27def92779 If we don't change any flags or expunge, send a NOOP to give the server a
* providers/imap/camel-imap-folder.c (imap_sync): If we don't
	change any flags or expunge, send a NOOP to give the server a
	chance to send EXISTS, etc, messages.

svn path=/trunk/; revision=9142
2001-04-03 21:32:52 +00:00
014ed35be5 Remove the "quick_login" member, which is unnecessary.
* camel-service.h: Remove the "quick_login" member, which is
	unnecessary.

	* providers/smtp/camel-smtp-transport.c (smtp_auth): Remove the
	references to quick_login and fix this to use the CamelSasl
	interfaces correctly to do the same thing.
	(connect_to_server): Split this out of smtp_connect
	(smtp_connect): Use connect_to_server. When re-EHLO'ing after
	auth, ignore errors.
	(query_auth_types): Use connect_to_server rather than
	smtp_connect, so it doesn't try to authenticate. Add LOGIN
	authtype to the list of authtypes to check for.

	* providers/smtp/camel-smtp-provider.c
	(camel_provider_module_init): Add LOGIN authtype to the authtypes
	list explicitly.

	* camel-sasl.c (camel_sasl_authtype_list): Don't list LOGIN here:
	it's not a real SASL authtype and is only used for SMTP.

	* camel-sasl-plain.c:
	* camel-sasl-login.c:
	* camel-sasl-kerberos4.c:
	* camel-sasl-cram-md5.c:
	* camel-sasl-anonymous.c:
	* providers/pop3/camel-pop3-provider.c: Remove "quick_login"
	argument from authtypes.

svn path=/trunk/; revision=9100
2001-04-02 20:57:39 +00:00
b27a35eae5 New files to handle the LOGIN SASL mechanism.
2001-04-01  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-sasl-login.[c,h]: New files to handle the LOGIN SASL
	mechanism.

	* camel-sasl-plain.c: Removed the definition of
	camel_sasl_login_authtype.

	* camel-sasl.c (camel_sasl_new): Oops. I thought LOGIN was an
	alias to PLAIN. I was wrong. These two SASL objects have to be
	separate.

	* providers/smtp/camel-smtp-transport.c (smtp_auth): Updated to
	check for and use authmech->quick_login when available.

svn path=/trunk/; revision=9088
2001-04-01 22:54:44 +00:00
1193763d9e Updated the authtypes here too.
2001-04-01  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/pop3/camel-pop3-provider.c: Updated the authtypes here
	too.

svn path=/trunk/; revision=9087
2001-04-01 22:16:32 +00:00
c3db21df6e Updated the authtype values.
2001-04-01  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-sasl-plain.c:
	* camel-sasl-anonymous.c:
	* camel-sasl-digest-md5.c:
	* camel-sasl-cram-md5.c:
	* camel-sasl-kerberos4.c: Updated the authtype values.

	* camel-service.h: Added another field to CamelServiceAuthType
	that specifies whether or not the mechanism supports "quick auth"
	which means that the client can send the initial challenge in the
	AUTH request.

	* camel-sasl.c (camel_sasl_new): Add support for LOGIN.
	(camel_sasl_authtype_list): Here too.
	(camel_sasl_authtype): And finally here.

	* camel-sasl-plain.c: Define camel_sasl_login_authtype.

	* providers/smtp/camel-smtp-transport.c (smtp_auth): Only unref
	the SASL object if it exists.

svn path=/trunk/; revision=9086
2001-04-01 22:10:55 +00:00
56952442a9 Move things around here to make this all work right again (so you don't
* providers/pop3/camel-pop3-store.c (connect_to_server,
	query_auth_types, pop3_connect): Move things around here to make
	this all work right again (so you don't get prompted for a
	password when checking the supported authtypes.)

svn path=/trunk/; revision=9056
2001-03-30 22:50:48 +00:00
e0ba87c430 removed a g_warning for debugging
svn path=/trunk/; revision=9037
2001-03-30 02:28:27 +00:00
1e8594bb3a Don't blindly append "/INBOX", construct a CamelURL and set the path that
2001-03-29  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/imap/camel-imap-store.c (get_folder_info): Don't
	blindly append "/INBOX", construct a CamelURL and set the path
	that way.
	(parse_list_response_as_folder_info): Don't blindly append
	"/<foldername>", construct a CamelURL and set the path that way
	instead.
	(get_folders_offline): And again here.

svn path=/trunk/; revision=9036
2001-03-30 02:25:38 +00:00
554de99b22 Not quite finished but checking in for some local frobbing.
2001-03-29  Not Zed  <NotZed@Ximian.com>

        * providers/smtp/camel-smtp-transport.c (smtp_connect): Free host
        name info when done ... blah blah.

        * camel-sasl-kerberos4.c (krb4_challenge): Free host name info
        after we're done with it.

        * camel-sasl-digest-md5.c (digest_md5_challenge): Free host name
        info after we're done with it.

        * camel-remote-store.c (remote_connect): Free the host name info
        from get_host after we're finished with it.

        * camel-service.c (camel_get_host_byname): New function to
        lookup a name, and still be cancellable.
        (camel_free_host): And a function to free the structure
        returned.
        (camel_service_gethost): Call get_host_byname for this.

svn path=/trunk/; revision=9033
2001-03-30 00:31:20 +00:00