platform/upstream/evolution-data-server.git
22 years agoRemoved (never did anything anyway).
Jeffrey Stedfast [Wed, 26 Jun 2002 19:20:32 +0000 (19:20 +0000)]
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.

22 years agoNew class implementing the multipart/encrypted content type. Contains
Jeffrey Stedfast [Wed, 26 Jun 2002 19:14:34 +0000 (19:14 +0000)]
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.

22 years agoCheck for NODATA too.
Jeffrey Stedfast [Wed, 26 Jun 2002 18:49:05 +0000 (18:49 +0000)]
Check for NODATA too.

2002-06-26  Jeffrey Stedfast  <fejj@ximian.com>

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

22 years agoRemove the #include for camel-spoold-store.h
Jeffrey Stedfast [Wed, 26 Jun 2002 02:49:39 +0000 (02:49 +0000)]
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

22 years agoInclude <sys/time.h> for struct timeval.
Not Zed [Wed, 26 Jun 2002 01:07:05 +0000 (01:07 +0000)]
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.

22 years ago#include <sys/time.h>
Jeffrey Stedfast [Wed, 26 Jun 2002 00:48:29 +0000 (00:48 +0000)]
#include <sys/time.h>

2002-06-25  Jeffrey Stedfast  <fejj@ximian.com>

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

22 years agoReturn the option as --digest-algo=<micalg> (gpg_ctx_parse_status): Decode
Jeffrey Stedfast [Tue, 25 Jun 2002 06:21:17 +0000 (06:21 +0000)]
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).

22 years agoimplemented camel_gpg_context_set_always_trust()
Jeffrey Stedfast [Tue, 25 Jun 2002 01:19:32 +0000 (01:19 +0000)]
implemented camel_gpg_context_set_always_trust()

22 years agoUse --command-fd rather than --passphrase-fd since what we really want is
Jeffrey Stedfast [Tue, 25 Jun 2002 00:54:20 +0000 (00:54 +0000)]
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.

22 years agoUse --command-fd rather than --passphrase-fd since what we really want is
Jeffrey Stedfast [Mon, 24 Jun 2002 22:59:59 +0000 (22:59 +0000)]
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).

22 years agoCheck for ERRSIG also. (gpg_ctx_op_step): Don't try writing a passphrase
Jeffrey Stedfast [Mon, 24 Jun 2002 02:50:53 +0000 (02:50 +0000)]
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.

22 years agoReturn -1 on error. (gpg_decrypt): Same. (gpg_sign): Again here.
Jeffrey Stedfast [Sat, 22 Jun 2002 23:07:55 +0000 (23:07 +0000)]
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.

22 years agomore fixes, now verifying works and signing almost works as well, except gpg is runni...
Jeffrey Stedfast [Sat, 22 Jun 2002 08:07:08 +0000 (08:07 +0000)]
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

22 years agoyay, I get to hold more state because Unix pipes suck so badly. This is
Jeffrey Stedfast [Sat, 22 Jun 2002 04:58:55 +0000 (04:58 +0000)]
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.

22 years agoadded camel_gpg_context_new which I had forgotten before
Jeffrey Stedfast [Fri, 21 Jun 2002 20:47:20 +0000 (20:47 +0000)]
added camel_gpg_context_new which I had forgotten before

22 years agoNew source files implementing the CamelCipherContext class for gnupg.
Jeffrey Stedfast [Fri, 21 Jun 2002 19:11:57 +0000 (19:11 +0000)]
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.

22 years agoUpdated to support searching as well as making it use CamelDigestSummary.
Jeffrey Stedfast [Thu, 20 Jun 2002 21:32:17 +0000 (21:32 +0000)]
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.

22 years agoPR_IO_TIMEOUT_ERROR should map to ETIMEDOUT and not EAGAIN.
Jeffrey Stedfast [Thu, 20 Jun 2002 06:34:14 +0000 (06:34 +0000)]
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.

22 years agoDrop back to initial state if we came from eof state.
Not Zed [Thu, 20 Jun 2002 05:50:38 +0000 (05:50 +0000)]
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.

22 years agoSet the poll timeout to be PR_INTERVAL_MIN, this one shouldn't need to be
Jeffrey Stedfast [Wed, 19 Jun 2002 18:13:24 +0000 (18:13 +0000)]
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).

22 years agoMake sure we hold the command_lock before accessing current_folder.
Jeffrey Stedfast [Wed, 19 Jun 2002 17:57:04 +0000 (17:57 +0000)]
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.

22 years agoDon't bother trying to authenticate (and thus don't throw up an error
Jeffrey Stedfast [Wed, 19 Jun 2002 05:35:59 +0000 (05:35 +0000)]
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.

22 years agoUpdate the freeze state of the new source folder.
Jeffrey Stedfast [Mon, 17 Jun 2002 21:44:06 +0000 (21:44 +0000)]
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.

22 years agoremove the camel-remote-store private struct
Jeffrey Stedfast [Mon, 17 Jun 2002 18:32:05 +0000 (18:32 +0000)]
remove the camel-remote-store private struct

