Jeffrey Stedfast [Thu, 15 Mar 2001 00:51:09 +0000 (00:51 +0000)]
Eek! So the service's URL isn't set until after this is initialized. This
2001-03-14 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-store.c (camel_imap_store_init): Eek!
So the service's URL isn't set until after this is
initialized. This means we can't check for SSL here.
(imap_connect): Set the SSL options here instead.
Jeffrey Stedfast [Wed, 14 Mar 2001 21:59:40 +0000 (21:59 +0000)]
Numerous fixes to get it to build correctly with NSS enabled.
2001-03-14 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-ssl.c: Numerous fixes to get it to build
correctly with NSS enabled.
* camel-remote-store.c (remote_connect): Pass in the session and
expected host args, oops.
* camel-provider.h (CAMEL_URL_ALLOW_SSL): Defined.
* providers/imap/camel-imap-store.c (camel_imap_store_init): Check
to see if we are supposed to use SSL and set the options
accordingly.
(imap_connect): Return FALSE here instead of NULL.
* providers/imap/camel-imap-provider.c: Add CAMEL_URL_ALLOW_SSL.
* providers/imap/libcamelimap.urls: Add "imaps" which is the
protocol for Secure IMAP.
Jeffrey Stedfast [Wed, 14 Mar 2001 19:53:12 +0000 (19:53 +0000)]
Added
2001-03-14 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-openssl.[c,h]: Added
* Makefile.am: Added camel-tcp-stream-openssl.[c,h] to the build.
* camel-types.h: Added CamelTcpStreamSSL and CamelTcpStreamOpenSSL
Not Zed [Wed, 14 Mar 2001 07:06:54 +0000 (07:06 +0000)]
re-constify inbuf, to remove a warning.
2001-03-14 Not Zed <NotZed@Ximian.com>
* camel-mime-filter-charset.c (filter, complete): re-constify
inbuf, to remove a warning.
* camel-mime-parser.c (folder_scan_step): When we're out of data,
run the filter_complete. For some reason the logic that was there
was never being run, always try it now, i think it was to work
around a buggy filter, rather than fix it the right way.
* camel-folder-summary.c (summary_build_content_info): If indexing
html parts, use the html filter to convert it to some indexable
format.
(summary_build_content_info): Reset the filters before adding them
back to the stream, if they get re-used in a given instance
(likely).
* Makefile.am (libcamelinclude_HEADERS): Added
camel-mime-filter-html.[ch].
(INCLUDES): Added xml clags
2001-03-05 Not Zed <NotZed@Ximian.com>
* camel-folder-search.c (camel_folder_search_class_init): Setup a
new function, "uid" which matches uids.
(search_uid): Implement the "match uid" command.
Jeffrey Stedfast [Wed, 14 Mar 2001 06:16:28 +0000 (06:16 +0000)]
Check for a new type of mailing list header.
2001-03-14 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-utils.c: Check for a new type of mailing list header.
Jeffrey Stedfast [Wed, 14 Mar 2001 04:31:58 +0000 (04:31 +0000)]
Made cancellable. (stream_write): Same. (stream_connect): Removed checks
2001-03-13 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-raw.c (stream_read): Made cancellable.
(stream_write): Same.
(stream_connect): Removed checks for DIVINE_INTERVENTION as the
code worked fine.
* camel-tcp-stream-ssl.c (stream_write): get rid of 'w' as it
wasn't really needed.
(set_errno): New function to set errno based on the NSPR error
code.
(stream_read): If an error occured, call set_errno().
(stream_write): Same.
Jeffrey Stedfast [Wed, 14 Mar 2001 03:42:07 +0000 (03:42 +0000)]
Added camel-tcp-stream-ssl to the build.
2001-03-13 Jeffrey Stedfast <fejj@ximian.com>
* Makefile.am: Added camel-tcp-stream-ssl to the build.
* camel-remote-store.h: Add a use_ssl member to the
CamelRemoteStore object.
Jeffrey Stedfast [Wed, 14 Mar 2001 00:46:59 +0000 (00:46 +0000)]
Oops. Make this a subclass of CamelTcpStream, not CamelStream.
2001-03-13 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-ssl.c (camel_tcp_stream_ssl_get_type):
Oops. Make this a subclass of CamelTcpStream, not CamelStream.
* camel-types.h: Add the defs for CamelTcpStream and
CamelTcpStreamRaw
* Makefile.am: Add camel-tcp-stream and camel-tcp-stream-raw to
the build.
* camel-remote-store.c (remote_connect): Update to use
CamelTcpStreams.
* camel-tcp-stream-raw.c (stream_connect): Made cancellable by
copying the currently used code in camel-remote-store.c.
(stream_setsockopt): Oops, flags = fcntl (..., GET_FL);
(camel_tcp_stream_raw_get_type): Oops. Make this a subclass of
CamelTcpStream, not CamelStream.
Jeffrey Stedfast [Tue, 13 Mar 2001 23:31:32 +0000 (23:31 +0000)]
Since all of the Mozilla libs (including NSPR and NSS) correctly handle
2001-03-13 Jeffrey Stedfast <fejj@ximian.com>
* camel.c (camel_init): Since all of the Mozilla libs (including
NSPR and NSS) correctly handle reinitializations, we might as well
init both NSPR and NSS in camel_init so we can be sure of that
these libs have been initialized.
(camel_shutdown): New function to call the NSS cleanup stuff.
Jeffrey Stedfast [Tue, 13 Mar 2001 18:59:32 +0000 (18:59 +0000)]
Don't allow the user to copy a message to or from the vtrash folder. Set
2001-03-13 Jeffrey Stedfast <fejj@ximian.com>
* camel-folder.c (camel_folder_copy_message_to): Don't allow the
user to copy a message to or from the vtrash folder. Set an
exception if they try.
(camel_folder_move_message_to): This one is a bit more
complicated: 1) If the user tried to move a message from the
vtrash into the original folder, just undelete the message. 2) If
the user tries to move the message to the vtrash folder, then just
mark the message as deleted. 3) If the user tries to move the
message from the vTrash to a folder other than the original, use
the original folder as the source. As another optimization, I've
made it so that if the user tries to move a message to the same
folder, just no-op.
(move_message_to): Unset the deleted flag before moving (assuming
it's there).
(copy_message_to): Same.
* camel-vee-folder.c (camel_vee_folder_get_message_folder): New
convenience function to get the folder from which the message uid
is derived from.
Dan Winship [Tue, 13 Mar 2001 17:47:02 +0000 (17:47 +0000)]
When trying again after a failed password attempt, check if the connection
* providers/imap/camel-imap-store.c (imap_connect): When trying
again after a failed password attempt, check if the connection got
dropped (which Courier will do) and deal accordingly.
Dan Winship [Tue, 13 Mar 2001 17:26:56 +0000 (17:26 +0000)]
More fixing for exim: It can't deal with "-tif", you need to say "-t -i
* providers/sendmail/camel-sendmail-transport.c (sendmail_send_to,
sendmail_send): More fixing for exim: It can't deal with "-tif",
you need to say "-t -i -f".
Jeffrey Stedfast [Mon, 12 Mar 2001 20:33:58 +0000 (20:33 +0000)]
Rename the folder to "Trash" and i18nify it.
2001-03-12 Jeffrey Stedfast <fejj@ximian.com>
* camel-store.c (init_trash): Rename the folder to "Trash" and
i18nify it.
Jeffrey Stedfast [Sun, 11 Mar 2001 04:35:20 +0000 (04:35 +0000)]
Comment out everything unless HAVE_NSS is defined.
2001-03-09 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-ssl.h: Comment out everything unless HAVE_NSS
is defined.
* camel-tcp-stream-ssl.c (stream_read): Don't use errno, use
nspr's error code stuff.
(stream_write): Same.
Jeffrey Stedfast [Sat, 10 Mar 2001 00:15:49 +0000 (00:15 +0000)]
Created a new mode (CAMEL_AUTHENTICATOR_ACCEPT) which is a Yes/No prompt
2001-03-09 Jeffrey Stedfast <fejj@ximian.com>
* camel-session.c (camel_session_query_authenticator): Created a
new mode (CAMEL_AUTHENTICATOR_ACCEPT) which is a Yes/No prompt to
the user. This will be needed by the SSL/TLS code to come. Also
changed the return value to a gpointer rather than a char* to
allow the returning of TRUE/FALSE values.
* camel.c: Wrap stuff with HAVE_NSS
Dan Winship [Fri, 9 Mar 2001 21:53:05 +0000 (21:53 +0000)]
Remove the "-U" for now, because it breaks exim's "sendmail" wrapper. (And
* providers/sendmail/camel-sendmail-transport.c (sendmail_send,
sendmail_send_to): Remove the "-U" for now, because it breaks
exim's "sendmail" wrapper. (And it doesn't actually do all that
much to sendmail's behavior, and it was working fine before
anyway.)
Dan Winship [Fri, 9 Mar 2001 20:36:12 +0000 (20:36 +0000)]
Fix a bug that could make this walk off the end of a string. (The bug has
* camel-mime-utils.c (header_fold): Fix a bug that could make this
walk off the end of a string. (The bug has been there since
December... maybe this will fix some unreproduceable crashes?)
Jeffrey Stedfast [Thu, 8 Mar 2001 23:33:32 +0000 (23:33 +0000)]
Changes so that the folder gets added to the vtrash reguardless of whether
2001-03-08 Jeffrey Stedfast <fejj@ximian.com>
* camel-store.c (camel_store_get_folder): Changes so that the
folder gets added to the vtrash reguardless of whether or not the
store is holding it's own folder lookup hash.
(init_trash): Oops, lets try locking the cache before we go and
add all the cached folders to the vtrash.
Jeffrey Stedfast [Thu, 8 Mar 2001 20:01:42 +0000 (20:01 +0000)]
These fixes make it so that the CamelStore does not actually hold a ref on
2001-03-08 Jeffrey Stedfast <fejj@ximian.com>
These fixes make it so that the CamelStore does not actually hold
a ref on it's vTrash folder. The vTrash folder is now created ONLY
when it is requested. This solves the problem of not being able to
unref a Store and have it disconnect/finalize like we expect it to.
* camel-store.c (init_trash): When we create the vtrash, add all
previously opened folders to it and hook on to the finalize event
so that we can then set the store->vtrash to NULL.
(get_trash): If a vtrash folder for the store doesn't exist,
init_trash() and then try.
(construct): No longer need this.
(camel_store_class_init): Don't override the construct method.
(camel_store_finalize): We no longer hold a ref on the vtrash so
don't unref it.
Jeffrey Stedfast [Thu, 8 Mar 2001 03:43:33 +0000 (03:43 +0000)]
Implement. (get_trash): Implement. (camel_pop3_store_class_init): Override
2001-03-07 Jeffrey Stedfast <fejj@ximian.com>
* providers/pop3/camel-pop3-store.c (init_trash): Implement.
(get_trash): Implement.
(camel_pop3_store_class_init): Override the default init_trash and
get_trash virtual functions. Hopefully this should fix the problem
of pop3 sotre's not disconnecting after the send&recv code
finishes downloading mail.
Wonder if I should override the default implementation for the
mbox, mh, and maildir too?
Dan Winship [Wed, 7 Mar 2001 21:30:22 +0000 (21:30 +0000)]
(remote_recv_line): Fix another problem...
Dan Winship [Wed, 7 Mar 2001 15:48:30 +0000 (15:48 +0000)]
Remove some unused stuff
* providers/local/camel-mbox-provider.c:
* providers/vee/.cvsignore:
* providers/vee/libcamelvee.urls: Remove some unused stuff
Dan Winship [Wed, 7 Mar 2001 15:28:33 +0000 (15:28 +0000)]
Return the return value of camel_service_connect rather than returning
* camel-remote-store.c (camel_remote_store_connected): Return the
return value of camel_service_connect rather than returning
!camel_exception_is_set(), since that will be wrong if ex==NULL...
Fixes a crash in the IMAP keepalive code, but this same problem
probably exists in other places too...
Jeffrey Stedfast [Tue, 6 Mar 2001 21:34:56 +0000 (21:34 +0000)]
Redone so as to save on memory allocations and speed.
2001-03-06 Jeffrey Stedfast <fejj@ximian.com>
* camel-sasl-digest-md5.c (compute_response): Redone so as to save
on memory allocations and speed.
Jeffrey Stedfast [Mon, 5 Mar 2001 21:28:08 +0000 (21:28 +0000)]
Don't return NULL if the token is non-NULL. This is why:
2001-03-05 Jeffrey Stedfast <fejj@ximian.com>
* camel-sasl-plain.c (plain_challenge): Don't return NULL if the
token is non-NULL. This is why:
sending : AUTH PLAIN
received: 334 ok. go on. <-- this is why
sending : ZGZPaQpAZ214Lm5ldBBnb29jYXI=
received: 235 {mp005-rz3} go ahead
* camel-sasl.c (camel_sasl_authtype): Add the PLAIN type here.
(camel_sasl_authtype_list): And here too.
* camel-sasl-plain.c: Initialize the camel_sasl_plain_authtype.
* camel-sasl-plain.h: extern the camel_sasl_plain_authtype.
Jeffrey Stedfast [Mon, 5 Mar 2001 21:08:45 +0000 (21:08 +0000)]
i18n'd some strings in here.
2001-03-05 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-store.c (imap_connect): i18n'd some
strings in here.
* providers/smtp/camel-smtp-transport.c (smtp_connect): Keep
trying to authenticate until either we succeed or until the user
cancels.
Jeffrey Stedfast [Mon, 5 Mar 2001 04:02:38 +0000 (04:02 +0000)]
Wrote a new version of header_fold() that takes a 'force' option and uses
2001-03-04 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-utils.c: Wrote a new version of header_fold() that
takes a 'force' option and uses another new function called
header_fold_next_space() in place of strchr(inptr, ' ') to get the
next whitespace char. The idea of header_fold_next_space() is to
not treat spaces between a set of quotes as a space - this way it
will be possible to fold (for example) the Content-Type MIME
header without worrying about breaking up a boundary string.
Note: This code is #if 0'd out until Zucchi approves of the patch.
Another Note: We will probably still want to use the "don't fold
this header" hash lookup for headers like the Message-Id and
possibly a few others.
Jeffrey Stedfast [Mon, 5 Mar 2001 02:43:44 +0000 (02:43 +0000)]
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.
Jeffrey Stedfast [Mon, 5 Mar 2001 00:37:44 +0000 (00:37 +0000)]
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.
Not Zed [Fri, 2 Mar 2001 23:37:43 +0000 (23:37 +0000)]
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.
Jeffrey Stedfast [Fri, 2 Mar 2001 22:09:40 +0000 (22:09 +0000)]
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.
Jeffrey Stedfast [Fri, 2 Mar 2001 19:40:08 +0000 (19:40 +0000)]
oops, forgot the changelog
Jeffrey Stedfast [Fri, 2 Mar 2001 19:37:02 +0000 (19:37 +0000)]
Updated with the extended AUTH return codes.
2001-03-02 Jeffrey Stedfast <fejj@ximian.com>
* providers/smtp/camel-smtp-transport.c (get_smtp_error_string):
Updated with the extended AUTH return codes.
Jeffrey Stedfast [Fri, 2 Mar 2001 19:20:39 +0000 (19:20 +0000)]
oops, the return code is 235 on success, not 234
Jeffrey Stedfast [Fri, 2 Mar 2001 19:19:31 +0000 (19:19 +0000)]
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 == ' '.
Dan Winship [Fri, 2 Mar 2001 15:14:51 +0000 (15:14 +0000)]
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...
Jeffrey Stedfast [Fri, 2 Mar 2001 02:29:08 +0000 (02:29 +0000)]
#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).
Dan Winship [Thu, 1 Mar 2001 22:39:52 +0000 (22:39 +0000)]
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.
Dan Winship [Thu, 1 Mar 2001 22:23:23 +0000 (22:23 +0000)]
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...
Jeffrey Stedfast [Thu, 1 Mar 2001 18:15:23 +0000 (18:15 +0000)]
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.
Jeffrey Stedfast [Thu, 1 Mar 2001 18:04:07 +0000 (18:04 +0000)]
remove mime-utils header for base64 stuff.
Jeffrey Stedfast [Thu, 1 Mar 2001 18:01:27 +0000 (18:01 +0000)]
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.
Not Zed [Thu, 1 Mar 2001 17:31:33 +0000 (17:31 +0000)]
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.
Dan Winship [Thu, 1 Mar 2001 17:16:32 +0000 (17:16 +0000)]
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.
Peter Williams [Thu, 1 Mar 2001 06:15:03 +0000 (06:15 +0000)]
Assert url_string != NULL.
2001-03-01 Peter Williams <peterw@ximian.com>
* camel-url.c (camel_url_new): Assert url_string != NULL.
Jeffrey Stedfast [Wed, 28 Feb 2001 23:26:34 +0000 (23:26 +0000)]
oops, not empty string - need to base64 encode it, which is just "="
Jeffrey Stedfast [Wed, 28 Feb 2001 23:24:15 +0000 (23:24 +0000)]
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.
Jeffrey Stedfast [Wed, 28 Feb 2001 21:40:51 +0000 (21:40 +0000)]
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.
Jeffrey Stedfast [Wed, 28 Feb 2001 21:06:44 +0000 (21:06 +0000)]
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.
Dan Winship [Wed, 28 Feb 2001 18:41:27 +0000 (18:41 +0000)]
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. :)
Jeffrey Stedfast [Wed, 28 Feb 2001 18:16:02 +0000 (18:16 +0000)]
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.
Dan Winship [Mon, 26 Feb 2001 21:38:39 +0000 (21:38 +0000)]
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.
Jeffrey Stedfast [Mon, 26 Feb 2001 19:56:58 +0000 (19:56 +0000)]
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.
Jeffrey Stedfast [Sat, 24 Feb 2001 20:09:20 +0000 (20:09 +0000)]
fixed a compile warning in camel-store.
Jeffrey Stedfast [Sat, 24 Feb 2001 17:44:28 +0000 (17:44 +0000)]
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.
Jeffrey Stedfast [Fri, 23 Feb 2001 16:52:55 +0000 (16:52 +0000)]
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
Michael Zucci [Fri, 23 Feb 2001 01:40:46 +0000 (01:40 +0000)]
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.
Not Zed [Thu, 22 Feb 2001 23:32:34 +0000 (23:32 +0000)]
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.
Not Zed [Thu, 22 Feb 2001 22:21:28 +0000 (22:21 +0000)]
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.
Jeffrey Stedfast [Thu, 22 Feb 2001 16:22:27 +0000 (16:22 +0000)]
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.
Dan Winship [Thu, 22 Feb 2001 14:58:56 +0000 (14:58 +0000)]
#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.
Not Zed [Wed, 21 Feb 2001 20:30:29 +0000 (20:30 +0000)]
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].
Not Zed [Wed, 21 Feb 2001 20:13:42 +0000 (20:13 +0000)]
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): "
Dan Winship [Wed, 21 Feb 2001 17:20:00 +0000 (17:20 +0000)]
Fixes for IMAP4-pre-rev1 from Torsten Schulz.
* providers/imap/camel-imap-folder.c (fetch_medium): Fixes for
IMAP4-pre-rev1 from Torsten Schulz.
Not Zed [Tue, 20 Feb 2001 00:19:16 +0000 (00:19 +0000)]
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.
Not Zed [Mon, 19 Feb 2001 20:59:54 +0000 (20:59 +0000)]
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.
Jeffrey Stedfast [Sat, 17 Feb 2001 01:28:43 +0000 (01:28 +0000)]
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.
Jeffrey Stedfast [Thu, 15 Feb 2001 19:20:38 +0000 (19:20 +0000)]
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.
Dan Winship [Thu, 15 Feb 2001 19:16:19 +0000 (19:16 +0000)]
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.
Dan Winship [Thu, 15 Feb 2001 18:10:24 +0000 (18:10 +0000)]
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.
Christopher James Lahey [Wed, 14 Feb 2001 23:43:38 +0000 (23:43 +0000)]
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.
Dan Winship [Wed, 14 Feb 2001 22:26:51 +0000 (22:26 +0000)]
(create_folder): Oops, and fix bug involving namespaces
Dan Winship [Wed, 14 Feb 2001 21:51:33 +0000 (21:51 +0000)]
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.
Not Zed [Tue, 13 Feb 2001 00:30:45 +0000 (00:30 +0000)]
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.
Jeffrey Stedfast [Tue, 13 Feb 2001 00:02:47 +0000 (00:02 +0000)]
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.
Dan Winship [Fri, 9 Feb 2001 16:44:22 +0000 (16:44 +0000)]
save, THEN commit
Dan Winship [Fri, 9 Feb 2001 16:43:22 +0000 (16:43 +0000)]
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
Jeffrey Stedfast [Thu, 8 Feb 2001 04:50:59 +0000 (04:50 +0000)]
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.
Jeffrey Stedfast [Thu, 8 Feb 2001 03:53:15 +0000 (03:53 +0000)]
Added more test rules.
Not Zed [Thu, 8 Feb 2001 01:42:53 +0000 (01:42 +0000)]
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.
Jeffrey Stedfast [Wed, 7 Feb 2001 21:27:11 +0000 (21:27 +0000)]
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.
Jeffrey Stedfast [Wed, 7 Feb 2001 19:36:46 +0000 (19:36 +0000)]
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.
Jeffrey Stedfast [Tue, 6 Feb 2001 21:50:37 +0000 (21:50 +0000)]
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.
Christopher James Lahey [Tue, 6 Feb 2001 20:57:17 +0000 (20:57 +0000)]
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.
Jeffrey Stedfast [Tue, 6 Feb 2001 04:33:47 +0000 (04:33 +0000)]
Added xml-* files.
2001-02-05 Jeffrey Stedfast <fejj@ximian.com>
* .cvsignore: Added xml-* files.
Not Zed [Tue, 6 Feb 2001 02:38:19 +0000 (02:38 +0000)]
Removed unwanted header. It was never put in for a reason. Stop fixing
2001-02-06 Not Zed <NotZed@Ximian.com>
* camel-search-private.c: Removed unwanted header. It was never
put in for a reason. Stop fixing irrelevant warnings.
(camel_ustrstrcase): Our own strstrcase impl for utf8 strings.
(camel_ustrcasecmp): Ditto for strcasecmp.
(camel_ustrncasecmp): And strncasecmp.
(utf8_get): Simpler interface to utf8 string processing.
(camel_search_header_match): Use the new things.
2001-02-05 Not Zed <NotZed@Ximian.com>
* camel-folder.c (get_summary): Removed some old variables/a small
memleak.
(free_summary): Removed old variables.
* camel-mime-utils.c (header_raw_check_mailing_list): New utility
function to get the mailing list (if any) that a set of headers
came from.
Christopher James Lahey [Mon, 5 Feb 2001 22:37:24 +0000 (22:37 +0000)]
Added a missing #include.
2001-02-05 Christopher James Lahey <clahey@helixcode.com>
* camel-stream-fs.c: Added a missing #include.
* camel-search-private.c: Added a missing #include.
Jeffrey Stedfast [Mon, 5 Feb 2001 21:52:28 +0000 (21:52 +0000)]
Oops. Change this too.
2001-02-05 Jeffrey Stedfast <fejj@ximian.com>
* camel-remote-store.c (remote_query_auth_types): Oops. Change
this too.
Jeffrey Stedfast [Mon, 5 Feb 2001 19:55:54 +0000 (19:55 +0000)]
Updated.
2001-02-05 Jeffrey Stedfast <fejj@ximian.com>
* providers/smtp/camel-smtp-transport.c (query_auth_types): Updated.
* providers/nntp/camel-nntp-store.c (nntp_store_query_auth_types):
Updated.
* providers/pop3/camel-pop3-store.c (query_auth_types): Updated.
* providers/imap/camel-imap-store.c (query_auth_types): Updated.
* camel-service.c (camel_service_query_auth_types): Now takes a
boolean value to specify whether or not to connect when
constructing a supported authtype list.
Not Zed [Mon, 5 Feb 2001 07:15:50 +0000 (07:15 +0000)]
Revert jeff's earlier change, the change below is the more-correct fix.
2001-02-05 Not Zed <NotZed@Ximian.com>
* camel-stream-filter.c (do_write): Revert jeff's earlier change,
the change below is the more-correct fix. All his was doing was
ignoring the return code & looping actually :)
* camel-stream-fs.c (stream_write): Since we are non-blocking on
the outgoing fd, keep looping if writing out large blocks, so we
can keep checking for cancel, etc.
Not Zed [Mon, 5 Feb 2001 05:04:53 +0000 (05:04 +0000)]
When we drop a fake node, dont skip checking the next in the list.
2001-02-02 Not Zed <NotZed@Ximian.com>
* camel-folder-thread.c (camel_folder_thread_messages_new): When
we drop a fake node, dont skip checking the next in the list.
(camel_folder_thread_messages_new): Add an assertion check just to
make sure we dont get any pseudo nodes, and spit a warning if we
do.
Jeffrey Stedfast [Mon, 5 Feb 2001 00:12:07 +0000 (00:12 +0000)]
Make do_write loop until the entire buffer is written.
2001-02-04 Jeffrey Stedfast <fejj@ximian.com>
* camel-stream-filter.c (do_write): Make do_write loop until the
entire buffer is written.
Not Zed [Fri, 2 Feb 2001 02:13:13 +0000 (02:13 +0000)]
Add missing header for cancel check stuff.
2001-02-02 Not Zed <NotZed@Ximian.com>
* camel-stream-fs.c: Add missing header for cancel check stuff.
* camel-session.c (camel_cancel_cancel): Fix a wrong cast.
* camel-mime-part.c (init_header_name_table): Setup a new table
header_formatted_table, that lists headers that we dont want to
fold (they've already been folded).
(write_to_stream): Check for already formatted headers, and dont
try and fold them. This is a fix for bug #1097.
Not Zed [Thu, 1 Feb 2001 00:29:35 +0000 (00:29 +0000)]
If we are folding, drop the space at the end of the line.
2001-02-01 Not Zed <NotZed@Ximian.com>
* camel-mime-utils.c (header_fold): If we are folding, drop the
space at the end of the line.
Not Zed [Mon, 29 Jan 2001 23:59:12 +0000 (23:59 +0000)]
Remvoe the stream locking here. I think this was leading to a deadlock
2001-01-30 Not Zed <NotZed@Ximian.com>
* camel-remote-store.c (timeout_cb): Remvoe the stream locking
here. I think this was leading to a deadlock when a keepalive is
being sent, in imap.
Not Zed [Mon, 29 Jan 2001 09:13:17 +0000 (09:13 +0000)]
Include the terminating NUL in the calculated string length. This hit
2001-01-29 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-command.c
(imap_command_strdup_vprintf): Include the terminating NUL in the
calculated string length. This hit memcheck.
Michael Zucci [Thu, 25 Jan 2001 05:10:59 +0000 (05:10 +0000)]
Oops.
Not Zed [Thu, 25 Jan 2001 02:04:28 +0000 (02:04 +0000)]
Changed the subject search to handle case sensitive when it is mixed case.
2001-01-25 Not Zed <NotZed@Ximian.com>
* tests/folder/test3.c: Changed the subject search to handle case
sensitive when it is mixed case.
* Makefile.am (libcamel_la_SOURCES): Added camel-ssearch-private.c
(noinst_HEADERS): Added camel-search-private.h
* camel-folder-search.c (check_header): New function to do the
work of the various header checks.
(search_header_matches):
(search_header_starts_with):
(search_header_ends_with):
(search_header_contains): Use check_header to do the work.
(build_match_regex): Removed.
* camel-search-private.c (header_soundex): New
function to match words to phrases using soundex algorithm.
* camel-filter-search.c (soundexcmp): Removed.
(check_match): Moved to search-private.h
2001-01-24 Not Zed <NotZed@Ximian.com>
* camel-search-private.c (camel_search_build_match_regex): Added
extra flags, so the same function can be used for
start/end/whole/partial matches.
(camel_search_header_match): Convenience function to check a
single header against all sorts of different matches.
* providers/imap/camel-imap-search.c (imap_body_contains): Fix for
e_sexp api changes.
* camel-folder-search.c: Fix for e_sexp api changes.
(search_header_contains): Free args/quit on unknown header.
(search_header_matches): "
(search_header_starts_with): "
(search_header_ends_with): "
(match_message): Add an exception argument.
(search_body_contains): Free args/quit on fatal error.
(message_body_contains): Removed (moved to
camel-search-private.c), fixed callers.
* camel-filter-search.c: Fix for e_sexp api changes.
(build_match_regex, message_body_contains): Moved into
camel-filter-private.c Fixed callers.
(check_header): moved guts to camel-search-private, and
changed to use regex's for everything. Just calls that with the
right args.
(check_header): GEts the header, decodes it, and checks for
failure, and whatnot.
(check_match): Removed.
(header_soundex): Changed significantly. Now it soundexes each
word in the header separately, and compares it to the first
argument.
* tests/folder/test9.c (main): Fix for api changes.
(main): Added tests to see that invalid match and action
rules are properly detected.
* camel-filter-driver.c (camel_filter_driver_filter_mbox): Remove
the 'finished message' bit.
(camel_filter_driver_filter_message): Remove an accidentally
checked in debug.
(camel_filter_driver_filter_message): Fix for e-sexp api changes.
Not Zed [Wed, 24 Jan 2001 00:36:46 +0000 (00:36 +0000)]
Added tests to see that invalid match and action rules are properly
2001-01-24 Not Zed <NotZed@Ximian.com>
* tests/folder/test9.c
(main): Added tests to see that invalid match and action
rules are properly detected.
Not Zed [Tue, 23 Jan 2001 23:52:30 +0000 (23:52 +0000)]
Fix for api changes.
2001-01-24 Not Zed <NotZed@Ximian.com>
* tests/folder/test9.c (main): Fix for api changes.