Commit Graph

1444 Commits

Author SHA1 Message Date
Jeffrey Stedfast aabc9c14ea Added a hack to convert charsets in the format iso8859-1 to iso-8859-1
2001-07-13  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (rfc2047_decode_word): Added a hack to
	convert charsets in the format iso8859-1 to iso-8859-1 because it
	seems to be more iconv friendly. It has been reported that on some
	systems, iconv doesn't know about iso8859-1 while it *does* know
	about iso-8859-1. See bug #4530.

svn path=/trunk/; revision=11094
2001-07-13 18:53:08 +00:00
Peter Williams 54e037a91c Let people install as non-root, but give them a bigass warning so they're
2001-07-13  Peter Williams  <peterw@ximian.com>

	* Makefile.am (install-exec-local): Let people install as non-root,
	but give them a bigass warning so they're not allowed to complain when
	it doesn't work right.

	* camel-remote-store.c (sync_remote_folder): New function:
	hash table callback.
	(remote_disconnect): If cleanly disconnecting, sync our folders. Fixes
	deadlocks on exit (folders syncing after store disconnects) and also makes
	sense.

svn path=/trunk/; revision=11090
2001-07-13 17:35:51 +00:00
Jeffrey Stedfast f2757356ba We now use a structure as the bucket data rather than just a cache level
2001-07-13  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-uid-cache.c (camel_uid_cache_new): We now use a structure
	as the bucket data rather than just a cache level so set the save
	state to TRUE.
	(maybe_write_uid): We only save the uid if the cache levels are
	the same *and* if the save state is TRUE.
	(free_uid): Free the state value.
	(camel_uid_cache_get_new_uids): New uids that get added to the
	cache start with a save state of FALSE.
	(camel_uid_cache_save_uid): Set the save state of the uid to
	TRUE. What should we do if the uid isn't already in the cache?
	Currently I make it add the uid, but maybe it shouldn't?

	* providers/imap/camel-imap-folder.c (imap_filter_timeout): Update
	to reflect CamelFilterDriver API changes.

	* camel-filter-driver.c (camel_filter_driver_filter_folder): Take
	a cache argument so we can tell the cache whether or not the uid
	should be saved (meaning we have successfully filtered it).

svn path=/trunk/; revision=11084
2001-07-13 15:06:14 +00:00
Jeffrey Stedfast 89341d76ec Okay, I've decided that that user is just on crack. We don't want to allow
2001-07-12  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-filter-driver.c (camel_filter_driver_filter_message):
	Okay, I've decided that that user is just on crack. We don't want
	to allow filtering of deleted messages or we could get some
	unexpected behavior.
	(do_move): Oops. My last fix needs to be after the if-statement,
	not inside it.
	(do_copy): And here too.

svn path=/trunk/; revision=11068
2001-07-12 21:17:14 +00:00
Jeffrey Stedfast cfac9223a0 Okay, I've decided that that user is just on crack. We don't want to allow
2001-07-12  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-filter-driver.c (camel_filter_driver_filter_message):
	Okay, I've decided that that user is just on crack. We don't want
	to allow filtering of deleted messages or we could get some
	unexpected behavior.

svn path=/trunk/; revision=11048
2001-07-12 17:41:51 +00:00
Jeffrey Stedfast a61afbdb02 Only set p->copied and p->deleted if the messages are copied without an
2001-07-12  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-filter-driver.c (do_move): Only set p->copied and
	p->deleted if the messages are copied without an exception.
	(do_copy): Same - but obviously we don't set the p->deleted here
	at all.
	(camel_filter_driver_filter_message): Since users complained that
	they couldn't filter deleted messages for "safe keeping" (WTF?
	safe keeping? why were they deleted in the first place then??), I
	have taken out the code that optimized filtering by not allowing
	deleted messages to be filtered. This fixes bug #4473.

	Note: Users have a warped sense of logic.

