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*.
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.
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
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.
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.
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.
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.
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.
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.
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.
Jeffrey Stedfast [Wed, 15 May 2002 02:42:50 +0000 (02:42 +0000)]
fixed a simple logic mistake
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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>
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.
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.
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.
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.
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.
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.
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.
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.
Not Zed [Fri, 19 Apr 2002 02:04:35 +0000 (02:04 +0000)]
Start of a white-paperish document describing camel-index and older
2002-04-19 Not Zed <NotZed@Ximian.com>
* devel-docs/camel-index.txt: Start of a white-paperish document
describing camel-index and older libibex.
Not Zed [Thu, 18 Apr 2002 08:15:51 +0000 (08:15 +0000)]
If we get a failure, make sure we set an exception.
2002-04-18 Not Zed <NotZed@Ximian.com>
* providers/local/camel-local-store.c (rename_folder): If we get a
failure, make sure we set an exception.
* camel-text-index.c (camel_text_index_rename): If the file
doesn't exist, just assume it never did, dont return failure.
(text_index_rename): Add '.index' to the path name we're using,
since we dont get it passed in.
Not Zed [Thu, 18 Apr 2002 02:18:55 +0000 (02:18 +0000)]
When doing a contains match, split the words and perform an and on it.
2002-04-18 Not Zed <NotZed@Ximian.com>
* camel-folder-search.c (check_header): When doing a contains
match, split the words and perform an and on it.
(match_words_messages): If we have an index, but were forced to do
a full search, first lookup a subset of messages using
the index and a simplified word set. Only do a manual search of
this subset.
2002-04-17 Not Zed <NotZed@Ximian.com>
* camel-folder-search.c (match_message_index): Changed to take a
utf8 string not a regex pattern.
(match_words_index): Matches against a camel_search_words list.
(match_words_1message): Matches a single message against a
camel_search_words list.
(match_words_message): Same, but gets the message from the folder
for you.
(match_words_messages): Matches a list of messages against a words
list.
(search_body_contains): Rewritten to handle multiple word
searches. For #23371.
* providers/imap/camel-imap-search.c (sync_match): Split words
when searching, to support multiple search words. Also, try
searching specifying charset of utf8 if we can, if that fails,
fall back to not specifying charset. TODO: It should translate
the strings into the locale default charset?
* providers/imap/camel-imap-store.c (connect_to_server): Added new
cap - utf8_search, if set, we tell the server we're searching
using utf8, otherwise we dont (incorrectly, since we always use
utf8 to search).
* camel-search-private.c (camel_ustrstrcase): Make this class public.
(camel_search_words_split): Split a word into multiple words based
on whitespace, and keep track of whether the word is simple
(indexable directly), or not.
(camel_search_words_free): Free 'em.
Jeffrey Stedfast [Wed, 17 Apr 2002 22:33:33 +0000 (22:33 +0000)]
If the vee-folder is the unmatched, we don't have our own expression so we
2002-04-17 Jeffrey Stedfast <fejj@ximian.com>
* camel-vee-folder.c (vee_search_by_expression): If the vee-folder
is the unmatched, we don't have our own expression so we cannot
merge them. Instead, just use the expression passed in. This fixes
a Null-Pointer-Read crash on Solaris systems at least.
Jeffrey Stedfast [Wed, 17 Apr 2002 01:25:28 +0000 (01:25 +0000)]
Get rid of an unused variable.
2002-04-16 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_folder): Get
rid of an unused variable.
* providers/smtp/camel-smtp-transport.c (smtp_helo): Use
camel_gethostbyaddr since gethostbyaddr is not reentrant.
* camel-http-stream.c (http_connect): Updated after the rename of
camel_get_host_byname.
* camel-service.c (camel_gethostbyname): Renamed.
(camel_gethostbyaddr): New cancellable/reentrant version of
gethostbyaddr.
Jeffrey Stedfast [Sun, 14 Apr 2002 20:13:01 +0000 (20:13 +0000)]
Added #include <sys/types.h> for dirent.h which needs it on MacOS X.
2002-04-14 Jeffrey Stedfast <fejj@ximian.com>
* providers/local/camel-spoold-store.c: Added #include
<sys/types.h> for dirent.h which needs it on MacOS X.
* providers/local/camel-maildir-store.c: Same.
* providers/nntp/camel-nntp-store.c: Same.
* providers/imap/camel-imap-message-cache.c: Same.
* camel-provider.c: Same.
* camel-data-cache.c: Same.
Jeffrey Stedfast [Sun, 14 Apr 2002 05:40:33 +0000 (05:40 +0000)]
Added #include <sys/types.h> for dirent.h which needs it on MacOS X.
2002-04-14 Jeffrey Stedfast <fejj@ximian.com>
* camel-provider.c: Added #include <sys/types.h> for dirent.h
which needs it on MacOS X.
* camel-data-cache.c: Same.
Jeffrey Stedfast [Sun, 14 Apr 2002 00:57:35 +0000 (00:57 +0000)]
fix the nntp provider makefile.am
Jeffrey Stedfast [Fri, 12 Apr 2002 22:16:42 +0000 (22:16 +0000)]
Treat commas as token delimeters. (WEEKDAY_CHARS): Use full weekday names
2002-04-12 Jeffrey Stedfast <fejj@ximian.com>
* broken-date-parser.c (datetok): Treat commas as token
delimeters.
(WEEKDAY_CHARS): Use full weekday names in case the broken mailer
used the full names.
(MONTH_CHARS): Same as above but for months.
Not Zed [Thu, 11 Apr 2002 09:00:57 +0000 (09:00 +0000)]
If the last message(s) were deleted, and we had any messages output,
2002-04-11 Not Zed <NotZed@Ximian.com>
* providers/local/camel-spool-summary.c (spool_summary_sync_full):
If the last message(s) were deleted, and we had any messages
output, account for the lost \n of the following From line by
adding an extra \n. fix for #8214.
2002-04-10 Not Zed <NotZed@Ximian.com>
* camel-mime-part-utils.c (convert_buffer): If we get a 0 length
input, return a 0 lenght output as valid - fixes bugs with some
iconv impl and its simpler anyway.
Jeffrey Stedfast [Thu, 11 Apr 2002 05:19:13 +0000 (05:19 +0000)]
Set the UID_SET_LIMIT value to 4096. I ran into an issue tonight where
2002-04-11 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-folder.c: Set the UID_SET_LIMIT value
to 4096. I ran into an issue tonight where apparently the IMAP
server changed the UIDVALIDITY and so Evo needed to re-fetch all
headers and it was trying to send a uid set of some 25k (yes, I
have a very large INBOX). Anyways, it was set to unlimited
before. Courier IMAPd can safely handle up to ~16k per token, but
UW IMAPd can only handle 8k per command-line, so I set it to 4k
just to be safe.
Jeffrey Stedfast [Wed, 10 Apr 2002 20:03:51 +0000 (20:03 +0000)]
oops, after converting everything truncate the GByteArray to the correct length (in case we over-allocated)
Jeffrey Stedfast [Wed, 10 Apr 2002 19:59:13 +0000 (19:59 +0000)]
Fixed a bug that would miscalculate how much data to copy into the
2002-04-10 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-part-utils.c (convert_buffer): Fixed a bug that would
miscalculate how much data to copy into the GByteArray (negative
value) thus causing a segfault. Also optimized it while I was at
it.
Jeffrey Stedfast [Wed, 10 Apr 2002 03:02:33 +0000 (03:02 +0000)]
Make the folder_lock recursive. See bug #22363 for details. Basically,
2002-04-09 Jeffrey Stedfast <fejj@ximian.com>
* camel-store.c (camel_store_init): Make the folder_lock
recursive. See bug #22363 for details. Basically,
get_folder_info() is requesting a diary folder which in turn
connects which requests then calls get_folder() but deadlocks
because get_folder_info already holds the lock.
Jeffrey Stedfast [Tue, 9 Apr 2002 20:02:43 +0000 (20:02 +0000)]
made the copmment clearer
Jeffrey Stedfast [Tue, 9 Apr 2002 19:57:09 +0000 (19:57 +0000)]
Don't adjust the timezone offset if we used tm.tm_gmtoff because it is
2002-04-09 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-message.c (camel_mime_message_set_date): Don't adjust
the timezone offset if we used tm.tm_gmtoff because it is already
adjusted.
Not Zed [Tue, 9 Apr 2002 13:45:44 +0000 (13:45 +0000)]
If we get multiple Content-Type header values, change subsequent headers
2002-04-09 Not Zed <NotZed@Ximian.com>
* camel-mime-part.c (construct_from_parser): If we get multiple
Content-Type header values, change subsequent headers to
X-Invalid-Content-Type so it doesn't wreck processing. This fixes
the reported case in #18929, but i dont know if it fixes the
original posters problems.
2002-04-08 Not Zed <NotZed@Ximian.com>
* camel-vtrash-folder.c (vtrash_move_messages_to): If we find
we're moving from the vtrash to another folder, we need to convert
the uid from a vfolder uid to the source uid (+8). Fix for
#20886. Also changed to batch multiple moves to different folders
so they are done as efficiently as possible rather than one at a
time.
* camel-mime-utils.c (base64_decode_step): If we only get passed
'=', we back track only if we actually output any data. Fix for
#21716.
(quoted_decode): Pass out size_t instead of int, and use 0 instead
of -1 for error since its not signed. This will fix similar bug
to above in different circumstances since the result is taken as
unsigned. This is only an internal func.
(quoted_encode): Return size_t just for consistency.
* camel-block-file.c (block_file_validate_root): Comment out the
debug and move it into a warning when the validation fails.
Jeffrey Stedfast [Mon, 8 Apr 2002 17:34:12 +0000 (17:34 +0000)]
Don't count our filler when encoding our line-length octet.
2002-04-08 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-utils.c (uuencode_close): Don't count our filler when
encoding our line-length octet.
Jeffrey Stedfast [Sat, 6 Apr 2002 01:15:53 +0000 (01:15 +0000)]
Don't get the statuscode here anymore. (http_method_invoke): Use a
2002-04-05 Jeffrey Stedfast <fejj@ximian.com>
* camel-http-stream.c (http_get_headers): Don't get the statuscode
here anymore.
(http_method_invoke): Use a User-Agent header and do basic proxy
authentication.
(stream_read): Handle redirects.
(camel_http_stream_set_user_agent): New function to allow client
to set the User-Agent string.
(camel_http_stream_set_proxy): New function for setting the proxy
server.
(camel_http_stream_set_proxy_authrealm): New function for setting
the proxy auth realm.
(camel_http_stream_set_proxy_authpass): New function for setting
the proxy auth password.
Not Zed [Fri, 5 Apr 2002 08:06:47 +0000 (08:06 +0000)]
If (body-contains) is not passed any arguments, return empty/false. Fixes
2002-04-04 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-search.c (imap_body_contains): If
(body-contains) is not passed any arguments, return empty/false.
Fixes a crash exposed by #15001.
Jeffrey Stedfast [Fri, 5 Apr 2002 00:08:23 +0000 (00:08 +0000)]
Simplified since we can now decode in-reply-to without getting extra
2002-04-04 Jeffrey Stedfast <fejj@ximian.com>
* camel-folder-summary.c (message_info_new): Simplified since we
can now decode in-reply-to without getting extra cruft. Get rid of
the FIXME about having to check scan->id because of the
possibility of it being NULL, this can no longer happen.
* camel-mime-utils.c (header_references_inreplyto_decode): New
function to decode in-reply-to headers. Only grabs the first thing
that looks like a message-id and then returns.
(header_references_decode): Loop calling
header_references_decode_single (a new internal function).
Not Zed [Thu, 4 Apr 2002 02:43:47 +0000 (02:43 +0000)]
Reset the keepalive timeout to 10 minutes rather than the 30 seconds I was
2002-04-04 Not Zed <NotZed@Ximian.com>
* camel-remote-store.c (remote_connect): Reset the keepalive
timeout to 10 minutes rather than the 30 seconds I was using for
testing.
Dan Winship [Wed, 3 Apr 2002 18:18:31 +0000 (18:18 +0000)]
make service_cache be an array of CAMEL_NUM_PROVIDER_TYPES elements so you
* camel-provider.h (CamelProvider): make service_cache be an array
of CAMEL_NUM_PROVIDER_TYPES elements so you can have a single
provider offer both stores and transports. (Eg, Exchange, NNTP)
* providers/imap/camel-imap-provider.c: Don't initialize
service_cache here. (The session code can do it itself since the
url_hash and url_equal functions are stored as part of the
provider.)
* providers/nntp/camel-nntp-provider.c: Likewise.
* providers/local/camel-local-provider.c: Likewise.
* providers/pop3/camel-pop3-provider.c: Likewise.
* providers/sendmail/camel-sendmail-provider.c: Likewise.
* providers/smtp/camel-smtp-provider.c: Likewise.
* camel-session.c (register_provider): Initialize the provider's
service cache(s) here.
(camel_session_class_init): Don't initialize.
vee_provider.service_cache here.
(camel_session_destroy_provider): Update to destroy multiple
service_caches.
(service_cache_remove, get_service): Tweak these a bit to deal
with multiple service_caches.
Not Zed [Wed, 3 Apr 2002 13:28:30 +0000 (13:28 +0000)]
Turn indexing back on, fingers crossed ...
2002-04-03 Not Zed <NotZed@Ximian.com>
* providers/local/camel-local-folder.c
(camel_local_folder_construct): Turn indexing back on, fingers
crossed ...
* camel-block-file.c (sync_nolock): #!@$@$#@~#$
DF@#$!Q@$#!@$#!#%. Well it helps if we're iterating a list to
iterate the node pointer ...
* camel-text-index.c (text_index_sync): Sync the key tables
explcitly.
(text_index_sync): Debug out frag info.
(camel_text_index_dump): Added a (rather large, but optional) raw
dumping mode for debugging purposes.
* camel-partition-table.c (camel_key_table_finalise): Sync root
block when done.
Jeffrey Stedfast [Tue, 2 Apr 2002 23:04:11 +0000 (23:04 +0000)]
Handle a ton more nspr i/o errno's. (stream_connect): Act as if we are
2002-04-02 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-ssl.c (set_errno): Handle a ton more nspr i/o
errno's.
(stream_connect): Act as if we are doing a non-blocking
connect. This is to try and work around bug #15120 where users get
an EINPROGRESS error. Maybe importing a PRFileDesc into SSL mode
automagically makes it non-blocking? I dunno.
2002-04-01 Jeffrey Stedfast <fejj@ximian.com>
* camel-folder-summary.c (message_info_new): Updated the
construction of the references to match JWZ's updated algorithm
initialization (ie, append any In-Reply-To reference onto any
References header and never take more than a single message-id
from the In-Reply-To header since anything after the first will
probably just be email addresses). Fixes bug #1336.
Not Zed [Tue, 2 Apr 2002 20:03:42 +0000 (20:03 +0000)]
Sync the key tables explcitly.
2002-04-03 Not Zed <NotZed@Ximian.com>
* camel-text-index.c (text_index_sync): Sync the key tables
explcitly.
* camel-partition-table.c (camel_key_table_finalise): Sync root
block when done.
(camel_key_table_sync): New function, sync key table (root) explicitly.
2002-04-02 Not Zed <NotZed@Ximian.com>
* camel-block-file.c (camel_block_file_free_block): Mark root
block dirty when we change it (this function isn't used yet
anyway).
* camel-text-index.c (text_index_add_name_to_word): Touch the root
block when we modify the counts. Also, abort processing on any
errors.
(text_index_sync): Fix typo in comments. Sync the block file
inside the lock.
(text_index_compress_nosync): Lock the old index while we're
compressing.
(text_index_compress_nosync): Remove the bogus while() at the end
of the while() loops! Also plug a memleak - records weren't
freed.
(text_index_rename): Lock around rename op.
(text_index_add_name): More typos.
(text_index_sync): Touch root when changing it.
(text_index_add_name): "
(text_index_delete_name): "
(camel_text_index_new): Touch root if we change it.
(text_index_cursor_reset): Make sure we NULL pointers after we
free them (nothing uses this yet).
* camel-partition-table.c (hash_key): Remove some debug
accidentally left in.
(camel_partition_table_add): When linking in the next block list,
set the right previous pointer.
(camel_key_table_add): Simplify the 'left' calculation (it was
already ok though).
(camel_key_table_next): Initialise returns before processing.
Broaden the lock slightly, and simplify validity calculations.
Not Zed [Tue, 2 Apr 2002 00:43:37 +0000 (00:43 +0000)]
Put back in the exception setup stuff i disabled for debugging.
2002-04-02 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-store.c (imap_keepalive): Put back in
the exception setup stuff i disabled for debugging.
Not Zed [Mon, 1 Apr 2002 23:58:53 +0000 (23:58 +0000)]
Temporarily disable indexing.
2002-04-02 Not Zed <NotZed@Ximian.com>
* providers/local/camel-local-folder.c
(camel_local_folder_construct): Temporarily disable indexing.
2002-03-28 Not Zed <NotZed@Ximian.com>
* camel-partition-table.c (camel_key_table_lookup): Change range
checking assert to a warning.
* providers/pop3/camel-pop3-folder.c (pop3_finalize): Make sure we
flush out all outstanding commands before finalising, stops being
finalised while outsanding requests are processed by the store
finalise.
(pop3_get_message): Instead of pre-fetching all messages, just
pre-fetch a maxiumum number at any one time, stops us running out
of cache fd's.
* providers/nntp/camel-nntp-folder.c (nntp_folder_init/finalise):
Setup priv data + locks, & free.
* providers/imap/camel-imap-folder.c (imap_rescan): Batch all
message_chagned events into a single folder_changed event
(otherwise updates can be >>> expensive, like >5 hours for 80K
messages changing!). Alternately it could use folder
freeze/unfreeze perhaps.
2002-03-27 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-store.c (imap_keepalive): Pass an
exception to called code so it behaves properly since it uses the
passed exception to check returns.
Jeffrey Stedfast [Mon, 1 Apr 2002 20:33:02 +0000 (20:33 +0000)]
#include appropriate headers for mkdir
Dan Winship [Mon, 1 Apr 2002 16:17:04 +0000 (16:17 +0000)]
Use -avoid-version instead of -version-info 0:0:0, and specify -module.
* providers/imap/Makefile.am (libcamelimap_la_LDFLAGS): Use
-avoid-version instead of -version-info 0:0:0, and specify
-module. (From Max Horn <max@quendi.de>).
* providers/local/Makefile.am (libcamellocal_la_LDFLAGS): Likewise.
* providers/nntp/Makefile.am (libcamelnntp_la_LDFLAGS): Likewise.
* providers/sendmail/Makefile.am (libcamelsendmail_la_LDFLAGS):
Likewise.
* providers/smtp/Makefile.am (libcamelsmtp_la_LDFLAGS): Likewise.
* providers/pop3/Makefile.am (libcamelpop3_la_LDFLAGS): Likewise.
Also remove $(KRB4_LDFLAGS) since KPOP is gone.
(INCLUDES): and $(KRB4_CFLAGS)
Jeffrey Stedfast [Fri, 29 Mar 2002 00:04:28 +0000 (00:04 +0000)]
We now have to check to make sure that p->message is non-NULL because we
2002-03-28 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (do_copy): We now have to check to make
sure that p->message is non-NULL because we only load the message
when we have to.
(do_move): Same here.
Dan Winship [Thu, 28 Mar 2002 23:20:09 +0000 (23:20 +0000)]
Change the message arg to a CamelMimeMessage instead of a CamelMedium.
* camel-transport.c (camel_transport_send_to): Change the message
arg to a CamelMimeMessage instead of a CamelMedium. Even the NNTP
provider returns CamelMimeMessages, and we're never going to
support anything more exotic than that. Also do a few more
g_return_if_fails here instead of in the providers.
(camel_transport_can_send): No longer needed.
(camel_transport_send): Remove this too. It wasn't being used any
more, and it doesn't behave exactly the same in sendmail and smtp.
* providers/smtp/camel-smtp-transport.c (smtp_send,
smtp_can_send): Gone.
(smtp_send_to): Update for arg change.
(smtp_data): Make this take a CamelMimeMessage too.
* providers/sendmail/camel-sendmail-transport.c (sendmail_send,
sendmail_can_send): Gone.
(sendmail_send_to): Update for arg change, and merge in the part
that used to be shared with sendmail_send.
Jeffrey Stedfast [Wed, 27 Mar 2002 19:38:08 +0000 (19:38 +0000)]
Construct the source_url the right way. The previous way was generating
2002-03-27 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_folder):
Construct the source_url the right way. The previous way was
generating urls like pop://fejj@ximian.com;keep_on_server/inbox
which is wrong.
Not Zed [Mon, 25 Mar 2002 22:58:13 +0000 (22:58 +0000)]
Changed to use just g_utf8_strdown instead of utf8_normalise, to match the
2002-03-26 Not Zed <NotZed@Ximian.com>
* camel-text-index.c (text_index_normalise): Changed to use just
g_utf8_strdown instead of utf8_normalise, to match the indexing
code. utf8_normalise is just far too expensive (saves approx 25%
total processing).
Jeffrey Stedfast [Mon, 25 Mar 2002 21:47:36 +0000 (21:47 +0000)]
updated
Not Zed [Mon, 25 Mar 2002 12:11:44 +0000 (12:11 +0000)]
When we add a new name, up all of the cache limits, because we're probably
2002-03-25 Not Zed <NotZed@Ximian.com>
* camel-text-index.c (text_index_add_name): When we add a new
name, up all of the cache limits, because we're probably going to
be adding more.
(text_index_sync): Drop the cache limits back down again, we dont
need them when looking words up.
** MERGE camel_index branch.
* camel-text-index.[ch]: Added files i forgot to add (eep nearly
lost all this work!)
* camel-block-file.c (sync_nolock): Fix an infinite loop in syncing.
Jeffrey Stedfast [Fri, 22 Mar 2002 00:19:58 +0000 (00:19 +0000)]
Use the date in the received header for the received_date.
2002-03-21 Jeffrey Stedfast <fejj@ximian.com>
* camel-folder-summary.c (camel_message_info_new_from_header): Use
the date in the received header for the received_date.
Jeffrey Stedfast [Tue, 19 Mar 2002 23:29:41 +0000 (23:29 +0000)]
Fix this to work right. We need to convert the input buffer to the charset
2002-03-19 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-utils.c (header_encode_param): Fix this to work
right. We need to convert the input buffer to the charset we claim
in the encoded param (duh).
Jeffrey Stedfast [Mon, 18 Mar 2002 21:59:54 +0000 (21:59 +0000)]
Updated to use the same logic as the POP code.
2002-03-18 Jeffrey Stedfast <fejj@ximian.com>
* providers/smtp/camel-smtp-transport.c
(connect_to_server_wrapper): Updated to use the same logic as the
POP code.
Jeffrey Stedfast [Mon, 18 Mar 2002 21:31:25 +0000 (21:31 +0000)]
No longer takes a stls_supported argument since we no longer need it with
2002-03-18 Jeffrey Stedfast <fejj@ximian.com>
* providers/pop3/camel-pop3-store.c (connect_to_server): No longer
takes a stls_supported argument since we no longer need it with
the new logic.
(connect_to_server_wrapper): New logic: First try connecting to
the SSL port (995 by default), if that fails with
SERVICE_UNAVAILABLE, then we attempt to connect (to port 110 by
default) and try to use STARTTLS.
Jeffrey Stedfast [Fri, 15 Mar 2002 19:06:30 +0000 (19:06 +0000)]
Don't allow any empty structs. If !ENABLE_THREADS, provide a gpointer
2002-03-15 Jeffrey Stedfast <fejj@ximian.com>
* camel-private.h: Don't allow any empty structs. If
!ENABLE_THREADS, provide a gpointer dummy member. Fixes bug #6382.
Jeffrey Stedfast [Wed, 13 Mar 2002 23:44:29 +0000 (23:44 +0000)]
Added a work-around for SMTP servers that can't read the RFCs and thus
2002-03-13 Jeffrey Stedfast <fejj@ximian.com>
* providers/smtp/camel-smtp-transport.c (smtp_auth): Added a
work-around for SMTP servers that can't read the RFCs and thus
implement SASL incorrectly. Oh well, that's life in the world of
mail clients I guess.
Jeffrey Stedfast [Wed, 13 Mar 2002 21:55:53 +0000 (21:55 +0000)]
reverted my USER/PASS quoting fix
Jeffrey Stedfast [Wed, 13 Mar 2002 20:47:00 +0000 (20:47 +0000)]
Quote the USER and PASS arguments since some people have spaces in their
2002-03-13 Jeffrey Stedfast <fejj@ximian.com>
* providers/pop3/camel-pop3-store.c (pop3_try_authenticate): Quote
the USER and PASS arguments since some people have spaces in their
user-names and/or passwords.
Jeffrey Stedfast [Tue, 12 Mar 2002 20:36:08 +0000 (20:36 +0000)]
Now takes a url argument.
2002-03-12 Jeffrey Stedfast <fejj@ximian.com>
* camel-digest-store.c (camel_digest_store_new): Now takes a url
argument.
* camel-digest-folder.c (digest_add_multipart): Fixed some memory
corruption and also modified to use CAMEL_IS_MIME_MESSAGE() rather
than comparing content-type strings.
(digest_get_message): Fixed a logic blooper.
* camel-folder-summary.c (camel_message_info_new_from_header): Set
the date fields of the CamelMessageInfo as well. This may even fix
some filter-related bugs where the user was trying to compare
dates.
Jeffrey Stedfast [Tue, 12 Mar 2002 00:55:53 +0000 (00:55 +0000)]
do the typedef's in camel-types.h and include camel-digest-store.h in camel.h
Jeffrey Stedfast [Tue, 12 Mar 2002 00:24:03 +0000 (00:24 +0000)]
A pretty empty store implementation to be the parent store of a
2002-03-11 Jeffrey Stedfast <fejj@ximian.com>
* camel-digest-store.c: A pretty empty store implementation to be
the parent store of a CamelDigestFolder.
* camel-digest-folder.c: Updated to reference it's parent store.
Jeffrey Stedfast [Mon, 11 Mar 2002 23:38:42 +0000 (23:38 +0000)]
Allow any leaf part to be a message/rfc822 part. (digest_get_uids):
2002-03-11 Jeffrey Stedfast <fejj@ximian.com>
* camel-digest-folder.c (camel_digest_folder_new): Allow any leaf
part to be a message/rfc822 part.
(digest_get_uids): Recurse the mime structure and add all
message/rfc822 parts and use a uid scheme similar to IMAP's mime
part naming convention.
(digest_get_message): Decode the uid to get the correct mime part.
Ettore Perazzoli [Mon, 11 Mar 2002 19:25:42 +0000 (19:25 +0000)]
Change the order of the mailing list magic patterns so that the more
* camel-mime-utils.c: Change the order of the mailing list magic
patterns so that the more mailing-list specific ones are on the
top.
Jeffrey Stedfast [Mon, 11 Mar 2002 17:06:27 +0000 (17:06 +0000)]
oops, musta backspaced over a brace?
Jeffrey Stedfast [Mon, 11 Mar 2002 17:01:15 +0000 (17:01 +0000)]
These fixes should fix bug #21737.
2002-03-11 Jeffrey Stedfast <fejj@ximian.com>
These fixes should fix bug #21737.
* providers/smtp/camel-smtp-transport.c
(connect_to_server_wrapper): Same as with the POP code.
* providers/pop3/camel-pop3-store.c (connect_to_server_wrapper):
Slight restructuring of the if-statements for the USE_SSL_ALWAYS
case so that we can't possibly return TRUE unless we really did
connect successfully.
Dan Winship [Mon, 11 Mar 2002 02:33:27 +0000 (02:33 +0000)]
Rename the OpenSSL implementation of things to match the NSS
implementation so that callers don't need to care which one is
being used.
* camel-tcp-stream-openssl.c: Implement CamelTcpStreamSSL, not
CamelTcpStreamOpenSSL. Rename methods as well. Replace the
camel-tcp-stream-openssl.h include with camel-tcp-stream-ssl.h.
* camel-tcp-stream-openssl.h: Gone.
* camel-tcp-stream-ssl.c: Add a note explaining that this
implementation is only used for NSS, and that OpenSSL's
implementation is in another file. (Should probably do some CVS
renaming magic at some point.)
* camel-http-stream.c (http_connect): Remove OpenSSL refs; the
previously-NSS-specific code works for both now.
* camel-remote-store.c: Likewise.
* providers/smtp/camel-smtp-transport.c: Likewise.
* providers/pop3/camel-pop3-store.c: Likewise.
* Makefile.am (libcamelinclude_HEADERS): Remove
camel-tcp-stream-openssl.h
Dan Winship [Mon, 11 Mar 2002 00:53:49 +0000 (00:53 +0000)]
Remove this: it couldn't be generically used, because different subclasses
* camel-tcp-stream.c (camel_tcp_stream_get_socket): Remove this:
it couldn't be generically used, because different subclasses
returned entirely different types of data.
(camel_tcp_stream_get_local_address,
camel_tcp_stream_get_remote_address): Add these to replace what
get_socket was being used for.
(camel_tcp_address_new, camel_tcp_address_free): Utility functions
for get_{local,remote}_address.
* providers/smtp/camel-smtp-transport.c: Change localaddr to a
CamelTcpAddress *.
(connect_to_server): Call camel_tcp_stream_get_local_address to
get the local IP address.
(smtp_disconnect): free localaddr.
(smtp_helo): Update for localaddr change.
* camel-tcp-stream-raw.c (stream_get_socket): Remove
(stream_get_local_address, stream_get_remote_address): Implement.
* camel-tcp-stream-ssl.c (stream_get_socket): Remove
(stream_get_local_address, stream_get_remote_address): Implement.
* camel-tcp-stream-openssl.c (stream_get_socket): Remove
(stream_get_local_address, stream_get_remote_address): Implement.