Commit Graph

32 Commits

Author SHA1 Message Date
93c8da913b Check for a NULL service->url as we obviously can't subscribe to folders
2001-01-26  Jeffrey Stedfast  <fejj@ximian.com>

	* subscribe-dialog.c (populate_store_foreach): Check for a NULL
	service->url as we obviously can't subscribe to folders on a
	non-existant mail source :-)
	(subscribe_do_get_store): Check for a NULL url here too, not that
	we should need it anymore (due to the above fix) but it doesn't
	hurt. Also, should we wait on the thread? Probably doesn't matter.

svn path=/trunk/; revision=7844
2001-01-27 03:13:30 +00:00
11c26426f6 strdup() the key.
2001-01-12  Jeffrey Stedfast  <fejj@ximian.com>

	* session.c (mail_session_set_password): strdup() the key.

svn path=/trunk/; revision=7433
2001-01-12 05:12:10 +00:00
2b1d1fdc36 New function to set the password for a given url.
2001-01-09  Jeffrey Stedfast  <fejj@helixcode.com>

	* session.c (mail_session_set_password): New function to set the
	password for a given url.

	* mail-config-druid.c (druid_finish): Don't save the password in
	the source url, instead insert it into the save-password hash.
	(mail_config_druid_get_source_url): Check to make sure the
	authmech isn't "", if it is then don't set the authmech.

	* mail-account-editor.c (apply_changes): Don't save the password
	in the source url, instead insert it into the save-password
	hash. Also check to make sure we don't set an empty string as the
	authmech for the source or transport.

	* mail-accounts.c (mail_default): After reloading the accounts,
	reselect the previously selected account.
	(mail_delete): Same.

	* mail-config-druid.c (druid_cancel): Fixed segfault bug.

svn path=/trunk/; revision=7319
2001-01-09 17:21:34 +00:00
a16344fff4 Fix for mail_get_message change, use queue thread.
2001-01-02  Not Zed  <NotZed@HelixCode.com>

	* mail-callbacks.c (view_msg): Fix for mail_get_message change,
	use queue thread.

	* folder-browser.c (done_message_selected): Fix mail_Get_message
	calls, use new thread.
	(do_message_selected): "

	* mail-ops.c (mail_get_message): Add a thread argument so callers
	can specify which queue it executes on.

	* mail-mt.c (mail_msg_free): Fix a free order problem.
	(mail_msg_destroy): Call mail_msg_free to do the work.
	(mail_msgport_replied): "
	(mail_msgport_replied): Check/display errors if we get them.
	(mail_msgport_received): If we have a describe function, say what
	we're doing, also set busy/unbusy.
	(mail_msgport_replied): Clear busy when we get a reply.
	(mail_get_password): Unset busy.
	(mail_msg_received): Set busy as we go.
	(mail_msg_destroy): Unset busy when done.
	(mail_status): Blah blah, new status interface, the other wans't
	workable with the way the shell api works.