svn path=/trunk/; revision=11047
2001-07-12 17:26:39 +00:00
Not Zed b88f6b9593 Removed. (check_html_charset): Replaced with this.
2001-07-12  Not Zed  <NotZed@Ximian.com>

        * camel-mime-part-utils.c (extract_metatag_charset): Removed.
        (check_html_charset): Replaced with this.
        (simple_data_wrapper_construct_from_parser): Call
        check_html_charset if we dont have a charset on the content-type,
        and we have text/html data.
        (check_html_charset): We also need to do qp/base64 decoding
        ourselves, sigh.

        * camel-mime-utils.c (html_meta_param_list_decode): Removed.  This
        was very wrong, the rules for mail headers vastly different from
        rules for decoding html elements.
        (rfc2184_decode): Move the malloc inside the iconv_open worked,
        otherwise we have a memleak.

        * camel-mime-filter-html.c (camel_mime_filter_html_finalize, init,
        run, reset): Changed to use camelhtmlparser, and fixed a tiny
        memleak.

        * camel-html-parser.c: Made the html indexer tokeniser re-usable.
        ONLY TO BE USED INTERNAL TO CAMEL HOWEVER.
        (tokenise_step): Slight fix to non-quoted values.

svn path=/trunk/; revision=11028
2001-07-12 05:02:11 +00:00
Not Zed 05e4067b62 Removed some code i wasn't supposed to commit.
2001-07-12  Not Zed  <NotZed@Ximian.com>

        * camel-folder-summary.c
        (camel_folder_summary_info_new_from_message): Removed some code i
        wasn't supposed to commit.

        * providers/local/camel-local-summary.c (local_summary_add): Only
        set info->size if it is not zero.
        (local_summary_add): If we dont get a size from the info passed
        in, calculate it using a null stream write.  Should do #4392.

svn path=/trunk/; revision=11025
2001-07-12 02:22:23 +00:00
Jeffrey Stedfast 768ef5c60b New function to extract a meta-tag charset value if it exists.
2001-07-11  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-part-utils.c (extract_metatag_charset): New function
	to extract a meta-tag charset value if it exists.
	(simple_data_wrapper_construct_from_parser): Along the same lines
	as the code I previously ripped out, but this time use the
	mime-parser's seek ability to help us along. Currently I read up
	to a 2k buffer size - this is probably overkill, 1k is probably
	plenty.

	* camel-mime-utils.c (html_meta_param_list_decode): When we get to
	an `=', we must skip past it before trying to grab the param
	value. duh.

svn path=/trunk/; revision=11021
2001-07-11 23:56:31 +00:00
Jeffrey Stedfast 1606416242 Ripped out my code since it was never being used since the mime parser is
2001-07-11  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-part-utils.c
	(simple_data_wrapper_construct_from_parser): Ripped out my code
	since it was never being used since the mime parser is not using a
	seekable stream (ever?) which pretty much means my code needs to
	be done someplace else.

svn path=/trunk/; revision=11016
2001-07-11 21:10:52 +00:00
Peter Williams 5d208f8e61 Run the filter in its own thread to prevent locking issues.
2001-07-11  Peter Williams  <peterw@ximian.com>

	* providers/imap/camel-imap-folder.c (camel_imap_folder_changed):
	Run the filter in its own thread to prevent locking issues.
	(imap_filter_timeout): New function that does the filtering called
	as a CamelSession timeout.

svn path=/trunk/; revision=11011
2001-07-11 19:12:22 +00:00
Not Zed 96496c1392 Create the messageinfo itself, so we can properly set the size.
2001-07-11  Not Zed  <NotZed@Ximian.com>

        * camel-filter-driver.c (camel_filter_driver_filter_mbox): Create
        the messageinfo itself, so we can properly set the size.

        * camel-movemail.c (camel_movemail_solaris): Write out the from
        line between each message.

2001-07-10  Not Zed  <NotZed@Ximian.com>

        * providers/local/camel-local-summary.c (local_summary_add): Copy
        the size across from the source message info if supplied.

        * camel-stream-null.c: Added a 'written' member which keeps track
        of how much has been written to the stream.

        * camel-movemail.c (camel_movemail): If we have BROKEN_SPOOL
        defined, then use the solaris movemail to quote from lines that
        sendmail didn't.
        (camel_movemail_solaris): Compile this in if BROKEN_SPOOL defined.

svn path=/trunk/; revision=10989
2001-07-11 07:28:40 +00:00
Jeffrey Stedfast e39d94c5ef New function to parse an HTML meta-tag.
2001-07-10  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (html_meta_param_list_decode): New function
	to parse an HTML meta-tag.

	* camel-mime-part-utils.c
	(simple_data_wrapper_construct_from_parser): If the Content-Type
	did not contain a charset parameter and it's also a text/html
	part, we have 1 last place to look - in the META html tags. *sigh*

	* camel-mime-message.c (camel_mime_message_get_source):
	s/gint/unsigned since that's what it should be.

svn path=/trunk/; revision=10976
2001-07-10 22:06:56 +00:00
Jeffrey Stedfast ebd5da4c95 Forget the passphrase if the user has set that option. (pgp_clearsign):
2001-07-09  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-pgp-context.c (pgp_sign): Forget the passphrase if the
	user has set that option.
	(pgp_clearsign): Same.
	(pgp_encrypt): And here...
	(pgp_decrypt): And finally here.
	(camel_pgp_context_new): Take a `remember' argument.

