[gq-commit] gq/src search.c,1.55,1.56
Status: Beta
Brought to you by:
sur5r
From: <sta...@us...> - 2003-10-20 11:00:54
|
Update of /cvsroot/gqclient/gq/src In directory sc8-pr-cvs1:/tmp/cvs-serv18526 Modified Files: search.c Log Message: * Obsoleted some preferences settings * Enhanced referral chasing * Enforce recursion depth for referrals (untested for truly recursive referrals) * Fixed some column-resize related mistakes * Fixed performance problem during search * Minor fixes Index: search.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/search.c,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** search.c 19 Oct 2003 12:06:42 -0000 1.55 --- search.c 20 Oct 2003 08:37:18 -0000 1.56 *************** *** 1288,1324 **** if (ldap_url_parse(referral, &desc) == 0) { ! GString *new_uri = g_string_sized_new(strlen(referral)); ! struct ldapserver *s, *newserver; ! g_string_sprintf(new_uri, "%s://%s:%d/", ! desc->lud_scheme, ! desc->lud_host, ! desc->lud_port); ! newserver = new_ldapserver(); ! /* some sensible settings for the "usual" case: ! Anonymous bind. Also show referrals */ ! newserver->ask_pw = 0; ! newserver->show_ref = 1; ! #warning "ADD CONFIG FOR EXTENDED REFERENCE CHASING" ! /* check: do we have this server around already??? */ ! s = server_by_canon_name(new_uri->str, TRUE); ! if (!s) { ! s = server; ! } ! if (s) { ! copy_ldapserver(newserver, s); ! statusbar_msg(_("Initialized temporary server-definition '%1$s' from existing server '%2$s'"), new_uri->str, server->name); ! } else { ! statusbar_msg(_("Created temporary server-definition '%1$s' with no pre-set values."), new_uri->str); ! } - g_free_and_dup(newserver->name, new_uri->str); - g_free_and_dup(newserver->ldaphost, new_uri->str); - g_free_and_dup(newserver->basedn, desc->lud_dn); newserver->quiet = 1; --- 1288,1327 ---- if (ldap_url_parse(referral, &desc) == 0) { ! /* GString *new_uri = g_string_sized_new(strlen(referral)); */ ! struct ldapserver *newserver; ! newserver = get_referral_server(server, referral); ! /* g_string_sprintf(new_uri, "%s://%s:%d/", */ ! /* desc->lud_scheme, */ ! /* desc->lud_host, */ ! /* desc->lud_port); */ ! /* newserver = new_ldapserver(); */ ! /* /\* some sensible settings for the "usual" case: */ ! /* Anonymous bind. Also show referrals *\/ */ ! /* newserver->ask_pw = 0; */ ! /* newserver->show_ref = 1; */ ! /* #warning "ADD CONFIG FOR EXTENDED REFERENCE CHASING" */ ! /* /\* check: do we have this server around already??? *\/ */ ! /* s = server_by_canon_name(new_uri->str, TRUE); */ ! ! /* if (!s) { */ ! /* s = server; */ ! /* } */ ! /* if (s) { */ ! /* copy_ldapserver(newserver, s); */ ! /* statusbar_msg(_("Initialized temporary server-definition '%1$s' from existing server '%2$s'"), new_uri->str, server->name); */ ! /* } else { */ ! /* statusbar_msg(_("Created temporary server-definition '%1$s' with no pre-set values."), new_uri->str); */ ! /* } */ ! ! /* g_free_and_dup(newserver->name, new_uri->str); */ ! /* g_free_and_dup(newserver->ldaphost, new_uri->str); */ ! /* g_free_and_dup(newserver->basedn, desc->lud_dn); */ newserver->quiet = 1; *************** *** 1331,1335 **** ldap_free_urldesc(desc); ! g_string_free(new_uri, TRUE); } } --- 1334,1338 ---- ldap_free_urldesc(desc); ! /* g_string_free(new_uri, TRUE); */ } } *************** *** 1340,1343 **** --- 1343,1360 ---- }; + + /* static gint result_compare_func(GtkCList *clist, */ + /* gconstpointer ptr1, */ + /* gconstpointer ptr2) */ + /* { */ + + /* gtk_clist_get_sort_column(clist); */ + + + /* } */ + + + + static void click_column(GtkCList *clist, gint column, *************** *** 1491,1494 **** --- 1508,1512 ---- gtk_clist_set_column_title(GTK_CLIST(new_main_clist), 0, "DN"); gtk_clist_set_column_width(GTK_CLIST(new_main_clist), 0, 260); + gtk_clist_set_column_resizeable(GTK_CLIST(new_main_clist), 0, TRUE); columns_done[0] = 1; } *************** *** 1500,1503 **** --- 1518,1524 ---- gtk_clist_set_column_width(GTK_CLIST(new_main_clist), oc_col, 120); columns_done[oc_col] = 1; + + gtk_clist_set_column_resizeable(GTK_CLIST(new_main_clist), + oc_col, TRUE); /* gtk_clist_set_column_visibility(GTK_CLIST(new_main_clist), */ *************** *** 1508,1521 **** tolist[i] = g_string_sized_new(MAX_DN_LEN); } - - /* do the search */ - if (server->show_ref) { - c.ldctl_oid = LDAP_CONTROL_MANAGEDSAIT; - c.ldctl_value.bv_val = NULL; - c.ldctl_value.bv_len = 0; - c.ldctl_iscritical = 1; ! ctrls[0] = &c; ! } thislevel = NULL; --- 1529,1540 ---- tolist[i] = g_string_sized_new(MAX_DN_LEN); } ! /* prepare ManageDSAit in case we should show referrals */ ! c.ldctl_oid = LDAP_CONTROL_MANAGEDSAIT; ! c.ldctl_value.bv_val = NULL; ! c.ldctl_value.bv_len = 0; ! c.ldctl_iscritical = 1; ! ! ctrls[0] = &c; thislevel = NULL; *************** *** 1530,1536 **** row = 0; - gtk_clist_freeze(GTK_CLIST(new_main_clist)); ! while (thislevel || nextlevel) { if (thislevel == NULL) { --- 1549,1557 ---- row = 0; gtk_clist_freeze(GTK_CLIST(new_main_clist)); ! ! /* do the searching */ ! set_busycursor(); ! while (thislevel || nextlevel) { if (thislevel == NULL) { *************** *** 1539,1542 **** --- 1560,1570 ---- nextlevel = NULL; } + if (level > SEARCHTAB(tab)->max_depth) { + statusbar_msg(_("Reached maximum recursion depth")); + + g_list_foreach(thislevel, (GFunc) free_chasing, NULL); + g_list_free(thislevel); + break; + } ch = thislevel->data; *************** *** 1554,1558 **** (char **)attrs, /* attrs & API bug*/ 0, /* attrsonly */ ! server->show_ref ? ctrls : NULL, /* serverctrls */ NULL, /* clientctrls */ --- 1582,1587 ---- (char **)attrs, /* attrs & API bug*/ 0, /* attrsonly */ ! SEARCHTAB(tab)->chase_ref ? NULL : ctrls, ! /* server->show_ref ? ctrls : NULL, */ /* serverctrls */ NULL, /* clientctrls */ *************** *** 1590,1593 **** --- 1619,1623 ---- row++; + #if 0 /* too many performance problems */ if (row % 16 == 0) { if(config->sort_search) { *************** *** 1597,1601 **** gtk_clist_freeze(GTK_CLIST(new_main_clist)); } ! rc = 1; break; /* OK */ --- 1627,1632 ---- gtk_clist_freeze(GTK_CLIST(new_main_clist)); } ! ! #endif rc = 1; break; /* OK */ *************** *** 1633,1636 **** --- 1664,1669 ---- free_chasing(ch); } + + set_normalcursor(); if (attrs) g_free(attrs); |