2000-12-29  Not Zed  <NotZed@HelixCode.com>

	* folder-browser.c (do_message_selected): If we are reconfiguring,
	just keep polling till we are done (yeah kinda shitty, but easy).
	(folder_browser_set_uri): Clear reconfigure flag here.  ick.
	(got_folder): And here too.
	(on_right_click): Remove locking.
	(hide_sender): and here too.
	(hide_subject): And here.
	(on_right_click): If we are in reconfigure, then the whole menu is disabled.

	* mail-mt.c (status_busy_timeout): Clear the status_busy_timeout_id.

	* mail-local.c (local_storage_new_folder_cb): Made getting folders
	completely synchronous.  The shell expects it, and it was only
	synchronous before by a sideeffect.
	(do_reconfigure_folder): Remove locking stuff.
	(do_reconfigure_folder): Use our own much simpler copying routine
	than that stupid move_folder_contents thing.
	(update_progress): Use mail_status_message() instead.
	(do_reconfigure_folder): Set the reconfigure flag during
	reconfigure & set busy flag.
	(cleanup_reconfigure_folder): clear busy flag.

	* mail-tools.c (mail_tool_uri_to_folder): Remove the tool_lock
	stuff.
	(mail_tool_uri_to_folder_noex): Clear exception on exit.
	(mail_tool_move_folder_contents): Get rid of this really stupid
	function that is only used in one place.

	* component-factory.c (owner_set_cb): Use direct calls to get the
	folders, as this code must run synchronous.  Remove the event wait
	stuff.

	* mail-callbacks.c (edit_msg): Call mail_get_messages, and create
	the composers ourself.
	(do_edit_messages): get_messages callback, create the composers
	and connect to signals we need.
	(view_msg): Dont call do_view_messages, just call
	mail_get_messge for each to get them in parallel.
	(do_view_message): view a single message.

	* mail-ops.c (mail_edit_messages): Just use mail_get_messages
	for this operation.  Removed the other async operation stuff.
	Changed my mind, just removed entirely.
	(mail_do_view_messages): Removed.
	(mail_do_setup_folder): Removed.
	(mail_do_scan_subfolders): Make this run synchronously, as every
	caller expects it to (even if they didn't realise).

2000-12-28  Not Zed  <NotZed@HelixCode.com>

	* mail-callbacks.c (send_queued_mail): Dont expunge the folder
	here, but in send_queue, otherwise it might execute out of order.
	(expunge_folder): Remove the talbe prechange stuff, and infact
	references to the message_list folder, as we have our own folder.
	Also, dont allow expunge if we're already expunging.
	(expunged_folder): Clkear the expunging flag if we're finished.

	* folder-browser-factory.c (control_deactivate): Likewise here.
	Hrm, i thought this function required a callback, silly me.

	* mail-tools.c (mail_tool_make_message_attachment): Remov e
	locking.

	* folder-browser.c (on_message_selected): Use a timeout handler so
	we dont select immediately.
	(folder_browser_set_uri): Changed to use mail_get_folder.
	(got_folder): New callback called when get_folder is finished.
	(folder_browser_destroy): Use new sync interface.

	* mail-ops.c (mail_get_message): New function to asynchrounously
	get a message.
	: #define out mail_tool_camel_lock stuff entirely.
	(mail_get_folder): New function to asynchrounously get a folder.
	(mail_do_load_folder): Removed, replaced by more generic function
	above.
	(mail_do_display_message): Removed, replaced by the more generic
	funciton get_message.
	(mail_get_messages): New function to get a list of messages
	asynchronously.
	(mail_sync_folder): New interface to sync a folder async.
	(mail_expunge_folder): New interface for expunging folder, with
	callback.
	(do_send_queue): Remove lock stuff, and expunge if (and only if)
	successful, also sync the sent folder while we're at it.

	* session.c (mail_session_request_dialog): Changed to use new
	mail_get_password call.

	* mail-mt.[ch]: New threading/interthread messaging framework.

	* main.c (main): Init the message/thread system.

svn path=/trunk/; revision=7223
2001-01-03 01:18:21 +00:00
ecae5285ea Added a cast.
2000-12-12  Christopher James Lahey  <clahey@helixcode.com>

	* component-factory.c (create_view): Added a cast.

	* mail-summary.c: Added #include "mail-summary.h".  Commented out
	folder_free, summary_free, and view_destroy_cb since they're not
	used.
	(do_changed): Added a cast.
	(create_summary_view): Changed some types so that casting would be
	easier.

	* session.c (mail_session_remember_password): Added a cast.

svn path=/trunk/; revision=6956
2000-12-12 23:35:45 +00:00
8997c57f5c New function to tell the code that it's ok (or not) to interact with the
* session.c (mail_session_enable_interaction): New function to
	tell the code that it's ok (or not) to interact with the user when
	trying to authenticate to a service. Starts out turned off.
	(mail_session_request_dialog): If interaction is disabled, fail if
	the password isn't in the cache.

	* component-factory.c (owner_set_cb): Call
	mail_session_enable_interaction() after everything else. (This
	means that the IMAP password dialog will no longer pop up [under
	the splash screen] at startup.)

svn path=/trunk/; revision=6924
2000-12-11 23:29:55 +00:00
7c69d2523a Writes out passwords (to .gnome_private) in our patented proprietary "Best
* session.c (mail_session_remember_password): Writes out passwords
	(to .gnome_private) in our patented proprietary "Best Awesome
	Super Encryption 64" ("BASE64") format which could not possibly
	ever be cracked by even the most cryptographically knowledgeable
	five-year-olds.
	(mail_session_init): Load remembered passwords at startup.
	(mail_session_forget_passwords): Erase them from disk as well as
	memory.

	* mail-config.c: Add "remember_password" field to
	MailConfigService.
	(mail_config_write_on_exit): Call mail_session_remember_password
	for services with "remember_password" set.
	* mail-config-gui.c: Add "remember password" checkbox to the
	dialogs, and make it appear and disappear as appropriate.

svn path=/trunk/; revision=6760
2000-12-01 20:25:10 +00:00
1cb19b5a1b Added new header files.
2000-11-03  Jeffrey Stedfast  <fejj@helixcode.com>

	* Makefile.am: Added new header files.

	* component-factory.c (owner_set_cb):
	s/session_init/mail_session_init

	* session.c: Renamed public functions to mail_session_*.
	FIXME: Rename session.c to mail-session.c

	* folder-browser-factory.c: #include "mail-callbacks.h", #include
	"mail-session.h" and replace forget_passwords with
	mail_session_forget_passwords

	* mail.h: Move session prototypes to mail-session.h, Move
	mail-crypto prototypes to mail-crypto.h, Move mail-callback
	prototypes to mail-callbacks.h

	* mail-session.h: New header file containing public prototypes
	for session.c

	* mail-format.c: #include "mail-crypto.h"

	* mail-view.c:
	* folder-browser.c: #include "mail-callbacks.h"

	* mail-crypto.h: New header file containing public prototypes
	for mail-crypto.c

	* mail-callbacks.h: New header file containing public prototypes
	for mail-callbacks.c

	* message-list.c (message_list_get_layout): Set useful defaults.
	(message_list_setup_etable): Don't set the Outbox defaults on a
	folder just because it doesn't have a corresponding saved file.

svn path=/trunk/; revision=6372
2000-11-03 18:55:41 +00:00
88cbebbb3d s/BonoboUIHandler/BonoboUIComponent/
2000-10-20  Michael Meeks  <michael@helixcode.com>

	* mail.h: s/BonoboUIHandler/BonoboUIComponent/

	* mail-callbacks.c (run_filter_ondemand): ditto.

	* session.c (forget_passwords): ditto.

svn path=/trunk/; revision=6085
2000-10-20 21:16:11 +00:00
1b3a2114ee Pass a storage dir to camel_session_new now.
* session.c (session_init): Pass a storage dir to
        camel_session_new now.

        * main.c (main): Can't call session_init here now, because it
        requires evolution_dir to be set.

        * component-factory.c (owner_set_cb): call session_init here.

svn path=/trunk/; revision=5240
2000-09-07 20:00:03 +00:00
906a178ce8 Goodbye, GDK_THREADS!
svn path=/trunk/; revision=5074
2000-08-28 14:36:26 +00:00
0b9b384a2b Fix GDK_THREADS_entering and leaving, hopefully once and for all. Genericify the recursive-store-loading. Load stores when they're added to the config page.
svn path=/trunk/; revision=5005
2000-08-24 17:22:12 +00:00
24feba2033 Whole buncha leak fixes thanks to Purify
svn path=/trunk/; revision=4862
2000-08-17 14:19:02 +00:00
52af76d093 Don't deadlock on PGP key request
svn path=/trunk/; revision=4841
2000-08-15 16:40:01 +00:00
ed88f23786 Update this for CamelObject (try_inline_pgp): Deal with decrypting here
* mail-format.c (destroy_part): Update this for CamelObject
        (try_inline_pgp): Deal with decrypting here rather than trying to
        pawn the data off to handle_multipart_encrypted, since it most
        likely won't be correct (won't have the proper MIME headers inside
        the encrypted part).
        (handle_multipart_encrypted): Add code from Nathan Thompson-Amato
        to re-MIME-parse the decrypted data after decrypting.

        * mail-crypto.c (mail_crypto_openpgp_{de,en}crypt): Get the
        password here rather than having it passed in. Remove some dead
        code.

        * session.c (mail_request_dialog): Allow this to work in either a
        sync or an async context.

