]> git.sur5r.net Git - openldap/blob - contrib/gtk-tool/LdapEntry.cc
Update contrib with latest from -devel, including php3-tool and gtk-tool.
[openldap] / contrib / gtk-tool / LdapEntry.cc
1 #include "LdapEntry.h"
2
3 LdapEntry* LdapEntry::get_entries(LDAP *ld, char *base_dn, int level,char *filter) {
4         printf("get_entries(%s)\n", base_dn);
5         LDAPMessage **result, *entry;
6         Entry *thing;
7         char *pele;
8         int res;
9         res = ldap_search(ld, base_dn, level, filter, NULL, 0);
10         res = ldap_result(ld, res, 1, NULL, result);
11         printf("%s\n", ldap_err2string(ldap_result2error(ld, *result, 1)));
12         int num_entries = ldap_count_entries(ld, *result);
13         printf("%i results\n", num_entries);
14         int i=0;
15         entry = ldap_first_entry(ld, *result);
16         thing->dn = ldap_get_dn(ld, entry);
17         pele = ldap_get_dn(ld, entry);
18         printf("%s\n", thing->dn);
19         while (entry) {
20                 printf("Child %i\n", i);
21                 thing->child[i] = get_entries(ld, pele, LDAP_SCOPE_ONELEVEL, filter);
22                 i++;
23                 entry = ldap_next_entry(ld, entry);
24         }
25         return thing;
26 }
27
28 Gtk_Tree *LdapEntry::make_tree(Entry *thing) {
29         Gtk_Tree *tree, **subtree;
30         Gtk_TreeItem *treeitem;
31         gchar *c;
32         tree = new Gtk_Tree();
33         tree->set_selection_mode(GTK_SELECTION_BROWSE);
34         tree->set_view_mode(GTK_TREE_VIEW_ITEM);
35         tree->set_view_lines(false);
36         c = g_strdup_printf("%s", thing->dn);
37         printf("%s\n", c);
38         treeitem = new Gtk_TreeItem(c);
39         tree->append(treeitem);
40         treeitem->show();
41         int i=0;
42         while (thing->child[i]) {
43                 subtree[i] = make_tree(thing->child[i]);
44                 treeitem->set_subtree(subtree[i]);
45                 i++;
46         }
47         tree->show();
48         return tree;
49 }