Commit Graph

777 Commits

Author SHA1 Message Date
6a99ce9981 Make sure there is a space between the name and the address tokens.
2001-03-04  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-internet-address.c
	(camel_internet_address_encode_address): Make sure there is a
	space between the name and the address tokens.

svn path=/trunk/; revision=8551
2001-03-05 02:43:44 +00:00
559f8e8245 encoded string segments need to be at least 8 chars (7 doesn't leave room
2001-03-04  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (rfc2047_decode_word): encoded string
	segments need to be at least 8 chars (7 doesn't leave room for an
	ecoding value. To be more realistic, even 8 chars isn't enough as
	this assumes there is no charset nor any encoded text. If the
	encoding value is not 'Q' or 'B', then return NULL. This fixes bug
	#1689.

svn path=/trunk/; revision=8550
2001-03-05 00:37:44 +00:00
ab118da377 New function to remove a folder from a vfolder.
2001-03-03  Not Zed  <NotZed@Ximian.com>

        * camel-vee-folder.c (vee_folder_remove_folder): New function to
        remove a folder from a vfolder.
        (camel_vee_folder_remove_folder): New public function to remove a
        folder from a vfolder.

svn path=/trunk/; revision=8532
2001-03-02 23:37:43 +00:00
3e3a1d5e1c Doh! Set the CAMEL_URL_ALLOW_AUTH flag.
2001-03-02  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/smtp/camel-smtp-provider.c: Doh! Set the
	CAMEL_URL_ALLOW_AUTH flag.

	* providers/smtp/camel-smtp-transport.c (get_smtp_error_string):
	Updated with the extended AUTH return codes.

svn path=/trunk/; revision=8530
2001-03-02 22:09:40 +00:00
82b9322f93 oops, forgot the changelog
svn path=/trunk/; revision=8528
2001-03-02 19:40:08 +00:00
1f40b4ba9a Don't forget to unref the SASL object.
2001-03-02  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/imap/camel-imap-store.c (try_auth): Don't forget to
	unref the SASL object.

	* providers/smtp/camel-smtp-transport.c (query_auth_types):
	Implemented.
	(smtp_auth): Implemented.
	(smtp_helo): Don't bother parsing the authtypes if we already have
	them.
	(smtp_connect): call smtp_auth() here if we found any authtypes.
	(smtp_disconnect): Updated as I now use a hash table for the
	supported authtypes rather than a linked list.
	(esmtp_get_authtypes): modify to use a hash table instead of a
	linked list and also use isspace() rather than == ' '.

svn path=/trunk/; revision=8525
2001-03-02 19:19:31 +00:00
e365f46803 Use "-f" to set the envelope from address so bounces go to the right
* providers/sendmail/camel-sendmail-transport.c (sendmail_send_to,
	sendmail_send): Use "-f" to set the envelope from address so
	bounces go to the right place. Also, pass "-U" since the man page
	says we're supposed to...

svn path=/trunk/; revision=8521
2001-03-02 15:14:51 +00:00
81b0fea2f0 #include "camel-sasl-digest-md5.h" (camel_sasl_authtype_list): add
2001-03-01  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-sasl.c: #include "camel-sasl-digest-md5.h"
	(camel_sasl_authtype_list): add DIGEST-MD5 stuff here.
	(camel_sasl_authtype): And here too.
	(camel_sasl_new): And here...

	* camel-sasl-digest-md5.[c,h]: new SASL class for DIGEST-MD5 (has
	been tested and proven to work).

svn path=/trunk/; revision=8513
2001-03-02 02:29:08 +00:00
17d6ee9943 Add an "authtypes" hash table to CamelImapStore recording the supported
* providers/imap/camel-imap-store.c: Add an "authtypes" hash table
	to CamelImapStore recording the supported authtypes.
	(connect_to_server): Record supported authtypes in the authtypes
	hash rather than the capabilities bitmask, since now the IMAP code
	is no longer responsible for keeping track of which authtypes we
	support.
	(query_auth_types): Use camel_sasl_authtype_list to get the
	SASL-supported authtypes.
	(try_auth): New function to try a SASL auth mechanism. Sort of
	formerly imap_try_kerberos_v4_auth.
	(imap_connect): Get rid of the krb4-specific bits and genericize
	them for any SASL authtype.

	* providers/imap/Makefile.am: Remove camel-imap-auth.[ch] (moved
	into camel-imap-store.c since it's now constant size) and the
	KRB4_CFLAGS and KRB4_LDFLAGS references.

svn path=/trunk/; revision=8463
2001-03-01 22:39:52 +00:00
61a496ffca Take a GByteArray as input as well. Comment that you can pass %NULL for
* camel-sasl.c (camel_sasl_challenge): Take a GByteArray as input
	as well. Comment that you can pass %NULL for @token to get the
	initial auth data for mechanisms that are client-initiated.
	(camel_sasl_challenge_base64): Convenience function for protocols
	that use base64-encoded SASL.
	(camel_sasl_authenticated): Implement this... (it was prototyped
	already)
	(camel_sasl_new): Function to take a service name, a mechanism
	name, and a CamelService, and return a CamelSasl for it.
	(camel_sasl_authtype, camel_sasl_authtype_list): Functions to
	return CamelServiceAuthType information about SASL mechanisms, to
	allow providers to deal with them generically.

	* camel-sasl-anonymous.c, camel-sasl-plain.c: Update/simplify for
	CamelSasl changes. Both of these are single-round
	(client-initiated) mechanisms, so they don't need to keep state.
	(camel_sasl_plain_new): Removed; use camel_sasl_new instead.
	(Can't get rid of camel_sasl_anonymous_new though...)

	* camel-sasl-cram-md5.c: Update/simplify for CamelSasl changes.
	(camel_sasl_cram_md5_new): Removed; use camel_sasl_new instead.
	(cram_md5_challenge): Use md5_get_digest where possible, and
	various other minor simplifications. CRAM-MD5 only has a single
	round, so there's no need to keep track of state. This code is now
	tested (against Cyrus IMAPd) and known to work.

	* camel-sasl-kerberos4.h: Update/simplify for CamelSasl changes.
	Make only a single #ifdef HAVE_KRB4. Remove stuff from priv that
	isn't needed between rounds.
	(camel_sasl_kerberos4_new): Removed; use camel_sasl_new instead
	(krb4_challenge): Fix up the logic I broke in my previous "at
	least make it compile" fixes, update to match other changes, and
	remove IMAP-isms that shouldn't be in the generic code. This still
	isn't tested, because we're stuck behind a NAT right now...

svn path=/trunk/; revision=8462
2001-03-01 22:23:23 +00:00
e2fda906bc Don't base64 encode the data, leave that up to the provider to do if it
2001-03-01  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-sasl-anonymous.c (anon_challenge): Don't base64 encode the
	data, leave that up to the provider to do if it needs to. Also
	save on some memory allocations and stuff.

	* camel-sasl-cram-md5.c (cram_md5_challenge): Same here. Also get
	rid of the need for the temp buf as we can just write it to the
	GByteArray.

svn path=/trunk/; revision=8456
2001-03-01 18:15:23 +00:00
1cd06b6bfb Don't base64 encode the data, leave that up to the provider to do if it
2001-03-01  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-sasl-anonymous.c (anon_challenge): Don't base64 encode the
	data, leave that up to the provider to do if it needs to. Also
	save on some memory allocations and stuff.

	* camel-sasl-cram-md5.c (cram_md5_challenge): Same here.

svn path=/trunk/; revision=8454
2001-03-01 18:01:27 +00:00
90dabbdb22 Reconstify variables to match iconv.
2001-03-02  Not Zed  <NotZed@Ximian.com>

        * camel-mime-utils.c (rfc2047_encode_word, rfc2047_decode_word):
        Reconstify variables to match iconv.

        * camel-search-private.c (camel_ustrstrcase): Change some
        assertions back into valid returns.

svn path=/trunk/; revision=8452
2001-03-01 17:31:33 +00:00
47497db453 camel depends on krb4 now (where available), for camel-sasl-kerberos4.c
* Makefile.am (libcamel_la_LIBADD, INCLUDES): camel depends on
	krb4 now (where available), for camel-sasl-kerberos4.c

	* camel-sasl-kerberos4.[ch]: Make this at least compile. Dunno if
	it works yet.

svn path=/trunk/; revision=8451
2001-03-01 17:16:32 +00:00
9f072e4e81 Assert url_string != NULL.
2001-03-01  Peter Williams  <peterw@ximian.com>

       * camel-url.c (camel_url_new): Assert url_string != NULL.

svn path=/trunk/; revision=8439
2001-03-01 06:15:03 +00:00
eb3167206c Added camel-sasl-anonymous.[c,h] to the build.
2001-02-28  Jeffrey Stedfast  <fejj@ximian.com>

	* Makefile.am: Added camel-sasl-anonymous.[c,h] to the build.

	* camel-sasl-anonymous.[c,h]: new SASL class for ANONYMOUS

	* camel-sasl-plain.c (plain_challenge): Oops, have a state for
	setting sasl->authenticated = TRUE;

	* camel-sasl-cram-md5.c (cram_md5_challenge): Same here.

svn path=/trunk/; revision=8433
2001-02-28 23:24:15 +00:00
65839ea1ee A fix for broken mailers that send 2-digit years (ie "Wed, 28 Feb 01
2001-02-28  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (header_decode_date): A fix for broken
	mailers that send 2-digit years (ie "Wed, 28 Feb 01
	04:59:41"). Fixes bug #1633.

	* camel-filter-driver.c (camel_filter_driver_filter_folder): Check
	to make sure message isn't NULL.

svn path=/trunk/; revision=8431
2001-02-28 21:06:44 +00:00
f50ddd9de1 If we get back 0 bytes from camel_stream_buffer_gets, that means the
* camel-remote-store.c (remote_recv_line): If we get back 0 bytes
	from camel_stream_buffer_gets, that means the socket got
	disconnected, so set an exception. (Noticed because of a message
	that crashes our IMAP server when you try to look at it. :)

svn path=/trunk/; revision=8429
2001-02-28 18:41:27 +00:00
4321d72d9b Added camel-sasl*.[c,h] to the build.
2001-02-28  Jeffrey Stedfast  <fejj@ximian.com>

	* Makefile.am: Added camel-sasl*.[c,h] to the build.

	* camel-sasl.[c,h]: new "abstract" SASL class

	* camel-sasl-kerberos4.[c,h]: new SASL class for KERBEROS_V4

	* camel-sasl-cram-md5.[c,h]: new SASL class for CRAM-MD5

	* camel-sasl-plain.[c,h]: new SASL class for PLAIN

	* providers/imap/camel-imap-auth.c: Removed the base64 functions.

	* camel-mime-utils.c (base64_encode_simple): Moved here from
	camel-imap-auth.c
	(base64_decode_simple): Same.

svn path=/trunk/; revision=8428
2001-02-28 18:16:02 +00:00
fe8e875972 Group messages into sets with the same flags and use the IMAP message set
* providers/imap/camel-imap-folder.c (imap_sync): Group messages
	into sets with the same flags and use the IMAP message set
	notation rather than doing a separate STORE FLAGS for each one.
	This cuts the network traffic down to just a handful of commands
	per sync rather than one per changed message. Removed the progress
	notification stuff since it's no longer meaningful and should
	hopefully be unnecessary.
	(imap_copy_message_to): move the former sync_message function
	into here, since it's no longer shared with imap_sync.

svn path=/trunk/; revision=8396
2001-02-26 21:38:39 +00:00
a596227e1c Made thread-safe and moved to above the test code.
2001-02-26  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c: Made thread-safe and moved to above the test
	code.

	* camel-mime-message.c (camel_mime_message_init): Set the
	message_id to NULL.
	(camel_mime_message_finalize): Free the message_id.
	(camel_mime_message_set_message_id): New function to set the
	Message-Id.
	(camel_mime_message_get_message_id): New function to get the
	Message-Id.
	(process_header): Decode the message-id.

svn path=/trunk/; revision=8393
2001-02-26 19:56:58 +00:00
585f905ecd init the vTrash folder here instead of in store_init.
2001-02-24  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-store.c (construct): init the vTrash folder here instead
	of in store_init.
	(camel_store_class_init): init service_class->construct.
	(camel_store_finalize): We only need to unref the vtrash folder.
	(init_trash): don't create a vstore since we don't need it.

svn path=/trunk/; revision=8378
2001-02-24 17:44:28 +00:00
afd1cad2da init get_trash and init_trash. (camel_store_init): call the virtual
2001-02-23  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-store.c (camel_store_class_init): init get_trash and
	init_trash.
	(camel_store_init): call the virtual init_trash function.
	(camel_store_finalize): unref the vtrash folder/store if present.
	(camel_store_get_folder): Add the new folder to the vtrash
	vfolder.
	(init_trash): default implementation of init_trash.
	(get_trash): default implementation of get_trash.

	* camel-vee-store.c (vee_init_trash): No-op.
	(vee_get_trash): return NULL

svn path=/trunk/; revision=8368
2001-02-23 16:52:55 +00:00
c13a70e866 Doh, cut and paste problem, use mlist not cc.
* camel-folder-summary.c (camel_message_info_new_from_header):
	Doh, cut and paste problem, use mlist not cc.

	* camel-folder.c (move_message_to):
	(copy_message_to): If the source folder doesn't support a
	summary, dont try and get the message info from it.

svn path=/trunk/; revision=8361
2001-02-23 01:40:46 +00:00
978bfbefbb Implement a pseudo-header "x-camel-mlist" which just looks up in the
2001-02-23  Not Zed  <NotZed@Ximian.com>

        * camel-filter-search.c (check_header): Implement a pseudo-header
        "x-camel-mlist" which just looks up in the message info for a
        match.

        * camel-folder-search.c (check_header): Add pseudo-header
        "x-camel-mlist" which can be used to match on mailing list.

svn path=/trunk/; revision=8355
2001-02-22 23:32:34 +00:00
7698a3941b Add some internal progress reporting. (imap_rescan): Do some progress
2001-02-23  Not Zed  <NotZed@Ximian.com>

        * providers/imap/camel-imap-folder.c (imap_sync): Add some
        internal progress reporting.
        (imap_rescan): Do some progress reporting.

        * camel-mime-part.c (init_header_name_table): Add the message-id
        to the formatted table, so we dont try and wrap it, and break it.

svn path=/trunk/; revision=8350
2001-02-22 22:21:28 +00:00
0a3fde6ecd Remove the 'FIXME: remove because this isn't required...' comment for
2001-02-22  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-folder.h: Remove the 'FIXME: remove because this isn't
	required...' comment for copy_message_to since we now need and
	cherish its existance in the filter-driver code ;-)

	* camel-filter-driver.c (camel_filter_driver_filter_message): Now
	takes a UID and CamelFolder arguments (which can be NULL) to allow
	for possible optimizations when copying messages between folders
	on the same store.
	(camel_filter_driver_filter_mbox): Updated (passes NULL for both
	since this case can't be optimized anyway).
	(camel_filter_driver_filter_folder): Updated to pass in the uid
	and folder of the message.

svn path=/trunk/; revision=8346
2001-02-22 16:22:27 +00:00
fa3dd0054f #define this as the set of all IMAP system flags
* providers/imap/camel-imap-summary.h (CAMEL_IMAP_SERVER_FLAGS):
	#define this as the set of all IMAP system flags

	* providers/imap/camel-imap-folder.c (sync_message): after syncing
	flags, set server_flags to (flags & CAMEL_IMAP_SERVER_FLAGS)
	rather than just "flags", since any other flags won't have been
	synced. Prevents the CAMEL_MESSAGE_ATTACHMENTS flag from getting
	lost.

svn path=/trunk/; revision=8344
2001-02-22 14:58:56 +00:00
c81bce50bb Removed all files.
2001-02-22  Not Zed  <NotZed@Ximian.com>

        * providers/vee/*: Removed all files.

        * camel-private.h: Move camel-vee-private.h stuff into here.

        * camel-session.c: Move the vee_provider here, and initialise it
        always as part of a session.  The vfolder provider is always
        available.

        * providers/Makefile.am: Remove "vee" from the build list, now
        built as part of the main library.

        * Makefile.am (libcamelinclude_HEADERS):
        (libcamel_la_SOURCES): Added camel-vee-store.[ch],
        camel-vee-folder.[ch].

svn path=/trunk/; revision=8340
2001-02-21 20:30:29 +00:00
6d69d56d0c Removed, not used. (camel_vee_folder_new): Removed call to build_folder.
2001-02-22  Not Zed  <NotZed@Ximian.com>

        * providers/vee/camel-vee-folder.c (vee_folder_build): Removed,
        not used.
        (camel_vee_folder_new): Removed call to build_folder.
        (vee_get_message): Dont try and free the mi if we didn't get it.

        * camel-folder.c (camel_folder_change_info_new): Added a hash
        table of what we have in the lists, plus moved private things into
        private pointer.
        (camel_folder_change_info_add_source): Fixed up private accesses.
        (camel_folder_change_info_add_uid): Changed to use a hashtable to
        see if we already have the uid, etc.
        (camel_folder_change_info_remove_uid): Similar.
        (change_info_remove): Likewise.
        (camel_folder_change_info_clear): Fixes for privatisations.
        (camel_folder_change_info_free): "

svn path=/trunk/; revision=8339
2001-02-21 20:13:42 +00:00
782a42ee7d Fixes for IMAP4-pre-rev1 from Torsten Schulz.
* providers/imap/camel-imap-folder.c (fetch_medium): Fixes for
	IMAP4-pre-rev1 from Torsten Schulz.

svn path=/trunk/; revision=8318
2001-02-21 17:20:00 +00:00
72bc2233d2 Take the ^Header: part out of the expression, since we look that up
2001-02-20  Not Zed  <NotZed@Ximian.com>

        * camel-mime-utils.c (mail_list_magic): Take the ^Header: part out
        of the expression, since we look that up ourselves.
        (header_raw_check_mailing_list): When getting the match, get match
        1, not match 0, we dont want the full string match.

        * camel-folder-summary.c (CAMEL_FOLDER_SUMMARY_VERSION): Bumped
        for summary change.
        (message_info_new): Extract the mlist info from the headers.
        (message_info_load): Load mlist from summary.
        (message_info_save): Save mlist to summary.
        (message_info_free): Save the mlist entry.
        (camel_message_info_new_from_header): Extract mailing list header.
        (camel_message_info_dup_to): Copy the mlist entry.
        (camel_message_info_free): Free mlist.
        (message_info_dump): Dump the mlist.

        * camel-folder-summary.h: Add an mlist (mailing list) string to
        the summary.

svn path=/trunk/; revision=8295
2001-02-20 00:19:16 +00:00
10fba20de9 Added flags argument. (message_changed): Add support for the auto-update
2001-02-19  Not Zed  <NotZed@Ximian.com>

        * providers/vee/camel-vee-folder.c (camel_vee_folder_new): Added
        flags argument.
        (message_changed): Add support for the auto-update flag, in which
        case we auto-match the content as it changes.
        (camel_vee_folder_init): Remoive "DYNAMIC" optionality
        (camel_vee_folder_finalise): "
        (vee_expunge): As we expunge folders, re-sync their content by
        rerunning the query.

        * providers/vee/camel-vee-store.c (vee_get_folder): Pass flags to
        folder new.

2001-02-18  Not Zed  <NotZed@Ximian.com>

        * providers/vee/Makefile.am (noinst_HEADERS): Added
        camel-vee-private.h.

        * providers/vee/camel-vee-private.h: New file to add locking stuff
        for vee folders.

        * providers/vee/camel-vee-folder.c (camel_vee_folder_new): Add
        locking around unmatched setup.
        (camel_vee_folder_init): Setup lock.
        (camel_vee_folder_finalise): Free locks.
        (folder_changed): Add locking.
        (unmatched_finalise): "
        (message_changed): "
        (vee_folder_build): "

2001-02-17  Not Zed  <NotZed@Ximian.com>

        * providers/vee/camel-vee-folder.c (vee_folder_add): Check uid
        doesn't exist before adding it.

2001-02-16  Not Zed  <NotZed@Ximian.com>

        * providers/vee/camel-vee-folder.c (camel_vee_folder_new): Create
        a new virtual virtual folder UNMATCHED, to store all messages that
        dont match other vfolders.
        (unmatched_folder_changed): When a vfolder issues a changed event,
        use its info to update the unmatched folder info.
        (unmatched_finalise): When a vfolder is finalised, remove any uids
        it has as if we had a removed event for it.

svn path=/trunk/; revision=8276
2001-02-19 20:59:54 +00:00
c5386f52ca Thaw the defaultfolder. (camel_filter_driver_set_default_folder): Thaw the
2001-02-16  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-filter-driver.c (camel_filter_driver_finalise): Thaw the
	defaultfolder.
	(camel_filter_driver_set_default_folder): Thaw the defaultfolder
	we're about to replace, and freeze the new defaultfolder.

svn path=/trunk/; revision=8259
2001-02-17 01:28:43 +00:00
f89ca302d1 Emit the folder_created signal here.
2001-02-15  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/vee/camel-vee-folder.c (camel_vee_folder_new): Emit
	the folder_created signal here.

	* providers/local/camel-local-folder.c
	(camel_local_folder_construct): Emit the folder_created signal.

	* providers/local/camel-local-store.c (delete_folder): On error,
	free the 'name' string so we don't leak. Also emit the
	folder_deleted signal.

	* providers/imap/camel-imap-store.c (subscribe_folder): Emit the
	folder_created signal.
	(unsubscribe_folder): Emit the folder_deleted signal.

	* camel-store.c (camel_store_class_init): Added folder_created and
	folder_deleted signal defs.

svn path=/trunk/; revision=8246
2001-02-15 19:20:38 +00:00
cb66ad3fe4 Deal with out-of-order References headers so they don't cause messages to
* camel-folder-thread.c (container_parent_child): Deal with
	out-of-order References headers so they don't cause messages to
	disappear in threaded view.

svn path=/trunk/; revision=8245
2001-02-15 19:16:19 +00:00
3bd759d67e IMAP4 (pre-rev1) doesn't allow BODY.PEEK[], so use RFC822.PEEK instead in
* providers/imap/camel-imap-folder.c (fetch_medium): IMAP4
	(pre-rev1) doesn't allow BODY.PEEK[], so use RFC822.PEEK instead
	in that case.

svn path=/trunk/; revision=8244
2001-02-15 18:10:24 +00:00
9bf0f94434 Changed this code to match the glibc iconv signature.
2001-02-14  Christopher James Lahey  <clahey@ximian.com>

	* camel-mime-filter-charset.c (complete, filter),
	camel-mime-utils.c (rfc2047_decode_word, rfc2047_encode_word):
	Changed this code to match the glibc iconv signature.

svn path=/trunk/; revision=8238
2001-02-14 23:43:38 +00:00
4029db7b4c (create_folder): Oops, and fix bug involving namespaces
svn path=/trunk/; revision=8233
2001-02-14 22:26:51 +00:00
7d76ff5501 New method to create a folder when you don't know its full name.
* camel-store.c (camel_store_create_folder): New method to create
	a folder when you don't know its full name.

	* providers/imap/camel-imap-store.c (create_folder): Implement.

svn path=/trunk/; revision=8231
2001-02-14 21:51:33 +00:00
7fc5928618 Add address headers to list that we dont fold when writing. The are
2001-02-12  Not Zed  <NotZed@Ximian.com>

        * camel-mime-part.c (init_header_name_table): Add address headers
        to list that we dont fold when writing.  The are properly
        formatted as we build them.
        (write_to_stream): DOH, lookup the header name in the formatted
        hash table, not the value, that would never have worked.

        * camel-internet-address.c
        (camel_internet_address_encode_address): Changed to take a
        parameter saying how much we've printed so far.  We now fold the
        header as we format it.  We dont fold addresses, even if they are
        too long, we simply put them on another line by themselves: this
        should make the result more parsable by mailers that can't handle
        split up addresses (which are legal).
        (internet_encode): Fix for changes to above.

svn path=/trunk/; revision=8198
2001-02-13 00:30:45 +00:00
34f5839fa9 mbox, mh, and maildir camel-url's need absolute paths.
2001-02-12  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/local/camel-local-provider.c: mbox, mh, and maildir
	camel-url's need absolute paths.

	* camel-provider.h (CAMEL_URL_PATH_IS_ABSOLUTE): New flaggy flag.

svn path=/trunk/; revision=8193
2001-02-13 00:02:47 +00:00
ec981301f5 save, THEN commit
svn path=/trunk/; revision=8146
2001-02-09 16:44:22 +00:00
65eb577ecd Rewrite a bunch. Replace the existing folder cache stuff with much simpler
* camel-store.c: Rewrite a bunch. Replace the existing folder
	cache stuff with much simpler code that still handles all the
	existing cases. Now the folder hash table is always created by the
	base class, using hash and compare functions provided by the class
	implementation. (If they are set to NULL, CamelStore won't cache
	folders.) lookup_folder, cache_folder, and uncache_folder are no
	longer class methods, and get_name is gone completely.

	(camel_store_get_inbox): Renamed from
	camel_store_get_default_folder, since that wasn't being used, and
	this is what we actually need.
	(camel_store_get_root_folder): Removed, since it's not needed for
	anything given get_folder_info.

	* camel-remote-store.c:
	* providers/local/camel-local-store.c:
	* providers/local/camel-mbox-store.c:
	* providers/local/camel-mh-store.c:
	* providers/local/camel-maildir-store.c:
	* providers/nntp/camel-nntp-store.c:
	* providers/pop3/camel-pop3-store.c:
	* providers/vee/camel-vee-store.c: Minor updates for CamelStore
	changes

	* providers/imap/camel-imap-store.c (camel_imap_store_class_init):
	Update for CamelStore changes.
	(hash_folder_name, compare_folder_name): treat INBOX
	case-insensitively, otherwise use g_str_hash and g_str_equal.

	* camel-service.c (camel_service_construct): Remove
	camel_service_new and create camel_service_construct (as a class
	method) in its place.

	* camel-session.c (camel_session_get_service): Use
	camel_object_new and camel_service_construct to replace
	camel_service_new.

	* providers/local/camel-local-store.c (construct): Append a '/' to
	the URL path if it doesn't end with one

svn path=/trunk/; revision=8145
2001-02-09 16:43:22 +00:00
afa21bb264 Oops, include the camel-tcp-stream-ssl header instead of the raw one.
2001-01-31  Jeffrey Stedfast  <fejj@helixcode.com>

	* camel-tcp-stream-ssl.c: Oops, include the camel-tcp-stream-ssl
	header instead of the raw one.

svn path=/trunk/; revision=8103
2001-02-08 04:50:59 +00:00
49f8a687a4 Changed to push the operation into a status stack.
2001-02-07  Not Zed  <NotZed@Ximian.com>

        * camel-operation.c (camel_operation_start): Changed to push the
        operation into a status stack.
        (camel_operation_progress): Changed to only accept % complete.
        (camel_operation_reset): Free status stack as well.

        * providers/pop3/camel-pop3-folder.c (pop3_get_message): Get the
        octect count from the return line, and pass it to
        get_additional_data().
        (pop3_refresh_info): Added status stuff.

        * providers/pop3/camel-pop3-store.c
        (camel_pop3_command_get_additional_data): Added a total bytes
        expected argument for progress reporting & fixed callers.
        (camel_pop3_command_get_additional_data): Added progress
        reporting.

        * providers/local/camel-mbox-summary.c (mbox_summary_sync_full):
        (mbox_summary_sync_quick):
        (summary_rebuild): Added progress reporting stuff.

svn path=/trunk/; revision=8095
2001-02-08 01:42:53 +00:00
fa272d3dc9 Macro for making comparisons easy. (camel_ustrcasecmp): Use
2001-02-07  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-search-private.c (CAMEL_SEARCH_COMPARE): Macro for making
	comparisons easy.
	(camel_ustrcasecmp): Use CAMEL_SEARCH_COMPARE and check for
	end-of-string before the utf-8 error check.
	(camel_ustrncasecmp): Same.
	(camel_search_header_match): Strip leading spaces before doing
	anything else. Also use vlen and mlen so as to not need to do 500
	strlen()'s.
	(camel_ustrcasecmp): Don't get_utf8() for the 2 strings in the
	comparison part of the loop because of short-circuit expression
	evaluation. (blame JPR if this is the wrong term!)
	(camel_ustrncasecmp): Same.

svn path=/trunk/; revision=8057
2001-02-07 21:27:11 +00:00
187d85dbf8 Macro for making comparisons easy. (camel_ustrcasecmp): Use
2001-02-07  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-search-private.c (CAMEL_SEARCH_COMPARE): Macro for making
	comparisons easy.
	(camel_ustrcasecmp): Use CAMEL_SEARCH_COMPARE and check for
	end-of-string before the utf-8 error check.
	(camel_ustrncasecmp): Same.
	(camel_search_header_match): Strip leading spaces before doing
	anything else. Also use vlen and mlen so as to not need to do 500
	strlen()'s.

svn path=/trunk/; revision=8055
2001-02-07 19:36:46 +00:00
7c6a688ab9 Rewrote using unicode_get_utf8(). (camel_ustrcasecmp): Use unicode_char_t
2001-02-06  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-search-private.c (utf8_get): Rewrote using unicode_get_utf8().
	(camel_ustrcasecmp): Use unicode_char_t
	(camel_ustrncasecmp): Same.

svn path=/trunk/; revision=8026
2001-02-06 21:50:37 +00:00
f8f9d8aadb Made these pass char ** as the second parameter to iconv.
2001-02-06  Christopher James Lahey  <clahey@ximian.com>

	* camel-mime-filter-charset.c (complete, filter),
	camel-mime-utils.c (rfc2047_decode_word, rfc2047_encode_word):
	Made these pass char ** as the second parameter to iconv.

svn path=/trunk/; revision=8022
2001-02-06 20:57:17 +00:00