Commit Graph

2008 Commits

Author SHA1 Message Date
29d21a6a09 Loop on our reads while errno is EINTR or EAGAIN. Also make sure to
2002-06-27  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-gpg-context.c (gpg_ctx_op_step): Loop on our reads while
	errno is EINTR or EAGAIN. Also make sure to completely read stdout
	and stderr by keeping better state.

svn path=/trunk/; revision=17311
2002-06-27 17:55:26 +00:00
c02c6d6972 Loop on our reads while errno is EINTR or EAGAIN.
2002-06-27  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-gpg-context.c (gpg_ctx_op_step): Loop on our reads while
	errno is EINTR or EAGAIN.

svn path=/trunk/; revision=17307
2002-06-27 05:21:36 +00:00
ecb477e338 Removed.
2002-06-26  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-pgp-context.[c,h]: Removed.

	* camel-pgp-mime.c (pgp_mime_part_sign_restore_part): Removed.
	(pgp_mime_part_sign_prepare_part): Removed.
	(camel_pgp_mime_part_sign): Removed.
	(camel_pgp_mime_part_verify): Removed.
	(camel_pgp_mime_part_encrypt): Removed.
	(camel_pgp_mime_part_decrypt): Removed.
	(camel_pgp_mime_is_rfc2015_signed): Documented.
	(camel_pgp_mime_is_rfc2015_encrypted): Same.

svn path=/trunk/; revision=17303
2002-06-26 22:15:24 +00:00
deeb747aeb Oops, this needs to take a userid argument.
2002-06-26  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-multipart-encrypted.c (camel_multipart_encrypted_encrypt):
	Oops, this needs to take a userid argument.

svn path=/trunk/; revision=17299
2002-06-26 20:38:08 +00:00
0e81a5651c Removed (never did anything anyway).
2002-06-26  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-gpg-context.c (gpg_clearsign): Removed (never did anything
	anyway).

	* camel-pgp-context.c (pgp_clearsign): Removed.

	* camel-cipher-context.c (camel_cipher_clearsign): Removed unused
	method.

svn path=/trunk/; revision=17297
2002-06-26 19:20:32 +00:00
a44c898aa1 New class implementing the multipart/encrypted content type. Contains
2002-06-26  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-multipart-encrypted.[c,h]: New class implementing the
	multipart/encrypted content type. Contains methods for encrypting
	and decrypting a multipart/encrypted MIME object.

svn path=/trunk/; revision=17296
2002-06-26 19:14:34 +00:00
d8c7287326 Check for NODATA too.
2002-06-26  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-gpg-context.c (gpg_ctx_parse_status): Check for NODATA
	too.

svn path=/trunk/; revision=17295
2002-06-26 18:49:05 +00:00
1d97d41992 Remove the #include for camel-spoold-store.h
2002-06-25  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/local/camel-local-provider.c: Remove the #include for
	camel-spoold-store.h

svn path=/trunk/; revision=17285
2002-06-26 02:49:39 +00:00
58e9041bff Include <sys/time.h> for struct timeval.
2002-06-26  Not Zed  <NotZed@Ximian.com>

	* camel-gpg-context.c: Include <sys/time.h> for struct timeval.

	* providers/local/camel-local-provider.c
	(camel_provider_module_init): Removed spoold provider.  The spool
	provider does it now.