svn path=/trunk/; revision=4751
2000-08-11 20:27:12 +00:00
d5f9483b16 Fixed some warnings.
2000-08-10  Christopher James Lahey  <clahey@helixcode.com>

	* folder-browser-factory.c, message-list.c, message-thread.c,
	session.c: Fixed some warnings.

svn path=/trunk/; revision=4722
2000-08-11 03:41:26 +00:00
6db1c7d22a Don't call e_setup_base_dir. It was wrong and it doesn't exist any more.
* session.c (session_init): Don't call e_setup_base_dir. It was
        wrong and it doesn't exist any more.

        * component-factory.c (owner_set_cb): Update for changed
        prototype, and record the evolution_homedir. Move call to
        mail_config_init here from session.c so it happens after
        evolution_dir is initialized.

        * mail.h: define "extern char *evolution_dir;" (formerly in
        e-util/e-setup.h)

        * component-factory.c, mail-callbacks.c, mail-config-gui.c,
        mail-config.c, mail-display.c, mail-format.c, mail-ops.c,
        mail-tools.c, session.c: Remove "e-util/e-setup.h" include.

svn path=/trunk/; revision=4712
2000-08-11 00:02:25 +00:00
8cb514d6dd Merge with camel-async.
svn path=/trunk/; revision=4687
2000-08-10 17:30:50 +00:00
324b1e8675 New code to spawn off GPG/PGP to do stuff. Currently only deals with
* mail-crypto.c: New code to spawn off GPG/PGP to do stuff.
	Currently only deals with decryption. From Nathan Thompson-Amato
	<ndt@jps.net>, with bunches of changes from me.

	* session.c (mail_request_dialog): Expose the password dialog to
	the rest of the app (for use by the GPG/PGP code).

	* mail-format.c (handle_text_plain): Handle special inline data
	types. (Currently uuencoding, BinHex, and PGP encryption.) This is
	not the best way to deal with it, but it works for now.
	(try_inline_pgp): Convert an inline PGP-encrypted message into a
	multipart/encrypted part.
	(try_inline_binhex): Convert an inline BinHex attachment into an
	application/mac-binhex40 part (which we currently don't deal
	with...)
	(try_uudecoding): Convert a uuencoded attachment to an
	application/octet-stream part.
	(handle_multipart_encrypted): Deal with RFC2015 MIME-encoded PGP
	encrypted messages. (From ndt.)

	* mail-display.c (mail_text_write, mail_error_write): New utility
	functions.

	* Makefile.am (evolution_mail_SOURCES): add mail-crypto.c

