LdapQuery *qry;
gchar *name;
gchar *searchTerm;
+ ItemFolder *folder;
g_return_val_if_fail( server != NULL, NULL );
g_return_val_if_fail( req != NULL, NULL );
/* Retire any aged queries */
/* // ldapsvr_retire_query( server ); */
+ /* Name of folder and query */
searchTerm = req->searchTerm;
+ name = g_strdup_printf( "Search '%s'", searchTerm );
+
+ /* Create a folder for the search results */
+ folder = addrcache_add_new_folder( server->addressCache, NULL );
+ addritem_folder_set_name( folder, name );
+ addritem_folder_set_remarks( folder, "" );
/* Construct a query */
qry = ldapqry_create();
ldapqry_set_callback_entry( qry, req->callBackEntry );
ldapqry_set_callback_end( qry, req->callBackEnd );
+ /* Specify folder type and back reference */
+ ADDRQUERY_FOLDER(qry) = folder;
+ folder->folderType = ADDRFOLDER_QUERY_RESULTS;
+ folder->folderData = ( gpointer ) qry;
+ folder->isHidden = TRUE;
+
/* Name the query */
- name = g_strdup_printf( "Search for '%s'", searchTerm );
ldapqry_set_name( qry, name );
g_free( name );
*
* \param server LdapServer.
* \param req Query request.
- * \param folder Folder that will be used to contain search results; may be NULL.
+ * \param folder Folder that will be used to contain search results.
* \return LdapQuery object, or <i>NULL</i> if none created.
*/
LdapQuery *ldapsvr_new_explicit_search(
g_return_val_if_fail( server != NULL, NULL );
g_return_val_if_fail( req != NULL, NULL );
- searchTerm = req->searchTerm;
+ g_return_val_if_fail( folder != NULL, NULL );
/* Retire any aged queries */
/* // ldapsvr_retire_query( server ); */
/* Name the query */
+ searchTerm = req->searchTerm;
name = g_strdup_printf( "Explicit search for '%s'", searchTerm );
/* Construct a query */
ldapqry_set_callback_end( qry, req->callBackEnd );
ldapqry_set_callback_entry( qry, req->callBackEntry );
- if( folder ) {
- /* Specify folder type and back reference */
- ADDRQUERY_FOLDER(qry) = folder;
- folder->folderType = ADDRFOLDER_QUERY_RESULTS;
- folder->folderData = ( gpointer ) qry;
- }
+ /* Specify folder type and back reference */
+ ADDRQUERY_FOLDER(qry) = folder;
+ folder->folderType = ADDRFOLDER_QUERY_RESULTS;
+ folder->folderData = ( gpointer ) qry;
/* Setup server */
ldapsvr_add_query( server, qry );