2002-06-25  Not Zed  <NotZed@Ximian.com>

	* providers/local/camel-spool-folder.c (camel_spool_folder_new):
	Support a new xstatus option - folders update/honour the
	Status/X-Status headers in addition to X-Evolution.

	* providers/local/camel-local-summary.c
	(camel_local_summary_write_headers): If supplied with an
	additional status or xstatus arg, write a Status header and/or
	X-Status.  Also fix the case of properly terminating the headers
	if an xev line isn't supplied.

	* providers/local/Makefile.am (libcamellocalinclude_HEADERS,SOURCES):
	Removed spoold-store.[ch].

	* providers/local/camel-local-provider.c
	(camel_provider_module_init): For the spoold type, just use the
	spool store instead.

	* providers/local/camel-spool-store.h: Added a type field, so the
	1 store can implement different types without having to subclass.

	* providers/local/camel-spool-store.c
	(camel_spool_store_get_toplevel_dir): Removed, inherits from local
	store now.
	(construct): If we're pointing to a file, treat it as mbox mode,
	otherwise treat it as 'elm' mode.
	(get_folder): Only test for INBOX in mbox mode.
	(get_folder_info_elm):
	(get_folder_info_mbox): Two alternatives for getting folder info,
	depending on the type of folder we're looking at.
	(get_folder_info_mbox): Make the url include the protocol.
	(scan_dir): "

	* providers/local/camel-spoold-store.c
	(camel_spoold_store_get_toplevel_dir): Removed, inherits from
	local store now.

	* camel-folder.c (get_message_user_tag): Dont use a
	g_return_if_fail for info==NULL.  This is not an error.
	(set_message_user_tag): And same here.
	(set_message_user_flag): Sigh, and here.
	(get_message_user_flag): And here.
	(set_message_flags): and here ...
	(get_message_flags): Dum de dum, de done at last.

	* providers/local/camel-mbox-folder.c (mbox_get_message): Check
	for new messages whenever we retrieve one.  In the common
	no-update case, this is a single stat.
	(mbox_get_message): If we need to rescan, then force a full rescan
	to make sure it does the right thing.
	(mbox_get_message): Cleanup the exception handling a bit, if we do
	get an error, propagate any folder changes anyway as well.
	(mbox_set_message_user_flag): Argh more of these stupid g_returns
	taht shouldn't be.
	(mbox_set_message_user_tag): Here too.
	(mbox_set_message_flags): If the read flag is being changed, mark
	it as an xevchange (i.e. Status line change).

	* providers/local/camel-mbox-summary.c (summary_rebuild): Merged
	into summary_update.
	(summary_update): Changed to allow it to update existing lists of
	messages without clearing out the summary.
	(mbox_summary_check): Dont clear the summary, just re-scan.
	(message_info_new): Attempt to support the 'Status: RO' elm/pine
	thing.
	(camel_mbox_summary_encode_status):
	(camel_mbox_summary_decode_status): Util functions for
	creating/parsing the Status line.
	(camel_mbox_summary_sync_mbox): Write out the status line if we're
	going to try support it.
	(camel_mbox_summary_xstatus): Implement option to control
	read/write of (x-)status.
	(message_info_new): Do x-status stuff based on run-time option.
	(camel_mbox_summary_sync_mbox): "
	(mbox_summary_add): If x-status enabled, then always add
	status/x-status headers to message.

	* camel-folder-summary.c (summary_assign_uid): If the messageinfo
	is already in the summary, AND is the same messageinfo, dont do
	anything, return a value to indicate this.
	(camel_folder_summary_add): Do nothing if this info already in the
	summary, so we can perform updates.

2002-06-24  Not Zed  <NotZed@Ximian.com>

	* providers/local/camel-local-summary.c
	(camel_local_summary_check_force): New method to force the next
	summary check to be a full check, set if a mismatch occurs.

	* camel-folder-summary.c (camel_folder_summary_load): If we have
	no summary path set, dont do any i/o, rather than abort.
	(camel_folder_summary_save): "
	(camel_folder_summary_header_load): "

	* providers/local/camel-spool-store.h: Inherit from camel mbox
	store, even if we override almost everything.

	* providers/local/camel-local-folder.c
	(camel_local_folder_construct): If the base path points to a file,
	use that as the folder path as well.

	* providers/local/camel-spool-folder.h: Inherit from
	camel-mbox-folder.

	* providers/local/camel-spool-summary.c (spool_summary_sync_full):
	Use camel_mbox_summary_sync_mbox to do most of the work.

	* providers/local/camel-spool-summary.[ch]: Make spool-summary
	inherit from mbox summary rather than foldersummary.

	* providers/local/camel-mbox-summary.c (mbox_summary_sync): Make
	sync_full/quick virtual methods.
	(camel_mbox_summary_sync_mbox): The full sync method put into a
	simple function that sync's from fd to fd.
	(mbox_summary_sync_full): Use summary_sync_mbox to do the real
	work.
	(mbox_summary_check): Create removed events if the folder gets
	cleared.  Also, dont clear the summary before a rebuild, try to
	merge.