22 years agofile camel-unmatched-folder.c was initially added on branch notzed-play-2.
Michael Zucci [Mon, 17 Jun 2002 01:49:02 +0000 (01:49 +0000)]
file camel-unmatched-folder.c was initially added on branch notzed-play-2.

22 years agofile camel-unmatched-folder.h was initially added on branch notzed-play-2.
Michael Zucci [Mon, 17 Jun 2002 01:49:02 +0000 (01:49 +0000)]
file camel-unmatched-folder.h was initially added on branch notzed-play-2.

22 years agofile camel-vtrash-store.c was initially added on branch notzed-play-2.
Michael Zucci [Mon, 17 Jun 2002 01:49:02 +0000 (01:49 +0000)]
file camel-vtrash-store.c was initially added on branch notzed-play-2.

22 years agofile camel-vtrash-store.h was initially added on branch notzed-play-2.
Michael Zucci [Mon, 17 Jun 2002 01:49:02 +0000 (01:49 +0000)]
file camel-vtrash-store.h was initially added on branch notzed-play-2.

22 years agoFreeze source folders. (vee_thaw): Thaw all source folders. Fixes bug
Jeffrey Stedfast [Fri, 14 Jun 2002 22:03:05 +0000 (22:03 +0000)]
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.

22 years agoUnlock the command_lock after each UID STORE command so that other
Jeffrey Stedfast [Fri, 14 Jun 2002 21:51:18 +0000 (21:51 +0000)]
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.

22 years agoFixed compiler warnings.
Jeffrey Stedfast [Fri, 14 Jun 2002 21:33:45 +0000 (21:33 +0000)]
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.

22 years agoUpdated to use ctx->sign_protocol rather than ctx->protocol.
Jeffrey Stedfast [Fri, 14 Jun 2002 20:15:04 +0000 (20:15 +0000)]
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.

22 years agoOur parent class is camel_vee_folder, not camel_folder, fix setting of
Not Zed [Tue, 11 Jun 2002 04:41:25 +0000 (04:41 +0000)]
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.

22 years agoUse CAMEL_EXCEPTION_SYSTEM rather than '1' for clarity.
Jeffrey Stedfast [Sun, 9 Jun 2002 05:38:41 +0000 (05:38 +0000)]
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.

22 years agoUp the timeout on the connect code to 2 minutes.
Jeffrey Stedfast [Fri, 7 Jun 2002 05:53:08 +0000 (05:53 +0000)]
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.

22 years agoDuh! The protocol is application/pgp-signature. TODO: need to have a
Not Zed [Fri, 7 Jun 2002 02:37:10 +0000 (02:37 +0000)]
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.

22 years agoParse "From: Dan Winship <danw>" (with no domain) in the way the sender
Dan Winship [Thu, 6 Jun 2002 20:41:14 +0000 (20:41 +0000)]
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.

22 years agoRemove the CONF_DEFAULT_PATH entry, as this is handled by the url config
Not Zed [Thu, 6 Jun 2002 09:53:36 +0000 (09:53 +0000)]
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.

22 years agoCheck that any unmatched operation is not concerning any vfolder. Other
Not Zed [Mon, 3 Jun 2002 14:04:48 +0000 (14:04 +0000)]
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.

22 years agosetup/free the mech string.
Not Zed [Mon, 3 Jun 2002 02:56:35 +0000 (02:56 +0000)]
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.

22 years agoWhen the part is a multipart/signed, make sure to free the part_spec
Jeffrey Stedfast [Fri, 31 May 2002 22:10:13 +0000 (22:10 +0000)]
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).

22 years agoFree the path buffer when we're done with it.
Jeffrey Stedfast [Fri, 31 May 2002 21:40:07 +0000 (21:40 +0000)]
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.

22 years agoIf we fail to read a literal, free the temporary string buffer.
Jeffrey Stedfast [Fri, 31 May 2002 20:43:05 +0000 (20:43 +0000)]
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.

22 years agoRevert my fix from the other day since camel_imap_command_response()
Jeffrey Stedfast [Fri, 31 May 2002 20:14:00 +0000 (20:14 +0000)]
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.

22 years agoIf we fail to be able to create a stream to insert into the cache, then
Jeffrey Stedfast [Fri, 31 May 2002 20:04:42 +0000 (20:04 +0000)]
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.

22 years agoAdded a protocol field for users to use.
Not Zed [Fri, 31 May 2002 01:05:47 +0000 (01:05 +0000)]
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.

22 years agoOn error, don't leak the GByteArray buffer.
Jeffrey Stedfast [Fri, 31 May 2002 00:46:20 +0000 (00:46 +0000)]
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.

22 years agoFree the response before checking for errors. I'm not sure this'll
Jeffrey Stedfast [Fri, 31 May 2002 00:00:16 +0000 (00:00 +0000)]
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.

22 years agoOnly free the LOGOUT response if it is non-NULL.
Jeffrey Stedfast [Wed, 29 May 2002 20:36:46 +0000 (20:36 +0000)]
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.

22 years agoImplement. Run a summary check to update for any newly arrived messages.
Not Zed [Wed, 29 May 2002 02:35:42 +0000 (02:35 +0000)]
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.