svn path=/trunk/; revision=4466
2000-08-02 02:56:48 +00:00
802f9e634a Fix booboo
svn path=/trunk/; revision=3755
2000-06-27 15:23:07 +00:00
aa68bd85f1 Land most of the stuff to move fetch_mail, send_mail, expunge_folder, init_imap, and init_news to async operation.
svn path=/trunk/; revision=3711
2000-06-23 19:07:01 +00:00
aeb515ebe6 Update for CamelAuthCallback changes. (Uncache passwords when asked to.)
* session.c (evolution_auth_callback): Update for
	CamelAuthCallback changes. (Uncache passwords when asked to.)

svn path=/trunk/; revision=3497
2000-06-09 22:01:50 +00:00
2f8b4bc14f Remember passwords between calls. (forget_passwords): Callback for "Forget
* session.c (evolution_auth_callback): Remember passwords between
	calls.
	(forget_passwords): Callback for "Forget Passwords" menu item.

	* folder-browser-factory.c (control_activate):
	(control_deactivate): Add "Forget Passwords" menu item.

svn path=/trunk/; revision=3434
2000-06-05 22:33:51 +00:00
ad538c1743 Revert removal of e_setup_base_dir.
2000-06-02  Christopher James Lahey  <clahey@helixcode.com>

	* session.c: Revert removal of e_setup_base_dir.

svn path=/trunk/; revision=3379
2000-06-02 04:57:02 +00:00
9a36dd9a0a Don't call e_setup_base_dir.
2000-06-01  Christopher James Lahey  <clahey@helixcode.com>

	* session.c: Don't call e_setup_base_dir.

svn path=/trunk/; revision=3361
2000-06-02 02:17:53 +00:00
5883763060 Don't hardcode "inbox" here.
* folder-browser-factory.c (folder_browser_factory): Don't
	hardcode "inbox" here.

	* folder-browser.c (folder_browser_set_uri): Don't hardcode
	"inbox" here either.
	(folder_browser_load_folder): Create a new store according to the
	folder browser's URI, and load the mbox file from that store.
	Parts of this are temporary.

	* session.c, mail.h: There is no longer a global store, just a
	global session.

	* mail-config.c, mail-ops.c: Update for default_session -> session
	change. fetch_mail is currently broken.

svn path=/trunk/; revision=2853
2000-05-07 03:15:22 +00:00
2ef945c6e2 consolidate mail-format.h, mail-identify.h, mail-ops.h, main.h and
* mail.h: consolidate mail-format.h, mail-identify.h, mail-ops.h,
	main.h and session.h into this new file. There's no reason to have
	a .h for every .c.

svn path=/trunk/; revision=2830
2000-05-06 17:16:22 +00:00
19a9f773ab This is no longer necessary.
* session.c (session_providers_init): This is no longer necessary.

	* mail-ops.c (fetch_mail): Remove kludge to load remote provider,
	as camel can do it by itself now.

svn path=/trunk/; revision=2692
2000-04-30 15:36:46 +00:00
7c164f12b9 More changes than a man can remember.
The UI works now.

svn path=/trunk/; revision=2074
2000-03-06 09:38:42 +00:00
8ea1212d99 Add "authenticator" to CamelSession and update things to use it.
svn path=/trunk/; revision=1890
2000-02-21 19:56:49 +00:00
0eff8e4321 update for CamelSession changes
svn path=/trunk/; revision=1889
2000-02-21 18:39:21 +00:00
f8f771b3f3 Add session.c
svn path=/trunk/; revision=1800
2000-02-16 19:57:02 +00:00