svn path=/trunk/; revision=17284
2002-06-26 01:07:05 +00:00
8a7da69e92 #include <sys/time.h>
2002-06-25  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-gpg-context.c: #include <sys/time.h>

svn path=/trunk/; revision=17283
2002-06-26 00:48:29 +00:00
b62bbc149b Return the option as --digest-algo=<micalg> (gpg_ctx_parse_status): Decode
2002-06-25  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-gpg-context.c (gpg_hash_str): Return the option as
	--digest-algo=<micalg>
	(gpg_ctx_parse_status): Decode more status information and keep
	track of trust and such.
	(gpg_ctx_op_complete): Make sure we aren't waiting for gpg to
	write data to stdout (such as encrypted/decrypted data or a
	signature).
	(gpg_encrypt): Remove the fejj@stampede.org hard-coded value
	(which had only meant to be for testing).

svn path=/trunk/; revision=17271
2002-06-25 06:21:17 +00:00
0b6f593b29 implemented camel_gpg_context_set_always_trust()
svn path=/trunk/; revision=17269
2002-06-25 01:19:32 +00:00
49d87cf640 Use --command-fd rather than --passphrase-fd since what we really want is
2002-06-24  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-gpg-context.c (gpg_ctx_get_argv): Use --command-fd rather
	than --passphrase-fd since what we really want is an interactive
	mode (besides, --passphrase-fd requires a passphrase to be sent
	before --status-fd will send a NEED_PASSPHRASE status message).
	(gpg_ctx_parse_status): When we encounter a BAD_PASSPHRASE, tell
	the session to uncache it.

svn path=/trunk/; revision=17268
2002-06-25 00:54:20 +00:00
5ded16a933 Use --command-fd rather than --passphrase-fd since what we really want is
2002-06-24  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-gpg-context.c (gpg_ctx_get_argv): Use --command-fd rather
	than --passphrase-fd since what we really want is an interactive
	mode (besides, --passphrase-fd requires a passphrase to be sent
	before --status-fd will send a NEED_PASSPHRASE status message).

svn path=/trunk/; revision=17267
2002-06-24 22:59:59 +00:00
149515b5df Check for ERRSIG also. (gpg_ctx_op_step): Don't try writing a passphrase
2002-06-23  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-gpg-context.c (gpg_ctx_parse_status): Check for ERRSIG
	also.
	(gpg_ctx_op_step): Don't try writing a passphrase unless our
	operation requires it.

svn path=/trunk/; revision=17263
2002-06-24 02:50:53 +00:00
3d0e7558f8 Return -1 on error. (gpg_decrypt): Same. (gpg_sign): Again here.
2002-06-22  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-gpg-context.c (gpg_encrypt): Return -1 on error.
	(gpg_decrypt): Same.
	(gpg_sign): Again here.
	(gpg_ctx_op_step): Only attenmpt to read from the status-fd if we
	are not already 'complete'.

	* camel-pgp-mime.c (camel_pgp_mime_part_encrypt): Flush the
	filtered stream.

svn path=/trunk/; revision=17257
2002-06-22 23:07:55 +00:00
4af1937ad5 more fixes, now verifying works and signing almost works as well, except gpg is running out of memory for me? not sure if that is a gpg or evo bug
svn path=/trunk/; revision=17256
2002-06-22 08:07:08 +00:00
e005e8b08e yay, I get to hold more state because Unix pipes suck so badly. This is
getting very close to working now... I think that as soon as I debug this
segfault, it will work. Probably dereferencing a NULL pointer or something
stupid like that.