svn path=/trunk/; revision=10932
2001-07-09 21:31:09 +00:00
Not Zed f2f3c4bf7f Oops, e_poolv_set free's it for us, so dont double-free here.
2001-07-09  Not Zed  <NotZed@Ximian.com>

        * providers/local/camel-maildir-summary.c (maildir_summary_sync):
        Oops, e_poolv_set free's it for us, so dont double-free here.

svn path=/trunk/; revision=10902
2001-07-09 03:42:50 +00:00
Not Zed 7cc3d5f443 Changed so we dont have the list changing under us, just going to the next
2001-07-06  Not Zed  <NotZed@Ximian.com>

        * camel-vee-folder.c (camel_vee_folder_finalise): Changed so we
        dont have the list changing under us, just going to the next node
        before we call a function that might change the list is
        potentially dangerous (slight mod of peters fix).  Hmm, i think it
        would've double-unref'd it too(?)

svn path=/trunk/; revision=10900
2001-07-09 01:49:41 +00:00
Chris Toshok a29542eef6 openssl_table is gone. we now store/get the stream from the SSL_CTX's
2001-07-08  Chris Toshok  <toshok@ximian.com>

	* camel-tcp-stream-openssl.c (camel_tcp_stream_openssl_finalize):
	openssl_table is gone.  we now store/get the stream from the
	SSL_CTX's app_data.
	(stream_read): rework the non-blocking case to account for SSL
	possibly buffering data (in which case select will block even
	though data is ready to be read), and to account for FreeBSD's
	strange behavior of returning -1/EAGAIN even though select said
	the fd was ready to be read.
	(ssl_verify): openssl_table is gone.
	(open_ssl_connection): set the SSL_CTX's app_data to be the
	stream, remove the openssl_table code.

svn path=/trunk/; revision=10894
2001-07-08 22:15:30 +00:00
Jeffrey Stedfast b663fac4ab Don't allow in to be NULL, so instead of doing if (in == NULL) return;,
2001-07-06  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (header_encode_param): Don't allow in to be
	NULL, so instead of doing if (in == NULL) return;, make it a
	g_return_val_if_fail and later we can make it an assert or
	something.

svn path=/trunk/; revision=10868
2001-07-06 21:59:14 +00:00
Jeffrey Stedfast e6d686b055 Fixes bug #1138.
2001-07-06  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/local/camel-maildir-store.c (get_inbox): Fixes bug
	#1138.

svn path=/trunk/; revision=10860
2001-07-06 20:55:16 +00:00
Jeffrey Stedfast 71a7db0625 Make the `day-of-month' digit take up 2 chars by using "%2d". Fixes bug
2001-07-06  Jeffrey Stedfast  <fejj@ximian.com>

	* providers/local/camel-mbox-summary.c
	(camel_mbox_summary_build_from): Make the `day-of-month' digit
	take up 2 chars by using "%2d". Fixes bug #3989 for lame mailers
	like Pine.

svn path=/trunk/; revision=10858
2001-07-06 20:30:25 +00:00
Jeffrey Stedfast 15aeda78aa Set the pipe fd's to nonblocking.
2001-07-06  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-pgp-context.c (crypto_exec_with_passwd): Set the pipe fd's
	to nonblocking.

svn path=/trunk/; revision=10847
2001-07-06 16:52:44 +00:00
Peter Williams eda4386f98 Make sure that after the finalization event has happened and the
2001-07-06  Peter Williams  <peterw@ximian.com>

	* camel-object.c (camel_object_unref): Make sure that after the
	finalization event has happened and the finalization functions
	have been called that the object still has a zero refcount.

