1. 21 Mar, 2001 1 commit
    • Dan Winship's avatar
      add a "GList *authtypes", so you can get the list of authtypes used by a · 5d562c3d
      Dan Winship authored
      	* camel-provider.h: (CamelProvider) add a "GList *authtypes", so
      	you can get the list of authtypes used by a provider without
      	needing to have an actual CamelService object handy. (Will be
      	needed by the new config druid.)
      	(CAMEL_PROVIDER_ALLOWS, CAMEL_PROVIDER_NEEDS): New macros to test
      	the URL part stuff, since the way it works is too complicated and
      	everyone always does it wrong.
      
      	* camel-service.c (camel_service_query_auth_types): Remove the
      	@connected arg again: if you don't want to connect, you can just
      	get the list of authtypes off the provider.
      	(camel_service_free_auth_types): Remove this. All existing
      	implementations do authtypes the same way, so just say the caller
      	should "g_list_free" the list. (Oh, look, removing this function
      	doesn't actually cause the mailer to not build. How 'bout that.)
      	(construct, get_path): Use the new URL part macros.
      
      	* camel-remote-store.c (remote_query_auth_types): Update
      	(remote_free_auth_types): Nuke
      	(camel_remote_store_authtype_list): New function for use by
      	subclasses.
      
      	* providers/imap/camel-imap-provider.c:
      	* providers/pop3/camel-pop3-provider.c:
      	* providers/smtp/camel-smtp-provider.c: Update CamelProvider
      	structures.
      	(camel_provider_module_init): Put all the SSL parts together so
      	there's only 1 #ifdef. Set up the provider authtypes field using
      	the SASL, CamelRemoteStore, and standard authtypes, as
      	appropriate. Copy that from the normal provider to the SSL
      	provider.
      
      	* providers/local/camel-local-provider.c:
      	* providers/sendmail/camel-sendmail-provider.c:
      	* camel-session.c: Update CamelProvider structures.
      
      	* providers/imap/camel-imap-store.c (query_auth_types):
      	* providers/pop3/camel-pop3-store.c (query_auth_types): Update
      
      	* providers/smtp/camel-smtp-store.c (query_auth_types): Update.
      	Remove the no_authtype, because that's what "ALLOW_AUTH" rather
      	than "NEED_AUTH" means.
      	(free_auth_types): Nuke.
      
      svn path=/trunk/; revision=8872
      5d562c3d
  2. 09 Feb, 2001 1 commit
    • Dan Winship's avatar
      Rewrite a bunch. Replace the existing folder cache stuff with much simpler · 65eb577e
      Dan Winship authored
      	* camel-store.c: Rewrite a bunch. Replace the existing folder
      	cache stuff with much simpler code that still handles all the
      	existing cases. Now the folder hash table is always created by the
      	base class, using hash and compare functions provided by the class
      	implementation. (If they are set to NULL, CamelStore won't cache
      	folders.) lookup_folder, cache_folder, and uncache_folder are no
      	longer class methods, and get_name is gone completely.
      
      	(camel_store_get_inbox): Renamed from
      	camel_store_get_default_folder, since that wasn't being used, and
      	this is what we actually need.
      	(camel_store_get_root_folder): Removed, since it's not needed for
      	anything given get_folder_info.
      
      	* camel-remote-store.c:
      	* providers/local/camel-local-store.c:
      	* providers/local/camel-mbox-store.c:
      	* providers/local/camel-mh-store.c:
      	* providers/local/camel-maildir-store.c:
      	* providers/nntp/camel-nntp-store.c:
      	* providers/pop3/camel-pop3-store.c:
      	* providers/vee/camel-vee-store.c: Minor updates for CamelStore
      	changes
      
      	* providers/imap/camel-imap-store.c (camel_imap_store_class_init):
      	Update for CamelStore changes.
      	(hash_folder_name, compare_folder_name): treat INBOX
      	case-insensitively, otherwise use g_str_hash and g_str_equal.
      
      	* camel-service.c (camel_service_construct): Remove
      	camel_service_new and create camel_service_construct (as a class
      	method) in its place.
      
      	* camel-session.c (camel_session_get_service): Use
      	camel_object_new and camel_service_construct to replace
      	camel_service_new.
      
      	* providers/local/camel-local-store.c (construct): Append a '/' to
      	the URL path if it doesn't end with one
      
      svn path=/trunk/; revision=8145
      65eb577e
  3. 05 Feb, 2001 1 commit
    • Jeffrey Stedfast's avatar
      Updated. · ddfc0336
      Jeffrey Stedfast authored
      2001-02-05  Jeffrey Stedfast  <fejj@ximian.com>
      
      	* providers/smtp/camel-smtp-transport.c (query_auth_types): Updated.
      
      	* providers/nntp/camel-nntp-store.c (nntp_store_query_auth_types):
      	Updated.
      
      	* providers/pop3/camel-pop3-store.c (query_auth_types): Updated.
      
      	* providers/imap/camel-imap-store.c (query_auth_types): Updated.
      
      	* camel-service.c (camel_service_query_auth_types): Now takes a
      	boolean value to specify whether or not to connect when
      	constructing a supported authtype list.
      
      svn path=/trunk/; revision=7979
      ddfc0336
  4. 09 Jan, 2001 1 commit
    • Dan Winship's avatar
      Kill off a long-hated Camel kludge: "empty" URLs and · 0d54c483
      Dan Winship authored
      	query_auth_types_generic.
      
      	* camel-url.c: Remove "empty" from CamelURL.
      	(camel_url_new): No longer set it.
      	(camel_url_to_string): Treat "" as equivalent to NULL for
      	authmech. (Unrelated change, but it simplifies some stuff with the
      	new config dialog.)
      
      	* camel-service.c (camel_service_new): Remove url->empty check: if
      	the URL isn't valid, we don't create the service.
      	(camel_service_query_auth_types): No longer need to switch between
      	generic and connected variants.
      
      	* providers/smtp/camel-smtp-transport.c (query_auth_types):
      	* providers/pop3/camel-pop3-store.c (query_auth_types):
      	* providers/nntp/camel-nntp-store.c (nntp_store_query_auth_types):
      	* providers/imap/camel-imap-store.c (query_auth_types):
      	* camel-remote-store.c (remote_query_auth_types): Remove generic
      	version, rename connected version.
      
      svn path=/trunk/; revision=7327
      0d54c483
  5. 24 Dec, 2000 1 commit
    • Not Zed's avatar
      Lock the command channel while searching. (imap_body_contains): If · 6de256c2
      Not Zed authored
      2000-12-24  Not Zed  <NotZed@HelixCode.com>
      
              * providers/imap/camel-imap-search.c (imap_body_contains): Lock
              the command channel while searching.
              (imap_body_contains): If performing a whole uid search, then add
              references to our own summary items, dont look it up in the
              folder.  This way they can't vanish unexpectedly.
      
              * providers/imap/camel-imap-folder.h (CamelImapFolder): Added a
              private field.
      
              * providers/imap/camel-imap-private.h: Added lock for imap
              searches.
      
              * Merge from camel-mt-branch.
      
              * providers/imap/camel-imap-folder.c (imap_update_summary): Merge
              fix, use the folder->summary.
              (imap_get_message_flags, imap_set_message_flags,
              imap_get_message_user_flag, imap_set_message_user_flag): Removed
              again.
              (camel_imap_folder_init): Setup private data/lock.
              (imap_finalize): Free private data/search lock.
              (imap_search_free): Lock the search_lock.
              (imap_search_by_expression): Lock the search lock when using the
              search object.  Also copy/ref hte summary, rather than getting it
              directly.
              (imap_refresh_info): Free any info lookups.  Use folder->summary
              not imap_folder->summary.  And lock around commands.
      
      svn path=/trunk/; revision=7150
      6de256c2
  6. 01 Dec, 2000 1 commit
    • Dan Winship's avatar
      Don't g_return_if_fail if the service is already disconnected. Just · dfee15e6
      Dan Winship authored
      	* camel-service.c (camel_service_disconnect): Don't
      	g_return_if_fail if the service is already disconnected. Just
      	return.
      
      	* providers/pop3/camel-pop3-store.c (pop3_try_authenticate):
      	Return FALSE (don't try again) if we get CAMEL_POP3_FAIL.
      	(pop3_connect): If we don't succeed, disconnect.
      
      svn path=/trunk/; revision=6756
      dfee15e6
  7. 07 Nov, 2000 1 commit
  8. 03 Nov, 2000 2 commits
    • Dan Winship's avatar
      fix bug in previous · f2f3ee37
      Dan Winship authored
      svn path=/trunk/; revision=6373
      f2f3ee37
    • Dan Winship's avatar
      Add an "url_flags" field to CamelProvider. Move the CAMEL_SERVICE_URL_* · 5a4fa850
      Dan Winship authored
      	* camel-provider.h: Add an "url_flags" field to CamelProvider.
      	Move the CAMEL_SERVICE_URL_* defines here and remove the SERVICE_
      	part of the name.
      
      	* camel-service.h: Remove CAMEL_SERVICE_URL_* flags and
      	service->url_flags field.
      
      	* camel-service.c (check_url, get_path): Get URL flags from
      	service->provider, update for changed flag names.
      
      	* providers/*/camel-*-provider.c: Add URL flags to provider
      	structures.
      
      	* providers/*/camel-*-{store,transport}.c, camel-remote-store.c:
      	Remove service->url_flags initialization.
      
      svn path=/trunk/; revision=6370
      5a4fa850
  9. 31 Oct, 2000 1 commit
    • Dan Winship's avatar
      Add a new argument, clean, that says whether or not to try to disconnect · 517db3b2
      Dan Winship authored
      	* camel-service.c (service_disconnect): Add a new argument, clean,
      	that says whether or not to try to disconnect cleanly.
      
      	* camel-remote-store.c (remote_send_string, remote_send_stream,
      	remote_recv_line): disconnect uncleanly on failure to prevent
      	infinite loops when providers would normally send commands from
      	disconnect(). Remove some unneeded CamelException goo.
      
      	* providers/smtp/camel-smtp-transport.c (smtp_disconnect):
      	* providers/pop3/camel-pop3-store.c (pop3_disconnect):
      	* providers/nntp/camel-nntp-store.c (nntp_store_disconnect):
      	* providers/imap/camel-imap-store.c (imap_disconnect): Don't send
      	QUIT/LOGOUT if !clean.
      
      svn path=/trunk/; revision=6303
      517db3b2
  10. 24 Oct, 2000 1 commit
  11. 16 Oct, 2000 1 commit
  12. 07 Sep, 2000 1 commit
    • Dan Winship's avatar
      Make this take a path to a directory that Camel can use for its own · 1fb4f1bf
      Dan Winship authored
      	* camel-session.c (camel_session_new): Make this take a path to a
      	directory that Camel can use for its own nefarious purposes.
      	(camel_session_get_storage_path): New function to return a path
      	that a service can use for its own nefarious sub-purposes.
      
      	* camel-service.c (camel_service_get_path): New method (and
      	useful default implementation) to get a (relative) pathname
      	corresponding to the service.
      
      svn path=/trunk/; revision=5239
      1fb4f1bf
  13. 30 Aug, 2000 1 commit
  14. 29 Aug, 2000 1 commit
  15. 22 Aug, 2000 1 commit
  16. 10 Aug, 2000 1 commit
  17. 01 Jul, 2000 1 commit
    • Dan Winship's avatar
      New method, to return an end-user-friendly name corresponding to a · 98753e92
      Dan Winship authored
      	* camel-service.c (camel_service_get_name): New method, to return
      	an end-user-friendly name corresponding to a service. (eg, "POP
      	service for danw on trna.helixcode.com").
      
      	* providers/imap/camel-imap-store.c,
      	providers/mbox/camel-mbox-store.c,
      	providers/nntp/camel-nntp-store.c,
      	providers/pop3/camel-pop3-store.c,
      	providers/sendmail/camel-sendmail-transport.c,
      	providers/smtp/camel-smtp-transport.c: Implement.
      
      svn path=/trunk/; revision=3851
      98753e92
  18. 15 Jun, 2000 1 commit
  19. 30 May, 2000 1 commit
    • Not Zed's avatar
      Init filter_from to NULL, for exception case. (mbox_get_message_by_uid): · 631dda8a
      Not Zed authored
      2000-05-30  Not Zed  <NotZed@HelixCode.com>
      
              * providers/mbox/camel-mbox-folder.c (mbox_append_message): Init
              filter_from to NULL, for exception case.
              (mbox_get_message_by_uid): Cast off_t to long int for diagnostics.
      
              * camel-url.c (camel_url_hash): Hash funciton for using camel
              url's as hash keys.
              (camel_url_equal): equal function for same.
      
              * camel-session.c (camel_session_finalise): Free cached services.
              (camel_session_init): Init service cache.
              (service_cache_remove): destroy callback to remove a service from
              the cache.
      
              * camel-store.c (get_folder_internal): Remove the extra ref of the
              folder.  That seems the right behaviour ...?
              (camel_store_get_type): Doh, actually call store init, so the
              cache works.
              (cache_folder): strdup the folder name!  no wonder it never found
              it again.
      
      svn path=/trunk/; revision=3298
      631dda8a
  20. 29 May, 2000 1 commit
    • Dan Winship's avatar
      Fix up some glib precondition stuff. Try to set the URL in · 9f804702
      Dan Winship authored
      	* camel-service.c (camel_service_new): Fix up some glib
      	precondition stuff. Try to set the URL in camel_service_new before
      	checking whether or not it's "empty" so that you can successfully
      	set "sendmail:" as a URL.
      
      svn path=/trunk/; revision=3266
      9f804702
  21. 07 May, 2000 1 commit
    • Dan Winship's avatar
      Make camel not leak like a sieve. · 580d8858
      Dan Winship authored
      	* camel-object.c: New subclass of GtkObject which is now the base
      	of the Camel object hierarchy. Currently the only difference
      	between CamelObject and GtkObject is that CamelObjects don't start
      	out floating.
      
      	* *.h: Move a bunch of typedefs to camel-types.h. Standardize on
      	using <camel/foo.h> in header files rather than <foo.h>, "foo.h",
      	or "camel/foo.h". Remove some unneeded includes.
      
      	* camel-address.c, camel-data-wrapper.c, camel-folder-search.c,
      	camel-folder-summary.c, camel-folder.c, camel-mime-filter.c,
      	camel-mime-parser.c, camel-service.c, camel-session.c,
      	camel-stream.c: These are now subclasses of CamelObject.
      
      	* camel-data-wrapper.c (set_output_stream):
      	* camel-medium.c (set_content_object):
      	* camel-seekable-substream.c
      	(init_with_seekable_stream_and_bounds):
      	* providers/mbox/camel-mbox-folder.c (mbox_get_message_by_uid):
      	remove gtk_object_sink calls.
      
      	* camel-stream-buffer.c (init_vbuf):
      	* camel-stream-filter.c (camel_stream_filter_new_with_stream):
      	ref the original stream.
      
      	* camel-folder-summary.c (camel_folder_summary_finalise): unref
      	the filters when finalizing.
      
      	* camel-mime-part-utils.c
      	(simple_data_wrapper_construct_from_parser,
      	camel_mime_part_construct_content_from_parser):
      	* camel-mime-part.c (camel_mime_part_set_content): Unref objects
      	that are created only to be handed off to other objects. If
      	they're going to be needed later, they will have been additionally
      	ref'ed by the object that needs them.
      
      	* providers/pop3/camel-pop3-folder.c (get_message_by_number):
      	unref the message stream after creating the data from it.
      
      	* camel-stream.c, camel-stream-buffer.c, camel-stream-filter.c,
      	camel-stream-fs.c, camel-stream-mem.c: Remove camel_stream_close,
      	since its semantics are dubious (what happens when you close a
      	stream other people still have references on?).
      
      	* providers/nntp/camel-nntp-store.c:
      	* providers/smtp/camel-smtp-transport.c:
      	* providers/pop3/camel-pop3-store.c:
      	replace camel_stream_close calls with gtk_object_unref.
      
      	* providers/mbox/camel-mbox-folder.c:
      	* providers/nntp/camel-nntp-folder.c:
      	* providers/sendmail/camel-sendmail-transport.c:
      	replace camel_stream_close with camel_stream_flush +
      	gtk_object_unref
      
      svn path=/trunk/; revision=2882
      580d8858
  22. 04 May, 2000 1 commit
    • Dan Winship's avatar
      New function to replace camel_provider_scan. Returns a list of either (a) · ba6b73fe
      Dan Winship authored
              * 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
      ba6b73fe
  23. 18 Apr, 2000 1 commit
  24. 06 Apr, 2000 1 commit
    • Dan Winship's avatar
      the URL RFC says the port must be numeric, so we don't want to do · 2e4a5463
      Dan Winship authored
      	* 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
      2e4a5463
  25. 30 Mar, 2000 1 commit
    • Dan Winship's avatar
      Add a htons in the default_number case, and document the fact that the · 1f73bf3b
      Dan Winship authored
      	* camel-service.c (camel_service_getport): Add a htons in the
      	default_number case, and document the fact that the function
      	returns the port in network byte order.
      
      	* providers/pop3/camel-pop3-store.c (pop3_connect): Revert
      	Miguel's change. The port number bug was actually somewhere
      	else, and the IP address copying code was fine already.
      
      svn path=/trunk/; revision=2256
      1f73bf3b
  26. 28 Mar, 2000 1 commit
  27. 27 Mar, 2000 1 commit
  28. 22 Mar, 2000 1 commit
  29. 12 Mar, 2000 1 commit
    • bertrand's avatar
      add a field refering to a service associated to the efolder. In the case · f669ff48
      bertrand authored
      2000-03-12  bertrand  <bertrand@helixcode.com>
      
      	* shell/e-folder.h: add a field refering to a
      	service associated to the efolder. In the case of
      	distant folders, it is generally a server.
      
      	* shell/e-service.c: New class. Models a service.
      	A service is an object with an URI and a root folder.
      	It genreally reporesents a distant folder.
      	A service is generally a ressource shared amongst
      	several folders.
      	* shell/e-service.h:
      
      
      2000-03-10  bertrand  <bertrand@helixcode.com>
      
      	* camel-service.h: cosmetic changes.
      
      svn path=/trunk/; revision=2100
      f669ff48
  30. 09 Mar, 2000 1 commit
  31. 21 Feb, 2000 1 commit
    • Dan Winship's avatar
      add CamelExceptions to several functions. Use camel_session_new to · d3d2adb9
      Dan Winship authored
              * 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
      d3d2adb9
  32. 17 Feb, 2000 1 commit
  33. 03 Jan, 2000 1 commit
  34. 14 Dec, 1999 1 commit
  35. 23 Oct, 1999 1 commit
  36. 01 Sep, 1999 1 commit
    • bertrand's avatar
      When using g_free (obj) don't test if obj != NULL g_free () already do · f5be7984
      bertrand authored
      1999-09-01  bertrand  <Bertrand.Guiheneuf@aful.org>
      
      	* camel/camel-folder.c (_finalize):
      	(_set_name):
      	* camel/camel-mime-message.c (_finalize):
      	* camel/camel-mime-part.c (_finalize):
      	(_set_description):
      	(_set_disposition):
      	* camel/camel-service.c (_finalize):
      	* camel/camel-stream-fs.c (_finalize):
      	* camel/gmime-content-field.c:
      	(gmime_content_field_construct_from_string):
      	* camel/url-util.c (g_url_free):
      
      	When using g_free (obj) don't test if obj != NULL
      	g_free () already do that. Thanks to elerium for
      	the feedback.
      
      19
      
      svn path=/trunk/; revision=1151
      f5be7984
  37. 29 Aug, 1999 1 commit
  38. 11 Aug, 1999 1 commit
    • bertrand's avatar
      Message creation still consumes a lot of · 33ffe9aa
      bertrand authored
      memory (maybe 2000k) and I really don't
      understand why. As soon as I get gtk working
      on SunOS, purify should hopefully give me the answer.
      
      1999-08-11  bertrand  <Bertrand.Guiheneuf@aful.org>
      
      	* camel/camel-service.c (_finalize):
      	* camel/camel-stream-fs.c (_finalize):
      	(_destroy): close file descriptor.
      	* camel/camel-stream-mem.c (_finalize):
      	* camel/camel-store.c (_finalize):
      	* camel/camel-folder.c (_finalize):
      
      svn path=/trunk/; revision=1104
      33ffe9aa
  39. 06 Aug, 1999 1 commit
    • bertrand's avatar
      updated some autogen doc stuff. Still don't understand warnings :( · db89b1a6
      bertrand authored
      1999-08-06  bertrand  <Bertrand.Guiheneuf@aful.org>
      
      	* devel-docs/camel/:
      	updated some autogen doc stuff.
      	Still don't understand warnings :(
      
      	* camel/camel-data-wrapper.c:
      	* camel/providers/MH/camel-mh-store.c:
      	* camel/url-util.c:
      	* camel/gmime-content-field.c:
      	* camel/camel-store.c:
      	various inline doc corrections.
      
      	* camel/camel-folder.c (get_message_count):
      	new method. Returns the number of message
      	in the folder.
      
      svn path=/trunk/; revision=1092
      db89b1a6