svn path=/trunk/; revision=17255
2002-06-22 04:58:55 +00:00
e1d47e07e9 added camel_gpg_context_new which I had forgotten before
svn path=/trunk/; revision=17252
2002-06-21 20:47:20 +00:00
ea65693685 New source files implementing the CamelCipherContext class for gnupg.
2002-06-21  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-gpg-context.[c,h]: New source files implementing the
	CamelCipherContext class for gnupg.

	* camel-pgp-context.c (camel_pgp_context_new): Return a
	CamelCipherContext.

	* camel-pgp-mime.c (camel_pgp_mime_part_decrypt): Take a
	CamelCipherContext argument rather than a CamelPgpContext since we
	now have a CamelGpgContext also.
	(camel_pgp_mime_part_encrypt): Same.
	(camel_pgp_mime_part_verify): Same.
	(camel_pgp_mime_part_sign): Same.

svn path=/trunk/; revision=17251
2002-06-21 19:11:57 +00:00
9534ce2e95 Updated to support searching as well as making it use CamelDigestSummary.
2002-06-20  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-digest-folder.c: Updated to support searching as well as
	making it use CamelDigestSummary.

	* camel-digest-summary.[c,h]: New class to handle the summary for
	CamelDigestFolder.

	* camel-tcp-stream-ssl.c (set_errno): PR_IO_TIMEOUT_ERROR should
	map to ETIMEDOUT and not EAGAIN.
	(stream_connect): Reset the PR_Poll() timeout back to 2 minutes as
	this wasn't the problem afterall.

svn path=/trunk/; revision=17249
2002-06-20 21:32:17 +00:00
d67d5483f4 PR_IO_TIMEOUT_ERROR should map to ETIMEDOUT and not EAGAIN.
2002-06-20  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-tcp-stream-ssl.c (set_errno): PR_IO_TIMEOUT_ERROR should
	map to ETIMEDOUT and not EAGAIN.
	(stream_connect): Reset the PR_Poll() timeout back to 2 minutes as
	this wasn't the problem afterall.

svn path=/trunk/; revision=17246
2002-06-20 06:34:14 +00:00
042202c172 Drop back to initial state if we came from eof state.
2002-06-19  Not Zed  <NotZed@Ximian.com>

        * camel-mime-parser.c (folder_scan_drop_step): Drop back to
        initial state if we came from eof state.

svn path=/trunk/; revision=17245
2002-06-20 05:50:38 +00:00
31cc3a1eb4 Set the poll timeout to be PR_INTERVAL_MIN, this one shouldn't need to be
2002-06-19  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-tcp-stream-ssl.c (stream_connect): Set the poll timeout to
	be PR_INTERVAL_MIN, this one shouldn't need to be 2 minutes (plus
	it blocks my connection at home for far too long).

svn path=/trunk/; revision=17234
2002-06-19 18:13:24 +00:00
a2b972dbe4 Make sure we hold the command_lock before accessing current_folder.
2002-06-19  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/imap/camel-imap-folder.c (imap_refresh_info): Make
	sure we hold the command_lock before accessing current_folder.
	(imap_append_online): Same.
	(imap_transfer_online): Same.

	* providers/imap/camel-imap-store.c (delete_folder): We need to
	hold the command_lock before we can set the current_folder to
	NULL.
	(rename_folder): Same.
	(get_folder_info_online): We need to make sure we hold the
	command_lock in order to use current_folder.
	(everywhere): Same.

svn path=/trunk/; revision=17233
2002-06-19 17:57:04 +00:00
75705d57f3 Don't bother trying to authenticate (and thus don't throw up an error
2002-06-19  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/smtp/camel-smtp-transport.c (smtp_connect): Don't
	bother trying to authenticate (and thus don't throw up an error
	dialog) unless the server is an ESMTP server and supports
	authentication.

	* camel-sasl-plain.c: Change the user-friendly name to PLAIN, this
	is what it should be. Not "Password" because user's immediately
	think that they need authentication when they see "Password" even
	if they don't need it at all.