svn path=/trunk/; revision=10844
2001-07-06 13:00:48 +00:00
Joe Shaw ccbc3a3688 Add locking to camel_nntp_get_grouplist_from_server().
2001-07-06  Joe Shaw  <joe@ximian.com>

	* providers/nntp/camel-nntp-grouplist.c: Add locking to
	camel_nntp_get_grouplist_from_server().

	* providers/nntp/camel-nntp-resp-codes.h: Added
	NNTP_EXTENSIONS_SUPPORTED (202).

	* providers/nntp/camel-nntp-store.c (camel_nntp_store_get_extensions):
	Check for both NNTP_LIST_FOLLOWS and NNTP_EXTENSIONS_SUPPORTED from
	a LIST EXTENSIONS request. (Dunno if NNTP_LIST_FOLLOWS ever comes
	out of this, but that's what was already there...) Also, put some
	locking around it.
	(finalize): e_mutex_destroy() the command lock
	(camel_nntp_store_init): e_mutex_new() the command lock.

	* providers/nntp/camel-nntp-store.h: Add locking macros.

svn path=/trunk/; revision=10838
2001-07-06 04:11:27 +00:00
Jeffrey Stedfast fec83fec7d Added an assert to make sure that `mi' isn't NULL.
2001-07-05  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-folder-summary.c (camel_message_info_string): Added an
	assert to make sure that `mi' isn't NULL.
	(camel_message_info_set_string): Same.

	* providers/imap/camel-imap-command.c (camel_imap_response_free):
	Create and use a temporary CamelException for use with
	camel_imap_folder_changed.

svn path=/trunk/; revision=10834
2001-07-05 22:59:46 +00:00
Jeffrey Stedfast 652c3e8225 Send the --no-auto-key-retrieve argument to gpg if we are in offline mode
2001-07-05  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-pgp-context.c (pgp_verify): Send the
	--no-auto-key-retrieve argument to gpg if we are in offline mode
	so that we don't have to worry about gpg hanging if it can't
	connect to the key servers, because now it shouldn't even attempt
	to.

svn path=/trunk/; revision=10831
2001-07-05 20:37:30 +00:00
Jeffrey Stedfast ea4d1ae39e Send the --no-auto-key-retrieve argument to gpg so that we don't have to
2001-07-05  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-pgp-context.c (pgp_verify): Send the
	--no-auto-key-retrieve argument to gpg so that we don't have to
	worry about gpg hanging if it can't connect to the key servers,
	because now it shouldn't even attempt to.

svn path=/trunk/; revision=10827
2001-07-05 20:07:46 +00:00
Chris Toshok 1421494ea6 use X509_STORE_CTX_get_ex_data to get at the SSL* - don't use the
2001-07-05  Chris Toshok  <toshok@ximian.com>

	* camel-tcp-stream-openssl.c (ssl_verify): use
	X509_STORE_CTX_get_ex_data to get at the SSL* - don't use the
	X509_STORE_CTX to look up our stream, since it's not what we used
	to insert our stream into the hashtable.
	(open_ssl_connection): insert the stream into the hashtable before
	calling SSL_connect, as this can cause ssl_verify to be called,
	and we need to look up the stream there.  remove the stream from
	the hashtable if there's an error connecting.
	(stream_connect): pass the CamelTcpStreamOpenSSL* to
	open_ssl_connection since it handles the hashtable stuff.  remove
	hashtable stuff from here.

svn path=/trunk/; revision=10819
2001-07-05 19:11:50 +00:00
Jeffrey Stedfast 6c2482302f if source == dest, just no-op.
2001-07-05  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-folder.c (camel_folder_copy_messages_to): if source ==
	dest, just no-op.

svn path=/trunk/; revision=10817
2001-07-05 17:41:53 +00:00
Peter Williams d0eee48606 Move this before the camel_vee_folder_remove_folder because that function
2001-07-05  Peter Williams  <peterw@ximian.com>

	* camel-vee-folder.c (camel_vee_folder_finalise): Move this before the
	camel_vee_folder_remove_folder because that function modifies p->folders
	messing up our iteration.
	(camel_vee_folder_finalise): Don't unref our summary; camel-folder now
	does this.

	* camel-object.h (CamelObject): Add a 'destroying' flag to CamelObject.

	* camel-object.c (obj_init): Clear 'destroying'.
	(camel_object_unref): If 'destroying' then do not send the finalize
	event and do not call finalize functions. Otherwise, set destroying
	so just in case we get refed (eg event code) we don't get doubly
	finalized.

svn path=/trunk/; revision=10811
2001-07-05 16:40:45 +00:00
Michael Zucci 228991b317 (camel_message_info_dup_to): Assign the to->strings from the
e_poolv_cpy() call, since it may allocaote a new poolv if the
 	lengths do not match.

svn path=/trunk/; revision=10790
2001-07-05 09:38:59 +00:00
Not Zed 0f51f730ac Fix the assertion slightly, if we have a little bit of input the output
2001-07-05  Not Zed  <NotZed@Ximian.com>

        * camel-mime-filter-basic.c (filter): Fix the assertion slightly,
        if we have a little bit of input the output size could be larger,
        since we store upto 3 chars in the state.

svn path=/trunk/; revision=10786
2001-07-05 03:59:45 +00:00
Not Zed bf20209bbb When indexing a new record, create a pseudo word 'ibexindexed' so we can
2001-07-05  Not Zed  <NotZed@Ximian.com>

        * camel-folder-summary.c
        (camel_folder_summary_info_new_from_message): When indexing a new
        record, create a pseudo word 'ibexindexed' so we can always tell
        that a message has already been idnexed, even if it contains no
        words of its own.  Things like maildir use this check to see if
        its already been processed, and it matters if it is incorrect in
        this case (not just wasted cycles).

        (camel_folder_summary_info_new_from_parser): And same here.

        * providers/local/camel-maildir-summary.c (maildir_summary_sync):
        Changed the logicfor epoolv code to be different, we dont need to
        update hash references or any tricky stuff.
        (maildir_summary_check): Samehere.

        * camel-folder-summary.h: Removed include of e-memory.h.

svn path=/trunk/; revision=10785
2001-07-05 03:13:52 +00:00
Joe Shaw 014e0bf46b Added NNTP_NO_PERMISSION (502) to the list of response codes.
2001-07-03  Joe Shaw  <joe@ximian.com>

	* providers/nntp/camel-nntp-resp-codes.h: Added NNTP_NO_PERMISSION
	(502) to the list of response codes.

	* providers/nntp/camel-nntp-store.c (nntp_store_connect): If we
	receive a NNTP_NO_PERMISSION, don't get into an infinite loop trying
	to reconnect, get extensions, etc. Just give up and return FALSE.

svn path=/trunk/; revision=10769
2001-07-03 21:33:47 +00:00
Dan Winship 8e7eea0d26 Doh. Don't remove things from the hash table while foreach'ing it. (And
* providers/imap/camel-imap-message-cache.c
	(camel_imap_message_cache_clear): Doh. Don't remove things from
	the hash table while foreach'ing it. (And can't use foreach_remove
	either because we have to remove them in a weird order). Fixes
	#3618.

	* providers/imap/camel-imap-folder.c (imap_get_message): If the
	server returns OK from the FETCH BODY, but there's no parseable
	BODY response, it's probably because there's an UN-parseable BODY
	response, implying the message is badly formatted, MIMEwise. In
	that case, fall back to fetching the message as a single part.

svn path=/trunk/; revision=10748
2001-07-03 15:24:55 +00:00
Sam Creasey 7cd517dc60 Implemented nntp_folder_search_by_expression and nntp_folder_search_free.
2001-07-02  Sam Creasey <sammy@oh.verio.com>

        * providers/nntp/camel-nntp-folder.c: Implemented
        nntp_folder_search_by_expression and
        nntp_folder_search_free.  Basic search functionality e.g. unread
        marking now works for NNTP folders.

        * camel_filter_search.c (get_size): Added get-size sexp directive
        to get the size of a message for filters.

        * providers/nntp/camel-nntp-folder.c (camel_nntp_folder_new):
        Always check with the NNTP server after summary load -- this
        function now always expires old summary entries and syncs with
        the news server.

        * providers/nntp/camel-nntp-utils.c (camel_nntp_get_headers):
        Only fetch headers for articles not already logged in
        the summary file.

        * providers/nntp/camel-nntp-grouplist.c
        (camel_nntp_get_grouplist_from_*): change from g_list_append()
        to g_list_prepend() + g_list_reverse.  Traversing 40,000
        element linked lists sucks.

        * providers/nntp/camel-nntp-store.c (camel_nntp_command):
        Should the NNTP connection die with
        CAMEL_EXCEPTION_SERVICE_NOT_CONNECTED, make a single retry
        attempt.  Timing out the NNTP link is less painful this way.

svn path=/trunk/; revision=10716
2001-07-03 02:54:06 +00:00
Peter Williams e28ff48d57 Add comment noting that Camel actually exists now :-)
2001-07-02  Peter Williams  <peterw@ximian.com>

	* README (Introduction): Add comment noting that Camel actually
	exists now :-)

