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-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-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-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
* 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-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-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-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-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-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-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-01 Jeffrey Stedfast <fejj@ximian.com>
* backend/ebook/e-destination.c (e_destination_is_auto_recipient):
New function to find out if a destination was one which was
auto-matically set by Evolution.
(e_destination_set_auto_recipient): Set whether or not the dest is
an auto-recipient.
(e_destination_touch): Don't touch the address if it is an
auto_recipient.
(e_destination_list_to_vector_sized): New function to avoid having
to calculate the length of the list ourselves. Allows for a bit of
optimization if our caller knows the length of the list.
(e_destination_xml_encode): Encode the auto_recipient bit.
(e_destination_xml_decode): Decode the auto_recipient bit.
svn path=/trunk/; revision=15550
2002-02-01 Christopher James Lahey <clahey@ximian.com>
* backend/ebook/e-card-simple.c (e_card_simple_sync_card): Made
this preserve addressbook flags other than the first three.
* backend/ebook/e-card-types.h: Added E_CARD_ADDR_MASK and
E_CARD_ADDR_DEFAULT.
* backend/ebook/e-card.c (get_address_flags): Added "PREF" to
E_CARD_ADDR_DEFAULT mapping.
* backend/ebook/test-client.c: Added #include "e-book-util.h".
svn path=/trunk/; revision=15546
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-25 Jeffrey Stedfast <fejj@ximian.com>
* backend/ebook/e-destination.c (e_destination_is_valid): Don't
check for an @ in the email address. This is to fix bug #10960.
svn path=/trunk/; revision=15477
2002-01-24 Chris Toshok <toshok@ximian.com>
[ fixes bug 16097 ]
* gui/component/addressbook-config.glade: gui love for the new
auth stuff.
* gui/component/addressbook.c (load_uri_cb): track change to auth,
and offer up different prompt strings depending on which method
(binddn or email) we're using.
* gui/component/addressbook-storage.c (ldap_unparse_auth): use the
new auth types for ldap.
(ldap_parse_auth): same.
(addressbook_storage_auth_type_to_string): new function.
(load_source_data): get the binddn too.
(ldap_source_foreach): store out binddn or emailaddr, depending on
the auth type chosen.
* gui/component/addressbook-storage.h: add the more detailed auth
types, add "binddn" to the source structure, and add a prototype
for addressbook_storage_auth_type_to_string.
* gui/component/addressbook-config.c (auth_checkbutton_changed):
set the auth stuff (in)sensitive.
(auth_optionmenu_activated): new function.
(addressbook_source_dialog_set_source): track UI change.
(addressbook_source_dialog_get_source): same.
(add_scope_activate_cb): rename add_activate_cb to this to
distinguish it from the auth stuff.
(add_auth_activate_cb): new function.
(addressbook_source_dialog): track change to auth UI stuff.
(addressbook_storage_auth_type_to_string): new function.
* backend/ebook/e-book.h: add auth_method arg to
e_book_authenticate_user.
* backend/ebook/e-book.c (e_book_authenticate_user): track change
to prototype - add auth_method arg, and pass it along to the CORBA
call.
* backend/ebook/test-client.c (book_open_cb): track api change -
keep this building.
* backend/pas/pas-book.h: add auth_method slot in PASRequest.
* backend/pas/pas-book.c (pas_book_queue_authenticate_user): add
auth_method arg and add it to the PASRequest.
(impl_GNOME_Evolution_Addressbook_Book_authenticateUser): track
idl change, add auth_method and pass it along to
pas_book_queue_authenticate_user.
* backend/pas/pas-backend-ldap.c
(pas_backend_ldap_process_authenticate_user): support both
"ldap/simple-email" and "ldap/simple-binddn" auth methods.
* backend/idl/addressbook.idl: add "in string authMethod" to
authenticateUser.
svn path=/trunk/; revision=15467
2002-01-22 Chris Toshok <toshok@ximian.com>
[ fixes bug # 16864 ]
* backend/ebook/evolution-ldif-importer.c (getValue): create and
return a GString here, instead of writing to a fixed size buffer.
(parseLine): use a GString here instead of a fixed size buffer.
svn path=/trunk/; revision=15427
2002-01-21 Christopher James Lahey <clahey@ximian.com>
* backend/pas/pas-backend-ldap.c (ldap_search_handler): Set the
number of cards to return to the value specified in the ldap uri,
leaving the default at 100. Fixes Ximian bug #13953.
* gui/component/addressbook-config.c (addressbook_source_dialog),
gui/component/addressbook-config.glade: Added a limit entry here
to edit the limit field of the source.
* gui/component/addressbook-storage.c,
gui/component/addressbook-storage.h
(addressbook_storage_init_source_uri): Added a limit field to this
class and pass that value through in the uri that's generated.
svn path=/trunk/; revision=15415
2002-01-18 Christopher James Lahey <clahey@ximian.com>
* backend/ebook/e-card-compare.c: Made username match with no
domain match be vague instead of partial. Fixes Ximian bug
#13612.
svn path=/trunk/; revision=15356
2002-01-03 Joe Shaw <joe@ximian.com>
* backend/ebook/test-card.c: Add a test for getting arbitrary
fields.
* backend/pas/pas-backend-card-sexp.c (compare_arbitrary): Added.
(prop_info_table): Add a LIST_PROP for arbitrary fields.
2002-01-03 Nat Friedman <nat@ximian.com>
* backend/ebook/e-book.c (activate_factories_for_uri): Free the
query if the oaf response is of zero length.
svn path=/trunk/; revision=15275
2001-12-18 JP Rosevear <jpr@ximian.com>
* conduit/address-conduit.c (check_for_slow_setting): go slow and
clear the map if the last uri and the current uri do not match
(post_sync): save the last uri
* conduits/address-conduit-config.h: handle a last uri config
option
2001-12-18 Chris Toshok <toshok@ximian.com>
* gui/component/addressbook.c (addressbook_default_book_open):
change this to match its e-book counterpart, and only failover to
the local addressbook if the protocol wasn't supported. that way
errors like "failure to connect" are still reported to the user.
* backend/ebook/e-book-util.h: add prototypes for
e_book_load_default_book and e_book_get_config_database.
* backend/ebook/e-book-util.c (e_book_default_book_open): new
function, basically cut and paste addressbook_default_book_open
from addressbook.c here.
(e_book_load_default_book): cut and past
addressbook_load_default_book here, pretty much, except leave off
the auth stuff.
(e_book_get_config_database): new function, returns the
Bonobo_ConfigDatabase for e_book_load_default_book to use.
* conduit/address-conduit.c (start_addressbook_server): use
e_book_load_default_book here.
svn path=/trunk/; revision=15178
2001-12-13 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-book-util.c (simple_query_new): Used
g_strdup_printf to dup a string. Doh! Changed to g_strdup.
(Bug #17126)
svn path=/trunk/; revision=15031
2001-12-05 Chris Toshok <toshok@ximian.com>
* backend/pas/pas-backend-ldap.c
(search_for_dn_with_objectclasses): move search_for_dn's contents
here, and add an "existing_objectclasses" parameter that we pass
on to build_card_from_entry.
(search_for_dn): call search_for_dn_with_objectclasses with NULL
for existing_objectclasses.
(build_card_from_entry): if existing_objectclasses is non-NULL,
fill it in with the list of existing objectclass values for this
entry.
(add_objectclass_mod): if existing_objectclasses is non-NULL,
meaning we're modifying an entry, search in the existing
objectclasses for the ones we want to be there, and only add
what's missing. If none are missing, don't add objectclass_mod to
the list of mods.
(create_card_handler): track change to add_objectclass_mod (pass
NULL).
(modify_card_handler): use search_for_dn_with_objectclasses
instead of search_for_dn, and pass the existing objectclasses to
add_objectclass_mod. also, free the list when we're done.
(poll_ldap): track change to build_card_from_entry (pass NULL).
svn path=/trunk/; revision=14909
2001-12-05 Chris Toshok <toshok@ximian.com>
* gui/contact-editor/e-contact-editor.c (enable_writable_fields):
we need to be able to disable non-labels here as well. since
we're using enable_widget and not gtk_widget_set_sensitive, it's
okay to handle entries/text's, etc, here.
(widget_field_mappings): add label-caluri and label-fburl here.
* gui/contact-editor/contact-editor.glade: change the label names
for the freebusy/calendar urls to have more descriptive names,
since we use them in e-contact-editor.c now.
* backend/pas/pas-backend-ldap.c: add support for
caluri/calendarURI, fburl/freeBusyURI.
* backend/pas/evolutionperson.schema: add calendarURI and
freeBusyURI.
svn path=/trunk/; revision=14908
2001-12-03 Jon Trowbridge <trow@ximian.com>
* gui/component/select-names/e-select-names-manager.c (focus_out_cb): Clean
ESelectNamesModel on focus-out. (Half of a fix for 15656)
* backend/ebook/e-destination.c (nonempty): Fix this function
and make it utf8-safe. (The other half of the fix for 15656)
svn path=/trunk/; revision=14855
2001-11-14 Chris Toshok <toshok@ximian.com>
* backend/pas/pas-backend-ldap.c (search_for_dn): check against
LDAP_SUCCESS as the return value, not -1.
(pas_backend_ldap_build_all_cards_list): same.
(pas_backend_ldap_process_authenticate_user): same.
svn path=/trunk/; revision=14724
2001-11-09 Chris Toshok <toshok@ximian.com>
[ Fixes Ximian bug #14687 ]
* backend/pas/pas-backend-file.c
* backend/pas/pas-book-factory.c
(pas_book_factory_process_request): do load_uri before add_client,
so we know if the load actually worked (add_client uses this
information to respond to the new client.) before this change,
the client would still think the book was in a useful state even
if the load_uri failed.
* backend/pas/pas-backend-ldap.c (pas_backend_ldap_add_client): if
the we're not connected, say so.
* backend/pas/pas-backend-file.c (pas_backend_file_add_client):
same.
(pas_backend_file_load_uri): don't report_writable here,
add_client does it. was only needed before because of the
improper ordering in pas-book-factory.c above.
svn path=/trunk/; revision=14655
2001-11-09 Chris Toshok <toshok@ximian.com>
[ Fixes Ximian bug #14646 ]
* gui/component/addressbook.c (addressbook_default_book_open): new
function. if the default_book failed to load, load the local
addressbook in its place.
addressbook_load_default_book): if we're loading the default_book
uri, use addressbook_default_book_open as the open_response.
* backend/ebook/e-book.c (e_book_load_uri_step): reset the
load_state to NotLoaded so we can attempt another load_uri on
the book if it fails.
svn path=/trunk/; revision=14654
2001-11-02 Christopher James Lahey <clahey@ximian.com>
* backend/ebook/e-card-simple.c (e_card_simple_get): Check for
NULL dates before converting them to strings. Fixes Ximian bug
#14394.
svn path=/trunk/; revision=14579
2001-10-29 Chris Toshok <toshok@ximian.com>
* backend/pas/pas-backend-ldap.c (add_objectclass_mod): overload
this function for modifying objectclasses too, so we can make sure
evolutionPerson shows up in the objectclasses of an entry if it
shows up in the schema for the server.
(create_card_handler): add @replace = FALSE in the call to
add_objectclass_mod.
(modify_card_handler): call add_objectclass_mod with @replace =
TRUE.
(anniversary_compare): fix typo - return "equal", not "TRUE".
(birthday_compare): same.
svn path=/trunk/; revision=14402
2001-10-29 Christopher James Lahey <clahey@ximian.com>
* backend/ebook/e-card-simple.c (file_as_get_style,
file_as_set_style): Use the actual ECardName in the ECard instead
of parsing the full_name here.
svn path=/trunk/; revision=14338
2001-10-29 Christopher James Lahey <clahey@ximian.com>
* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h
(e_card_simple_set_name): New function to set the ECardName on
this card and fix the file_as if necessary.
svn path=/trunk/; revision=14337
2001-10-29 Christopher James Lahey <clahey@ximian.com>
* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h
(e_card_simple_get): Handle returning dates here.
(e_card_simple_get_allow_newlines): New function. Returns whether
it makes much sense to have newlines in this string.
* gui/component/addressbook-config.c,
gui/component/addressbook-config.h
(addressbook_create_new_source): The first argument here should
be const.
* gui/component/addressbook-storage.c: Added #include
"addressbook-config.h".
* gui/widgets/e-minicard-label.c (e_minicard_label_event): On an
escape here, cancel editing and remove the focus from the text.
* gui/widgets/e-minicard.c (add_field): Set allow_newlines here.
(field_activated): Stop editing on the activate signal and remove
the focus from the text. Fixes Ximian bug #12286.
svn path=/trunk/; revision=14335
2001-10-28 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-card.c (e_card_date_from_string): Expose this
function.
(e_card_date_to_string): ...and this one. Fixes build problem in
pas-backend-ldap.c.
svn path=/trunk/; revision=14284
2001-10-27 Chris Toshok <toshok@ximian.com>
[ bug #12979 ]
* backend/pas/pas-backend-ldap.c (anniversary_populate): new
function.
(anniversary_ber): new function.
(anniversary_compare): new function.
(birthday_populate): new function.
(birthday_ber): new function.
(birthday_compare): new function.
svn path=/trunk/; revision=14277
2001-10-27 Christopher James Lahey <clahey@ximian.com>
* backend/ebook/e-destination.c (name_and_email_simple_query_cb,
nickname_simple_query_cb): Set book_uri when cardification occurs.
svn path=/trunk/; revision=14230
2001-10-27 Jon Trowbridge <trow@gnu.org>
* backend/pas/pas-book.c (pas_book_check_queue): That should be a
bonobo_object_unref, not a gtk_object_unref.
(pas_book_queue_request): Likewise, we need to bonobo_object_ref
here.
(pas_book_destroy): If our pas_book_check_queue timeout is still
active, disable it. This should never happen, but it never hurts
to be careful.
(pas_book_destroy): Set book->priv to NULL after we free it.
svn path=/trunk/; revision=14218
2001-10-27 Jon Trowbridge <trow@ximian.com>
* backend/pas/pas-book.c (pas_book_check_queue): Added paranoid
reentrancy guards.
(pas_book_queue_request): Changed our idle handler into a timeout,
so as to work w/ reentrancy guards.
(pas_book_init): Explicit initialization.
svn path=/trunk/; revision=14202