svn path=/trunk/; revision=17232
2002-06-19 05:35:59 +00:00
08344be402 Update the freeze state of the new source folder.
2002-06-17  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-vee-folder.c (camel_vee_folder_add_folder): Update the
	freeze state of the new source folder.
	(camel_vee_folder_remove_folder): Undo any freeze state that we
	have imposed on this source folder.

svn path=/trunk/; revision=17216
2002-06-17 21:44:06 +00:00
92ac615eae remove the camel-remote-store private struct
svn path=/trunk/; revision=17209
2002-06-17 18:32:05 +00:00
c397a95d08 Freeze source folders. (vee_thaw): Thaw all source folders. Fixes bug
2002-06-14  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-vee-folder.c (vee_freeze): Freeze source folders.
	(vee_thaw): Thaw all source folders. Fixes bug #24317.

svn path=/trunk/; revision=17189
2002-06-14 22:03:05 +00:00
3cbdcff43d Unlock the command_lock after each UID STORE command so that other
2002-06-14  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/imap/camel-imap-folder.c (imap_sync_online): Unlock
	the command_lock after each UID STORE command so that other
	(probably more important) threads can send their requests.

svn path=/trunk/; revision=17188
2002-06-14 21:51:18 +00:00
1957762cbf Fixed compiler warnings.
2002-06-14  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-arg.c:
	* camel-disco-diary.c:
	* camel-index-control.c:
	* camel-mime-part.c:
	* camel-pgp-mime.c:
	* camel-store.c:
	* camel-tcp-stream-ssl.c:
	* camel-text-index.c: Fixed compiler warnings.

svn path=/trunk/; revision=17187
2002-06-14 21:33:45 +00:00
557afe4102 Updated to use ctx->sign_protocol rather than ctx->protocol.
2002-06-14  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-multipart-signed.c: Updated to use ctx->sign_protocol
	rather than ctx->protocol.

	* camel-cipher-context.h: Add an ecnryption protocol member.

	* camel-pgp-context.c (camel_pgp_context_init): Set the encryption
	protocol.

svn path=/trunk/; revision=17186
2002-06-14 20:15:04 +00:00
d5f7add041 Our parent class is camel_vee_folder, not camel_folder, fix setting of
2002-06-11  Not Zed  <NotZed@Ximian.com>

        * camel-vtrash-folder.c (camel_vtrash_folder_class_init): Our
        parent class is camel_vee_folder, not camel_folder, fix setting of
        parent folder (unused anyway, but removes a run-time warning).

2002-06-06  Not Zed  <NotZed@Ximian.com>

        * camel-folder-thread.c (thread_summary): Do the work here.
        (camel_folder_thread_messages_remove): Implement.  Remove some
        uid's from the tree.   Disalbe from build, for now.
        (remove_uid_node_rec): Actually do the work.
        (camel_folder_thread_messages_add): Implement.  Add some summary
        items to the tree.  Disable from build though.
        (camel_folder_thread_messages_apply): Make a thread tree built
        using camel_folder_thread_new() map to a new set of uids,
        preserving some order.  Meant primarily to manage deleted + added
        uids in a user-friendly manner.

svn path=/trunk/; revision=17164
2002-06-11 04:41:25 +00:00
b1c342a3ad Use CAMEL_EXCEPTION_SYSTEM rather than '1' for clarity.
2002-06-09  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-multipart-signed.c (camel_multipart_signed_verify): Use
	CAMEL_EXCEPTION_SYSTEM rather than '1' for clarity.

svn path=/trunk/; revision=17151
2002-06-09 05:38:41 +00:00
88bf7aaa37 Up the timeout on the connect code to 2 minutes.
2002-06-07  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-tcp-stream-ssl.c (stream_connect): Up the timeout on the
	connect code to 2 minutes.