svn path=/trunk/; revision=10696
2001-07-02 18:55:54 +00:00
Dan Winship faac871501 new method to get an application-initialized filter driver.
* camel-session.c (camel_session_get_filter_driver): new method to
	get an application-initialized filter driver.

	* camel-filter-driver.c (camel_filter_driver_new): Remove the
	get_folder function and data args from here...
	(camel_filter_driver_set_folder_func): ...and add this function to
	set/change them.

	* providers/imap/camel-imap-folder.c (camel_imap_folder_new): If
	this folder is INBOX and we're filtering INBOX, set a flag on the
	folder for later.
	(imap_update_summary): Add another argument (GPtrArray *recents),
	and if it's non-NULL, add the uids of any \Recent new messages to
	it.
	(camel_imap_folder_changed): If doing filtering in this folder,
	create a recents array and pass it to imap_update_summary. Then
	get a filter driver and use it to filter the recent messages.

	* providers/imap/camel-imap-summary.h:
	* providers/imap/camel-imap-utils.c (imap_parse_flag_list): Add
	support for the \Recent flag.

	* providers/imap/camel-imap-provider.c (imap_conf_entries): enable
	the "filter" option.

	* camel-types.h: add CamelFilterDriver typedef here

svn path=/trunk/; revision=10681
2001-07-02 15:03:49 +00:00
Not Zed 06b7f5ef95 properly return error if we can't create pipes.
2001-07-02  Not Zed  <NotZed@Ximian.com>

        * camel-lock-client.c (camel_lock_helper_init): properly return
        error if we can't create pipes.