22 years agoUse the CamelMessageInfo rather than the CamelMimeMessage because the
Jeffrey Stedfast [Tue, 28 May 2002 19:00:23 +0000 (19:00 +0000)]
Use the CamelMessageInfo rather than the CamelMimeMessage because the

2002-05-28  Jeffrey Stedfast  <fejj@ximian.com>

* camel-filter-driver.c (camel_filter_driver_log): Use the
CamelMessageInfo rather than the CamelMimeMessage because the
message may not have been loaded (thus NULL).

22 years agoOn connection failure, unref the tcp stream.
Jeffrey Stedfast [Tue, 28 May 2002 03:00:31 +0000 (03:00 +0000)]
On connection failure, unref the tcp stream.

2002-05-27  Jeffrey Stedfast  <fejj@ximian.com>

* providers/smtp/camel-smtp-transport.c (connect_to_server): On
connection failure, unref the tcp stream.

* providers/pop3/camel-pop3-store.c (connect_to_server): On
connection failure, unref the tcp stream.

* providers/imap/camel-imap-store.c (connect_to_server): On
connection failure, unref the tcp stream.

* providers/nntp/camel-nntp-store.c (nntp_store_query_auth_types):
Our parent class is no longer CamelRemoteStore.
(nntp_store_init): Same.
(camel_nntp_store_get_type): Here too.
(nntp_connect): Rewritten to try to connect via SSL. Also remove
code using CamelRemoteStore.
(camel_nntp_command): Don't call camel_remote_store_connected().

22 years agoHelps if we allocate enough space here. Also, start smoking the same
Jeffrey Stedfast [Fri, 24 May 2002 22:43:31 +0000 (22:43 +0000)]
Helps if we allocate enough space here. Also, start smoking the same

2002-05-24  Jeffrey Stedfast  <fejj@ximian.com>