svn path=/trunk/; revision=17140
2002-06-07 05:53:08 +00:00
ac2d44aa7c Duh! The protocol is application/pgp-signature. TODO: need to have a
2002-06-07  Not Zed  <NotZed@Ximian.com>

	* camel-pgp-context.c (camel_pgp_context_init): Duh!  The protocol
	is application/pgp-signature.  TODO: need to have a signed and an
	encrypted protocol specified separately.

svn path=/trunk/; revision=17139
2002-06-07 02:37:10 +00:00
2dd7e35afd Parse "From: Dan Winship <danw>" (with no domain) in the way the sender
* camel-mime-utils.c (header_decode_mailbox): Parse
	"From: Dan Winship <danw>" (with no domain) in the way the sender
	meant it, even though it's completely wrong.

svn path=/trunk/; revision=17137
2002-06-06 20:41:14 +00:00
1f993cacd1 Remove the CONF_DEFAULT_PATH entry, as this is handled by the url config
2002-06-04  Not Zed  <NotZed@Ximian.com>

        * providers/local/camel-local-provider.c: Remove the
        CONF_DEFAULT_PATH entry, as this is handled by the url config
        stuff.  This made it basically impossible to configure any local
        folder from the gui.

        * providers/local/camel-local-folder.c (local_refresh_info): Force
        a refresh.  Should work for all local folders to force them to
        refresh.

        * providers/local/camel-maildir-folder.c (maildir_refresh_info):
        Removed, moved into camel-local-folder.

        * providers/local/camel-mh-summary.c (mh_summary_next_uid_string):
        Once we assign or get a uid, tell the summary of this, so the next
        uid we get will be higher than any previously.

        * camel-object.c (camel_object_ref, camel_object_unref): I got
        sick of casting, these now take void * like they should, and
        perform their own run-time type checking.

        * providers/local/camel-mh-store.c (recursive_scan): Changed to
        use stat, not lstat (*shrug* maybe someone wants to softlink their
        maildir tree?).
        (inode_hash):
        (inode_equal):
        (inode_free): Copied from camel-maildir store (should put into
        camel-local-store or utils?).
        (recursive_scan): Changed to check for re-visiting inodes.  Also,
        it builds the tree itself, rather than using folder_info_build.
        (add_folder): Changed to folder_info_new.
        (recursive_scan): Properly honour the recursive flag.  Also,
        lookup unread count from folder.
        (folder_info_new): Init unread message count to -1, since we dont
        know yet.
        (folder_info_new): Take the name as an argument, and perform the
        merging here.
        (folders_update): Util func to add/remove folders from .folders
        file.  I'm assuming its sorted.
        (get_folder): Add the folder to .folders if we created a new one,
        and if it exists.
        (delete_folder): Remove from .folders, etc.
        (folders_scan): If we have a .folders file, read and use that
        instead.
        (recursive_scan): Handle scanning from a particular directory
        properly.
        (rename_folder): Implement so we can track any changes to the
        .folders file if its turned on.

        ** Applied patch below from Greg Hudson.

2002-05-10  Greg Hudson  <ghudson@mit.edu>

        * camel-mh-store.c (get_inbox, get_folder_info, recursive_scan,
        add_folder): Implement support for MH stores.

        * camel-mh-summary.c (mh_summary_check, sort_uid_cmp): Sort MH
        messages by message number (uid), like we sort maildir messages by
        date.

        * camel-local-provider.c (mh_provider): Turn on source and store
        flags.

svn path=/trunk/; revision=17130
2002-06-06 09:53:36 +00:00
d0330caab5 Check that any unmatched operation is not concerning any vfolder. Other
2002-06-03  Not Zed  <NotZed@Ximian.com>

        * camel-vee-folder.c (camel_vee_folder_add_folder):
        (folder_changed_change):
        (folder_changed_remove_uid):
        (folder_changed_add_uid):
        (vee_folder_build_folder): Check that any unmatched operation is
        not concerning any vfolder.  Other vfolders should never be part of any
        unmatched handling.  For #24615, and others probably.

