Commit Graph

265 Commits

Author SHA1 Message Date
Chris Toshok 83f816df15 guard against multiple invocations.
2002-11-11  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-card-cursor.c (pas_card_cursor_dispose): guard
	against multiple invocations.

	* backend/pas/pas-backend-ldap.c (view_destroy): change signature
	to that of a weak ref notify function.
	(cursor_destroy): same.
	(pas_backend_ldap_book_destroy_cb): same.
	(get_cursor_handler): ::destroy -> weak_ref.
	(pas_backend_ldap_process_get_book_view): same.
	(pas_backend_ldap_add_client): same.

	* backend/pas/pas-backend-file.c (cursor_destroy): change
	signature to that of a weak ref notify function.
	(view_destroy): same.
	(pas_backend_file_book_destroy_cb): same.
	(pas_backend_file_process_get_cursor): ::destroy -> weak_ref.
	(pas_backend_file_process_get_book_view): same.
	(pas_backend_file_process_get_completion_view): same.
	(pas_backend_file_process_get_changes): same.
	(pas_backend_file_add_client): same.

	* backend/ebook/test-client.c (get_cursor_cb): unref the book and
	exit here.
	(get_card_cb): pass a query string to get_cursor.

	* backend/ebook/e-book-view.c (e_book_view_class_init): correct
	marshaller for "card_added".

svn path=/trunk/; revision=18720
2002-11-12 04:06:30 +00:00
Chris Toshok 9aa24e5bd2 guard against multiple invocations.
2002-11-10  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-card-sexp.c
	(pas_backend_card_sexp_dispose): guard against multiple
	invocations.

	* backend/pas/pas-card-cursor.c (pas_card_cursor_dispose): same.

	* backend/pas/pas-book.c (pas_book_dispose): same.

	* backend/pas/pas-book-view.c (pas_book_view_dispose): same.

	* backend/pas/pas-book-factory.c (pas_book_factory_dispose): same.

	* backend/pas/pas-backend-summary.c (pas_backend_summary_dispose): same.

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_dispose): same.

	* backend/pas/pas-backend-file.c (pas_backend_file_dispose): same.

	* backend/ebook/e-book-listener.c (e_book_listener_dispose): guard
	against multiple invocations.

	* backend/ebook/e-card.c (e_card_dispose): same.

	* backend/ebook/e-card-simple.c (e_card_simple_dispose): same.

	* backend/ebook/e-card-cursor.c (e_card_cursor_dispose): same.

	* backend/ebook/e-book.c (e_book_dispose): same.

	* backend/ebook/e-book-view-listener.c (e_book_view_listener_dispose): same.

svn path=/trunk/; revision=18687
2002-11-10 09:49:37 +00:00
Chris Toshok f1bf0afda9 use g_type_class_peek_parent.
2002-11-06  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-card-sexp.c
	(pas_backend_card_sexp_class_init): use g_type_class_peek_parent.

	* backend/pas/pas-card-cursor.c (pas_card_cursor_class_init): same.

	* backend/pas/pas-book-view.c (pas_book_view_class_init): same.

	* backend/pas/pas-book-factory.c (pas_book_factory_class_init): same.

	* backend/pas/pas-backend-summary.c (pas_backend_summary_class_init): same.

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_class_init): same.

	* backend/pas/pas-backend-file.c (pas_backend_file_class_init): same.

	* backend/ebook/e-book-marshal.list: ENUM -> INT.

	* backend/ebook/e-book-view.c (e_book_view_dispose): guard against
	this being called multiple times.
	(e_book_view_class_init): ENUM -> INT in the sequence_complete
	signal.

	* backend/ebook/e-book.c (e_book_do_response_open): un-ifdef the
	component_died signal stuff.

svn path=/trunk/; revision=18623
2002-11-07 03:44:41 +00:00
Dan Winship 6146f8e036 copy a memleak fix from pas-backend-ad.
* backend/pas/pas-backend-ldap.c (send_pending_adds): copy a
	memleak fix from pas-backend-ad.

svn path=/trunk/; revision=18552
2002-11-05 14:25:25 +00:00
Chris Toshok 3a40fbaf60 g_date_* => g_date_get_*, fixes G_DISABLE_DEPRECATED build.
2002-11-05  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/e-card.c: g_date_* => g_date_get_*, fixes
	G_DISABLE_DEPRECATED build.

	* backend/ebook/e-book-listener.[ch]: remove the servant crap i'd
	c&p'ed and put in here.

	* backend/ebook/e-book-view-listener.[ch]: remove the servant crap
	i'd c&p'ed and put in here.

	* backend/pas/pas-book-factory.[ch]: subclass from BonoboObject,
	and remove the servant crap from here too.  whee.

	* backend/pas/pas-card-cursor.[ch]: remove the servant crap i'd
	c&p'ed and put in here.

	* backend/pas/pas-book.[ch]: remove the servant crap i'd c&p'ed
	and put in here.

	* backend/pas/pas-book-view.[ch]: remove the servant crap i'd
	c&p'ed and put in here.

svn path=/trunk/; revision=18548
2002-11-05 12:16:52 +00:00
Chris Toshok 8e9511af0e port to gnome 2.
2002-11-05  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-card-sexp.[ch]: port to gnome 2.

	* backend/pas/pas-backend-file.[ch]: same.

	* backend/pas/pas-backend-file.[ch]: same.

	* backend/pas/pas-backend-ldap.[ch]: same.

	* backend/pas/pas-backend-summary.[ch]: same.

	* backend/pas/pas-backend.[ch]: same.

	* backend/pas/pas-book-factory.[ch]: same.

	* backend/pas/pas-book-view.[ch]: same.

	* backend/pas/pas-book.[ch]: same.

	* backend/pas/pas-card-cursor.[ch]: same.

	* backend/pas/pas-marshal.list: list of marshallers.

	* backend/pas/Makefile.am (libpas_a_SOURCES): add pas-marshal.c
	also add the marshal building foo.

	* backend/pas/.cvsignore: ignore pas-marshal.[ch]