svn path=/trunk/; revision=10677
2001-07-02 13:59:39 +00:00
Not Zed 7a68209879 re-enable html indexing.
2001-07-02  Not Zed  <NotZed@Ximian.com>

        * camel-folder-summary.c (summary_build_content_info): re-enable
        html indexing.

        * camel-mime-filter-html.c: Completely re-implemented using a
        custom parser.

svn path=/trunk/; revision=10676
2001-07-02 13:32:55 +00:00
Dan Winship fe8b682289 Change a camel_exception_clear to camel_exception_init to fix a
* tests/misc/url.c (main): Change a camel_exception_clear to
	camel_exception_init to fix a sometimes-crash

svn path=/trunk/; revision=10675
2001-07-02 13:06:56 +00:00
Jeffrey Stedfast e64a02be08 Added Originator: header as a header to look for when looking for the
2001-06-29  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c: Added Originator: header as a header to look
	for when looking for the mailing list.

svn path=/trunk/; revision=10603
2001-06-29 18:24:30 +00:00
Jeffrey Stedfast f57c621992 Build the test-crlf test program.
2001-06-29  Jeffrey Stedfast  <fejj@ximian.com>

	* tests/mime-filter/Makefile.am: Build the test-crlf test program.

	* tests/mime-filter/test-crlf.c: New test suite for the crlf
	filter.

	* camel-mime-filter-crlf.c (filter): Fixed to correctly encode and
	decode dots.

svn path=/trunk/; revision=10602
2001-06-29 18:09:45 +00:00
Jose Maria Celorio 3d8a94b125 ssh
svn path=/trunk/; revision=10592
2001-06-29 06:23:57 +00:00
Peter Williams 6ffa930086 Add a CamelMimeFilterStripHeader that removes a header from mime output. Used
by sendmail to strip the BCC from the email while still sending to the BCC
recipients.

camel:

2001-06-28  Peter Williams  <peterw@ximian.com>

        * camel-mime-filter-stripheader.c: New file. Filter that strips a
        header from mime output.

        * camel-mime-filter-stripheader.h: New file. Header for the above.

        * providers/smtp/camel-smtp-transport.c (smtp_data): Use the stripheader
        filter to remove the "Bcc" header.

        * Makefile.am: Add the stripheader files.

        * tests/lib/Makefile.am (INCLUDES): Get this to compile again.

        * tests/mime-filter/test-stripheader.c: New file. Test suite for
        the CamelMimeFilterStripHeader.

        * tests/mime-filter/Makefile.am: New test section: mime filters.

mail:

2001-06-28  Peter Williams  <peterw@ximian.com>

        * mail-ops.c (mail_send_message): Revert fejj's Bcc header removal;
        this unsets the BCC recipients and so doesn't send to the Bcc'd
        people at all.

svn path=/trunk/; revision=10576
2001-06-28 20:35:43 +00:00
Jeffrey Stedfast b7e09293e9 Fix a memory leak. Also if the decoded value is NULL, that means it wasn't
2001-06-28  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-mime-utils.c (header_decode_param_list): Fix a memory
	leak. Also if the decoded value is NULL, that means it wasn't
	encoded so we don't want to toss the old value.
	(header_param_list_format_append): Correctly wrap long parameter
	values according to rfc2184.

svn path=/trunk/; revision=10566
2001-06-28 16:52:23 +00:00
Dan Winship a357fc5b44 If the folder is frozen, don't refresh, just record that we need to do it
* providers/imap/camel-imap-folder.c (imap_refresh_info): If the
	folder is frozen, don't refresh, just record that we need to do it
	later.
	(imap_append_online): If the APPEND doesn't trigger an immediate
	EXISTS response (because the folder isn't the selected folder, or
	because the server doesn't do that until the next command), call
	imap_refresh_info on the folder.
	(imap_copy_online): Likewise. (Replacing the unconditional NOOP
	that was there before, which absolutely killed filter performance
	by forcing the IMAP provider to switch back and forth between
	folders after every copy or move.)
	(imap_thaw): If the folder needs a refresh, do it.

	* camel-folder.c (camel_folder_is_frozen): New method

svn path=/trunk/; revision=10565
2001-06-28 16:50:09 +00:00
Jeffrey Stedfast 3797918d01 Initialize the private send_lock. (camel_transport_finalize): Free the
2001-06-27  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-transport.c (camel_transport_init): Initialize the private
	send_lock.
	(camel_transport_finalize): Free the private send_lock.
	(camel_transport_get_type): Set the init and finalize functions.
	(camel_transport_send): Lock the transport.
	(camel_transport_send_to): Same.

	* camel-private.h: Add CAMEL_TRANSPORT_(UN)LOCK macros.

svn path=/trunk/; revision=10547
2001-06-27 22:43:00 +00:00
Jeffrey Stedfast 5a223c85b9 Updated to match the current API.
2001-06-27  Jeffrey Stedfast  <fejj@ximian.com>

	* tests/folder/test9.c (main): Updated to match the current API.

	* tests/folder/test3.c: #include <gtk/gtk.h> since we use
	gtk_init().

svn path=/trunk/; revision=10546
2001-06-27 22:21:05 +00:00
Jeffrey Stedfast 016826bc8a Use the new header_address_fold.
2001-06-27  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-internet-address.c
	(camel_internet_address_encode_address): Use the new
	header_address_fold.

	* camel-mime-utils.c: Removed some old #if 0'd code of mine.
	(rfc2047_encode_word): If enclen is 0, don't write an encoded word
	token (=?iso-8859-7?Q??= would be an invalid token).
	(header_address_fold): New function to wrap address headers -
	header_fold() was force-wrapping rfc2047 encoded words which was
	making the test suite fail. The *real* solution, however, is to
	not create rfc2047 encoded words longer than 72 chars.

svn path=/trunk/; revision=10545
2001-06-27 22:14:20 +00:00
Jeffrey Stedfast 2d93db72a0 Since we want an error opening a folder to result in the message being
2001-06-26  Jeffrey Stedfast  <fejj@ximian.com>

	* camel-filter-driver.c (open_folder): Since we want an error
	opening a folder to result in the message being copied to Inbox
	(assuming no other filters get a chance to `move` it), don't
	record any exceptions that may occur in this function.

svn path=/trunk/; revision=10515
2001-06-26 22:45:16 +00:00