svn path=/trunk/; revision=17075
2002-06-03 14:04:48 +00:00
d0a6ed17b6 setup/free the mech string.
2002-06-02  Not Zed  <NotZed@Ximian.com>

        * camel-sasl.c (camel_sasl_new):
        (camel_sasl_finalize): setup/free the mech string.

        * camel-sasl.h: Added 'mech' mechanism string.

2002-06-01  Not Zed  <NotZed@Ximian.com>

        * providers/imap/camel-imap-folder.c (imap_getv): Implement.  Only
        the object_description arg.
        (camel_imap_folder_get_type): Init parent_class holder.

        * providers/local/camel-local-folder.c (local_getv): Implement,
        object_description arg.

        * camel-folder.c (folder_getv): Implement, add a bunch of args you
        can get -> camel_folder_get_unread_count etc will be going RSN i
        hope.
        (camel_folder_finalize): Free cached description string.

        * camel-object.c (cobject_getv): Implement
        CAMEL_OBJECT_ARG_DESCRIPTION, just return the classname of the
        object.
        (camel_object_getv):
        (camel_object_get):
        (camel_object_setv):
        (camel_object_set): Take object = void *, to simplify usage.
        (camel_object_setv): Removed unecessary locals.
        (camel_object_getv): Same.
        (camel_object_free): New method, free an arg, upto implementations
        whether args are static/const or not.
        (cobject_free): Implement a dummy do nothing free.

2002-05-31  Not Zed  <NotZed@Ximian.com>

        * camel-vee-folder.c (camel_vee_folder_get_location): new function
        to get the real location (folder) (and uid) of a vfolder object.
        Using the folderinfo, since we already have it, maybe it should
        use the uid.

svn path=/trunk/; revision=17073
2002-06-03 02:56:35 +00:00
5a35647b7d When the part is a multipart/signed, make sure to free the part_spec
2002-05-31  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/imap/camel-imap-folder.c (get_content): When the part
	is a multipart/signed, make sure to free the part_spec before
	returning (the other types already did this properly).

svn path=/trunk/; revision=17066
2002-05-31 22:10:13 +00:00
8c4223b4c4 Free the path buffer when we're done with it.
2002-05-31  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/imap/camel-imap-message-cache.c
	(camel_imap_message_cache_get): Free the path buffer when we're
	done with it.

	* providers/imap/camel-imap-folder.c (imap_update_summary): Free
	the final tagged response buffer.

svn path=/trunk/; revision=17065
2002-05-31 21:40:07 +00:00
b2cae6f317 If we fail to read a literal, free the temporary string buffer.
2002-05-31  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/imap/camel-imap-command.c (imap_read_untagged): If we
	fail to read a literal, free the temporary string buffer.

svn path=/trunk/; revision=17063
2002-05-31 20:43:05 +00:00
4b63089bda Revert my fix from the other day since camel_imap_command_response()
2002-05-31  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/imap/camel-imap-folder.c (imap_rescan): Revert my fix
	from the other day since camel_imap_command_response() doesn't
	guarentee that resp will be set to NULL on error.

	* providers/imap/camel-imap-command.c
	(camel_imap_command_response): Use a different variable to get the
	return of imap_parse_untagged so that we don't lose the pointer to
	the original malloc'd respbuf buffer.

svn path=/trunk/; revision=17061
2002-05-31 20:14:00 +00:00
60a6173744 If we fail to be able to create a stream to insert into the cache, then
2002-05-31  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-data-cache.c (camel_data_cache_get): If we fail to be able
	to create a stream to insert into the cache, then free the 'real'
	path.