svn path=/trunk/; revision=18544
2002-11-05 11:09:59 +00:00
Chris Toshok 110c6bb990 install evolutionperson.schema to $(datadir)/evolution.
2002-10-24  Chris Toshok  <toshok@ximian.com>

       * backend/pas/Makefile.am: install evolutionperson.schema to
       $(datadir)/evolution.

svn path=/trunk/; revision=18444
2002-10-26 10:00:52 +00:00
Chris Toshok b10ce5577d [ fixes #29067 ] we need to create a card_sexp even when doing summary
2002-10-20  Chris Toshok  <toshok@ximian.com>

	[ fixes #29067 ]
	* backend/pas/pas-backend-file.c (pas_backend_file_search): we
	need to create a card_sexp even when doing summary queries since
	it's used to check modifications of cards in the view.

svn path=/trunk/; revision=18404
2002-10-21 21:15:46 +00:00
Chris Toshok 6f487eb78c [ Fixes #31434 ] always retrieve the card from the db. use the summary
2002-09-30  Chris Toshok  <toshok@ximian.com>

	[ Fixes #31434 ]
	* backend/pas/pas-backend-file.c (do_summary_query): always
	retrieve the card from the db.  use the summary strictly for
	matching, not for storing all information.  This fixes completion
	of contact lists, since only 3 addresses were being stored and
	contact lists can have more.

svn path=/trunk/; revision=18271
2002-09-30 21:46:45 +00:00
Chris Toshok 5960e96268 set the timeout to 30 seconds. (query_ldap_root_dse): same, and also
2002-09-27  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (check_schema_support): set the
	timeout to 30 seconds.
	(query_ldap_root_dse): same, and also return the ldap_error since
	this function is the one that actually causes openldap to
	connect() to the ldap host.
	(pas_backend_ldap_connect): check the return value of
	query_ldap_root_dse, and error out if it's not SUCCESS.

svn path=/trunk/; revision=18251
2002-09-27 20:15:23 +00:00
Chris Toshok 3b7216e20e [ fixes #27923] up the version to 4_0 (4000).
2002-08-30  Chris Toshok  <toshok@ximian.com>

	[ fixes #27923]
	* backend/pas/pas-backend-summary.c: up the version to 4_0 (4000).
	(pas_backend_summary_load_item): handle wants_html{_set}, list,
	and list_show_addresses.
	(pas_backend_summary_save_item): same.
	(pas_backend_summary_add_card): same.
	(pas_backend_summary_get_summary_vcard): same.

svn path=/trunk/; revision=17932
2002-08-30 09:14:45 +00:00
Chris Toshok 7f3d3493a3 use strcasecmp here, since all the other helpers use case insensitive
2002-08-29  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-card-sexp.c (is_helper): use strcasecmp
	here, since all the other helpers use case insensitive
	comparisons.

	* backend/pas/pas-backend-summary.c (is_helper): same.

svn path=/trunk/; revision=17917
2002-08-29 09:03:04 +00:00
Chris Toshok 9d673d87ab return NULL if the list is empty. (pas_backend_ldap_connect): always try
2002-08-29  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (category_ber): return NULL if
	the list is empty.
	(pas_backend_ldap_connect): always try to use ldapv3, not just
	when we want to use tls.

svn path=/trunk/; revision=17916
2002-08-29 08:46:38 +00:00
Chris Toshok 87f846e09a spew the filter we're using for the search.
2002-08-28  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_search): spew
	the filter we're using for the search.

svn path=/trunk/; revision=17914
2002-08-29 06:08:07 +00:00
Chris Toshok 2839143b0b [ fixes #20348 ] deprecate "categories" in favor of "category". evolution
2002-08-28  Chris Toshok  <toshok@ximian.com>

	[ fixes #20348 ]
	* backend/pas/evolutionperson.schema: deprecate "categories" in
	favor of "category".  evolution no longer uses "categories".

	* backend/pas/pas-backend-ldap.c (category_populate): new
	function, "category" is the new name, and it's multivalued so we
	need the complex-prop stuff..
	(category_ber): new function, same.
	(category_compare): new function, same.

	* gui/component/addressbook.c (addressbook_search_activated): the
	text is "Category is" so we should use "is" instead of "contains"
	for the query.

svn path=/trunk/; revision=17885
2002-08-28 07:44:18 +00:00
Chris Toshok f4fbfa9176 [ Fixes #14835 ] notify_complete with InvalidQuery if the parse fails.
2002-08-27  Chris Toshok  <toshok@ximian.com>

	[ Fixes #14835 ]
	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_search):
	notify_complete with InvalidQuery if the parse fails.

svn path=/trunk/; revision=17883
2002-08-28 05:52:53 +00:00
Chris Toshok 147fe9f099 [ Fixes (almost certainly) #24649, #25494, #27351, and other LDAP search
2002-08-26  Chris Toshok  <toshok@ximian.com>

	[ Fixes (almost certainly) #24649, #25494, #27351, and other LDAP search crashes ]
	* backend/pas/pas-backend-ldap.c (view_destroy): use an EList
	instead of a GList to store the book_view's so we don't have weird
	issues with modifying the list while it's being traversed.
	(find_book_view): same.
	(create_card_handler): same.
	(remove_card_handler): same.
	(modify_card_modify_handler): same.
	(poll_ldap): same, and also ref the book_view before calling
	ldap_search_op_timeout (and therefore send_pending_adds).
	(ldap_search_handler): same.
	(ldap_op_add): warn about conflicting ldap msgid's (shouldn't ever
	happen..)
	(homephone_populate): make this a bit more robust (if values[0] ==
	NULL, values[1] won't be valid).
	(business_populate): same.
	(build_card_from_entry): break out of the prop_info loop when we
	get a match, and only set the simple field if the value != NULL.
	(ldap_search_dtor): free all the pending adds stuff.
	(pas_backend_ldap_process_get_book_view): g_list_prepend =>
	e_list_append.
	(pas_backend_ldap_remove_client): simplify the removing of the
	book (use g_list_remove instead of searching and then using
	g_list_remove_link.)
	(pas_backend_ldap_destroy): unref the book_views list.
	(pas_backend_ldap_init): initialize the EList for book_views.

svn path=/trunk/; revision=17870
2002-08-26 23:03:48 +00:00
Chris Toshok f64bfabfa5 take and pass the CallStatus to our listener.
2002-08-19  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-book-view.c (pas_book_view_notify_complete):
	take and pass the CallStatus to our listener.

	* backend/pas/pas-book-view.h: change the prototype for
	notify_complete to include the CallStatus.

	* gui/component/select-names/e-select-names-completion.c
	(e_select_names_completion_seq_complete_cb): add the status arg.

	* gui/widgets/e-addressbook-view.c
	(e_addressbook_view_class_init): init the search_result signal.
	(e_addressbook_view_init): connect to the model's search_result
	signal.
	(emit_search_result): emit our search_result signal.
	(search_result): call emit_search_result.

	* gui/widgets/e-addressbook-view.h (struct
	_EAddressbookViewClass): add the search_result signal.

	* gui/widgets/e-addressbook-model.c (sequence_complete): emit both
	a "search_result" as well as the "stop_state_changed" signal.
	(e_addressbook_model_class_init): init the search_result signal.

	* gui/widgets/e-addressbook-model.h: add search_result signal.

	* gui/component/addressbook.c (search_result): pop up a dialog
	telling the user why the search failed or was truncated.
	(addressbook_factory_new_control): connect to the "search_result"
	signal on the view.

	* conduit/address-conduit.c (sequence_complete): add the status
	parameter to sequence_complete.

	* backend/idl/addressbook.idl: add BookViewListener_CallStatus,
	and change notifySequenceComplete to take a CallStatus.

	* backend/pas/pas-backend-ldap.c (create_card_handler): pass
	status back in the notify_complete call.
	(remove_card_handler): same.
	(modify_card_modify_handler): same
	(ldap_search_handler): same, and parse out the ldap return code so
	we can report limits being properly.

	* backend/pas/pas-backend-file.c (do_summary_query): pass status
	back in the notify_complete call.
	(pas_backend_file_search): same, and get rid of the
	status_message, as the status is passed back properly.
	(pas_backend_file_search): pass status
	back in the notify_complete call.
	(pas_backend_file_changes): same.
	(pas_backend_file_process_create_card): same.
	(pas_backend_file_process_remove_card): same.
	(pas_backend_file_process_modify_card): same.

	* backend/ebook/e-book-util.c (simple_query_sequence_complete_cb):
	add status parameter.

	* backend/ebook/e-book-view-listener.c
	(e_book_view_listener_queue_status_event): change name from
	_queue_empty_event, and take a status arg.
	(e_book_view_listener_queue_id_event): init resp->status (to
	SUCCESS).
	(e_book_view_listener_queue_sequence_event): same.
	(e_book_view_listener_queue_message_event): same.
	(impl_BookViewListener_notify_sequence_complete): call
	queue_status_event, and convert the corba status to
	EBookViewStatus.
	(e_book_view_listener_convert_status): new function, conver the
	corba status to EBookViewStatus.

	* backend/ebook/e-book-view-listener.h: add a "status" slot to
	EBookViewListenerResponse.

	* backend/ebook/e-book-view.h: change prototype for
	sequence_complete signal.

	* backend/ebook/e-book-view.c (e_book_view_do_complete_event):
	sequence_complete takes a parameter now (EBookViewStatus).
	(e_book_view_class_init): add the enum arg to the signal.

	* backend/ebook/e-book-types.h: add EBookViewStatus enum.

svn path=/trunk/; revision=17814
2002-08-20 02:00:45 +00:00
Chris Toshok 78305f0bea add "cache-completions" here, since file completion results are blanket
2002-08-19  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-file.c
	(pas_backend_file_get_static_capabilities): add
	"cache-completions" here, since file completion results are
	blanket cached (as they're generated from a summary).

	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_process_get_cursor): there should be no search
	limit on the get_cursor_request, as it's meant to match every card
	it can.
	(ldap_search_handler): parse the ldap result in the
	RES_SEARCH_RESULT case.  we'll want more here soon, so we can
	notify the front end if the result was truncated due to either the
	size or time limit being exceeded.
	(pas_backend_ldap_process_get_book_view): in the case of a
	completion view, we hardcode (yeah yeah, i know, but really) the
	search limit to MIN (100, user-specified-limit).
	(pas_backend_ldap_search): each view has its own limit now,
	defaulting from the user specified one for normal searches but
	possibly different for completion views.  use the view's limit
	here.

svn path=/trunk/; revision=17811
2002-08-19 22:34:25 +00:00
Chris Toshok 1bfd78df26 new function to save a little typing. (find_book_view): same.
2002-08-16  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (book_view_notify_status): new
	function to save a little typing.
	(find_book_view): same.
	(pas_backend_ldap_connect): reorder things a bit - set the version
	to VERSION3 *before* doing TLS, as tls requires v3, and if we're
	doing ldaps://, do tls a little differently (not sure if this is
	strictly necessary, but the openldap source did it..  *shrug*).
	also, guard the schema check as this function can be called
	multiple times for the same server (if the server goes down or
	times us out.)
	(pas_backend_ldap_reconnect): new function, reconnect and if
	necessary reauth the user.
	(pas_backend_ldap_process_create_card): use
	find_book_view/book_view_notify_status/pas_backend_ldap_reconnect.
	(pas_backend_ldap_process_remove_card): same.
	(pas_backend_ldap_process_modify_card): same.
	(pas_backend_ldap_process_get_vcard): same.
	(pas_backend_ldap_process_get_cursor): same.
	(pas_backend_ldap_search): same.
	(poll_ldap): reconnect if ldap_result returns -1.
	(pas_backend_ldap_process_authenticate_user): ick ick ick save off
	the dn/passwd we auth with so we can use them to reauthenticate.

svn path=/trunk/; revision=17785
2002-08-16 12:19:52 +00:00
Chris Toshok eb8729cefa [ fix 27333 ] "local" -> "do-initial-query".
2002-08-16  Chris Toshok  <toshok@ximian.com>

	[ fix 27333 ]
	* gui/widgets/e-addressbook-model.c (get_view): "local" ->
	"do-initial-query".

	* backend/pas/pas-backend-file.c
	(pas_backend_file_get_static_capabilities): "local" ->
	"local,do-initial-query".

	* gui/widgets/e-addressbook-model.c (get_view): "local" ->
	"do-initial-query".

	* gui/component/addressbook.c (book_open_cb): Only assume the
	addressbook is local if "local" appears in its static
	capabilities.  We still use the ldap special case, but be nicer to
	other networked backends.

svn path=/trunk/; revision=17782
2002-08-16 07:54:16 +00:00
Chris Toshok 1d053f6c56 initialize summary->upgraded to quiet valgrind.
2002-08-08  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-summary.c (pas_backend_summary_init):
	initialize summary->upgraded to quiet valgrind.

svn path=/trunk/; revision=17749
2002-08-08 20:40:30 +00:00
Chris Toshok 6135f6ad45 [ roll in the following change from the 1.0 branch.] change the CALURI and
2002-07-31  Chris Toshok  <toshok@ximian.com>

	[ roll in the following change from the 1.0 branch.]
	* backend/pas/pas-backend-ldap.c:
	(prop_info): change the CALURI and FBURL ecard attributes to map to the
	RFC 2739 specified attributes.
        (check_schema_support): check to see if calEntry is supported.
        (add_objectclass_mod): insert calEntry if it's supported.
	* backend/pas/evolutionperson.schema: deprecate freeBusyURI
	and calendarURI.

svn path=/trunk/; revision=17657
2002-07-31 20:20:06 +00:00
Chris Toshok dad7bd83ff don't save empty strings. (pas_backend_summary_save): print out the errno
2002-07-27  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-summary.c (save_string): don't save
	empty strings.
	(pas_backend_summary_save): print out the errno when we fail.

svn path=/trunk/; revision=17623
2002-07-28 00:51:33 +00:00
Dan Winship 4e8818d320 Split pas-backend-file and pas-backend-ldap out of libpas and build them
* backend/pas/Makefile.am: Split pas-backend-file and
	pas-backend-ldap out of libpas and build them as separate (noinst)
	libraries libpasfile.a and libpasldap.a. This gets the db3 and
	LDAP dependencies out of libpas, and people trying to create an
	addressbook backend shouldn't be calling functions from the
	existing backends anyway so there's no reason to install them.

svn path=/trunk/; revision=17528
2002-07-22 18:21:21 +00:00
Peter Williams 515ebfd45c Install libversit.a so that people compiling against the addressbook can
2002-07-09  Peter Williams  <peterw@ximian.com>

       * libversit/Makefile.am (privlib_LIBRARIES): Install libversit.a so
       that people compiling against the addressbook can do so successfully.

       * Makefile.am: create our *Conf.sh files and dist them and install
       them.

       * configure.in: Define and subst some variables that the Conf.sh
       file need.

 2002-07-08  Peter Williams  <peterw@ximian.com>

       * backend/ebook/Makefile.am: Install libebook-static.la.
       Also change --all-static to -all-static, which is the right flag.

       * backend/pas/Makefile.am: Install the PAS headers in
       $(includedir)/evolution/pas. Install libpas.a


2002-07-08  Peter Williams  <peterw@ximian.com>

       * cal-util/Makefile.am: Install libcal-util-static.la
       and fix the -all-static flag to make it install statically.

       * pcs/Makefile.am: Install libpcs.a and its headers.

       * pcs/cal-backend-util.h: Same sort of include namespacing fix,
       but for pcs.

       * pcs/cal.h:
       * pcs/query.h:
       * pcs/cal-factory.h:
       * pcs/cal-backend.h:
       * pcs/cal-backend-file.h: Same.

2002-07-17  Peter Williams  <peterw@ximian.com>

       * calendar/cal-util/Makefile.am (GTKDOC_LIBS): Because we're
       using libtool as our LD, we can reference .la's and libtool
       will DTRT for us.

       * calendar/cal-client/Makefile.am (GTKDOC_LIBS): Same here.


2002-07-03  Peter Williams  <peterw@ximian.com>

       * Makefile.am: Install libeutil, libeconduit, and libedb3util and
       their headers.


2002-07-08  Peter Williams  <peterw@ximian.com>

       * Makefile.am: Reference the new libefilterbar.a.

 2002-07-12  Peter Williams  <peterw@ximian.com>

       * Makefile.am (INCLUDES): Add -I$(builddir)/libical/src/libical
       for the generated ical.h (some headers rely on this because
       they too get installed.)


2002-07-09  Peter Williams  <peterw@ximian.com>

       * e-timezone-dialog/Makefile.am: Add -I$(top_builddir)/libical/src/libical;
       some headers that we rely on get installed, so they point to the ical.h that
       gets generated and installed; consequently we need to be able to find the
       generated ical.h

       * misc/Makefile.am: Install libemiscwidgets.a and its headers. However,
       break EFilterBar into a separate libefilterbar.a because we don't want
       the installed library to depend on libfilter.

svn path=/trunk/; revision=17496
2002-07-17 21:03:19 +00:00
Chris Toshok e785008af0 free the full_name (as well as given_name. oops.)
2002-07-12  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-summary.c (free_summary_item): free the
	full_name (as well as given_name.  oops.)
	(pas_backend_summary_new): new summaries are version 3.0 now.
	(pas_backend_summary_load_item): all loaded summaries should be
	3.0+, as we fail to load versions lower than that.
	(pas_backend_summary_load_header): if the summary isn't version
	3.0 fail out, as we need to rebuild the entire file to cache the
	full_name fields.
	(pas_backend_summary_save_item): save out the full_name.
	(pas_backend_summary_add_card): put the item's full_name in the
	card.

svn path=/trunk/; revision=17447
2002-07-13 04:15:09 +00:00
Chris Toshok 2d16792fd5 actually remove the items from the pointer array too, so an error while
2002-07-10  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-summary.c (clear_items): actually remove
	the items from the pointer array too, so an error while loading
	doesn't leave the memory summary corrupted.
	(pas_backend_summary_load_header): bleah, load the num_items and
	summary_mtime in the right order :) Also, set upgraded to TRUE if
	we loaded a v1.0 summary.
	(pas_backend_summary_open): make this return a gboolean, return
	TRUE if the summary is already open (priv->fp != NULL).  return
	FALSE in error conditions.
	(pas_backend_summary_load): if summary_open returns FALSE, return
	FALSE, also set the dirty flag to FALSE after we load, and if the
	summary was upgraded write it out.
	(pas_backend_summary_save): update the in memory mtime to that of
	the file when we save.
	(summary_flush_func): if we're not dirty, do nothing and return.
	(pas_backend_summary_is_up_to_date): make sure we've opened the
	summary.
	(pas_backend_summary_get_summary_vcard): fix compiler warning.

svn path=/trunk/; revision=17416
2002-07-11 00:01:25 +00:00
Chris Toshok a3a24835e8 bleah, i hate this keyboard.
svn path=/trunk/; revision=17403
2002-07-10 09:44:43 +00:00
Chris Toshok 35624a9226 add Book.getCompletionView.
2002-07-10  Chris Toshok  <toshok@ximian.com>

	* backend/idl/addressbook.idl: add Book.getCompletionView.

	* backend/ebook/e-book.c (e_book_get_completion_view): new
	function, basically c&p of e_book_get_book_view, but call
	getCompletionView.

	* backend/ebook/e-book.h: add prototype for
	e_book_get_completion_view.

	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_process_client_requests): add a
	GetCompletionView case here that just calls the same code as
	GetBookView (since we don't build summaries for the ldap backend.)

	* backend/pas/pas-backend-file.c (do_summary_query): add
	@completion_search.  If it's TRUE, just create the vcards from the
	summary using pas_backend_summary_get_summary_vcard instead of
	looking them up from the db.
	(pas_backend_file_search): add @completion_search and pass it on
	to do_summary_query.
	(pas_backend_file_process_get_book_view): pass FALSE to
	pas_backend_file_search.
	(pas_backend_file_process_get_completion_view): new function,
	basically c&p pas_backend_file_process_get_book_view, but pass
	TRUE to pas_backend_file_search.
	(pas_backend_file_process_client_requests): add a case for
	GetCompletionView.
	(pas_backend_file_load_uri): track the change to the summary api -
	create the summary filename

	* backend/pas/pas-book.c (pas_book_queue_get_completion_view): new
	function, queue a GetCompletionView request to our queue.
	(impl_GNOME_Evolution_Addressbook_Book_getCompletionView): new
	function, call pas_book_queue_get_completion_view.
	(pas_book_respond_get_completion_view): new function, just call
	notifyViewRequested.
	(pas_book_free_request): add a case for GetCompletionView.
	(pas_book_get_epv): fill in epv->getCompletionView.

	* backend/pas/pas-book.h: add a GetCompletionView PASOperation,
	and a new structure (PASGetCompletionViewRequest).  Also, add
	get_completion_view to PASRequest.

	* backend/pas/pas-backend-summary.c (clear_items): remove the
	items from the hash table.
	(pas_backend_summary_new): db_path -> summary_path.
	(pas_backend_summary_destroy): db_.path -> summary_path, and
	destroy the hash table.
	(pas_backend_summary_init): db_path = summary_path, and initialize
	the id_to_item hashtable.
	(pas_backend_summary_load_header): handle the upgrading from
	version 1.0 to version 2.0 (the addition of an mtime field in the
	header)
	(pas_backend_summary_load_item): version 1.0 and 2.0 have the same
	format for items.
	(pas_backend_summary_open): new function.  open the summary so we
	can load the header (and get the mtime).
	(pas_backend_summary_load): rework this a bit since the header has
	already been loaded, and also add the items to the hashtable.
	(pas_backend_summary_add_card): add the new item to the hashtable.
	(pas_backend_summary_remove_card): remove the item from the hash
	table.
	(pas_backend_summary_is_up_to_date): new function, chekc @t
	against the summary's mtime.
	(pas_backend_summary_get_summary_vcard): create a vcard from the
	fields we have in the summary.

	* backend/pas/pas-backend-summary.h: add prorotypes for
	pas_backend_summary_is_up_to_date and
	pas_backend_summary_get_summary_vcard.

svn path=/trunk/; revision=17402
2002-07-10 08:47:11 +00:00
Chris Toshok 987eeb288e add pas-backend-summary.[ch].
2002-06-29  Chris Toshok  <toshok@ximian.com>

	* backend/pas/Makefile.am (libpas_a_SOURCES): add
	pas-backend-summary.[ch].

	* backend/pas/pas-backend-file.c (string_to_dbt): move this to the
	top of the file so it can be used in..
	(build_summary): loop over the db, adding cards ot the summary.
	(do_summary_query): call pas_backend_summary_search and loop over
	the returned id's looking them up in the db.
	(pas_backend_file_search): call
	pas_backend_summary_is_summary_query, and either call
	do_summary_query if it's a query over just the set of attributes
	in the summary or use the old, slow method if not.
	(pas_backend_file_process_create_card): call
	pas_backend_summary_add_card.
	(pas_backend_file_process_remove_card): call
	pas_backend_summary_remove_card.
	(pas_backend_file_process_modify_card): call remove_card/add_card.
	(pas_backend_file_load_uri): try to load the summary file, and if
	it doesn't exist create it.
	(pas_backend_file_destroy): unref the summary.

	* backend/pas/pas-backend-summary.[ch]: new files, reading and
	writing (and querying) summaries.

svn path=/trunk/; revision=17330
2002-06-30 08:18:44 +00:00
Chris Toshok 50bf7290e8 use ldap_unbind_ext. (create_card_handler): don't leak the new vcard.
2002-06-15  Chris Toshok  <toshok@ximian.com>

        * backend/pas/pas-backend-ldap.c (pas_backend_ldap_connect): use
        ldap_unbind_ext.
        (create_card_handler): don't leak the new vcard.
        (pas_backend_ldap_process_authenticate_user): don't leak the dn.

svn path=/trunk/; revision=17197
2002-06-15 23:05:35 +00:00
Chris Toshok 9ad7232a43 up the max threshold to 3000 cards from 1000 cards.. seems to improve
2002-06-14  Chris Toshok  <toshok@ximian.com>

        * backend/pas/pas-backend-file.c (pas_backend_file_search): up the
        max threshold to 3000 cards from 1000 cards.. seems to improve
        performance a bit.  also remove the g_list_reverse since it
        doesn't matter what order the cards arrive to the gui.
        (pas_backend_file_changes): plug memory leaks.

svn path=/trunk/; revision=17196
2002-06-15 22:57:30 +00:00
Chris Toshok 500a46c6b7 fill in source->ssl. (addressbook_source_dialog_set_source): set up
2002-04-18  Chris Toshok  <toshok@ximian.com>

	* gui/component/ldap-config.c (addressbook_dialog_get_source):
	fill in source->ssl.
	(addressbook_source_dialog_set_source): set up auth/scope/ssl
	option menus properly.

	* gui/component/addressbook-storage.c
	(addressbook_storage_init_source_uri): always include the
	limit/ssl in the uri so we don't need to rely on defaults
	everywhere.
	(ldap_source_foreach): store the ssl option.

	* gui/component/addressbook-storage.h: reorder SSLType to match
	the UI.

	* backend/pas/pas-backend-ldap.c: (struct _PASBackendLDAPPrivate)
	add field for ldap_timeout.
	(pas_backend_ldap_connect): reorder things a bit - we need to
	start tls before the root dse query, if we can.
	(pas_backend_ldap_load_uri): track the way ssl parameters are
	given in the uri, and parse out the timeout.

	* gui/component/ldap-config.c (port_changed_func): use the
	symbolic SSL name instead of an integer constant.

svn path=/trunk/; revision=16529
2002-04-18 22:43:54 +00:00
Chris Toshok 9b7cc54d6f fix memory leaks.
2002-04-18  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (get_ldap_library_info): fix
	memory leaks.

	* gui/component/GNOME_Evolution_Addressbook.oaf.in: remove the
	Addressbook_ConfigControl stuff to LDAP_ConfigControl.

	* gui/component/Makefile.am (evolution_addressbook_SOURCES):
	remove addressbook-config.* and add ldap-config.*
	(glade_DATA): same.
	(evolution_addressbook_LDADD): add LDAP_LIBS.

	* gui/component/addressbook-component.c (owner_set_cb):
	addressbook_config_register_factory =>
	ldap_config_register_factory.

	* gui/component/addressbook.c (book_open_cb): remove source->type
	check - they're always LDAP.
	(load_uri_cb): same.

	* gui/component/addressbook-storage.c (ldap_unparse_ssl): new
	function.
	(ldap_parse_ssl): new function.
	(addressbook_storage_init_source_uri): use a more flexible scheme
	to build up the uri's, and add in the ssl parameter.
	(load_source_data): fill in source->ssl, and remove source->type
	assignment.
	(addressbook_source_copy): copy source->ssl, and remove
	source->type copy.
	(create_ldap_folder): addressbook_create_new_source =>
	ldap_config_create_new_source.

	* gui/component/addressbook-storage.h: remove
	AddressbookSourceType (it was always LDAP), and add
	AddressbookLDAPSSLType.

svn path=/trunk/; revision=16524
2002-04-18 21:26:48 +00:00
Dan Winship 2e090eec0f Fix spelling of E_CARD_SIMPLE_PHONE_ID_TTYTDD and
* backend/ebook/e-card-simple.h: Fix spelling of
	E_CARD_SIMPLE_PHONE_ID_TTYTDD and E_CARD_SIMPLE_FIELD_PHONE_TTYTDD
	(they previously ended with "TTD" instead of "TDD")

	* backend/ebook/e-card-simple.c: Update for spelling fix.

	* backend/pas/pas-backend-ldap.c: Likewise

svn path=/trunk/; revision=16321
2002-04-02 15:56:17 +00:00
Chris Toshok 3087344420 don't free req->vcard. it's freed in pas_book_free_request.
2002-03-27  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-file.c
	(pas_backend_file_process_create_card): don't free req->vcard.
	it's freed in pas_book_free_request.
	(pas_backend_file_process_remove_card): don't free req->id for the
	same reason.
	(pas_backend_file_process_modify_card): don't free req->vcard for
	the same reason.
	(pas_backend_file_process_get_changes): don't free req->change_id
	or release_unref the listener for the same reason.

svn path=/trunk/; revision=16265
2002-03-27 22:44:25 +00:00
Chris Toshok 9db0356726 make sure to call ldap_value_free (values);, and ldap_msgfree (resp).
2002-03-27  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (check_schema_support): make sure
	to call ldap_value_free (values);, and ldap_msgfree (resp).
	(get_ldap_library_info): don't ask me why, but it appears we have
	to free each extension char*.
	(query_ldap_root_dse): make sure to free values in the
	subschemaSubentry code before overwriting it, and call
	ldap_msgfree(resp) when we're all done.
	(build_card_from_entry): don't leak the DN, ldap attributes, or
	the berval the ldap_*_attribute calls use to step through the
	attributes.  the docs say this berval is freed when
	ldap_next_attribute returns NULL, but if we don't free it it leaks
	a substantial amount of memory.
	(pas_backend_ldap_search): make sure to only allocate *op once,
	and fix the g_warning since op isn't valid in its scope anymore.

svn path=/trunk/; revision=16262
2002-03-27 22:15:35 +00:00
Chris Toshok 9ccdadd473 add TLSNotAvailable to BookLister_CallStatus.
2002-03-09  Chris Toshok  <toshok@ximian.com>

	* backend/idl/addressbook.idl: add TLSNotAvailable to
	BookLister_CallStatus.

	* backend/ebook/e-book-types.h: add TLS_NOT_AVAILABLE to the EBookStatus enum.

	* backend/ebook/e-book-listener.c
	(e_book_listener_convert_status): add TLS_NOT_AVAILABLE to the
	switch.

	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_get_static_capabilities): fix name.
	(pas_backend_ldap_class_init): fix name.
	(pas_backend_ldap_connect): change return type to CallStatus so we
	can return different errors from here.  Also, do STARTTLS if the
	user has asked for it and the connection supports it, returning
	TLSNotAvailable (and close the connection) if they chose to
	require it.
	(pas_backend_ldap_load_uri): return pas_backend_ldap_connect.
	(func_beginswith): pull in change from evolution-1-0-branch to
	make full_name beginswith search both cn and sn.

svn path=/trunk/; revision=16005
2002-03-10 01:57:47 +00:00
Chris Toshok b6d54c7762 since I've gone ahead and made the file backend (by way of
2002-03-09  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-addressbook-view.c (jump_to_letter): since I've
	gone ahead and made the file backend (by way of
	pas-backend-card-sexp.c) use case insensitive searches for
	beginswith, there's no need to list upper and lower case here.

	* gui/component/addressbook.c (addressbook_search_option_items):
	reorder things to put "Any field contains" at the end, since it's
	the least efficient search.  Also reorder the enum to the same
	ordering.  Change "Name contains" to "Name begins with" and change
	"Email contains" to "Email is".
	(addressbook_search_activated): change FULL_NAME to beginswith,
	and change EMAIL to is to match the labels.

	* backend/pas/pas-backend-card-sexp.c (compare_name): new
	function, so we can compare both full and family names (so
	beginswith can operate on them both.)
	(endswith_helper): use e_utf8_strstrcase here, since all the
	backends backends use case insensitive searching.
	(func_endswith): same.

svn path=/trunk/; revision=16004
2002-03-10 01:47:02 +00:00
Chris Toshok da6e1ea98d track union/struct change. (pas_book_queue_remove_card): same.
2002-03-07  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-book.c (pas_book_queue_create_card): track
	union/struct change.
	(pas_book_queue_remove_card): same.
	(pas_book_queue_modify_card): same.
	(pas_book_queue_get_cursor): same.
	(pas_book_queue_get_vcard): same.
	(pas_book_queue_authenticate_user): same.
	(pas_book_queue_get_book_view): same.
	(pas_book_queue_get_changes): same.
	(pas_book_free_request): new function - free everything we need to
	for each type of request.
	(pas_book_destroy): call pas_book_free_request here instead of
	just freeing 3 elements of the old struct.  yay plugging memleaks.

	* backend/pas/pas-book.h: make PASRequest a union and split out
	members into structs, so it's a little clearer which fields are
	used by which requests.  Also, add prototype for
	pas_book_free_request so backends can just free everything at once
	(usually in their requests_queued signal func.)

	* backend/pas/pas-backend-file.c
	(pas_backend_file_process_create_card): track struct/union change.
	(pas_backend_file_process_remove_card): same.
	(pas_backend_file_process_modify_card): same.
	(pas_backend_file_build_cards_list): same.
	(pas_backend_file_process_get_vcard): same.
	(pas_backend_file_process_get_cursor): same.
	(pas_backend_file_process_get_book_view): same.
	(pas_backend_file_process_get_changes): same.
	(pas_backend_file_process_check_connection): same.
	(pas_backend_file_process_authenticate_user): same.
	(pas_backend_file_process_get_supported_fields): same.
	(pas_backend_file_process_client_requests): case the union to the
	specific struct and pass it to the process_* functions.  also,
	call pas_book_free_request here, instead of relying on each of the
	functions to free their stuff.

svn path=/trunk/; revision=15987
2002-03-08 00:51:11 +00:00
Chris Toshok 8ad83fdce7 don't ref the view here, since it keeps the view alive until the search is
2002-02-28  Chris Toshok  <toshok@ximian.com>

        * backend/pas/pas-backend-ldap.c (pas_backend_ldap_search): don't
        ref the view here, since it keeps the view alive until the search
        is over, which we don't want.  we want the view's death to cancel
        the search.  This speeds up starting new searches after one is
        already active (since switching searches actually creates a new
        book view and destroys the old one.)
        (ldap_search_dtor): remove the matching unref here.  The unref as
        it was was incorrect anyway, and caused a crash (we needed
        search_op->view, not op->view.)

svn path=/trunk/; revision=15877
2002-02-28 21:51:17 +00:00
Chris Toshok c09b6f1f2b i2002-02-26 Chris Toshok <toshok@ximian.com>
* backend/pas/pas-backend-file.c (pas_backend_file_search): move
        card_count++ inside the if that checks to see if a card matches
        (and adds the card to the list).

svn path=/trunk/; revision=15872
2002-02-28 20:24:44 +00:00
Chris Toshok 2d731c96fc [fixes bug #20690] the data arg is not GList** anymore, it's
2002-02-27  Chris Toshok  <toshok@ximian.com>

        [fixes bug #20690]
        * backend/pas/pas-backend-ldap.c (func_and): the data arg is not
        GList** anymore, it's PASBackendLDAPSExpData*, so use
        ldap_data->list instead of *list.
        (func_or): same.
        (func_not): same.
        (func_contains): same.
        (func_is): same.
        (func_endswith): same.
        (func_beginswith): same, but also special case the beginswith
        "fileAs" query type (the one used by the alphabet buttons on the
        right hand side, so we can deal with entries that don't have
        fileAs attributes, and return meaningful responses.)
        (pas_backend_ldap_build_query): initialize the
        PASBackendLDAPSExpData struct and pass that instead of &list.
        Also, take the PASBackendLDAP arg to add to the struct in case we
        need it at some point in the future.
        (ldap_search_handler): pass in the PASBackendLDAP.

svn path=/trunk/; revision=15871
2002-02-28 20:20:42 +00:00
Chris Toshok 1755b16c23 [ Fixes bugs 20740, 16680, and god knows what else :) ] double the
2002-02-22  Chris Toshok  <toshok@ximian.com>

	[ Fixes bugs 20740, 16680, and god knows what else :) ]
	* gui/widgets/e-addressbook-model.c (create_card): double the
	allocated size every time we need more space instead of using a
	fixed size increment.  this helps huge queries.  Also, remove the
	gtk_object_get of "file_as", as it was dead code.
	(book_view_loaded): handle errors here (by popping up a dialog).

	* backend/pas/pas-backend-ldap.c (view_destroy): search_idle ->
	search_timeout.
	(build_card_from_entry): comment out some spew, and unref ecard
	when we're done to plug a memory leak.
	(send_pending_adds): send along to the client all the cards we've
	been saving up.
	(poll_ldap): use a timeout for ldap_result to keep the backend
	from blocking (and it turns out keep the frontend from hanging
	waiting on a ref to complete) on large db's with few matches.

	Also, add some fairly smart, self-tuning aggregating of cards.
	Keep track of the number of cards we've sent the last time through
	as well as this time, and estimate the number we want to aggregate
	the next time based on them (we average them at the moment),
	subject to maximum/minimum number of cards.  also, we have a
	maximum aggregation time, after which we force a flush if there
	are pending cards and recalculate our target pending number.
	there's a minimum wait time to possibly keep outselves from
	spamming the ui, although it's 0 at the moment.

	Lastly, make sure to only notify the GUI of status messages when
	we need to.  this results in a *huge* savings.
	(ldap_search_handler): initialize all the pending card stuff, and
	use a timeout instead of an idle function for poll_ldap.

	* backend/ebook/e-book-view-listener.c
	(e_book_view_listener_queue_response): performance optimization
	for large adds.  If we're a CardAddedEvent and there's an existing
	CardAddedEvent at the end of the queue, just concat the lists of
	cards together.  This is to keep the gui from falling further and
	further behind the ldap backend, which is merrily spewing updates
	at the gui.

svn path=/trunk/; revision=15807
2002-02-23 04:36:10 +00:00
Chris Toshok 9193a985af track change to signature, and (for now) just change all the return
2002-02-20  Chris Toshok  <toshok@ximian.com>

        * backend/pas/pas-backend-file.c (pas_backend_file_load_uri):
        track change to signature, and (for now) just change all the
        return FALSE's to _RepositoryOffline (what FALSE used to map to in
        pas_book_factory_process_request), and change TRUE to _Success.

        * backend/pas/pas-backend-ldap.c (pas_backend_ldap_load_uri):
        track change to signature, and differentiate between
        pas_backend_ldap_connect failing (RepositoryOffline), and
        ldap_url_parse failing (OtherError).

        * backend/pas/pas-book-factory.c
        (pas_book_factory_process_request): since pas_backend_load_uri
        returns status now, use it to nodify the BookListener if there's a
        failure.

        * backend/pas/pas-backend.c (pas_backend_load_uri): track change
        to signature.

        * backend/pas/pas-backend.h: change return type of
        pas_backend_load_uri to
        GNOME_Evolution_Addressbook_BookListener_CallStatus to allow
        differentiation between failure types.

        * backend/ebook/e-book-listener.c
        (e_book_listener_convert_status): handle _AUTHENTICATION_FAILED.

        * backend/ebook/e-book-types.h (EBookStatus): add
        _AUTHENTICATION_FAILED.

svn path=/trunk/; revision=15779
2002-02-21 04:34:28 +00:00
Chris Toshok e17651e635 if the load_uri fails, notify the listener that the repository is offline.
2002-02-18  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-book-factory.c
	(pas_book_factory_process_request): if the load_uri fails, notify
	the listener that the repository is offline.  (partial fix for bug
	20347)

svn path=/trunk/; revision=15758
2002-02-19 00:20:21 +00:00
Chris Toshok d866ac96b1 escape commas in the dn, since they're used by ldap to specify the node's
2002-02-18  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (create_dn_from_ecard): escape
	commas in the dn, since they're used by ldap to specify the node's
	placement in the tree. (fixes bug 20089)
	(rfc2254_escape): just use sprintf and %02X instead.

svn path=/trunk/; revision=15756
2002-02-19 00:06:39 +00:00
Christopher James Lahey 22c314f722 New functions that take a file:// url ending in the directory name and
2002-02-13  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-book-util.c, backend/ebook/e-book-util.h
	(e_book_expand_uri, e_book_load_address_book_by_uri,
	e_book_use_address_book_by_uri): New functions that take a file://
	url ending in the directory name and automatically append the
	addressbook.db and do the appropriate thing.

	* backend/pas/pas-backend-card-sexp.c,
	backend/pas/pas-backend-card-sexp.h: Added copyright notice here.

	* gui/component/addressbook-component.c
	(destination_folder_handle_drop), gui/component/addressbook.c
	(set_prop): Use e_book_expand_uri instead of
	addressbook_expand_uri.

	* gui/component/addressbook-storage.c: Fixed the fcntl include
	here.

	* gui/component/addressbook.c (ContactsCopyToFolder,
	ContactsMoveToFolder): Added handlers for these two verbs.

	* gui/component/addressbook.h: Removed addressbook_expand_uri in
	favor of e_book_expand_uri.

	* gui/widgets/e-addressbook-reflow-adapter.c (transfer_cards):
	Added code to handle Move to and Copy to right click menu items.

	* gui/widgets/e-addressbook-util.c,
	gui/widgets/e-addressbook-util.h (e_addressbook_transfer_cards):
	New function to pop up a dialog and transfer a set of cards to the
	given folder.

	* gui/widgets/e-addressbook-view.c,
	gui/widgets/e-addressbook-view.h (display_view): Don't attach to
	the view if it doesn't exist yet.  We have to make this then
	attach later.
	(e_addressbook_view_copy_to_folder,
	e_addressbook_view_move_to_folder): New functions utilizing
	e_addressbook_transfer_cards.
	(table_right_click): Add copy_to_folder and move_to_folder to the
	right click menu for tables here.
	(e_addressbook_view_discard_menus): Handle menu unmerging here.

	* gui/widgets/e-minicard-view-widget.h (struct
	_EMinicardViewWidget): Removed unused field.

svn path=/trunk/; revision=15710
2002-02-13 19:35:13 +00:00
Chris Toshok f41e2fe50e compute the change db filename based on our contact db filename.
2002-01-30  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-file.c (pas_backend_file_changes):
	compute the change db filename based on our contact db filename.
	(pas_backend_file_load_uri): store the filename in
	bf->priv->filename.
	(pas_backend_file_destroy): free the filename, and (!) free
	bf->priv too.

svn path=/trunk/; revision=15529
2002-01-30 21:11:13 +00:00