aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend/pas/pas-backend-ldap.c
Commit message (Collapse)AuthorAgeFilesLines
* split all the ldap operations into 2 halves, a handler, and destructor,Chris Toshok2000-09-161-148/+460
| | | | | | | | | | | | | | | 2000-09-15 Chris Toshok <toshok@helixcode.com> * backend/pas/pas-backend-ldap.c: split all the ldap operations into 2 halves, a handler, and destructor, and create a structure containing two function pointers and any data they need. this allows us queue up pending operations (since the LDAP*'s are no longer view specific. there's one per backend.) also, add support for restarting async operations if the SERVER DOWN error isn't communicated until sometime after the handler is called (as is the case with the async search stuff.) svn path=/trunk/; revision=5468
* use x-evolution-any-field.Chris Toshok2000-08-091-37/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-08-08 Chris Toshok <toshok@helixcode.com> * gui/component/e-addressbook-model.c (e_addressbook_model_init): use x-evolution-any-field. * gui/component/addressbook.c (search_entry_activated): use x-evolution-any-field. (change_view_type): same. * gui/minicard/e-minicard-view.c (e_minicard_view_init): set query to x-evolution-any-field. * backend/pas/pas-backend-ldap.c (func_contains): support x-evolution-any-field for matching any evolution supported field. * backend/pas/pas-backend-file.c (compare_email): switch to using ECardSimple calls. (compare_phone): same. (compare_address): same. (entry_compare): switch to using ECardSimple calls, and support a 'x-evolution-any-field' wildcard field. (vcard_matches_search): use an ECardSimple. svn path=/trunk/; revision=4626
* wait to free the view until we've taken care of freeing its internals.Chris Toshok2000-07-271-51/+60
| | | | | | | | | | | | | | | | | | | | | 2000-07-26 Chris Toshok <toshok@helixcode.com> * backend/pas/pas-backend-ldap.c (view_destroy): wait to free the view until we've taken care of freeing its internals. also, close the ldap connection here. (pas_backend_ldap_connect): rename p_b_l_ensure_connected to this, since it's always called when we create a view. (pas_backend_ldap_build_all_cards_list): open an ldap connection in this function and close it at the end. (poll_ldap): make sure to call ldap_unbind to close the view's connection here. (pas_backend_ldap_search): call pas_backend_ldap_connect here - ldap_unbind will either be called from poll_ldap or from view_destroy. (pas_backend_ldap_get_vcard): the PASBackendLDAP no longer has an LDAP*. svn path=/trunk/; revision=4369
* add support for user settable scope. (pas_backend_ldap_search): same.Chris Toshok2000-07-271-5/+12
| | | | | | | | | | | 2000-07-26 Chris Toshok <toshok@helixcode.com> * backend/pas/pas-backend-ldap.c (pas_backend_ldap_build_all_cards_list): add support for user settable scope. (pas_backend_ldap_search): same. (pas_backend_ldap_load_uri): same. svn path=/trunk/; revision=4360
* remove spew. (pas_backend_ldap_ensure_connected): duh, don't access aChris Toshok2000-06-271-21/+18
| | | | | | | | | | | | 2000-06-26 Chris Toshok <toshok@helixcode.com> * backend/pas/pas-backend-ldap.c (poll_ldap): remove spew. (pas_backend_ldap_ensure_connected): duh, don't access a pointer we know to be NULL. (query_prop_to_ldap): rename map_e_card_prop_to_ldap to this. easier to type. svn path=/trunk/; revision=3743
* Added "sequence_complete" signal.Christopher James Lahey2000-05-301-0/+1
| | | | | | | | | | | | | | | | 2000-05-30 Christopher James Lahey <clahey@helixcode.com> * backend/ebook/e-book-view-listener.c, backend/ebook/e-book-view-listener.h, backend/ebook/e-book-view.c, backend/ebook/e-book-view.h, backend/idl/addressbook.idl, backend/pas/pas-backend-file.c, backend/pas/pas-backend-ldap.c, backend/pas/pas-book-factory.c, backend/pas/pas-book-view.c, backend/pas/pas-book-view.h: Added "sequence_complete" signal. * printing/e-contact-print.c: Made printing wait for "sequence_complete" signal and made it sort. svn path=/trunk/; revision=3279
* convert to use ECardSimple. (poll_ldap): same.Chris Toshok2000-05-171-38/+18
| | | | | | | * backend/pas/pas-backend-ldap.c (construct_email_list): convert to use ECardSimple. (poll_ldap): same. svn path=/trunk/; revision=3095
* add typedefs for the can_write functions, and add parameters toChris Toshok2000-05-171-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | * backend/pas/pas-book.h: add typedefs for the can_write functions, and add parameters to pas_book_new. * backend/pas/pas-book.c (pas_book_construct): add can_write/can_write_card params. (pas_book_new): same. (impl_Evolution_Book_can_write): new function. (impl_Evolution_Book_can_write_card): same. (pas_book_get_epv): assign the can_write/can_write_card slots in the epv. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_can_write): new function. (pas_backend_ldap_can_write_card): same. (pas_backend_ldap_add_client): add can_write/can_write_card to pas_book_new call. * backend/pas/pas-backend-file.c (pas_backend_file_can_write_card): new function, calls can_write. (pas_backend_file_can_write): same. (can_write): return TRUE if we can write to the addressbook file. (pas_backend_file_add_client): add can_write/can_write_card to pas_book_new call. * backend/idl/addressbook.idl (Evolution): add can_write and can_write_card permission requests. svn path=/trunk/; revision=3093
* Enabled a couple more fieldsChristopher James Lahey2000-05-091-2/+3
| | | | | | | | 2000-05-09 Christopher James Lahey <clahey@helixcode.com> * backend/pas/pas-backend-ldap.c: Enabled a couple more fields svn path=/trunk/; revision=2943
* Removed some code that was notifying too many clients at the wrong times.Christopher James Lahey2000-05-081-11/+1
| | | | | | | | | | | | | | 2000-05-07 Christopher James Lahey <clahey@helixcode.com> * backend/pas/pas-backend-file.c, backend/pas/pas-backend-ldap.c: Removed some code that was notifying too many clients at the wrong times. * gui/component/addressbook.c: Set view->book. Unreffed view->book. Unreffed the model instead of destroying it. Removed the /tmp/test.db stuff. svn path=/trunk/; revision=2876
* if a port isn't specified in the uri default to 389.Chris Toshok2000-05-071-0/+3
| | | | | | | * backend/pas/pas-backend-ldap.c (pas_backend_ldap_load_uri): if a port isn't specified in the uri default to 389. svn path=/trunk/; revision=2831
* Made uri slightly better managed.Christopher James Lahey2000-05-021-7/+6
| | | | | | | | | | | | | | | | 2000-05-01 Christopher James Lahey <clahey@helixcode.com> * backend/pas/pas-backend-file.c, backend/pas/pas-backend-ldap.c: Made uri slightly better managed. * backend/pas/pas-book-factory.c (pas_book_factory_process_request): Remove this CORBA_Object_release that causes things not to work. This is just a temporary fix until we figure out what's actually wrong. * backend/pas/pas-book.c: Fixed a copy and paste error in a warning. svn path=/trunk/; revision=2718
* fix a typo in the for loop.Larry Ewing2000-05-021-1/+1
| | | | | | | | | 2000-05-01 Larry Ewing <lewing@helixcode.com> * backend/pas/pas-backend-ldap.c (pas_backend_ldap_remove_client): fix a typo in the for loop. svn path=/trunk/; revision=2714
* Added new status values for the IDL stuff.Federico Mena Quintero2000-05-011-14/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-04-30 Federico Mena Quintero <federico@helixcode.com> * backend/ebook/e-book-types.h (EBookStatus): Added new status values for the IDL stuff. * backend/pas/pas-book-factory.h (PASBookFactoryClass): New "last_book_gone" signal. * backend/pas/pas-book-factory.c (pas_book_factory_launch_backend): Better error handling. (pas_book_factory_process_queue): Let pas_book_factory_process_request() free the request. (pas_book_factory_process_request): Free the request here. Perform better error handling. (free_active_server_map_entry): Free an active server map entry; free the URI key and unref the backend value. This function was renamed; the old one was trying to CORBA_Object_unref() a GTK+ object! (remove_backends_entry): Free a backend table entry; free the URI key. (backend_last_client_gone_cb): Remove the backend from the active server map and emit the "last_book_gone" signal if appropriate. (pas_book_factory_get_n_backends): New function to query the number of running backends in an addressbook factory. * backend/idl/addressbook.idl (BookListener::CallStatus): Added a ProtocolNotSupported code. This is for when the addressbook factory cannot find a provider for the requested URI. * backend/pas/pas-backend.h (PASBackendClass): New "last_client_gone" signal. (PASBackendClass): New get_uri virtual method. * backend/pas/pas-backend.c (pas_backend_load_uri): Return a gboolean success code. (pas_backend_add_client): Return a gboolean success code. (pas_backend_last_client_gone): New function used by backend implementations to notify upwards when the backend's last client is destroyed. (pas_backend_get_uri): New function to get the URI of a backend. * backend/pas/pas-backend-file.c (pas_backend_file_add_client): Pass the backend as the closure data to the "destroy" handler of the book. We cannot call pas_book_get_backend() in the callback since the book's private data has already been destroyed when the callback is invoked. Alternatively, we could move the private data destruction step to the book's ::finalize() method. (pas_backend_file_book_destroy_cb): Get the backend from the callback's data, not from the book. (pas_backend_file_remove_client): Remove the book from the list of clients. When all clients go away, call pas_backend_last_client_gone(). (PASBackendFilePrivate): Added an uri field. (pas_backend_file_get_uri): Implement the get_uri method. (pas_backend_file_load_uri): Return a gboolean success code. Also, store the URI in the private structure. (pas_backend_file_add_client): Return a gboolean success code. Also, call pas_backend_last_client_gone() if appropriate. (pas_backend_file_destroy): Free the bf->priv->uri. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_add_client): Pass the backend as the closure data to the "destroy" handler of the book. See above for rationale. (pas_backend_ldap_book_destroy_cb): Get the backend from the callback's data. (pas_backend_ldap_remove_client): Remove the book from the list of clients. When all clients go away, call pas_backend_last_client_gone(). (pas_backend_ldap_load_uri): Return a gboolean success code. (pas_backend_ldap_add_client): Return a gboolean success code. Also, call pas_backend_last_client_gone() if appropriate. (PASBackendLDAPPrivate): New uri field. (pas_backend_ldap_get_uri): Implement the get_uri method. (pas_backend_ldap_load_uri): Store the uri in the private structure. (pas_backend_ldap_destroy): Free the bl->priv->uri. svn path=/trunk/; revision=2705
* add support for a rootdn in the uri.Chris Toshok2000-04-301-3/+7
| | | | | | | | | | | | * backend/pas/pas-backend-ldap.c (pas_backend_ldap_ensure_connected): add support for a rootdn in the uri. (pas_backend_ldap_build_all_cards_list): make use of the rootdn in the call to ldap_search_s. (pas_backend_ldap_search): same. (pas_backend_ldap_load_uri): get the rootdn out of the passed in uri. svn path=/trunk/; revision=2688
* Use "e-minicard" as the log domain.Federico Mena Quintero2000-04-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-04-18 Federico Mena Quintero <federico@helixcode.com> * gui/minicard/Makefile.am (INCLUDES): Use "e-minicard" as the log domain. * gui/component/Makefile.am (INCLUDES): Use "evolution-addressbook" as the log domain. * backend/pas/Makefile.am: Build libpas.a, not a shared library. Do not install any header files. (INCLUDES): Remove spurious include paths. * backend/pas/*.[ch]: Fix includes. * backend/ebook/Makefile.am: Do not install the test programs. Fixed some include weirdness. * backend/ebook/*.[ch]: Fix includes. * contact-editor/Makefile.am (INCLUDES): Set the log domain to "contact-editor". (INCLUDES): Fix. * contact-editor/*.[ch]: Fix includes. * gui/minicard/*.[ch]: Fix includes. svn path=/trunk/; revision=2529
* Added a note field.Christopher James Lahey2000-04-151-1/+1
| | | | | | | | | | | | | | | | | | | 2000-04-14 Christopher James Lahey <clahey@helixcode.com> * addressbook/backend/ebook/e-card.c, addressbook/backend/ebook/e-card.h, addressbook/backend/pas/pas-backend-file.c, addressbook/backend/pas/pas-backend-ldap.c, addressbook/contact-editor/e-contact-editor.c: Added a note field. From shell/ChangeLog: 2000-04-14 Christopher James Lahey <clahey@helixcode.com> * e-shell-view.c: Made the left pane of the shell view not autoresize. svn path=/trunk/; revision=2444
* don't ldap_simple_bind_s if the ldap_open failed, and fix warnings.Chris Toshok2000-04-151-44/+52
| | | | | | | | | | | | | | | * addressbook/backend/pas/pas-backend-ldap.c (pas_backend_ldap_ensure_connected): don't ldap_simple_bind_s if the ldap_open failed, and fix warnings. (pas_backend_ldap_build_all_cards_list): don't do search if the ensure_connected failed, and fix warnings. (pas_backend_ldap_search): same. (poll_ldap): fix warnings. (pas_backend_ldap_process_get_book_view): same. (pas_backend_ldap_get_vcard): same. (pas_backend_ldap_load_uri): same. svn path=/trunk/; revision=2429
* add the title attribute.Chris Toshok2000-04-131-0/+1
| | | | | | * addressbook/backend/pas/pas-backend-ldap.c: add the title attribute. svn path=/trunk/; revision=2419
* make sure to g_source_remove the idle id.Chris Toshok2000-04-131-0/+2
| | | | | | | * addressbook/backend/pas/pas-backend-ldap.c (view_destroy): make sure to g_source_remove the idle id. svn path=/trunk/; revision=2415
* new function that polls ldap for more search responses.Chris Toshok2000-04-131-73/+99
| | | | | | | | | * addressbook/backend/pas/pas-backend-ldap.c (poll_ldap): new function that polls ldap for more search responses. (pas_backend_ldap_search): use the async search interface and register an idle call to poll for the responses. svn path=/trunk/; revision=2414
* rework this function to use a table mapping search field names to vcardChris Toshok2000-04-131-33/+88
| | | | | | | | | | | | | | | | | | | * addressbook/backend/pas/pas-backend-file.c (entry_compare): rework this function to use a table mapping search field names to vcard properties and extra information (such as whether or not the property is a list.) * addressbook/backend/pas/pas-backend-ldap.c (construct_email_list): new function, to build the ECardList for email addresses. (construct_phone_list): new function, to build the ECardList for phone numbers. (pas_backend_ldap_search): use a table mapping ldap attributes to ecard properties, and use the special list construction functions if the property calls for it. general cleanup. added a comment about not calling ber_free if there was a decoding error. svn path=/trunk/; revision=2411
* delay the setting of the ldap variable until we've ensured we wereChris Toshok2000-04-121-11/+31
| | | | | | | | | | | | | | * addressbook/backend/pas/pas-backend-ldap.c (pas_backend_ldap_build_all_cards_list): delay the setting of the ldap variable until we've ensured we were connected. Also, set the search limit to LDAP_MAX_SEARCH_RESPONSES (we'll eventually want a user setting here i assume.) (pas_backend_ldap_search): same here, and also send back lists of CARDS_PER_VIEW_NOTIFICATION length in each pas_book_view_notify_add call. also, don't call ber_free if there was a decoding error, since the ldap library frees it for us. svn path=/trunk/; revision=2406
* add LDAP_LIBS here.Chris Toshok2000-04-121-85/+493
| | | | | | | | | | | | | | | | | | * wombat/Makefile.am (wombat_LDADD): add LDAP_LIBS here. * configure.in: check for -lldap and -llber and if both are present include ldap support in the pas/wombat. * addressbook/backend/pas/Makefile.am (libpas_la_SOURCES): include pas-backend.ldap.c if ENABLE_LDAP. * addressbook/backend/pas/pas-backend-ldap.c: get searching working (converting between the sexp and ldap stuff.) * wombat/wombat.c (setup_pas): register the ldap pas backend if HAVE_LDAP is defined. svn path=/trunk/; revision=2401
* new-file new fileChris Toshok2000-03-311-0/+519
* addressbook/backend/pas/pas-backend-ldap.h: new-file * addressbook/backend/pas/pas-backend-ldap.c: new file both still in the "do not enter" stage. svn path=/trunk/; revision=2263