Commit Graph

31 Commits

Author SHA1 Message Date
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