svn path=/trunk/; revision=17060
2002-05-31 20:04:42 +00:00
1c309b14c4 Added a protocol field for users to use.
2002-05-30  Not Zed  <NotZed@Ximian.com>

        * camel-cipher-context.h: Added a protocol field for users to use.

        * camel-stream-filter.c (do_read): Sigh, the pre-size is READ_PAD
        not READ_SIZE.  Big difference.
        (READ_PAD): Bumped upto 128 from 64, so we can fit a typical line
        in full.

        * providers/imap/camel-imap-folder.c (get_content): Changed to
        load multipart/signed as an opaque block into the right kind of
        object.

        * camel-multipart.h (struct _CamelMultipart): Removed the boundary
        field.  It wans't actually used anywhere.

        * camel-seekable-substream.c
        (camel_seekable_substream_new_with_seekable_stream_and_bounds):
        Shortened this stupidly long name to just :new(), its the only way
        its ever used.  Fixed all callers.

        * camel-multipart-signed.[ch]: new wrapper for multipart/signed
        types.  We need to treat the entire content as a blob of data for
        transport purposes.  This also cleans up a lot of the sign/verify
        handling.

        * camel-mime-part-utils.c
        (camel_mime_part_construct_content_from_parser): Just call
        camel_multipart_construct_from_parser for multipart parts, also
        use a multipart_signed for multipart/signed types.

        * camel-multipart.c (camel_multipart_construct_from_parser): New
        virtual function for multiparts to buld themselves.
        (construct_from_parser): Implement for normal multiparts.
        (toplevel): Got rid of a warning, it'll never be an abstract
        class.

        * camel-pgp-context.c (pgp_hash_to_id):
        (pgp_id_to_hash): Implement.
        (camel_pgp_context_init): Init the pgp protocol specifier.

        * camel-cipher-context.c (camel_cipher_id_to_hash):
        (camel_cipher_hash_to_id): Util virtual methods to handle the
        cipher id string.

        * camel-mime-filter-canon.[ch]: A new filter, end/start of line
        canonicalisation filter.  Can escape "From " and strip trailing
        whitespace, and canonicalise the end of line to crlf or to lf.

2002-05-29  Not Zed  <NotZed@Ximian.com>

        * camel-multipart.h (struct _CamelMultipart): Removed the
        'parent', nothing used it, anywhere.  Cleaned up some formatting
        slightly.

svn path=/trunk/; revision=17057
2002-05-31 01:05:47 +00:00
b84dbb018b On error, don't leak the GByteArray buffer.
2002-05-30  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/imap/camel-imap-store.c (camel_imap_store_readline):
	On error, don't leak the GByteArray buffer.

svn path=/trunk/; revision=17054
2002-05-31 00:46:20 +00:00
74ae9178ab Free the response before checking for errors. I'm not sure this'll
2002-05-30  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/imap/camel-imap-folder.c (imap_rescan): Free the
	response before checking for errors. I'm not sure this'll actually
	fix the memory leak here, but it might? Certainly can't hurt.

	* camel-block-file.c (camel_block_file_finalise): Destroy the
	blocks hash table.

svn path=/trunk/; revision=17053
2002-05-31 00:00:16 +00:00
1fc61048fc Only free the LOGOUT response if it is non-NULL.
2002-05-29  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/imap/camel-imap-store.c (connect_to_server): Only free
	the LOGOUT response if it is non-NULL.

svn path=/trunk/; revision=17036
2002-05-29 20:36:46 +00:00
bb2af98184 Implement. Run a summary check to update for any newly arrived messages.
2002-05-28  Not Zed  <NotZed@Ximian.com>

        * providers/local/camel-maildir-folder.c (maildir_refresh_info):
        Implement.  Run a summary check to update for any newly arrived
        messages.

        * providers/local/camel-maildir-store.c (scan_dir): If we have a
        folder, execute a refresh_info on it, to suck in any new stuff.

svn path=/trunk/; revision=17029
2002-05-29 02:35:42 +00:00