2003-03-28 Jeffrey Stedfast <fejj@ximian.com>
* camel-sasl-gssapi.c (gssapi_challenge): If we are using the
heimdal krb5 implementation, don't free outbuf ever. Seems to
segfault if we do.
svn path=/trunk/; revision=20624
2003-03-31 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-filter-enriched.c (enriched_to_html): Use strncasecmp
for matching the nofill and /nofill tags. Also fixed to handle
enriched tags that require <param> tags.
svn path=/trunk/; revision=20603
2003-03-28 Not Zed <NotZed@Ximian.com>
* providers/local/camel-spool-store.c (get_folder): remove unused
var.
* providers/imap/camel-imap-utils.c (imap_parse_list_response):
moved an unused var to the #if 0'd out block.
* providers/imap/camel-imap-store.c
(parse_list_response_as_folder_info): remove unused vars.
* camel-index-control.c (main): deifne camel_init() before using
it.
* camel-vee-store.c (vee_get_folder): removed unused var.
* camel-stream-mem.c (stream_write): warning -> fixme.
* camel-stream-filter.c (_CamelStreamFilterPrivate): Add a ; to
the end of the struct definition.
* camel-store.c (camel_store_delete_folder): remove unused var.
(camel_store_rename_folder): "
(camel_store_unsubscribe_folder): "
* camel-mime-part.c (write_to_stream): Changed warning into a
TODO.
(construct_from_parser): removed warning, the code was fixed.
* camel-mime-message.c (construct_from_parser): Remove the
warning, the code was fixed.
* camel-mime-filter-enriched.c (camel_mime_filter_enriched_new):
Remove unused var.
* camel-medium.c (camel_medium_get_header): Removed warning, and
changed docs to reflect it.
* camel-gpg-context.c (gpg_ctx_parse_status): handle MODE_EXPORT
as a noop (warning).
* camel-folder.c (get_message_user_tag): changed a warning into a
fixme (its not that important).
(camel_folder_get_message_user_tag): "
* camel-data-cache.c (data_cache_finalise): removed unused vars.
(data_cache_expire): "
svn path=/trunk/; revision=20556
2003-03-27 Jeffrey Stedfast <fejj@ximian.com>
* camel-sasl-gssapi.c (gssapi_challenge): Get rid of debug
printf's that are no longer needed. In the case of errors, don't
release the outbuf gss_buffer_t since it shouldn't be set. Also
g_free (str) when we are done with it.
svn path=/trunk/; revision=20551
2003-03-27 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-utils.c (header_encode_phrase_merge_words): When we
remove a node from the list, make sure to g_list_free_1().
(header_encode_phrase_merge_words): Don't use
CAMEL_FOLD_PREENCODED as the upper-bound for merged-word length if
the merged-word will not be an rfc2047 encoded word. Instead, use
CAMEL_FOLD_SIZE-8 (which is the value we use in other places for
determining upper-bound lengths). Solves bug #38659.
svn path=/trunk/; revision=20549
* camel-url.c (append_url_encoded): Like camel_url_encode, but
works directly on an existing GString.
(camel_url_to_string, output_param): Use it.
(camel_url_encode): Likewise. Remove "escape_unsafe" arg since the
"unsafe" chars are the ones that should *always* be escaped, and
the places we were passing FALSE were wrong.
(camel_url_decode): replace with a new version
* camel-file-utils.c (camel_file_util_safe_filename): Remove extra
arg to camel_url_encode.
* tests/misc/url.c (main): Add tests of basic URL parsing and
unparsing
svn path=/trunk/; revision=20545
2003-03-28 Not Zed <NotZed@Ximian.com>
*
camel-mime-part-utils.c (simple_data_wrapper_construct_from_parser):
Do a more thorough check for html marked as text/plain. Check
that the text starts with <html or <!doctype. More complete fix
for #16817.
svn path=/trunk/; revision=20544
2003-03-26 Jeffrey Stedfast <fejj@ximian.com>
* camel-sasl-gssapi.c (camel_sasl_gssapi_finalize): Pass in the
addresses of the second args to the delete/release functions.
svn path=/trunk/; revision=20517
2003-03-27 Not Zed <NotZed@Ximian.com>
* camel-object.c (camel_object_bag_list): Ignore whether or not
the bag is currently reserved. We'll miss the new potential
object, but only 1. Should address #40103.
svn path=/trunk/; revision=20514
2003-03-25 Jeffrey Stedfast <fejj@ximian.com>
* camel-service.c (camel_gethostbyaddr): Don't use setv when we
don't need the stdarg interface.
(camel_gethostbyname): Same.
svn path=/trunk/; revision=20506
2003-03-24 Jeffrey Stedfast <fejj@ximian.com>
* camel-folder-search.c (search_user_tag): This expression can
never return an array. We must always return a string value.
svn path=/trunk/; revision=20487
2003-03-24ÃÂ Timo SirainenÃÂ <tss@iki.fi>
* camel-imap-command.c (imap_read_untagged) Integer overflow fix.
If server sent a huge literal length, only a few bytes of memory
was allocated to it, but server could write as much data there as
it wanted.
svn path=/trunk/; revision=20484
2003-03-21 Jeffrey Stedfast <fejj@ximian.com>
Camel part of the fix for Lewing's bug #39204. Second half of the
patch should also fix it so that text/plain parts that are
detected as being text/html are rendered as html (not that I agree
with this mind you, but corporate customers want this "feature").
* camel-mime-part-utils.c
(simple_data_wrapper_construct_from_parser): If the part is
text/html and doesn't have a charset and we are able to find a
charset in the meta tags of the html content, set the charset
param on the content-type.
(camel_mime_part_construct_content_from_parser): After setting the
content object on the mime part, re-set the content-type of the
content object back to the one from the parser (as it may contain
changes from the original - see changes made to the ct in
simple_data_wrapper_construct_from_parser for details).
svn path=/trunk/; revision=20463
2003-03-21 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-ssl.c (camel_certdb_nss_cert_get): continue
reading the cert file until we've read it all or get a non-EINTR
errno.
svn path=/trunk/; revision=20457
2003-03-20 Jeffrey Stedfast <fejj@ximian.com>
* camel-sasl.c: Plug in GSSAPI support.
* camel-sasl-gssapi.[c,h]: Various fixes to make it compile (fixed
type-o's mostly).
svn path=/trunk/; revision=20438
raw 8-bit Subject data.)
* camel-mime-utils.c (header_decode_mailbox): Take a charset arg
and pass it to header_decode_string.
(header_decode_address): Take a charset arg and pass it to
header_decode_mailbox.
(header_mailbox_decode): Likewise.
(header_address_decode): Take a charset arg and pass it to
header_decode_address.
* camel-folder-summary.c (summary_format_address): Take a charset
arg and pass to header_address_decode.
(message_info_new, camel_message_info_new_from_header): Pass
charset to summary_format_address
* camel-internet-address.c (internet_decode): Update for
header_address_decode change. (Unfortunately we don't have a
charset to pass here.)
* camel-mime-message.c (camel_mime_message_build_mbox_from): Move
this here from camel-mbox-summary since the same functionality is
needed by evolution-mail too (and update for header_address_decode
change)
* providers/local/camel-mbox-summary.c
(camel_mbox_summary_build_from): Moved to CamelMimeMessage
svn path=/trunk/; revision=20430
2003-03-17 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-part.c (process_header): Removed unused variable left
over from my previous fix.
* providers/smtp/camel-smtp-transport.c (smtp_send_to): Don't pass
'has_8bit_parts' to smtp_data() anymore.
(smtp_data): No longer takes 'has_8bit_parts' argument. Ignore
whether or not the message has 8bit parts when deciding what the
required encoding type we need to enforce. Fixes bug #39744.
svn path=/trunk/; revision=20312
2003-03-13 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-part.c (process_header): Use
header_contentid_decode() as this new function should be safer
than the hack that we had before.
* camel-mime-utils.c (header_contentid_decode): New function to
try and parse a content-id string in such a way as to work around
some of the known bugs in other MIME implementations. Try to be as
"safe" as we can - ie. don't allow for more than 1 @ (since the
mailer uses "@@@%d" as a fake content-id value for parts without
content-ids) and don't allow for invalid content-type chars.
svn path=/trunk/; revision=20295
2003-03-13 Jeffrey Stedfast <fejj@ximian.com>
* camel-folder.c (get_uids): Don't add bogus uids to the uid
array. Might fix bug #38868 (it's the only way I can figure that
camel_folder_get_message_info() could possibly return NULL for the
Outbox folder).
svn path=/trunk/; revision=20280
2003-03-12 Not Zed <NotZed@Ximian.com>
* camel-object.c (remove_bag): removed, it was double-freeing the
key.
(save_object): Just save the object in an array.
(camel_object_bag_destroy): first save the object bag's objects in
a list, then remove them one at a time from the bag since we can't
remove hash table entries while we're in a foreach (PITA glib
shit). For #39486.
(camel_object_bag_*): killed some warnings.
svn path=/trunk/; revision=20258
2003-03-09 Jeffrey Stedfast <fejj@ximian.com>
* camel-url-scanner.c (camel_url_addrspec_end): Doh! If inptr ==
pos + 1, then return FALSE (before it was checking for inptr ==
pos, but it will never be pos).
svn path=/trunk/; revision=20225
2003-03-07 Not Zed <NotZed@Ximian.com>
* camel-vee-folder.c (vee_search_by_expression): handle a null
return from search_by_expression, for bug #33786.
svn path=/trunk/; revision=20215
2003-03-06 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap/camel-imap-utils.c (imap_next_word):
s/g_strncasecmp/strncasecmp/g
* camel-iconv.c: Updated to be an exact copy of e-iconv (except
names changed). We don't use this yet, but we may in the future.
* camel-url.c (camel_url_new_with_base): Here too.
* camel-sasl-kerberos4.c (krb4_challenge): Use camel_strdown()
here instead of g_strdown() since the latter has been deprecated.
* providers/imap/camel-imap-utils.c (imap_parse_body): Use
camel_strdown() since g_ascii_strdown() does not do what we
thought.
* providers/imap/camel-imap-store.c:
s/strstrcase/camel_strstrcase/g
* providers/imap/camel-imap-folder.c (do_append):
s/strstrcase/camel_strstrcase/
(handle_copyuid): Same.
* string-utils.c (camel_strdown): New function because the
g_ascii_strdown interface sucks.
(camel_strstrcase): Renamed from strstrcase.
svn path=/trunk/; revision=20213
2003-03-06 Jeffrey Stedfast <fejj@ximian.com>
* camel-text-index.c (camel_utf8_next): Same as below.
* camel-search-private.c (camel_utf8_getc): Updated since not all
platforms/compiles support __inline__.
svn path=/trunk/; revision=20192
2003-03-06 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-part.c (camel_mime_part_get_encoding): Get rid of the
const return - it mismatches the prototype and we don't need it
anyway. Fixes bug #39173.
svn path=/trunk/; revision=20191
2003-03-06 Jeffrey Stedfast <fejj@ximian.com>
Fixes for bug #39168
* providers/local/camel-spool-summary.c: Get rid of the empty
private struct.
* providers/local/camel-mbox-summary.c: Get rid of the empty
private struct.
* camel-vee-store.c: Get rid of the empty private struct.
* camel-mime-filter-from.c: Get rid of the empty private struct.
2003-03-05 Jeffrey Stedfast <fejj@ximian.com>
* providers/sendmail/camel-sendmail-transport.c
(sendmail_send_to): Add a CRLF filter to the output stream to
convert any CRLF sequences into plain old line-feeds to work
around a bug in some local transport programs.
svn path=/trunk/; revision=20187
2003-03-04 Jeffrey Stedfast <fejj@ximian.com>
* camel-object.h: s/class/klass in one place so that the header is
c++-safe.
svn path=/trunk/; revision=20140
2003-03-03 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-openssl.c (camel_tcp_stream_ssl_new): Updated
to use the new API from a fe commits ago for the NSS stream. This
is just to make it compile, but does not update the behaviour to
act like the NSS stream. Note that people shouldn't be using
OpenSSL anyway.
(camel_tcp_stream_ssl_new_raw): Same.
* camel-process.[c,h]: New source file containing convenience
functions for process creation/termination mainly for use with
Pipe filters but should be usable for anything we want.
* camel-io.[c,h]: New source files implementing read/write system
calls with proper error checking and cancellation
(ie. StreamFs::read/write and CamelTcpStreamRaw::read/write). No
sense duplicating the same code over and over. Now I can use this
same code easily in other i/o code (such as Pipe filters and gpg
code?).
svn path=/trunk/; revision=20132
2003-03-03 Not Zed <NotZed@Ximian.com>
* camel-store.c (camel_store_unsubscribe_folder): Do similar
folder != NULL checking as for delete_folder before passing a NULL
to object_bag_remove.
svn path=/trunk/; revision=20121
2003-02-28 Jeffrey Stedfast <fejj@ximian.com>
* providers/smtp/camel-smtp-transport.c (connect_to_server): Same
as IMAP and POP.
* providers/imap/camel-imap-store.c (connect_to_server): Same as
the POP3 code.
* providers/pop3/camel-pop3-store.c (connect_to_server): Pass in
appropriate flags for camel_tcp_stream_ssl_new*() functions.
* camel-tcp-stream-ssl.c (enable_ssl): Not all ssl/tls streams
will want to allow each of SSLv2, SSLv3 and TLSv1 so use flags to
decide which to enable/disable.
(camel_tcp_stream_ssl_new): Now takes a flags argument to mask out
which SSL/TLS versions the stream should be compatable with.
(camel_tcp_stream_ssl_new_raw): Same.
svn path=/trunk/; revision=20111
2003-02-27 Jeffrey Stedfast <fejj@ximian.com>
* camel-stream-filter.c: Add a 'flushed' state variable to the
private struct.
(do_read): Set p->flushed to TRUE after we call
camel_mime_filter_complete() on all the filters.
(do_reset): Set p->flushed to FALSE.
(do_eos): Make sure the filters have been flushed before returning
that the stream is at EOS.
* camel-mime-filter-canon.c (complete): Don't add a eol -
otherwise we will fail to verify some mutt signatures that do not
have a blank line before the boundary line (and note that the last
\n before the boundary really belongs to the boundary anyway) so
#if 0 this code out for now.
svn path=/trunk/; revision=20096
2003-02-26 Jeffrey Stedfast <fejj@ximian.com>
* camel-multipart-signed.c: Updated to use g_alloca instead of
alloca so that we can skip all the #ifdef checks and skip checking
for alloca in configure.in and all that foo.
svn path=/trunk/; revision=20081
2003-02-26 Jeffrey Stedfast <fejj@ximian.com>
* camel-store.c (camel_store_delete_folder): Make sure the folder
is non-NULL before trying to remove it from the store's
object-bag.
svn path=/trunk/; revision=20067
2003-02-25 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-part-utils.c
(simple_data_wrapper_construct_from_parser): canonicalise the
charset name (if it is an iso charset) so that our strncasecmp to
see if it is an iso-8859-# charset will be guarenteed to work on
all systems.
(canon_charset_name): New function to return the canonical iso
charset name.
(simple_data_wrapper_construct_from_parser): If the charset is
NULL *or* the charset == "us-ascii" then check that it is 7bit
clean to decide if it is rawtext (we did not check the case where
charset was "us-ascii" before).
svn path=/trunk/; revision=20057
2003-02-25 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-message.c: Same as the ones below.
* camel-mime-part.c: Reverted back to pre-camel-iconv
* camel-filter-search.c: Same as below.
* camel-folder-summary.c: Reverted back to pre-camel-iconv
* camel.c (camel_init): Reverted to pre-camel-iconv
* camel-charset-map.c (camel_charset_locale_name): Removed (part
of the revert).
(camel_charset_canonical_name): Same.
* camel-mime-filter-charset.c: Revert back to using e_iconv from GAL.
* camel-mime-part-utils.c: Revert back to using e_iconv from GAL.
* camel-mime-utils.c: Revert back to using e_iconv from GAL.
* camel-sasl-digest-md5.c: Revert back to using e-iconv from GAL.
svn path=/trunk/; revision=20056
2003-02-24 Jeffrey Stedfast <fejj@ximian.com>
* camel-iconv.c: Make bucket->refcount 31 bits and bucket->used 1
bit instead of having each use their own 32bit int.
svn path=/trunk/; revision=20035
2003-02-24 Jeffrey Stedfast <fejj@ximian.com>
* camel-iconv.c (iconv_cache_bucket_expire): Use g_iconv_close()
here, missed this before.
(camel_iconv): Might as well call g_iconv here even though it just
calls iconv directly.
svn path=/trunk/; revision=20034
2003-02-21 Jeffrey Stedfast <fejj@ximian.com>
* camel-iconv.c (camel_iconv_charset_name): New function...back
from the depths of hell from whence it came originally. Turns out
that g_iconv_open() is lame and can't handle all the stuff we used
to handle in e_iconv_charset_name().
(camel_iconv_open): Use camel_iconv_charset_name() on the to/from
charsets rather than camel_charset_canonical_name(). Now maybe
g_iconv_open will work for charsets such as "ks_c_5601-1987".
* providers/pop3/camel-pop3-store.c (pop3_connect): Reget the
capabilities after a successful authentication.
* providers/pop3/camel-pop3-engine.c (get_capabilities): If we are
in the TRANSACTION state and CAPA did not list UIDL as a supported
command, try checking for it the hard way.
svn path=/trunk/; revision=20033
2003-02-23 Jeffrey Stedfast <fejj@ximian.com>
* providers/smtp/camel-smtp-transport.c (smtp_data): Do it the
same way we just made the sendmail code do it.
* providers/sendmail/camel-sendmail-transport.c
(sendmail_send_to): My last change but in a better way.
svn path=/trunk/; revision=20023