* providers/imap/camel-imap-folder.c (content_info_get_part_spec):
Helps if we allocate enough space here. Also, start smoking the
same purple flavoured IMAP crack when counting parts (parts don't
count if their parent part is a message/* part with a parent
part). Fixes bug #25260.

22 years agoUse the new readline function.
Jeffrey Stedfast [Fri, 24 May 2002 20:14:59 +0000 (20:14 +0000)]
Use the new readline function.

2002-05-24  Jeffrey Stedfast  <fejj@ximian.com>

* providers/imap/camel-imap-command.c (imap_read_untagged): Use
the new readline function.

* providers/imap/camel-imap-store.c (connect_to_server): Use the
new camel_imap_store_readline() function which doesn't suck quite
as bad as the original camel_remote_store_recv_line() function.
(camel_imap_store_readline): New function to replace
camel_remote_store_recv_line(). This function is at least safe
with embedded nul chars. Not that any of our callers use it
*sigh*.

22 years agoAdded some NULL protection fixes.
Jeffrey Stedfast [Fri, 24 May 2002 05:15:31 +0000 (05:15 +0000)]
Added some NULL protection fixes.

2002-05-24  Jeffrey Stedfast  <fejj@ximian.com>

* providers/imap/camel-imap-store.c (connect_to_server): Added
some NULL protection fixes.

22 years agoRemoved from the build. Glory glory hallelujah.
Jeffrey Stedfast [Wed, 22 May 2002 20:17:48 +0000 (20:17 +0000)]
Removed from the build. Glory glory hallelujah.

2002-05-22  Jeffrey Stedfast  <fejj@ximian.com>

* camel-remote-store.c: Removed from the build. Glory glory
hallelujah.

* camel-disco-store.c: Updated to inherit from
CamelStore rather than CamelRemoteStore.

* providers/imap/camel-imap-command.c (imap_command_start): Don't
use the camel-remote-store shit to send a string. Just use
camel_stream_printf for chrissakes.

* providers/imap/camel-imap-store.c: Updated to not depend on
CamelRemoteStore and to handle STARTTLS.
(imap_disconnect_online): Unref the streams.
(imap_keepalive): Removed.
(camel_imap_store_connected): New function to replace
camel_remote_store_connected().
(camel_imap_store_finalize): Unref the streams.
(camel_imap_store_recv_line): New function to replace
camel_remote_store_recv_line().
(imap_get_capability): Renamed from connect_to_server
(connect_to_server): New function to try and connect to the
server.
(connect_to_server_wrapper): New wrapper function around
connect_to_server that takes the ssl modes into consideration.
(query_auth_types): Don't bother calling our parent's
implementation of query_auth_types() since CamelDiscoStore doesn't
have any anyway.
(imap_get_name): New method to implement CamelService::get_name

22 years agoDon't call some retarded function to simply set an exception.
Jeffrey Stedfast [Tue, 21 May 2002 20:54:18 +0000 (20:54 +0000)]
Don't call some retarded function to simply set an exception.

2002-05-16  Jeffrey Stedfast  <fejj@ximian.com>

* providers/imap/camel-imap-store.c (get_folder_offline): Don't
call some retarded function to simply set an exception.

22 years agoIf we get an invalid start char, just ignore it and goto the next
Not Zed [Tue, 21 May 2002 02:50:02 +0000 (02:50 +0000)]
If we get an invalid start char, just ignore it and goto the next

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

        * camel-search-private.c (camel_utf8_getc): If we get an invalid
        start char, just ignore it and goto the next character.

22 years agoNew e-sexp callback function to get a user_tag label value.
Jeffrey Stedfast [Thu, 16 May 2002 20:03:57 +0000 (20:03 +0000)]
New e-sexp callback function to get a user_tag label value.

2002-05-16  Jeffrey Stedfast  <fejj@ximian.com>

* camel-filter-search.c (get_label): New e-sexp callback function
to get a user_tag label value.

22 years agoNew function to parse a NAMESPACE response properly.
Jeffrey Stedfast [Wed, 15 May 2002 23:46:27 +0000 (23:46 +0000)]
New function to parse a NAMESPACE response properly.

2002-05-15  Jeffrey Stedfast  <fejj@ximian.com>

* providers/imap/camel-imap-utils.c
(imap_parse_namespace_response): New function to parse a NAMESPACE
response properly.
(imap_namespaces_destroy): New function to destroy the returned
structure from the above function.

22 years agoOnly reconnect if we are already connected, if we are in a disconnected
Jeffrey Stedfast [Wed, 15 May 2002 19:07:08 +0000 (19:07 +0000)]
Only reconnect if we are already connected, if we are in a disconnected

2002-05-15  Jeffrey Stedfast  <fejj@ximian.com>

* camel-service.c (service_setv): Only reconnect if we are already
connected, if we are in a disconnected state then no need to
reconnect.

22 years agoIf the part_spec is an empty string for a leaft part, use "1" since we
Jeffrey Stedfast [Wed, 15 May 2002 18:38:20 +0000 (18:38 +0000)]
If the part_spec is an empty string for a leaft part, use "1" since we

2002-05-15  Jeffrey Stedfast  <fejj@ximian.com>

* providers/imap/camel-imap-folder.c (get_content): If the
part_spec is an empty string for a leaft part, use "1" since we
don't actually want to get the raw message headers too.

22 years agoremoved. (imap_store_refresh_folders): Copy the folders first, then
Not Zed [Wed, 15 May 2002 06:33:01 +0000 (06:33 +0000)]
removed. (imap_store_refresh_folders): Copy the folders first, then

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

        * providers/imap/camel-imap-store.c (refresh_folder_info): removed.
        (imap_store_refresh_folders): Copy the folders first, then refresh
        them, outside of the cache_lock, which could cause deadlocks
        because of a workaround for crappo exchange.
        (imap_disconnect_online): Dont pass an exception to LOGOUT
        command.  The required response 'BYE' always sets an exception
        when we call LOGOUT.  This also interfered with a lot of other
        processing causing partial failures and messed up offline/online
        state.

        * camel-disco-folder.c (disco_prepare_for_offline): Do progress
        reporting.

22 years agofixed a simple logic mistake
Jeffrey Stedfast [Wed, 15 May 2002 02:42:50 +0000 (02:42 +0000)]
fixed a simple logic mistake

22 years agoFixes bug #24136.
Jeffrey Stedfast [Tue, 14 May 2002 23:37:58 +0000 (23:37 +0000)]
Fixes bug #24136.

2002-05-14  Jeffrey Stedfast  <fejj@ximian.com>

Fixes bug #24136.

* providers/imap/camel-imap-folder.c (content_info_get_part_spec):
New function to take a CamelMessageContentInfo and generate a
part-specification string.
(get_content): Stop passing around part_spec strings and use
content_info_get_part_spec instead.

* camel-folder-summary.c (camel_content_info_dump): Made this into
a public debugging function.

* providers/imap/camel-imap-utils.c (imap_parse_body): Make sure
to set the parent of any message/rfc822 subparts.

22 years agoPrevious fix reverted.
Jeffrey Stedfast [Tue, 14 May 2002 20:40:32 +0000 (20:40 +0000)]
Previous fix reverted.

2002-05-13  Jeffrey Stedfast  <fejj@ximian.com>

* providers/imap/camel-imap-folder.c (imap_get_message): Previous
fix reverted.

22 years agoPrevious fix reverted. (get_content): Handle the case where a multipart's
Jeffrey Stedfast [Tue, 14 May 2002 20:30:56 +0000 (20:30 +0000)]
Previous fix reverted. (get_content): Handle the case where a multipart's

2002-05-13  Jeffrey Stedfast  <fejj@ximian.com>

* providers/imap/camel-imap-folder.c (imap_get_message): Previous
fix reverted.
(get_content): Handle the case where a multipart's parent is a
message/rfc822 part. Fixes bug #24136.

22 years agoOverload the setv/getv CamelObject virtual methods. (imap_setv):
Jeffrey Stedfast [Mon, 13 May 2002 23:57:33 +0000 (23:57 +0000)]
Overload the setv/getv CamelObject virtual methods. (imap_setv):

2002-05-13  Jeffrey Stedfast  <fejj@ximian.com>

* providers/imap/camel-imap-store.c (camel_imap_store_class_init):
Overload the setv/getv CamelObject virtual methods.
(imap_setv): Implemented.
(imap_getv): Implemented.

22 years agoAdd a "char **appended_uid" argument, for the caller to optionally pass in
Dan Winship [Mon, 13 May 2002 16:15:29 +0000 (16:15 +0000)]
Add a "char **appended_uid" argument, for the caller to optionally pass in

* camel-folder.c (camel_folder_append_message): Add a "char
**appended_uid" argument, for the caller to optionally pass in a
variable to receive the UID of the appended message (if the
provider knows it).
(camel_folder_transfer_messages_to): Likewise, add "GPtrArray
**transferred_uids"
(transfer_messages_to): Update default implementation to handle
transferred_uids.

* camel-disco-folder.c (disco_append_message,
disco_transfer_messages_to): Update for API changes.

* camel-disco-diary.c (camel_disco_diary_replay): Update the
diary's temporary uid->real uid map when replaying appends and
transfers.

* providers/imap/camel-imap-folder.c (imap_append_offline,
imap_append_online, imap_transfer_offline): Pass back the new
UIDs, when requested and available.
(imap_append_resyncing): Pass back the new UIDs when requested and
available. Remove the diary uidmap managing code since
CamelDiscoDiary can handle that itself now.
(imap_transfer_online, imap_transfer_resyncing): Update for new
APIs, but don't actually pass back the new UIDs yet. (It's tricky
since the COPYUID response may not be in the same order as the
input uids.)

* providers/local/camel-maildir-folder.c (maildir_append_message):
Pass back the new UID if requested.

* providers/local/camel-mbox-folder.c (mbox_append_message):
Likewise.

* providers/local/camel-mh-folder.c (mh_append_message): Likewise.

* providers/local/camel-spool-folder.c (spool_append_message):
Likewise.

* camel-digest-folder.c (digest_append_message,
digest_transfer_messages_to): Update for API changes.

* camel-filter-driver.c (camel_filter_driver_filter_message,
do_copy, do_move): Update for API changes.

* camel-vee-folder.c (vee_append_message,
vee_transfer_messages_to): Likewise.

* camel-vtrash-folder.c (vtrash_append_message,
vtrash_transfer_messages_to): Likewise.

22 years agoSince the fix for #3357 uses 'order=0' to indicate tree structure nodes,
Not Zed [Mon, 13 May 2002 06:28:59 +0000 (06:28 +0000)]
Since the fix for #3357 uses 'order=0' to indicate tree structure nodes,

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

        * camel-folder-thread.c
        (camel_folder_thread_messages_new_summary):
        (camel_folder_thread_messages_new): Since the fix for #3357 uses
        'order=0' to indicate tree structure nodes, make sure we dont
        actually set order=0 for valid messages, otherwise we silently
        lose duplicates of the first message (i==0).  Fixes #19920.

22 years agoFetch the BODYSTRUCTURE rather than BODY since BODY seems to be lacking
Jeffrey Stedfast [Sat, 11 May 2002 00:48:54 +0000 (00:48 +0000)]
Fetch the BODYSTRUCTURE rather than BODY since BODY seems to be lacking

2002-05-10  Jeffrey Stedfast  <fejj@ximian.com>

* providers/imap/camel-imap-folder.c (imap_get_message): Fetch the
BODYSTRUCTURE rather than BODY since BODY seems to be lacking some
of the data we need. This fixes bug #24131.

22 years agoMight help if we called camel_transport_class_init.
Jeffrey Stedfast [Fri, 10 May 2002 22:05:28 +0000 (22:05 +0000)]
Might help if we called camel_transport_class_init.

2002-05-10  Jeffrey Stedfast  <fejj@ximian.com>

* camel-transport.c (camel_transport_get_type): Might help if we
called camel_transport_class_init.

22 years agoReplace copy_messages_to and move_messages_to with a single function that
Dan Winship [Fri, 10 May 2002 16:44:36 +0000 (16:44 +0000)]
Replace copy_messages_to and move_messages_to with a single function that

* camel-folder.c (camel_folder_transfer_messages_to): Replace
copy_messages_to and move_messages_to with a single function that
just takes a "delete_originals" flag. Also, use the vtrash
implementation if *either* folder is a vtrash.
(transfer_messages_to): Make this use camel_operation_progress
(previously move_messages_to did but copy_messages_to didn't), and
freeze/thaw the folder(s) if doing multiple messages.

* camel-vtrash-folder.c (vtrash_transfer_messages_to): Update for
move/copy merge. Move the "move messages into vtrash" code here
from mail-ops.c. Now all of the vtrash move/copy special casing is
in camel instead of half of it being here and half in mail/. (This
should also make it so that "Move to Trash" will work in filter
rules.)

* camel-vee-folder.c (vee_transfer_messages_to): Make this just
return an exception, since it will only be called when trying to
move/copy messages from one vfolder to another.
(vee_append_message): Add this too so we get a nicer error message
than the default "unimplemented" one in camel-folder.c.

* camel-digest-folder.c: Replace copy_messages_to and
move_messages_to with transfer_messages_to.

* camel-disco-folder.c: Likewise

* camel-disco-diary.c (camel_disco_diary_log,
camel_disco_diary_replay): replace MOVE/COPY with TRANSFER.

* providers/imap/camel-imap-folder.c (imap_transfer_offline,
imap_transfer_online, imap_transfer_resyncing): Update for
changes. (This ends up being a bit more complicated than it was
before for now, but later disconnected operation changes should
resimplify it.)

* camel-filter-driver.c (camel_filter_driver_filter_message,
do_copy, do_move): Use transfer_messages_to instead of copy.

22 years agoNew filter function to pipe a message to another program. (run_command):
Jeffrey Stedfast [Fri, 10 May 2002 01:12:26 +0000 (01:12 +0000)]
New filter function to pipe a message to another program. (run_command):

2002-05-09  Jeffrey Stedfast  <fejj@ximian.com>

* camel-filter-search.c (shell_exec): New filter function to pipe
a message to another program.
(run_command): Fixed some bugs to make this work.

22 years agoNew filter function to pipe a message to another program.
Jeffrey Stedfast [Thu, 9 May 2002 23:17:33 +0000 (23:17 +0000)]
New filter function to pipe a message to another program.

2002-05-09  Jeffrey Stedfast  <fejj@ximian.com>

* camel-filter-search.c (shell_exec): New filter function to pipe
a message to another program.

22 years agoInstead of testing for SERVICE_CONNECTED, we need to also handle
Not Zed [Thu, 9 May 2002 08:23:20 +0000 (08:23 +0000)]
Instead of testing for SERVICE_CONNECTED, we need to also handle

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

        * camel-service.c (camel_service_disconnect): Instead of testing
        for SERVICE_CONNECTED, we need to also handle SERVICE_CONNECTING
        too, as it will often have setup some details before it failed.
        Make it !DISCONNECTED (and !DISCONNECTING for recursive calls,
        which happen).  Fixes #23782, and maybe also #21604 and many other
        random crashes.

22 years agoImplemented. (digest_getv): Implemented.
Jeffrey Stedfast [Wed, 8 May 2002 21:58:37 +0000 (21:58 +0000)]
Implemented. (digest_getv): Implemented.

2002-05-08  Jeffrey Stedfast  <fejj@ximian.com>

* camel-digest-store.c (digest_setv): Implemented.
(digest_getv): Implemented.

* camel-disco-store.c (disco_setv): Implemented.
(disco_getv): Implemented.

* camel-remote-store.c (remote_store_setv): Implemented.
(remote_store_getv): Implemented.

* camel-transport.c (camel_transport_class_init): Implemented.
(transport_setv): Implemented.
(transport_getv): Implemented.

* camel-store.c (store_setv): Implemented.
(store_getv): Implemented.

* camel-service.c (service_setv): Implemented.
(service_getv): Implemented.

22 years agocamel_pop3_engine_iterate doesn't return the state, it returns -1 on fail,
Jeffrey Stedfast [Wed, 8 May 2002 06:40:41 +0000 (06:40 +0000)]
camel_pop3_engine_iterate doesn't return the state, it returns -1 on fail,

2002-05-08  Jeffrey Stedfast  <fejj@ximian.com>

* providers/pop3/camel-pop3-store.c (pop3_try_authenticate):
camel_pop3_engine_iterate doesn't return the state, it returns -1
on fail, 0 when finished processing request or >0 if more ops are
in the queue, so don't check status against CAMEL_POP3_STATE_OK,
instead check pcp->state against that.

22 years agos/class/klass for arguments so that c++ developers don't complain later.
Jeffrey Stedfast [Tue, 7 May 2002 20:43:05 +0000 (20:43 +0000)]
s/class/klass for arguments so that c++ developers don't complain later.

2002-05-07  Jeffrey Stedfast  <fejj@ximian.com>

* camel-object.h: s/class/klass for arguments so that c++
developers don't complain later.

22 years agoFix a crash in a g_warning.
Dan Winship [Tue, 7 May 2002 17:15:10 +0000 (17:15 +0000)]
Fix a crash in a g_warning.

* camel-object.c (camel_object_class_cast): Fix a crash in a
g_warning.

22 years agoCheck for LOGIN xxxx as well if debug is on, so we dont print passwords to
Not Zed [Tue, 7 May 2002 07:31:26 +0000 (07:31 +0000)]
Check for LOGIN xxxx as well if debug is on, so we dont print passwords to

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

        * camel-remote-store.c (remote_send_string): Check for LOGIN xxxx
        as well if debug is on, so we dont print passwords to evolution
        logs.

        * providers/imap/camel-imap-utils.c (imap_is_atom_char): This was
        really broken.  1. isprint() is locale dependent, and 2. it looked
        up an 8 bit value in a 7 bit table without truncating it.  I've
        removed the isprint() stuff and just put it directly into the
        special table, which i've expanded to the right size too.

        * providers/imap/*: Applied patch from Preston Elder
        <prez@magick.tm> to make camel only use literals if it needs to
        for simple strings.  Changed slightly to use imap_is_atom() and
        more consistent formatting.
        providers/imap/camel-imap-utils.c (imap_is_atom): Chagned from
        imap_needs_quoting().

        ** Merged in camel-object2 branch.  Simpler camelobject
        implementation + object args interface.

        * camel.c (camel_init): Call camel_object_get_type() to make sure
        camel_object_type is initialised.

        * camel-object.h (CAMEL_OBJECT_TYPE): Changed to return global
        camel_object_type pointer, not call camel_object_get_type.

22 years agoIf the pop3 command status is -1, then we probably have a TCP error (?) so
Jeffrey Stedfast [Mon, 6 May 2002 22:35:47 +0000 (22:35 +0000)]
If the pop3 command status is -1, then we probably have a TCP error (?) so

2002-05-06  Jeffrey Stedfast  <fejj@ximian.com>

* providers/pop3/camel-pop3-store.c (pop3_try_authenticate): If
the pop3 command status is -1, then we probably have a TCP error
(?) so set a SYSTEM exception so our caller can distinguish
between a "bad password" and a "tcp error".
(pop3_connect): Only uncache the password on "bad password"
errors.

22 years agoUse CamelMimeFilterBestenc to get a more appropriate encoding rather than
Jeffrey Stedfast [Mon, 6 May 2002 22:10:24 +0000 (22:10 +0000)]
Use CamelMimeFilterBestenc to get a more appropriate encoding rather than

2002-05-06  Jeffrey Stedfast  <fejj@ximian.com>

* camel-pgp-mime.c (pgp_mime_part_sign_prepare_part): Use
CamelMimeFilterBestenc to get a more appropriate encoding rather
than just blindling assigning QP.

22 years agoCall camel_mime_message_encode_8bit_parts() which fixes bug #10885.
Jeffrey Stedfast [Mon, 6 May 2002 21:43:40 +0000 (21:43 +0000)]
Call camel_mime_message_encode_8bit_parts() which fixes bug #10885.

2002-05-06  Jeffrey Stedfast  <fejj@ximian.com>

* providers/imap/camel-imap-folder.c (do_append): Call
camel_mime_message_encode_8bit_parts() which fixes bug #10885.

22 years agoDon't bother with counting down the timeout.
Jeffrey Stedfast [Mon, 6 May 2002 18:59:01 +0000 (18:59 +0000)]
Don't bother with counting down the timeout.

2002-05-06  Jeffrey Stedfast  <fejj@ximian.com>

* camel-tcp-stream-raw.c (socket_connect): Don't bother with
counting down the timeout.

22 years agoSame fix as the tcp stream. (stream_write): Again here. Just like tcp
Jeffrey Stedfast [Fri, 3 May 2002 01:16:17 +0000 (01:16 +0000)]
Same fix as the tcp stream. (stream_write): Again here. Just like tcp

2002-05-02  Jeffrey Stedfast  <fejj@ximian.com>

* camel-stream-fs.c (stream_read): Same fix as the tcp stream.
(stream_write): Again here. Just like tcp stream's stream_write(),
also make sure to save errno before calling fcntl to restore the
fd flags.

* camel-tcp-stream-raw.c (stream_read): Handle EINTR errors for
select().
(stream_write): Same and also preserve errno when setting the fd
flags back. If w == -1, return -1.

22 years agoFixed the fix for stupidly-broken-mailer bug #5 to work when multiple
Jeffrey Stedfast [Fri, 3 May 2002 00:38:45 +0000 (00:38 +0000)]
Fixed the fix for stupidly-broken-mailer bug #5 to work when multiple

2002-05-02  Jeffrey Stedfast  <fejj@ximian.com>

* camel-mime-utils.c (header_decode_mailbox): Fixed the fix for
stupidly-broken-mailer bug #5 to work when multiple unescaped
characters were in a row. Fixes bug #24140.

22 years agoChange the order of some code so that we check if the select() failed
Jeffrey Stedfast [Thu, 2 May 2002 18:19:57 +0000 (18:19 +0000)]
Change the order of some code so that we check if the select() failed

2002-05-02  Jeffrey Stedfast  <fejj@ximian.com>

* camel-pgp-context.c (crypto_exec_with_passwd): Change the order
of some code so that we check if the select() failed before we
check for user-cancellation.

* camel-service.c (camel_gethostbyname): Check for EINTR when
select()ing.
(camel_gethostbyaddr): Same.

22 years agoNow takes a CamelURL argument rather than a GHashTable *settings argument.
Jeffrey Stedfast [Thu, 2 May 2002 01:15:01 +0000 (01:15 +0000)]
Now takes a CamelURL argument rather than a GHashTable *settings argument.

2002-04-29  Jeffrey Stedfast  <fejj@ximian.com>

* camel-provider.c (camel_provider_auto_detect): Now takes a
CamelURL argument rather than a GHashTable *settings argument.

22 years agoWe want to set unread_count to get_unread_message_count, not
Not Zed [Mon, 29 Apr 2002 09:18:57 +0000 (09:18 +0000)]
We want to set unread_count to get_unread_message_count, not

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

        * providers/local/camel-spool-store.c (get_folder_info): We want
        to set unread_count to get_unread_message_count, not
        get_message_count().  Might fix #17174.  Also removed FIXME: as it
        was fixed.

22 years agoDon't link to libibex.a anymore.
Jeffrey Stedfast [Sat, 27 Apr 2002 00:01:28 +0000 (00:01 +0000)]
Don't link to libibex.a anymore.

2002-04-26  Jeffrey Stedfast  <fejj@ximian.com>

* providers/local/Makefile.am: Don't link to libibex.a anymore.

* providers/nntp/Makefile.am: Same.

* providers/imap/Makefile.am: And again here.

22 years agoNo longer want to #include <libibex/ibex.h>
Jeffrey Stedfast [Fri, 26 Apr 2002 23:55:39 +0000 (23:55 +0000)]
No longer want to #include <libibex/ibex.h>

2002-04-26  Jeffrey Stedfast  <fejj@ximian.com>

* camel-store-summary.h: No longer want to #include
<libibex/ibex.h>

22 years agoNew function to auto-detect configuration settings.
Jeffrey Stedfast [Fri, 26 Apr 2002 19:52:33 +0000 (19:52 +0000)]
New function to auto-detect configuration settings.

2002-04-26  Jeffrey Stedfast  <fejj@ximian.com>

* camel-provider.c (camel_provider_auto_detect): New function to
auto-detect configuration settings.

22 years agoRemove the excessive \n's, after printfs.
Not Zed [Fri, 26 Apr 2002 05:13:45 +0000 (05:13 +0000)]
Remove the excessive \n's, after printfs.

2002-04-26  Not Zed  <NotZed@Ximian.com>

        * camel-block-file.c (block_file_validate_root): Remove the
        excessive \n's, after printfs.

        * camel-text-index.c (text_index_compress_nosync): @!#$@#$!@$#!.
        Since the rename op was fixed, this broke compression's rename,
        resulting in the index 'vanishing' after every compress
        (i.e. after every reindex).  Fix this code to account for the
        fixed rename operation.

22 years agoDon't put a space between the "RCPT TO:" and the "<recipient>" strings -
Jeffrey Stedfast [Thu, 25 Apr 2002 20:02:33 +0000 (20:02 +0000)]
Don't put a space between the "RCPT TO:" and the "<recipient>" strings -

2002-04-25  Jeffrey Stedfast  <fejj@ximian.com>

* providers/smtp/camel-smtp-transport.c (smtp_rcpt): Don't put a
space between the "RCPT TO:" and the "<recipient>" strings -
rfc0821 was not clear on this but it seems rfc2821 defines a
grammar excluding that SP.
(smtp_mail): Same.

22 years agoConfigure the default paths for mh, mbox, maildir, spools, etc.
Jeffrey Stedfast [Thu, 25 Apr 2002 00:25:04 +0000 (00:25 +0000)]
Configure the default paths for mh, mbox, maildir, spools, etc.

2002-04-24  Jeffrey Stedfast  <fejj@ximian.com>

* providers/local/camel-local-provider.c
(camel_provider_module_init): Configure the default paths for mh,
mbox, maildir, spools, etc.

* camel-provider.h: Add a CAMEL_PROVIDER_CONF_LABEL enum and
define some default CamelProviderConfEntry macros.

22 years agoAdd a CAMEL_PROVIDER_CONF_LABEL enum.
Jeffrey Stedfast [Wed, 24 Apr 2002 21:35:21 +0000 (21:35 +0000)]
Add a CAMEL_PROVIDER_CONF_LABEL enum.

2002-04-24  Jeffrey Stedfast  <fejj@ximian.com>

* camel-provider.h: Add a CAMEL_PROVIDER_CONF_LABEL enum.

22 years agoDon't leak the base64 encoded password buffer.
Jeffrey Stedfast [Sat, 20 Apr 2002 02:25:01 +0000 (02:25 +0000)]
Don't leak the base64 encoded password buffer.

2002-04-19  Jeffrey Stedfast  <fejj@ximian.com>

* e-passwords.c (e_passwords_get_password): Don't leak the base64
encoded password buffer.

22 years agoFree the LIST pop3 command.
Jeffrey Stedfast [Sat, 20 Apr 2002 02:22:07 +0000 (02:22 +0000)]
Free the LIST pop3 command.

2002-04-19  Jeffrey Stedfast  <fejj@ximian.com>

* providers/pop3/camel-pop3-folder.c (pop3_refresh_info): Free the
LIST pop3 command.

* camel-data-cache.c (data_cache_finalise): Free the cdc->path.

22 years agoDon't g_return_val_if_fail here if the boundary is an empty string. See
Jeffrey Stedfast [Fri, 19 Apr 2002 22:02:13 +0000 (22:02 +0000)]
Don't g_return_val_if_fail here if the boundary is an empty string. See

2002-04-19  Jeffrey Stedfast  <fejj@ximian.com>

* camel-multipart.c (write_to_stream): Don't g_return_val_if_fail
here if the boundary is an empty string. See bug #23676 for
details. The way I see it, we have 2 options: 1) leave this fix
the way it is, thus allowing multipart boundaries to be
empty-strings; or 2) make camel_multipart_get_boundary() change
the boundary to something legal if the boundary is an
empty-string. Since the parser should be able to handle an
empty-string boundary *and* more importantly because we want to
keep the same boundaries as the original raw message so as to be
able to verify multipart/signed parts, I vote for solution #1.