Commit Graph

77 Commits

Author SHA1 Message Date
ba6b73fe56 New function to replace camel_provider_scan. Returns a list of either (a)
* camel-session.c (camel_session_list_providers): New function to
        replace camel_provider_scan. Returns a list of either (a) all
        currently-loaded providers, or (b) all available providers.

        * camel-url.[ch]: Add an "empty" flag to CamelURL (indicating that
        it contains only a protocol).

        * camel-service.c (camel_service_query_auth_types): Make this take
        a CamelException (since it may have to try to connect to the
        server, and it might not able to.)

        * providers/pop3/camel-pop3-store.c: add KPOP (Kerberized POP)
        support. This is mostly so I have two kinds of authmech to play
        with instead of just one. (But it does actually work.)

        * providers/smtp/camel-smtp-transport.c (query_auth_types): update
        for prototype change, but disable the functionality, since it
        doesn't really support any auth types yet.
        (camel_smtp_transport_get_type): add an object init function to
        set the service url_flags.

svn path=/trunk/; revision=2797
2000-05-04 15:23:43 +00:00
0524f7c06a Tweak the definition of CamelProvider. Among other things, a provider may
* camel-provider.h: Tweak the definition of CamelProvider. Among
	other things, a provider may now be both a store and a transport.

	* camel-provider.c: Remove a lot of code we had no intention of
	using. This now only contains two functions: camel_provider_init
	to read the installed .urls files, and camel_provider_load to
	load and register a new provider.

	* camel-session.c: Remove more unused code and simplify some of
	the remaining code. The list of available provider modules is now
	stored in the session, and it handles calling camel_provider_load
	to load them as needed. Provider registration is now done by
	calling back from the module init routine, which allows a single
	module to register providers for multiple URL types.

	* providers/*: Update provider structures and init routines for
	the new stuff. Add a .urls file to each provider specifying what
	urls it handles, and install that with the library.

	* providers/nntp/camel-nntp-provider.c: Add hints towards
	supporting both news: and nntp: URLs, and using nntp as both a
	store and a transport.

svn path=/trunk/; revision=2691
2000-04-30 15:36:16 +00:00
4f686ae899 Set the exception if no provider is found.
* camel-session.c (get_store_for_protocol_with_url): Set the
	exception if no provider is found.

svn path=/trunk/; revision=2477
2000-04-17 19:38:16 +00:00
2e4a546307 the URL RFC says the port must be numeric, so we don't want to do
* g_url_new really wanted to take a CamelException. So, rename
	Gurl to CamelURL, g_url_* to camel_url_* (with camel_url_new
	taking an exception), and url-util.[ch] to camel-url.[ch]. Also
	force url->port to be numeric and remove camel_service_getport. (I
	was confused before: the URL RFC says the port must be numeric, so
	we don't want to do getportbyname.)

svn path=/trunk/; revision=2300
2000-04-06 03:52:39 +00:00
1e7ab47d26 fix the name of "Helix Code, Inc." in all the copyrights
svn path=/trunk/; revision=2091
2000-03-09 19:52:48 +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
64edd4d5de add camel_session_get_transport_for_protocol
svn path=/trunk/; revision=1922
2000-02-24 21:19:05 +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
d3d2adb98c add CamelExceptions to several functions. Use camel_session_new to
* camel-session.h:
        * camel-session.c: add CamelExceptions to several functions. Use
        camel_session_new to initialize the session and URL fields of
        created CamelStores as appropriate.

        * camel-store.h:
        * camel-store.c
        * camel-service.h:
        * camel-service.c: Move the session and url (and associated
        functions) from CamelStore to CamelService. Add url_flags to
        CamelService so subclasses can specify which URL components
        are mandatory for them. Add camel_session_new for
        camel_session_get_store* to use.

        * providers/mbox/camel-mbox-folder.c:
        * providers/mbox/camel-mbox-store.c:
        * providers/mbox/camel-mbox-store.h: Update for above changes.

svn path=/trunk/; revision=1888
2000-02-21 18:38:58 +00:00
e72c45d304 New header with the typedefs for all camel classes. Now the class headers
* camel/camel-types.h: New header with the typedefs for all camel
	classes. Now the class headers can just include this and the
	header for the parent type. This makes it possible for
	CamelService to include a CamelSession without creating an
	#include loop.

	* camel/*:
	* composer/e-msg-composer-attachment-bar.h:
	* mail/folder-browser.c:
	* mail/message-list.c: frob #includes to match the new reality

svn path=/trunk/; revision=1850
2000-02-19 01:40:57 +00:00
39400a38c7 use camel_stream_reset instead of seek. The formatter should be able to
2000-02-17  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-formatter.c (handle_text_plain):
	(handle_text_html): use camel_stream_reset instead
	of seek. The formatter should be able to work
	with all streams, not only seekable streams.
	In the case where some provider implementation
	would not be able to provide a reset method
	to their stream, implementors would have
	to find a workaround.

	* camel/camel-session.c (camel_session_new): use
	(void) instean of () in function decl.

	* camel/camel-folder.c: ifdef async operation
	related code.

	* camel/camel-seekable-stream.c (_seek): added a warning.
	(_reset): default implementation of reset for seekable
	stream.

	* camel/camel-mime-message.h: set_received_date declaration fix.
	cosmetic changes.

	* camel/providers/mbox/camel-mbox-provider.c (camel_provider_module_init):
	use (void) instead of ().

	* camel/camel-stream.c (camel_stream_reset):
	new method for CamelStream.

svn path=/trunk/; revision=1835
2000-02-17 22:16:33 +00:00
e8a2fed920 add exception handling everywhere in the store related functions
2000-01-21  bertrand  <bertrand@helixcode.com>

	* camel/camel-store.c: add exception handling everywhere in
	the store related functions arguments.
	* camel/providers/mbox/camel-mbox-folder.c: idem
	* camel/providers/mbox/camel-mbox-folder.h: idem
	* camel/providers/mbox/camel-mbox-store.h: idem

	* camel/providers/mbox/Makefile.am (libcamelmbox_la_SOURCES):
	added camel-mbox-provider.c to the mbox provider
	sources.

svn path=/trunk/; revision=1605
2000-01-22 01:35:11 +00:00
316a4c47ff Updated my e-mail address to reflect my new employment
svn path=/trunk/; revision=1533
2000-01-03 23:05:55 +00:00
331335d12c Fix copyright informations once again
svn path=/trunk/; revision=1489
1999-12-14 22:40:38 +00:00
8fe1aa5f41 Copyright change
svn path=/trunk/; revision=1348
1999-10-23 15:19:51 +00:00
d938232d3c Address update
svn path=/trunk/; revision=1147
1999-08-29 22:13:34 +00:00
0472611db8 those two func go here now.
1999-08-13  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/hash-table-utils.c (g_strcase_equal):
	(g_strcase_hash): those two func go here now.

	* camel/hash_table_utils.c (hash_table_generic_free):
	free a (gpointer, gpointer) hash table pair.

	* camel/camel-mime-message.c (camel_mime_message_init): use
	case insensitive hash table functions.
	(_set_flag):
	(camel_mime_message_set_flag):
	(_get_flag):
	(camel_mime_message_get_flag):
	Use const for flag name, they are now
	duplicated.

svn path=/trunk/; revision=1110
1999-08-13 14:30:07 +00:00
1c721c4abb remove stupid debug code. (add_mail_store): use camel_session_get_store
1999-08-12  bertrand  <Bertrand.Guiheneuf@aful.org>

	* tests/ui-tests/store_listing.c (show_folder_messages):
	remove stupid debug code.
	(add_mail_store): use camel_session_get_store instead
	of creating MH store directly.
	(main): load MH provider.

	* camel/camel-provider.c (camel_provider_register_as_module):
	register new provider.
	(camel_provider_get_for_protocol):
	Now, implementation is correct.

	* camel/camel-store.c (_finalize):
	* camel/camel-store.h (struct _CamelStore):
	further disabled url_name field use.
	URL will be generated dynamically.

Ben dam don dieu, vla t'y pas que ya tout le bourier qui marche !
(Autoload store/protocol from URL works)

svn path=/trunk/; revision=1108
1999-08-12 21:01:07 +00:00
96b7f9a5fd compilation and runtime fixes.
1999-08-12  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-session.c (camel_session_get_store_for_protocol):
	compilation and runtime fixes.

	* camel/providers/MH/camel-mh-store.c (_init):
	synced with CamelStore.

	* camel/camel-store.c (_init):
	in CamelStore::init, url_name is now const.
	disabled url_name copy.

Last check in did not even compile...

svn path=/trunk/; revision=1107
1999-08-12 11:00:04 +00:00
f888058fc6 new function: returns a store for an URL.
1999-08-12  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/camel-session.c (camel_session_get_store):
	new function: returns a store for an URL.
	(camel_session_get_store_for_protocol):
	new functionc: returns a store for a given
	store protocol (as IMAP/POP/MH ...)
	* camel/string-utils.c (g_strcase_equal):
	(g_strcase_hash): case insensitive hash table
	funcs.

	* camel/camel-session.c (camel_session_init): hash table
	keys are case insensitive.

	* camel/camel-provider.c (camel_provider_get_for_protocol):
	new function, returns the last registered
	provider for a protocol.

svn path=/trunk/; revision=1106
1999-08-12 10:24:01 +00:00
a478ee7e9d new file. MH provider registration stuff.
1999-08-12  bertrand  <Bertrand.Guiheneuf@aful.org>

	* camel/providers/MH/camel-mh-provider.c:
	new file. MH provider registration stuff.

	* camel/camel-provider.c (camel_provider_register_as_module):
	load a provider from a shared object (plugin).
	(camel_provider_register): register a provider
	"by hand". Used for statically defined providers.

	* tests/test7.c: new test.
	tests providers loading framework.

Providers modules loading Works !!! :))))

svn path=/trunk/; revision=1105
1999-08-11 22:34:09 +00:00
cac0ba57e6 merge a lot of work. Rough ChangeLog will follow
svn path=/trunk/; revision=1052
1999-08-01 13:38:28 +00:00
fce26238c4 Implemented base64 encoder based on CamelStreams. Should the
1999-07-13  Miguel de Icaza  <miguel@gnu.org>

	* camel/gmime-base64.c (gmime_encode_base64): Implemented base64
	encoder based on CamelStreams.  Should the encoder/decoder be a
	Stream itself?

	* camel/gmime-utils.c: include config.h here.
	* camel/url-util.c: ditto.
	* camel/gstring-util.c: ditto.
	* camel/gmime-content-field.c: ditto.
	* camel/camel-stream.c: ditto.
	* camel/camel-stream-fs.c: ditto.
	* camel/camel-store.c: ditto.
	* camel/camel-simple-data-wrapper.c: ditto.
	* camel/camel-session.c: ditto.
	* camel/camel-service.c: ditto.
	* camel/camel-mime-part.c: ditto.
	* camel/camel-mime-message.c: ditto.
	* camel/camel-log.c: ditto.
	* camel/camel-data-wrapper.c: ditto
	* camel/camel-folder.c: ditto.

	* camel/camel-stream.c (camel_stream_write): Moved api
	documentation to the places that they document.
	(camel_stream_class_init): Virtual classes do not need to have a
	default implementation.  So null them all.
	(camel_stream_write): Return value from write.
	(camel_stream_available): implement.
	(camel_stream_write_strings): documented.

	* devel-docs/query/virtual-folder-in-depth.sgml: Small
	reformatting

1999-06-28  bertrand  <Bertrand.Guiheneuf@inria.fr>

	* tests/test2.c (main): now use
	CamelDataWrapper::contruct_form_stream to test

svn path=/trunk/; revision=1024
1999-07-15 00:11:56 +00:00
4e1dac9940 new methods
1999-05-01  bertrand <Bertrand.Guiheneuf@inria.fr>

	* camel/camel-folder.c
	(__camel_folder_get_mode):
	(camel_folder_get_mode):
	(camel_folder_get_parent_store):
	(__camel_folder_get_parent_store):
	(camel_folder_get_parent_folder):
	(__camel_folder_get_parent_folder):
	new methods

	* camel/camel-service.c: put __ prefix before
	private virtual funcs.

svn path=/trunk/; revision=886
1999-05-01 14:04:18 +00:00
d224d1aaad initialize folder object.
1999-04-25  bertrand <Bertrand.Guiheneuf@inria.fr>

	* camel/camel-session.c (camel_session_get_store_from_provider):
	initialize folder object.

	* camel/camel-store.c (init): new method.
	called by session object at instantiation time.

	* camel/camel-store.h (struct _CamelStore):
	new fields : session and url_name

svn path=/trunk/; revision=879
1999-04-25 21:58:27 +00:00
f9595bb213 new method to set the default provider for a protocol.
1999-04-25  bertrand <Bertrand.Guiheneuf@inria.fr>

	* camel/camel-session.c (camel_session_set_provider):
	new method to set the default provider for a protocol.
	(camel_session_get_store_from_provider):
	new method to instantiate a folder from a provider.

	* camel/camel-provider.h: s/GString/gchar/g
	+ typo fix.

svn path=/trunk/; revision=878
1999-04-25 11:21:33 +00:00
8fa0292a20 start session object
svn path=/trunk/; revision=877
1999-04-25 09:55:14 +00:00