JP Rosevear [Wed, 11 Apr 2001 16:10:30 +0000 (16:10 +0000)]
Check if gethostbyname_r take five params
2001-04-11 JP Rosevear <jpr@ximian.com>
* configure.in: Check if gethostbyname_r take five params
* acconfig.h: add GETHOSTBYNAME_R_FIVE_ARGS
2001-04-11 JP Rosevear <jpr@ximian.com>
* providers/imap/Makefile.am: user GNOME_INCLUDEDIR since gnome
files are included in the top level camel headers and the gtk
include dir is now versioned and such
* providers/local/Makefile.am: ditto
* providers/pop3/Makefile.am: ditto
* providers/smtp/Makefile.am: ditto
* providers/sendmail/Makefile.am: ditto
* camel-service.c: use five arg version of gethostbyname_r if
appropriate
(camel_get_host_byname): check if msg->herr is non-zero instead of
checking if msg->hp is null since we may not always have msg->hp
Jeffrey Stedfast [Wed, 11 Apr 2001 15:50:04 +0000 (15:50 +0000)]
add camel-charset-map.h to the list of includes
Jeffrey Stedfast [Wed, 11 Apr 2001 15:45:35 +0000 (15:45 +0000)]
Use camel_charset_locale_name() to get the locale charset rather than
2001-04-11 Jeffrey Stedfast <fejj@ximian.com>
* camel-sasl-digest-md5.c (digest_response): Use
camel_charset_locale_name() to get the locale charset rather than
checking the CHARSET environment variable. This is a much less
ugly hack. Also: If we fail to be able to convert to UTF8, then
disavow all knowledge of the charset parameter.
* camel-charset-map.c (camel_charset_locale_name): New function to
return the locale charset (or NULL if US-ASCII).
Jeffrey Stedfast [Wed, 11 Apr 2001 14:02:14 +0000 (14:02 +0000)]
Use e_utf8_from_locale_string() rather than trying to do it manually since
2001-04-11 Jeffrey Stedfast <fejj@ximian.com>
* camel-pgp-context.c (camel_pgp_verify): Use
e_utf8_from_locale_string() rather than trying to do it manually
since Lauris's version works much better.
Jeffrey Stedfast [Tue, 10 Apr 2001 15:47:00 +0000 (15:47 +0000)]
Added camel-pgp-context.[c,h] to the build. Also added tests/smime/pgp.c
2001-04-06 Jeffrey Stedfast <fejj@ximian.com>
* Makefile.am: Added camel-pgp-context.[c,h] to the build. Also
added tests/smime/pgp.c and Makefile.am
* tests/smime/pgp.c: New test suite for PGP functions.
* camel-pgp-context.c: Various fixes to get it to build.
Peter Williams [Sun, 8 Apr 2001 00:38:00 +0000 (00:38 +0000)]
It would be a good idea to recognize '\0'. Before, this code was running
001-04-07 Peter Williams <peterw@ximian.com>
* providers/imap/camel-imap-utils.c (imap_parse_string_generic): It
would be a good idea to recognize '\0'. Before, this code was running
off the ends of strings and intermittently coredumping (if it didn't
hit an imap_atom_char first) -- whoops!
Not Zed [Thu, 5 Apr 2001 02:31:47 +0000 (02:31 +0000)]
merge from evolution-0-10-branch to evolution-0-10-merge-0
2001-04-05 Not Zed <NotZed@Ximian.com>
* merge from evolution-0-10-branch to evolution-0-10-merge-0
Jeffrey Stedfast [Wed, 4 Apr 2001 02:00:25 +0000 (02:00 +0000)]
Added tests/ back in
2001-04-03 Jeffrey Stedfast <fejj@ximian.com>
* Makefile.am: Added tests/ back in
* camel-mime-utils.c (header_decode_text): Ignore whitespace
between encoded words (there were a few cases where it didn't
before).
(header_encode_string): Preserve whitespace between words that are
to be encoded by encoding them too.
(header_encode_phrase): Same here but with phrases.
Dan Winship [Tue, 3 Apr 2001 22:03:18 +0000 (22:03 +0000)]
(imap_update_summary): When reading message flags, set the
server_flags field as well, and don't overwrite any flags set by
camel_folder_summary_info_new_from_message. Might help with some
of the flag problems...
Dan Winship [Tue, 3 Apr 2001 21:46:32 +0000 (21:46 +0000)]
(imap_get_message): If the server_level < IMAP4rev1, always fetch
messages all-at-once, since they don't support the [#.MIME]
syntax.
Dan Winship [Tue, 3 Apr 2001 21:32:52 +0000 (21:32 +0000)]
If we don't change any flags or expunge, send a NOOP to give the server a
* providers/imap/camel-imap-folder.c (imap_sync): If we don't
change any flags or expunge, send a NOOP to give the server a
chance to send EXISTS, etc, messages.
Dan Winship [Mon, 2 Apr 2001 20:57:39 +0000 (20:57 +0000)]
Remove the "quick_login" member, which is unnecessary.
* camel-service.h: Remove the "quick_login" member, which is
unnecessary.
* providers/smtp/camel-smtp-transport.c (smtp_auth): Remove the
references to quick_login and fix this to use the CamelSasl
interfaces correctly to do the same thing.
(connect_to_server): Split this out of smtp_connect
(smtp_connect): Use connect_to_server. When re-EHLO'ing after
auth, ignore errors.
(query_auth_types): Use connect_to_server rather than
smtp_connect, so it doesn't try to authenticate. Add LOGIN
authtype to the list of authtypes to check for.
* providers/smtp/camel-smtp-provider.c
(camel_provider_module_init): Add LOGIN authtype to the authtypes
list explicitly.
* camel-sasl.c (camel_sasl_authtype_list): Don't list LOGIN here:
it's not a real SASL authtype and is only used for SMTP.
* camel-sasl-plain.c:
* camel-sasl-login.c:
* camel-sasl-kerberos4.c:
* camel-sasl-cram-md5.c:
* camel-sasl-anonymous.c:
* providers/pop3/camel-pop3-provider.c: Remove "quick_login"
argument from authtypes.
Gediminas Paulauskas [Mon, 2 Apr 2001 20:29:42 +0000 (20:29 +0000)]
marked report status strings for tanslation, fixes #1973
Jeffrey Stedfast [Mon, 2 Apr 2001 07:24:37 +0000 (07:24 +0000)]
mutex lock & unlock the context. (camel_pgp_clearsign): Same.
2001-04-02 Jeffrey Stedfast <fejj@ximian.com>
* camel-pgp-context.c (camel_pgp_sign): mutex lock & unlock the context.
(camel_pgp_clearsign): Same.
(camel_pgp_verify): Same.
(camel_pgp_encrypt): Same.
(camel_pgp_decrypt): And finally here...
Jeffrey Stedfast [Mon, 2 Apr 2001 07:10:28 +0000 (07:10 +0000)]
Update the function prototypes to match those found in
2001-04-02 Jeffrey Stedfast <fejj@ximian.com>
* camel-pgp-context.h: Update the function prototypes to match
those found in camel-pgp-context.c.
* camel-pgp-context.c: Updated.
* camel-pgp-mime.c (camel_pgp_mime_part_sign): Implemented.
(camel_pgp_mime_part_verify): Implemented.
(camel_pgp_mime_part_encrypt): Implemented.
(camel_pgp_mime_part_decrypt): Implemented.
Jeffrey Stedfast [Sun, 1 Apr 2001 22:54:44 +0000 (22:54 +0000)]
New files to handle the LOGIN SASL mechanism.
2001-04-01 Jeffrey Stedfast <fejj@ximian.com>
* camel-sasl-login.[c,h]: New files to handle the LOGIN SASL
mechanism.
* camel-sasl-plain.c: Removed the definition of
camel_sasl_login_authtype.
* camel-sasl.c (camel_sasl_new): Oops. I thought LOGIN was an
alias to PLAIN. I was wrong. These two SASL objects have to be
separate.
* providers/smtp/camel-smtp-transport.c (smtp_auth): Updated to
check for and use authmech->quick_login when available.
Jeffrey Stedfast [Sun, 1 Apr 2001 22:16:32 +0000 (22:16 +0000)]
Updated the authtypes here too.
2001-04-01 Jeffrey Stedfast <fejj@ximian.com>
* providers/pop3/camel-pop3-provider.c: Updated the authtypes here
too.
Jeffrey Stedfast [Sun, 1 Apr 2001 22:10:55 +0000 (22:10 +0000)]
Updated the authtype values.
2001-04-01 Jeffrey Stedfast <fejj@ximian.com>
* camel-sasl-plain.c:
* camel-sasl-anonymous.c:
* camel-sasl-digest-md5.c:
* camel-sasl-cram-md5.c:
* camel-sasl-kerberos4.c: Updated the authtype values.
* camel-service.h: Added another field to CamelServiceAuthType
that specifies whether or not the mechanism supports "quick auth"
which means that the client can send the initial challenge in the
AUTH request.
* camel-sasl.c (camel_sasl_new): Add support for LOGIN.
(camel_sasl_authtype_list): Here too.
(camel_sasl_authtype): And finally here.
* camel-sasl-plain.c: Define camel_sasl_login_authtype.
* providers/smtp/camel-smtp-transport.c (smtp_auth): Only unref
the SASL object if it exists.
Dan Winship [Fri, 30 Mar 2001 22:50:48 +0000 (22:50 +0000)]
Move things around here to make this all work right again (so you don't
* providers/pop3/camel-pop3-store.c (connect_to_server,
query_auth_types, pop3_connect): Move things around here to make
this all work right again (so you don't get prompted for a
password when checking the supported authtypes.)
Jon Trowbridge [Fri, 30 Mar 2001 18:05:45 +0000 (18:05 +0000)]
Add support for converting e-mail addresses to links. (is_email_address):
2001-03-30 Jon Trowbridge <trow@ximian.com>
* e-html-utils.c (e_text_to_html_full): Add support for converting
e-mail addresses to links.
(is_email_address): Added. Identifies e-mail addresses.
(email_address_extract): Added. Extracts a copy of the e-mail
address from the text.
* e-html-utils.h (E_TEXT_TO_HTML_CONVERT_ADDRESSES): Added.
* e-url.c (e_url_shroud): Added. Copy a url, replacing
any plaintext passwords with a single *.
(e_url_equal): Compare two urls, taking into account that
they may or may not be shrouded.
2001-03-30 Jon Trowbridge <trow@ximian.com>
* camel-mime-message.c (camel_mime_message_set_source): Shrould
our source URL before putting it into X-Evolution-Source.
2001-03-30 Jon Trowbridge <trow@ximian.com>
* mail-display.c (mail_text_write): Add (commented-out)
E_TEXT_TO_HTML_CONVERT_ADDRESSES.
* mail-config.c (mail_config_get_account_by_source_url):
Call e_url_equal to compare URLs.
Jeffrey Stedfast [Fri, 30 Mar 2001 02:28:27 +0000 (02:28 +0000)]
removed a g_warning for debugging
Jeffrey Stedfast [Fri, 30 Mar 2001 02:25:38 +0000 (02:25 +0000)]
Don't blindly append "/INBOX", construct a CamelURL and set the path that
2001-03-29 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-store.c (get_folder_info): Don't
blindly append "/INBOX", construct a CamelURL and set the path
that way.
(parse_list_response_as_folder_info): Don't blindly append
"/<foldername>", construct a CamelURL and set the path that way
instead.
(get_folders_offline): And again here.
Not Zed [Fri, 30 Mar 2001 01:08:28 +0000 (01:08 +0000)]
Dont overwrite an exception if we got one already. Added camel_operation
2001-03-30 Not Zed <NotZed@Ximian.com>
* camel-service.c (camel_get_host_byname): Dont overwrite an
exception if we got one already. Added camel_operation status to
it, and comment out some debug.
Not Zed [Fri, 30 Mar 2001 00:31:20 +0000 (00:31 +0000)]
Not quite finished but checking in for some local frobbing.
2001-03-29 Not Zed <NotZed@Ximian.com>
* providers/smtp/camel-smtp-transport.c (smtp_connect): Free host
name info when done ... blah blah.
* camel-sasl-kerberos4.c (krb4_challenge): Free host name info
after we're done with it.
* camel-sasl-digest-md5.c (digest_md5_challenge): Free host name
info after we're done with it.
* camel-remote-store.c (remote_connect): Free the host name info
from get_host after we're finished with it.
* camel-service.c (camel_get_host_byname): New function to
lookup a name, and still be cancellable.
(camel_free_host): And a function to free the structure
returned.
(camel_service_gethost): Call get_host_byname for this.
Jon Trowbridge [Thu, 29 Mar 2001 23:46:53 +0000 (23:46 +0000)]
Added #include <libgnome/gnome-paper.h>
2001-03-29 Jon Trowbridge <trow@ximian.com>
* printing/e-contact-print.c: Added #include <libgnome/gnome-paper.h>
* printing/e-contact-print-envelope.c: Added #include <time.h>
and #include <libgnome/gnome-paper.h>
* gui/component/select-names/e-select-names-completion.c
(match_email): Better handle matching of "nameless" contacts.
* backend/ebook/e-destination.c (e_destination_get_string): Better
handle the case of a "nameless" contact.
2001-03-29 Jon Trowbridge <trow@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_message): Save
the source URL using camel_mime_message_set_source.
* camel-mime-message.c (camel_mime_message_set_source): Renamed
camel_mime_message_set_identity to this. Sets the X-Evolution-Source
header.
(camel_mime_message_get_source): Returns the X-Evolution-Source
header.
2001-03-29 Jon Trowbridge <trow@ximian.com>
* mail-callbacks.c: Added #include <time.h> to get things
to compile.
* mail-callbacks.c (mail_generate_reply): Look at the
X-Evolution-Source header, and try to find a corresponding
account. If this works, send the mail from this account.
If not, use the default account.
* mail-ops.c (send_queue_send): Strip out the X-Evolution-Source
header before sending.
* mail-config.c (mail_config_get_account_by_source_url): Added.
Look up accounts by source URL.
Kjartan Maraas [Thu, 29 Mar 2001 20:31:40 +0000 (20:31 +0000)]
Big header cleanups and nntp compile fix
Dan Winship [Thu, 29 Mar 2001 17:34:00 +0000 (17:34 +0000)]
change "gboolean show_passwd" to "guint32 flags".
* camel-url.c (camel_url_to_string): change "gboolean show_passwd"
to "guint32 flags".
* tests/misc/url.c (main): Update calls to camel_url_to_string
* providers/imap/camel-imap-store.c (construct): Call
camel_url_to_string with flags to hide password, authtype, and
params to create the base_url.
(etc): Update for the fact that the base_url no longer has the "/"
at the end.
* camel-service.c (construct): Update calls to camel_url_to_string
(pass CAMEL_URL_HIDE_PASSWORD)
Jeffrey Stedfast [Thu, 29 Mar 2001 04:53:26 +0000 (04:53 +0000)]
New class for PGP encrypting, decrypting, signing and verifying. Next I'll
2001-03-28 Jeffrey Stedfast <fejj@ximian.com>
* camel-pgp-context.[c,h]: New class for PGP encrypting,
decrypting, signing and verifying. Next I'll be moving the
contents of mail/mail-crypto into Camel. These files will
basically replace mail/openpgp-utils.[c,h].
Not Zed [Thu, 29 Mar 2001 04:04:09 +0000 (04:04 +0000)]
Optimise the match "" case, just match everything in the folder (if we
2001-03-29 Not Zed <NotZed@Ximian.com>
* camel-folder-search.c (search_body_contains): Optimise the match
"" case, just match everything in the folder (if we have it).
Michael Zucci [Thu, 29 Mar 2001 02:10:03 +0000 (02:10 +0000)]
(vee_expunge): Oops, call the class sync, not superclass sync.
Not Zed [Thu, 29 Mar 2001 02:03:06 +0000 (02:03 +0000)]
Access the folder directly from the message info.
2001-03-29 Not Zed <NotZed@Ximian.com>
* camel-vtrash-folder.c (vtrash_move_messages_to): Access the
folder directly from the message info.
(vtrash_move_messages_to): I think we also need to call the real
move_messages_to, and not try and bypass the lock, since we dont
have the lock for that folder.
* camel-vee-folder.h: Move CamelVeeMessageInfo to public, so
subclasses can get to it.
* camel-vee-folder.c (camel_vee_folder_add_folder): Dont let you
add a vfolder to itself.
(folder_changed):
(vee_folder_remove_folder):
(vee_folder_build_folder): Copy changes before triggering changed
events, so we can do them outside of locks.
(camel_vee_folder_get_message_folder): Removed function.
(camel_vee_folder_hash_folder): Made public (renamed from
hash_folder), simply for subclasses (probably not needed).
Jeffrey Stedfast [Wed, 28 Mar 2001 02:19:05 +0000 (02:19 +0000)]
Add the port (if user defined) to the path to fix bug #1996.
2001-03-27 Jeffrey Stedfast <fejj@ximian.com>
* camel-service.c (get_path): Add the port (if user defined) to
the path to fix bug #1996.
Danw: I'm iffy on the "fix" so I'd like you to comment.
Jeffrey Stedfast [Tue, 27 Mar 2001 23:12:46 +0000 (23:12 +0000)]
If we aren't going to even check the resp/free buffer that gets returned
2001-03-27 Jeffrey Stedfast <fejj@ximian.com>
* providers/pop3/camel-pop3-folder.c (pop3_sync): If we aren't
going to even check the resp/free buffer that gets returned from
camel_pop3_command, don't even bother using it. Send in NULL
instead.
(pop3_get_message): Check to make sure that the `result' string is
non-NULL. It's possible that some POP servers may return with
"+OK\r\n<message>..." rather than the expected
"+OK ### octets\r\n<message>..."
Not Zed [Tue, 27 Mar 2001 12:48:13 +0000 (12:48 +0000)]
Unref the html filter when done. (summary_build_content_info): Disable
2001-03-27 Not Zed <NotZed@Ximian.com>
* camel-folder-summary.c (camel_folder_summary_finalize): Unref
the html filter when done.
(summary_build_content_info): Disable using the html parser to
help index html mails until it gets sorted out.
Not Zed [Tue, 27 Mar 2001 10:10:16 +0000 (10:10 +0000)]
Fix a cut n paste bug, we want uid_removed not uid_changed deref, fixes
2001-03-27 Not Zed <NotZed@Ximian.com>
* camel-vee-folder.c (folder_changed): Fix a cut n paste bug, we
want uid_removed not uid_changed deref, fixes bug #1999.
Dan Winship [Tue, 27 Mar 2001 05:30:41 +0000 (05:30 +0000)]
add an argument to say whether or not you want "PLAIN" in the list (so you
* camel-sasl.c (camel_sasl_authtype_list): add an argument to say
whether or not you want "PLAIN" in the list (so you don't end up
with "Password" twice in the config dialog).
* providers/imap/camel-imap-provider.c (camel_provider_module_init):
* providers/imap/camel-imap-store.c (query_auth_types): We don't
want PLAIN.
* providers/smtp/camel-smtp-provider.c (camel_provider_module_init):
* providers/smtp/camel-smtp-transport.c (query_auth_types): But we
do.
Dan Winship [Tue, 27 Mar 2001 05:22:44 +0000 (05:22 +0000)]
Add an "extra_conf" field to CamelProvider with structures and defines and
* camel-provider.h: Add an "extra_conf" field to CamelProvider
with structures and defines and stuff, for providers to specify
additional configuration options that they want. Also add a
"supports ssl" flag to the provider flags.
* camel-remote-store.c: add a "default_ssl_port" field.
(remote_construct): If the URL has the "use_ssl" parameter, set
the store's use_ssl flag.
(remote_connect): If using SSL and no port specified, use the
default_ssl_port rather than the default_port.
* providers/smtp/camel-smtp-provider.c (smtp_provider): add
CAMEL_PROVIDER_SUPPORTS_SSL and CAMEL_URL_ALLOW_USER. (The config
gui code knows that the ALLOW_USER and ALLOW_AUTH go together.)
(ssmtp_provider): gone
* providers/smtp/camel-smtp-transport.c (smtp_construct): Set a
flag if "use_ssl" param is set.
(smtp_connect): Check the CamelSmtpTransport use_ssl flag rather
than checking if this is smtp or ssmtp.
* providers/imap/camel-imap-provider.c (imap_conf_entries): Add a
bunch of IMAP-specific configuration options, like "check for new
mail in all folders" (default TRUE), "show only subscribed
folders" (default TRUE), "ignore server-supplied namespace", and
"apply filters to INBOX" (not yet implemented).
(imap_provider): We support SSL and we no longer allow a path in
the URL. (namespace is handled via extra_conf)
(simap_provider): Gone
* providers/imap/camel-imap-store.c (camel_imap_store_init): Set
default_ssl_port, don't set CAMEL_STORE_SUBSCRIPTIONS here
(construct): remove simap stuff, deal with "use_lsub",
"namespace", "check_all", and "filter" parameters. Set base_url
to not include params.
(imap_store_setup_online): Don't ask for the namespace if it was
set explicitly. Don't get subscribed folders if !use_lsub.
(imap_concat): Fix a bug.
(get_folder_info): Support for not checking all folders.
* providers/pop3/camel-pop3-provider.c (pop3_conf_entries): "keep
on server" (currently still implemented by the mailer code, not
here), "delete after N days" (not yet implemented).
(pop3_provider): we support SSL
(spop_provider): gone
* providers/pop3/camel-pop3-store.c (camel_pop3_store_init): Set
default_ssl_port
(pop3_connect): Remove spop code
Dan Winship [Tue, 27 Mar 2001 05:22:08 +0000 (05:22 +0000)]
Fix parsing of params. (output_param): And unparsing...
* camel-url.c (camel_url_new_with_base): Fix parsing of params.
(output_param): And unparsing...
Dan Winship [Tue, 27 Mar 2001 05:21:47 +0000 (05:21 +0000)]
Rewrite to use imap_store->namespace, not service->url->path
* providers/imap/camel-imap-folder.c (imap_get_full_name): Rewrite
to use imap_store->namespace, not service->url->path
Jeffrey Stedfast [Tue, 27 Mar 2001 04:35:18 +0000 (04:35 +0000)]
Move all of the camel_vee_folder_construct() internals here.
2001-03-26 Jeffrey Stedfast <fejj@ximian.com>
* camel-vee-folder.c (vee_folder_construct): Move all of the
camel_vee_folder_construct() internals here.
(camel_vee_folder_construct): This function basically becomes a
wrapper for vee_folder_construct and also checks to make sure that
the UNMATCHED vfodler is constructed otherwise constructs it.
(camel_vee_folder_new): Call vee_folder_construct() instead so
that we don't get into a dead-lock.
Jeffrey Stedfast [Tue, 27 Mar 2001 01:41:21 +0000 (01:41 +0000)]
Use camel_vtrash_folder_new() to create the vtrash folder now.
2001-03-26 Jeffrey Stedfast <fejj@ximian.com>
* camel-store.c (init_trash): Use camel_vtrash_folder_new() to
create the vtrash folder now.
* camel-vtrash-folder.[c,h]: New subclass of CamelVeeFolder for
our vTrash folders.
* camel-folder.c (camel_folder_copy_messages_to): Don't watch for
vtrash folders anymore.
(camel_folder_move_messages_to): Same.
* camel-vee-folder.c (camel_vee_folder_class_init): Update.
(vee_move_messages_to): Rewrite to use the new move API.
* camel-filter-driver.c (do_copy): Updated to reflect
copy_message_to changes. Create a temporary uid array and use
that.
(do_move): Same.
(camel_filter_driver_filter_message): And again, here...
* providers/imap/camel-imap-folder.c (imap_copy_messages_to):
Update to the new API.
(imap_move_messages_to): Same.
(get_uid_set): New function to create a `set' string based on an
array of UIDs for use with imap_copy_messages_to.
* camel-folder.c (camel_folder_copy_messages_to): Replaces
camel_folder_copy_message_to
(camel_folder_move_message_to): Replaces
camel_folder_move_message_to.
Not Zed [Mon, 26 Mar 2001 23:10:40 +0000 (23:10 +0000)]
Added folder_created event here.
2001-03-27 Not Zed <NotZed@Ximian.com>
* camel-vee-store.c (vee_get_folder): Added folder_created event
here.
* camel-vee-folder.c (unmatched_finalise): Removed, moved into
main finalise code.
(message_changed): Just create a new change entry and promote it
to a folder_changed thing.
(vee_sync): Always rebuild folder on sync, even when not expunge.
(folder_changed): If not autoupdating, make sure we remove any
removed entries.
(vee_folder_build_folder):
(vee_folder_remove_folder): NOP if we're called on
folder_unmatched.
(vee_search_by_expression): Only search each folder once. Should
we also order the result in summary order?
2001-03-20 Not Zed <NotZed@Ximian.com>
* camel-store.c (init_trash): Fix calling for vee_folder_new().
* camel-folder-summary.c (camel_folder_summary_remove_index):
Optimise slightly, use ptr_array_remove_index rather than have to
search for the index by using summary_remove.
* camel-vee-folder.h: Removed local member from VeeFolder, since
it was never used.
* camel-vee-store.c (camel_vee_store_finalise): Setup finalise
function.
* camel-vee-folder.c (camel_vee_folder_set_expression): New
function to set the query of an existing vfolder.
(camel_vee_folder_construct): New function for
convenience/subclasses.
(camel_vee_folder_new): Removed exception parameter, no longer
needed (since we dont search yet).
(camel_vee_folder_new): Changed to use folder_construct, and no
longer raise the folder created signal.
(vee_folder_build_folder): Make it return error on exception, so
we can work without exceptions.
(vee_folder_remove_folder): Use remove index rather than
remove_uid, this is ok since we have the summary locked for our
own access.
(camel_vee_folder_add_folder): Only add the folder to the
unmatched private if it is not a private folder.
(camel_vee_folder_remove_folder): Only remove the folder from
unmatched if it is not private.
(vee_expunge): Just call sync with expunge set.
(vee_sync): If expunging, also refresh the search.
(vee_folder_build_folder): We do our own locking now, removed from
callers, also trigger changed events here too (within locks),
fixed callers appropriately.
(vee_folder_remove_folder): Do our own locking, and trigger
changed events.
(vee_folder_add_info): Renamed of vee_folder_add, we now take a
hash of the folder name, rather than use the folders address.
(hash_folder): Convert a folder name into an 8 character hash.
(vee_get_message, vee_search_by_expression, vee_set_message_flags,
vee_set_message_user_flag, vee_move_message_to): Changed the uid
to be an 8 byte hash + original uid, with no ':' anymore.
Jeffrey Stedfast [Mon, 26 Mar 2001 20:11:27 +0000 (20:11 +0000)]
When writing the last token (if not rfc2047 encoded), don't use
2001-03-26 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-utils.c (header_decode_text): When writing the last
token (if not rfc2047 encoded), don't use g_string_append_len, use
append_latin1.
Jeffrey Stedfast [Mon, 26 Mar 2001 19:28:52 +0000 (19:28 +0000)]
Don't spew a warning if the message-id wasn't set by the application, not
2001-03-26 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-message.c (write_to_stream): Don't spew a warning if
the message-id wasn't set by the application, not a big deal since
we create one right here.
Dan Winship [Mon, 26 Mar 2001 19:15:48 +0000 (19:15 +0000)]
Rename this from "PLAIN" to "Password": there's no reason the user needs
* camel-sasl-plain.c (camel_sasl_plain_authtype): Rename this from
"PLAIN" to "Password": there's no reason the user needs to see the
SASL mechanism name.
Dan Winship [Mon, 26 Mar 2001 16:01:33 +0000 (16:01 +0000)]
keep a reference on the store's current_folder.
* providers/imap/camel-imap-command.c (camel_imap_command): keep a
reference on the store's current_folder.
* providers/imap/camel-imap-store.c (camel_imap_store_finalize):
(imap_disconnect): unref the current_folder before clearing it.
Dan Winship [Mon, 26 Mar 2001 14:05:44 +0000 (14:05 +0000)]
Add missing accessor.
* camel-url.c (camel_url_get_param): Add missing accessor.
Dan Winship [Mon, 26 Mar 2001 14:01:33 +0000 (14:01 +0000)]
New. Return the provider for a URL.
* camel-session.c (camel_session_get_provider): New. Return
the provider for a URL.
Dan Winship [Sun, 25 Mar 2001 23:04:14 +0000 (23:04 +0000)]
eh, changed my mind, put the exception back in camel_url_new()
Dan Winship [Sun, 25 Mar 2001 22:55:27 +0000 (22:55 +0000)]
New URL parser with full RFC1808 relative URL support. Yum.
* camel-url.c (camel_url_new_with_base): New URL parser with full
RFC1808 relative URL support. Yum.
(camel_url_new): Wrapper around camel_url_new_with_base now.
Removed the CamelException since no one ever used it...
* tests/Makefile.am: add misc subdir
* tests/misc/url.c: relative URL test cases from RFC 1808
* camel-session.c (camel_session_get_service): Update
camel_url_new call.
Jeffrey Stedfast [Sun, 25 Mar 2001 08:25:49 +0000 (08:25 +0000)]
Don't use copy_to if the source folder doesn't support summary info's.
2001-03-25 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (do_copy): Don't use copy_to if the source
folder doesn't support summary info's.
(do_move): Same.
(camel_filter_driver_filter_message): And again here. I think
this will fix the problem of "colour" tags not staying with the
message when it's copied to a folder during the filter process.
Jeffrey Stedfast [Sun, 25 Mar 2001 00:27:34 +0000 (00:27 +0000)]
Do charset conversion on the username param here if needed.
2001-03-24 Jeffrey Stedfast <fejj@ximian.com>
* camel-sasl-digest-md5.c (digest_response): Do charset conversion
on the username param here if needed.
(parse_server_challenge): Protect against possibly empty-string
charset values.
Jon Trowbridge [Fri, 23 Mar 2001 09:39:35 +0000 (09:39 +0000)]
Added. Call me old-fashioned, but I just prefer to have a real API rather
2001-03-23 Jon Trowbridge <trow@ximian.com>
* gui/widgets/e-minicard-widget.c (e_minicard_widget_set_card):
Added. Call me old-fashioned, but I just prefer to have a real
API rather than doing everything via gtk_object_get/set-type
calls.
(e_minicard_widget_set_arg): Changed to call
e_minicard_widget_set_card.
* backend/ebook/e-book-util.c: Small changes to get rid of
compiler warnings. (Casting out const, removed unused variables,
etc.) Removed some debugging messages.
* gui/component/addressbook-factory.c (main): Added call
to e_address_popup_factory_init.
* gui/component/e-address-popup.c: Added. A popup gadget that is
invoked (as a bonobo control) when an address is left-clicked in
the mailer. The addressbook is queries, and the address is either
displayed as a minicard (if it already exists) or in a "generic
format". A button is provided for editting/adding the contact.
Some of the semantics of this widget are a bit... non-standard,
because of bonobo issues. I can't really seem to replicate
popup-menu behavior because of how bonobo propogates events, etc.
so I've tried to produce something that I think is non-annoying.
YMMV.
2001-03-23 Jon Trowbridge <trow@ximian.com>
* mail-display.c (handle_embedded_address_object): #ifdef away
some code I don't quite want to delete yet.
(html_button_press_event): Remove some of Radek's placeholder
code, replace it with code to create my AddressPopup bonobo
control.
* mail-format.c: Remove some obsolete code that if #ifdef-ed out
a while ago.
* mail-ops.c (send_queue_send): Strip out the X-Evolution-Identity
header when sending.
2001-03-23 Jon Trowbridge <trow@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_message):
Don't call camel_mime_message_set_identity. (The call is
commented out, left over from some earlier experimentation that I
want to be able to remember later...)
* camel-mime-message.c (camel_mime_message_set_identity): Added.
A function to set the X-Evolution-Identity header.
Dan Winship [Thu, 22 Mar 2001 22:31:55 +0000 (22:31 +0000)]
Don't look at untagged responses other than "* BYE"...
* providers/imap/camel-imap-command.c (imap_read_response): Don't
look at untagged responses other than "* BYE"...
(camel_imap_response_free): ...do it here instead...
(camel_imap_response_free_without_processing): ...but not here.
* providers/imap/camel-imap-folder.c (camel_imap_folder_selected):
Remove the "EXISTS" line from the response so
camel_imap_response_free won't try to process it.
(camel_imap_folder_selected): If we get an EXISTS response mixed
in with the FETCH responses, record the new EXISTS value.
Use camel_imap_response_free_without_processing so that an EXISTS
response won't cause a loop.
(imap_rescan): Use camel_imap_response_free_without_processing.
(imap_update_summary): Use
camel_imap_response_free_without_processing. If an EXISTS response
shows up, call imap_update_summary again to get the new messages.
(imap_protocol_get_summary_specifier): Use BODY.PEEK[0], not
RFC822.HEADER for prev IMAP4rev1, since the FETCH parser won't
deal with RFC822.HEADER responses.
* providers/imap/camel-imap-store.c (get_folder_info): Fix an
uninitialized variable
Dan Winship [Wed, 21 Mar 2001 22:20:29 +0000 (22:20 +0000)]
add a "GList *authtypes", so you can get the list of authtypes used by a
* camel-provider.h: (CamelProvider) add a "GList *authtypes", so
you can get the list of authtypes used by a provider without
needing to have an actual CamelService object handy. (Will be
needed by the new config druid.)
(CAMEL_PROVIDER_ALLOWS, CAMEL_PROVIDER_NEEDS): New macros to test
the URL part stuff, since the way it works is too complicated and
everyone always does it wrong.
* camel-service.c (camel_service_query_auth_types): Remove the
@connected arg again: if you don't want to connect, you can just
get the list of authtypes off the provider.
(camel_service_free_auth_types): Remove this. All existing
implementations do authtypes the same way, so just say the caller
should "g_list_free" the list. (Oh, look, removing this function
doesn't actually cause the mailer to not build. How 'bout that.)
(construct, get_path): Use the new URL part macros.
* camel-remote-store.c (remote_query_auth_types): Update
(remote_free_auth_types): Nuke
(camel_remote_store_authtype_list): New function for use by
subclasses.
* providers/imap/camel-imap-provider.c:
* providers/pop3/camel-pop3-provider.c:
* providers/smtp/camel-smtp-provider.c: Update CamelProvider
structures.
(camel_provider_module_init): Put all the SSL parts together so
there's only 1 #ifdef. Set up the provider authtypes field using
the SASL, CamelRemoteStore, and standard authtypes, as
appropriate. Copy that from the normal provider to the SSL
provider.
* providers/local/camel-local-provider.c:
* providers/sendmail/camel-sendmail-provider.c:
* camel-session.c: Update CamelProvider structures.
* providers/imap/camel-imap-store.c (query_auth_types):
* providers/pop3/camel-pop3-store.c (query_auth_types): Update
* providers/smtp/camel-smtp-store.c (query_auth_types): Update.
Remove the no_authtype, because that's what "ALLOW_AUTH" rather
than "NEED_AUTH" means.
(free_auth_types): Nuke.
Jeffrey Stedfast [Wed, 21 Mar 2001 21:45:26 +0000 (21:45 +0000)]
Return -1 on fail. (camel_filter_driver_filter_folder): Same.
2001-03-21 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_message):
Return -1 on fail.
(camel_filter_driver_filter_folder): Same.
(camel_filter_driver_filter_mbox): Same.
(camel_filter_driver_filter_folder): Return -1 if an exception was
set as well.
2001-03-19 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-openssl.c (camel_tcp_stream_openssl_finalize):
Free the expected host.
(camel_tcp_stream_openssl_new): Now takes a Service and an
expected_host. Set them.
Dan Winship [Tue, 20 Mar 2001 17:38:46 +0000 (17:38 +0000)]
Function to check if the store is online and set an exception if not.
* providers/imap/camel-imap-store.c
(camel_imap_store_check_online): Function to check if the store is
online and set an exception if not. Currently controlled by an
environment variable, but eventually there will be both a global
(session-level) setting and a per-store setting.
(construct): Set up storage_path and base_url here rather than at
connect-time.
(imap_auth_loop): Split out from imap_connect.
(imap_setup_online): Split out from imap_connect. Do the
post-authentication connection setup, and cache the results to
disk.
(imap_setup_offline): Set up a CamelImapStore with information
saved from a previous imap_setup_online.
(imap_connect): If online, do connect_to_server(),
imap_auth_loop(), and imap_setup_online(). Otherwise, do
imap_setup_offline().
(get_folder, get_folder_info): Add offline support.
(create_folder, subscribe_folder, unsubscribe_folder): Disable
these when offline (for now).
* providers/imap/camel-imap-folder.c (camel_imap_folder_new):
Remove the sync'ing-with-server stuff... it's done by
camel_imap_folder_selected now, which only gets called if the
store is online.
(camel_imap_folder_selected): add the code removed from
camel_imap_folder_new. Besides simplifying the folder_new and
summary_new code, this also means now that we'll DTRT if a
folder's UIDVALIDITY changes while we're connected. Also, when
that happens, clear the message cache explicitly.
(imap_refresh_info, imap_sync): These are no-ops when offline.
(imap_expunge, imap_append_message, imap_copy_message_to,
imap_search_by_expression): These don't yet work offline.
(imap_get_message, camel_imap_folder_fetch_data): Return an error
when trying to fetch a non-cached body part when we're offline.
* providers/imap/camel-imap-summary.c (camel_imap_summary_new):
Rewrite to not check the validity here. (We'll do it from
camel_imap_folder_selected instead.)
* providers/imap/camel-imap-command.c (camel_imap_command): Call
camel_imap_folder_selected even when the selection is all we're
doing, to match the changes in camel-imap-folder.c.
* providers/imap/camel-imap-message-cache.c
(camel_imap_message_cache_clear): New function to clear out a
message cache.
Christopher James Lahey [Tue, 20 Mar 2001 04:45:39 +0000 (04:45 +0000)]
Added $(EXTRA_GNOME_CFLAGS)
2001-03-19 Christopher James Lahey <clahey@ximian.com>
* Makefile.am (INCLUDES): Added $(EXTRA_GNOME_CFLAGS)
Jeffrey Stedfast [Mon, 19 Mar 2001 06:46:11 +0000 (06:46 +0000)]
Set the errbuf to NULL after freeing it? I don't think this should fix bug
2001-03-19 Jeffrey Stedfast <fejj@ximian.com>
* providers/pop3/camel-pop3-store.c (pop3_connect): Set the errbuf
to NULL after freeing it? I don't think this should fix bug #1801
but I guess it can't hurt.
Jeffrey Stedfast [Mon, 19 Mar 2001 02:21:44 +0000 (02:21 +0000)]
Protect against a possibly NULL exception.
2001-03-18 Jeffrey Stedfast <fejj@ximian.com>
* camel-remote-store.c (remote_recv_line): Protect against a
possibly NULL exception.
Jeffrey Stedfast [Mon, 19 Mar 2001 01:34:50 +0000 (01:34 +0000)]
Document and modify to return a boolean value denoting whether or not
2001-03-18 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_message):
Document and modify to return a boolean value denoting whether or
not errors occured during processing.
(camel_filter_driver_filter_mbox): Same as above and also modified
to check return codes of filter_message rather than relying only
on whether or not the exception was set (as it's possible to pass
in NULL for the exception).
(camel_filter_driver_filter_folder): Same as above.
* camel-mime-utils.c (header_param_list_format_append): Quote the
param value if it contains whitespace as well.
Jeffrey Stedfast [Mon, 19 Mar 2001 00:22:29 +0000 (00:22 +0000)]
Quote the param value if it contains whitespace as well.
2001-03-18 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-utils.c (header_param_list_format_append): Quote the
param value if it contains whitespace as well.
Jeffrey Stedfast [Sat, 17 Mar 2001 22:13:19 +0000 (22:13 +0000)]
Don't include system include dir.
2001-03-17 Jeffrey Stedfast <fejj@ximian.com>
* Makefile.am: Don't include system include dir.
* camel.c: Use quotes around the nss.h include so it doesn't try
to use the systen nss.h file.
* camel-tcp-stream-ssl.c: Same here.
Not Zed [Sat, 17 Mar 2001 09:25:29 +0000 (09:25 +0000)]
Modified patch from Dan Berger <dberger@ix.netcom.com> to re-check the
2001-03-17 Not Zed <NotZed@Ximian.com>
* providers/local/camel-maildir-summary.c (maildir_summary_sync):
Modified patch from Dan Berger <dberger@ix.netcom.com> to re-check
the maildir directory for new/updated messages at sync time.
Not Zed [Sat, 17 Mar 2001 04:51:21 +0000 (04:51 +0000)]
Implemented. (ref_message_info): And default implementation.
2001-03-17 Not Zed <NotZed@Ximian.com>
* camel-folder.c (camel_folder_ref_message_info): Implemented.
(ref_message_info): And default implementation.
* camel-folder.h: Added ref_message_info virtual method.
2001-03-16 Not Zed <NotZed@Ximian.com>
* camel-folder-thread.c
(camel_folder_thread_messages_new_summary): New function to create
a thread tree from a supplied summary array.
(camel_folder_thread_messages_destroy): Handle thread trees
generated by the above function properly.
Jeffrey Stedfast [Sat, 17 Mar 2001 00:52:11 +0000 (00:52 +0000)]
Same.
2001-03-16 Jeffrey Stedfast <fejj@ximian.com>
* camel-private.h: Same.
* camel-remote-store.h: Fixed #include to use <>'s instead of ""'s
Jeffrey Stedfast [Fri, 16 Mar 2001 23:06:49 +0000 (23:06 +0000)]
removed camel-stream-ssl.c and camel-stream-ssl.h
Jeffrey Stedfast [Fri, 16 Mar 2001 23:02:04 +0000 (23:02 +0000)]
Print info about the issuer of the certificate.
2001-03-16 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-ssl.c (ssl_bad_cert): Print info about the
issuer of the certificate.
* providers/smtp/camel-smtp-transport.c (smtp_connect): Use
camel_tcp_stream_get_socket().
* camel-tcp-stream-openssl.c (stream_get_socket): Implemented.
* camel-tcp-stream-ssl.c (stream_get_socket): Implemented.
* camel-tcp-stream-raw.c (stream_get_socket): Implemented.
* camel-tcp-stream.c (camel_tcp_stream_get_socket): New function.
Kjartan Maraas [Fri, 16 Mar 2001 19:55:17 +0000 (19:55 +0000)]
Added #include <config.h>
2001-03-16 Kjartan Maraas <kmaraas@gnome.org>
* providers/pop3/camel-pop3-folder.c: Added #include <config.h>
Dan Winship [Fri, 16 Mar 2001 17:17:30 +0000 (17:17 +0000)]
Don't use getdomainname: it's NIS crap, not DNS.
* camel-mime-utils.c (header_msgid_generate): Don't use
getdomainname: it's NIS crap, not DNS.
Jeffrey Stedfast [Fri, 16 Mar 2001 04:41:49 +0000 (04:41 +0000)]
Don't use the hardcoded cert db directory, use the one passed in.
2001-03-15 Jeffrey Stedfast <fejj@ximian.com>
* camel.c (camel_init): Don't use the hardcoded cert db directory,
use the one passed in.
* camel-tcp-stream-ssl.c (ssl_get_client_auth): Wrote the default
implementation. Not that we'll use this though, since this is the
default implementation provided by NSS anyway. This more or less
serves as a reference in case we want to change anything.
(ssl_auth_cert): Same.
(ssl_bad_cert): Changed the prompt string and free it when we're
done.
Dan Winship [Thu, 15 Mar 2001 21:09:54 +0000 (21:09 +0000)]
translate NIL to "" in fetch body part response
Dan Winship [Thu, 15 Mar 2001 20:50:59 +0000 (20:50 +0000)]
First batch of disconnected IMAP-related stuff. This adds local
caching of message parts, but NOT any actual disconnected support.
(But it should speed up IMAP use.)
* providers/imap/camel-imap-message-cache.c: New class for caching
message data to disk, and removing it when it's no longer
relevant. Will eventually also support merging message parts
together to save on files. Or maybe using a db instead of files?
* providers/imap/camel-imap-private.h: Add a cache_lock to
CamelImapFolderPrivate. This lock must be recursive, so make both
locks EMutexes rather than GMutex.
* providers/imap/camel-imap-folder.c (parse_fetch_response): "The
only FETCH response parser you need!" Replaces the various
almost-correct bits of code formerly scattered throughout this
file with a single fully-correct function that can handle any
FETCH response at any time, so we don't get confused by seeing a
flags update when we were only expecting a message body, etc.
(camel_imap_folder_fetch_data): FETCH a message body part either
from the cache or the server
(camel_imap_folder_changed): Remove expunged messages from the
message cache.
(camel_imap_folder_new): Change to take a directory instead of a
summary file name. Create a CamelImapMessageCache for the folder.
(imap_finalize): Unref the message cache.
(camel_imap_folder_selected, imap_rescan, get_content,
get_message, imap_get_message, imap_update_summary): Redone a
bunch to use parse_fetch_data, CamelImapMessageCache, etc.
* providers/imap/camel-imap-store.c (get_folder): Pass directory
name to camel_imap_folder_new, not summary filename. Use
e_path_to_physical to generate a path with /subfolders/ inserted
between directory components.
* providers/imap/camel-imap-wrapper.c (camel_imap_wrapper_new):
Call camel_imap_folder_fetch_data (with cache_only TRUE) and if
the data is cached, return an online datawrapper rather than an
offline one.
(write_to_stream): Use camel_imap_folder_fetch_data (with
cache_only FALSE) here too
* providers/imap/camel-imap-utils.c (imap_skip_list): Renamed from
skip_list and made non-static.
Jeffrey Stedfast [Thu, 15 Mar 2001 17:50:46 +0000 (17:50 +0000)]
Uninclude prnetdb.h since it's not needed here.
2001-03-15 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-ssl.h: Uninclude prnetdb.h since it's not
needed here.
* providers/smtp/camel-smtp-transport.c: #include prnetdb.h here
instead of making camel-tcp-stream-ssl.h include it. Prevents some
header bloat.
* providers/smtp/Makefile.am: Include the NSPR_CFLAGS and
NSS_CFLAGS.
Jeffrey Stedfast [Thu, 15 Mar 2001 04:21:24 +0000 (04:21 +0000)]
Update for using CamelTcpStreams and also for using SSL.
2001-03-14 Jeffrey Stedfast <fejj@ximian.com>
* providers/smtp/camel-smtp-transport.c (smtp_connect): Update for
using CamelTcpStreams and also for using SSL.
* providers/smtp/libcamelsmtp.urls: defined "ssmtp"
* providers/smtp/camel-smtp-provider.c: Defined the Secure SMTP
provider.
(camel_provider_module_init): Register the Secure SMTP provider.
Jeffrey Stedfast [Thu, 15 Mar 2001 03:32:50 +0000 (03:32 +0000)]
defined "ssmtp"
2001-03-14 Jeffrey Stedfast <fejj@ximian.com>
* providers/smtp/libcamelsmtp.urls: defined "ssmtp"
* providers/smtp/camel-smtp-provider.c: Defined the Secure SMTP
provider.
(camel_provider_module_init): Register the Secure SMTP provider.
Jeffrey Stedfast [Thu, 15 Mar 2001 03:26:31 +0000 (03:26 +0000)]
also change the protocol name in the providers
Jeffrey Stedfast [Thu, 15 Mar 2001 03:25:22 +0000 (03:25 +0000)]
Check for "simap" instead of "imaps".
2001-03-14 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-store.c (imap_connect): Check for
"simap" instead of "imaps".
* providers/pop3/camel-pop3-store.c (pop3_connect): Change the
port to be 995 for spop.
* providers/pop3/libcamelpop3.urls: Change to "spop".
* providers/imap/libcamelimap.urls: Change "imaps" to "simap" to
correspond to /etc/services.
Jeffrey Stedfast [Thu, 15 Mar 2001 03:08:47 +0000 (03:08 +0000)]
Check to see if we are using "pops" and then set the appropriate SSL
2001-03-14 Jeffrey Stedfast <fejj@ximian.com>
* providers/pop3/camel-pop3-store.c (pop3_connect): Check to see
if we are using "pops" and then set the appropriate SSL settings.
* providers/pop3/libcamelpop3.urls: Add "pops"
* providers/pop3/camel-pop3-provider.c: Defined the pops provider.
(camel_provider_module_init): Register the pops provider.
Jeffrey Stedfast [Thu, 15 Mar 2001 02:56:06 +0000 (02:56 +0000)]
Ya know what? Lets not ref the service because otherwise we'll start
2001-03-14 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-ssl.c (camel_tcp_stream_ssl_new): Ya know what?
Lets not ref the service because otherwise we'll start having the
same problems we had back with vtrash. Besides, since the store
owns the stream, it's not like the store is going anywhere without
the stream anyway.
(camel_tcp_stream_ssl_finalize): No need to unref the service.
Jeffrey Stedfast [Thu, 15 Mar 2001 02:33:34 +0000 (02:33 +0000)]
Pass the service into the SSL stream, not the session.
2001-03-14 Jeffrey Stedfast <fejj@ximian.com>
* camel-remote-store.c (remote_connect): Pass the service into the
SSL stream, not the session.
* camel-tcp-stream-ssl.c (camel_tcp_stream_ssl_init): Set the
service to NULL.
(camel_tcp_stream_ssl_finalize): Unref the service.
(camel_tcp_stream_ssl_new): Takes a CamelService arg now rather
than a CamelSession arg.
Jeffrey Stedfast [Thu, 15 Mar 2001 01:59:00 +0000 (01:59 +0000)]
So it turns out that NSS_Init *isn't* idempotent, so we have to protect
2001-03-14 Jeffrey Stedfast <fejj@ximian.com>
* camel.c (camel_init): So it turns out that NSS_Init *isn't*
idempotent, so we have to protect against initializing it more
than once(contrary to what their design specs suggest).
* camel-session.c (camel_session_get_service): Use
camel_exception_is_set() - Makes no difference but it's more
consistant with how we normally do it.
* camel-provider.h (CAMEL_URL_ALLOW_SSL): We don't need this.
* providers/imap/camel-imap-provider.c: Define the imaps provider.
(camel_provider_module_init): Register the imaps provider.
* camel-provider.c (camel_provider_init): Only add the protocol to
the hash table if it's non empty. Also, g_strdup() the filename
into the hash table.
* 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 [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.