From 91800ee5b0a224f33039327286f71b92b03f7cbc Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Sat, 7 Jul 2001 05:00:39 +0000 Subject: [PATCH] Major cleanout of contrib --- contrib/README | 24 - contrib/gtk-tool/COPYRIGHT | 8 - contrib/gtk-tool/ChangeLog | 95 - contrib/gtk-tool/Gtk_LdapItem.h | 17 - contrib/gtk-tool/Gtk_LdapServer.cc | 446 ---- contrib/gtk-tool/Gtk_LdapServer.h | 53 - contrib/gtk-tool/Gtk_LdapTree.cc | 26 - contrib/gtk-tool/Gtk_LdapTree.h | 10 - contrib/gtk-tool/Gtk_LdapTreeItem.cc | 376 --- contrib/gtk-tool/Gtk_LdapTreeItem.h | 83 - contrib/gtk-tool/INSTALL | 13 - contrib/gtk-tool/LICENSE | 122 - contrib/gtk-tool/Makefile | 32 - contrib/gtk-tool/My_Window.cc | 187 -- contrib/gtk-tool/My_Window.h | 30 - contrib/gtk-tool/README | 39 - contrib/gtk-tool/TODO | 18 - contrib/gtk-tool/common.h | 13 - contrib/gtk-tool/cpluscommon.h | 10 - contrib/gtk-tool/gtk.h | 14 - contrib/gtk-tool/icons/alias_node.h | 54 - contrib/gtk-tool/icons/branch_node.h | 36 - contrib/gtk-tool/icons/general_node.h | 67 - contrib/gtk-tool/icons/leaf_node.h | 59 - contrib/gtk-tool/icons/local_server.h | 266 -- contrib/gtk-tool/icons/monitor.h | 286 --- contrib/gtk-tool/icons/remote_server.h | 266 -- contrib/gtk-tool/icons/rfc822mailgroup_node.h | 214 -- contrib/gtk-tool/icons/root_node.h | 75 - contrib/gtk-tool/main.cc | 113 - contrib/gtk-tool/system.h | 9 - contrib/gtk-tool/utils.cc | 17 - contrib/gtk-tool/utils.h | 4 - contrib/php3-tool/at.conf | 53 - contrib/php3-tool/at.conf2 | 53 - contrib/php3-tool/false.gif | Bin 94 -> 0 bytes contrib/php3-tool/images/I.gif | Bin 114 -> 0 bytes contrib/php3-tool/images/L.gif | Bin 850 -> 0 bytes contrib/php3-tool/images/Lminus.gif | Bin 138 -> 0 bytes contrib/php3-tool/images/Lplus.gif | Bin 143 -> 0 bytes contrib/php3-tool/images/T.gif | Bin 857 -> 0 bytes contrib/php3-tool/images/Tminus.gif | Bin 139 -> 0 bytes contrib/php3-tool/images/Tplus.gif | Bin 145 -> 0 bytes contrib/php3-tool/images/foldericon.gif | Bin 923 -> 0 bytes contrib/php3-tool/images/htmlicon.gif | Bin 981 -> 0 bytes contrib/php3-tool/images/openfoldericon.gif | Bin 173 -> 0 bytes contrib/php3-tool/images/top.gif | Bin 1017 -> 0 bytes contrib/php3-tool/images/topopen.gif | Bin 1020 -> 0 bytes contrib/php3-tool/images/white.gif | Bin 837 -> 0 bytes contrib/php3-tool/include/ldap_entry.inc | 105 - .../include/ldap_entry_attribute.inc | 169 -- contrib/php3-tool/include/ldap_manager.inc | 115 - contrib/php3-tool/include/preferences.inc | 155 -- contrib/php3-tool/include/query_manager.inc | 141 -- contrib/php3-tool/include/search_form.inc | 80 - contrib/php3-tool/index.php3 | 111 - .../javascript/expandable-outlines.js | 133 - contrib/php3-tool/javascript/resize.js | 21 - contrib/php3-tool/ldap-photo.php3 | 46 - contrib/php3-tool/php3tool.conf | 10 - contrib/php3-tool/style.css | 24 - contrib/php3-tool/true.gif | Bin 91 -> 0 bytes contrib/tweb/CHANGES | 200 -- contrib/tweb/COPYRIGHTS | 101 - contrib/tweb/FEATURE-LIST | 1138 --------- contrib/tweb/GETTING-STARTED.openldap | 75 - contrib/tweb/LDAP_etc/allow.msg.0 | 4 - contrib/tweb/LDAP_etc/allow.msg.1 | 4 - contrib/tweb/LDAP_etc/ldapfilter.conf | 86 - contrib/tweb/LDAP_etc/ldapfriendly.0 | 40 - contrib/tweb/LDAP_etc/ldapfriendly.1 | 40 - contrib/tweb/LDAP_etc/search-only.foot.0 | 4 - contrib/tweb/LDAP_etc/search-only.foot.1 | 4 - contrib/tweb/LDAP_etc/search-only.head.0 | 5 - contrib/tweb/LDAP_etc/search-only.head.1 | 5 - contrib/tweb/LDAP_etc/tweb-base.foot.0 | 4 - contrib/tweb/LDAP_etc/tweb-base.foot.1 | 4 - contrib/tweb/LDAP_etc/tweb-base.head.0 | 5 - contrib/tweb/LDAP_etc/tweb-base.head.1 | 5 - contrib/tweb/LDAP_etc/tweb.footer.0 | 4 - contrib/tweb/LDAP_etc/tweb.footer.1 | 4 - contrib/tweb/LDAP_etc/tweb.header.0 | 5 - contrib/tweb/LDAP_etc/tweb.header.1 | 5 - contrib/tweb/LDAP_etc/tweb.help.0 | 46 - contrib/tweb/LDAP_etc/tweb.help.1 | 47 - contrib/tweb/Makefile.openldap | 106 - contrib/tweb/README | 104 - contrib/tweb/TWEB_conFiles/robots.txt | 3 - contrib/tweb/TWEB_conFiles/tweb.conf.0.dist | 267 -- contrib/tweb/TWEB_conFiles/tweb.conf.1.dist | 208 -- contrib/tweb/TWEB_conFiles/tweb.lang.0.dist | 150 -- contrib/tweb/TWEB_conFiles/tweb.lang.1.dist | 136 -- contrib/tweb/TWEB_conFiles/tweb.rc.dist | 233 -- contrib/tweb/Versiongw.c | 41 - contrib/tweb/ch_malloc.c | 85 - contrib/tweb/ch_malloc_exp.h | 34 - contrib/tweb/charray.c | 179 -- contrib/tweb/charray_exp.h | 37 - contrib/tweb/checkclient.c | 258 -- contrib/tweb/checkclient.h | 41 - contrib/tweb/checkclient_exp.h | 35 - contrib/tweb/dn.c | 202 -- contrib/tweb/dn.h | 43 - contrib/tweb/dn_exp.h | 33 - contrib/tweb/html.c | 939 ------- contrib/tweb/html.h | 50 - contrib/tweb/html_exp.h | 41 - contrib/tweb/init.c | 1858 -------------- contrib/tweb/init.h | 289 --- contrib/tweb/init_exp.h | 382 --- contrib/tweb/queries.c | 734 ------ contrib/tweb/queries.h | 85 - contrib/tweb/queries_exp.h | 33 - contrib/tweb/regular.c | 1211 --------- contrib/tweb/regular.h | 137 -- contrib/tweb/regular_exp.h | 56 - contrib/tweb/server.c | 432 ---- contrib/tweb/server.h | 72 - contrib/tweb/server_exp.h | 36 - contrib/tweb/strng.c | 177 -- contrib/tweb/strng_exp.h | 80 - contrib/tweb/support.c | 613 ----- contrib/tweb/support.h | 300 --- contrib/tweb/support_exp.h | 68 - contrib/tweb/tgeneral.h | 264 -- contrib/tweb/tglobal.h | 65 - contrib/tweb/tweb.c | 179 -- contrib/tweb/tweb.h | 69 - contrib/tweb/x500.c | 2168 ----------------- contrib/tweb/x500.h | 61 - contrib/tweb/x500_exp.h | 40 - contrib/web500gw/README | 11 - contrib/web_ldap/COPYRIGHT | 25 - contrib/web_ldap/Makefile.in | 18 - contrib/web_ldap/README | 17 - contrib/web_ldap/maint_form.h | 114 - contrib/web_ldap/process_form.h | 32 - contrib/web_ldap/util.c | 543 ----- contrib/web_ldap/web_ldap.c | 622 ----- contrib/web_ldap/web_ldap.cfg | 27 - contrib/web_ldap/web_ldap.html | 50 - contrib/web_ldap/web_ldap.log.sample | 34 - contrib/web_ldap/web_ldap_usage.html | 354 --- contrib/web_ldap/web_ldap_usage.txt | 344 --- contrib/whois++/BUGS | 37 - contrib/whois++/INSTALL | 68 - contrib/whois++/Makefile | 90 - contrib/whois++/README | 23 - contrib/whois++/TODO | 9 - contrib/whois++/command.c | 763 ------ contrib/whois++/config.c | 224 -- contrib/whois++/describe.c | 231 -- contrib/whois++/help.c | 89 - contrib/whois++/helpfiles/english/command | 1 - contrib/whois++/helpfiles/english/commands | 9 - contrib/whois++/helpfiles/english/constraints | 39 - contrib/whois++/helpfiles/english/describe | 5 - contrib/whois++/helpfiles/english/general | 7 - contrib/whois++/helpfiles/english/help | 30 - contrib/whois++/helpfiles/english/list | 3 - contrib/whois++/helpfiles/english/search | 33 - contrib/whois++/helpfiles/english/show | 2 - contrib/whois++/helpfiles/english/version | 3 - contrib/whois++/output.c | 363 --- contrib/whois++/root.Makefile.diff | 83 - contrib/whois++/template.c | 166 -- contrib/whois++/templates/applicationentity | 2 - contrib/whois++/templates/organizationalrole | 1 - contrib/whois++/templates/organizationalunit | 2 - contrib/whois++/templates/person | 12 - contrib/whois++/util.c | 166 -- contrib/whois++/version.c | 34 - contrib/whois++/whois++.c | 411 ---- contrib/whois++/whois++.h | 147 -- contrib/whois++/whois++d.man | 162 -- contrib/whois++/whois++dtailor | 5 - 176 files changed, 24178 deletions(-) delete mode 100644 contrib/gtk-tool/COPYRIGHT delete mode 100644 contrib/gtk-tool/ChangeLog delete mode 100644 contrib/gtk-tool/Gtk_LdapItem.h delete mode 100644 contrib/gtk-tool/Gtk_LdapServer.cc delete mode 100644 contrib/gtk-tool/Gtk_LdapServer.h delete mode 100644 contrib/gtk-tool/Gtk_LdapTree.cc delete mode 100644 contrib/gtk-tool/Gtk_LdapTree.h delete mode 100644 contrib/gtk-tool/Gtk_LdapTreeItem.cc delete mode 100644 contrib/gtk-tool/Gtk_LdapTreeItem.h delete mode 100644 contrib/gtk-tool/INSTALL delete mode 100644 contrib/gtk-tool/LICENSE delete mode 100644 contrib/gtk-tool/Makefile delete mode 100644 contrib/gtk-tool/My_Window.cc delete mode 100644 contrib/gtk-tool/My_Window.h delete mode 100644 contrib/gtk-tool/README delete mode 100644 contrib/gtk-tool/TODO delete mode 100644 contrib/gtk-tool/common.h delete mode 100644 contrib/gtk-tool/cpluscommon.h delete mode 100644 contrib/gtk-tool/gtk.h delete mode 100644 contrib/gtk-tool/icons/alias_node.h delete mode 100644 contrib/gtk-tool/icons/branch_node.h delete mode 100644 contrib/gtk-tool/icons/general_node.h delete mode 100644 contrib/gtk-tool/icons/leaf_node.h delete mode 100644 contrib/gtk-tool/icons/local_server.h delete mode 100644 contrib/gtk-tool/icons/monitor.h delete mode 100644 contrib/gtk-tool/icons/remote_server.h delete mode 100644 contrib/gtk-tool/icons/rfc822mailgroup_node.h delete mode 100644 contrib/gtk-tool/icons/root_node.h delete mode 100644 contrib/gtk-tool/main.cc delete mode 100644 contrib/gtk-tool/system.h delete mode 100644 contrib/gtk-tool/utils.cc delete mode 100644 contrib/gtk-tool/utils.h delete mode 100644 contrib/php3-tool/at.conf delete mode 100644 contrib/php3-tool/at.conf2 delete mode 100644 contrib/php3-tool/false.gif delete mode 100644 contrib/php3-tool/images/I.gif delete mode 100644 contrib/php3-tool/images/L.gif delete mode 100644 contrib/php3-tool/images/Lminus.gif delete mode 100644 contrib/php3-tool/images/Lplus.gif delete mode 100644 contrib/php3-tool/images/T.gif delete mode 100644 contrib/php3-tool/images/Tminus.gif delete mode 100644 contrib/php3-tool/images/Tplus.gif delete mode 100644 contrib/php3-tool/images/foldericon.gif delete mode 100644 contrib/php3-tool/images/htmlicon.gif delete mode 100644 contrib/php3-tool/images/openfoldericon.gif delete mode 100644 contrib/php3-tool/images/top.gif delete mode 100644 contrib/php3-tool/images/topopen.gif delete mode 100644 contrib/php3-tool/images/white.gif delete mode 100644 contrib/php3-tool/include/ldap_entry.inc delete mode 100644 contrib/php3-tool/include/ldap_entry_attribute.inc delete mode 100644 contrib/php3-tool/include/ldap_manager.inc delete mode 100644 contrib/php3-tool/include/preferences.inc delete mode 100644 contrib/php3-tool/include/query_manager.inc delete mode 100644 contrib/php3-tool/include/search_form.inc delete mode 100644 contrib/php3-tool/index.php3 delete mode 100644 contrib/php3-tool/javascript/expandable-outlines.js delete mode 100644 contrib/php3-tool/javascript/resize.js delete mode 100644 contrib/php3-tool/ldap-photo.php3 delete mode 100644 contrib/php3-tool/php3tool.conf delete mode 100644 contrib/php3-tool/style.css delete mode 100644 contrib/php3-tool/true.gif delete mode 100644 contrib/tweb/CHANGES delete mode 100644 contrib/tweb/COPYRIGHTS delete mode 100644 contrib/tweb/FEATURE-LIST delete mode 100644 contrib/tweb/GETTING-STARTED.openldap delete mode 100644 contrib/tweb/LDAP_etc/allow.msg.0 delete mode 100644 contrib/tweb/LDAP_etc/allow.msg.1 delete mode 100644 contrib/tweb/LDAP_etc/ldapfilter.conf delete mode 100644 contrib/tweb/LDAP_etc/ldapfriendly.0 delete mode 100644 contrib/tweb/LDAP_etc/ldapfriendly.1 delete mode 100644 contrib/tweb/LDAP_etc/search-only.foot.0 delete mode 100644 contrib/tweb/LDAP_etc/search-only.foot.1 delete mode 100644 contrib/tweb/LDAP_etc/search-only.head.0 delete mode 100644 contrib/tweb/LDAP_etc/search-only.head.1 delete mode 100644 contrib/tweb/LDAP_etc/tweb-base.foot.0 delete mode 100644 contrib/tweb/LDAP_etc/tweb-base.foot.1 delete mode 100644 contrib/tweb/LDAP_etc/tweb-base.head.0 delete mode 100644 contrib/tweb/LDAP_etc/tweb-base.head.1 delete mode 100644 contrib/tweb/LDAP_etc/tweb.footer.0 delete mode 100644 contrib/tweb/LDAP_etc/tweb.footer.1 delete mode 100644 contrib/tweb/LDAP_etc/tweb.header.0 delete mode 100644 contrib/tweb/LDAP_etc/tweb.header.1 delete mode 100644 contrib/tweb/LDAP_etc/tweb.help.0 delete mode 100644 contrib/tweb/LDAP_etc/tweb.help.1 delete mode 100644 contrib/tweb/Makefile.openldap delete mode 100644 contrib/tweb/README delete mode 100644 contrib/tweb/TWEB_conFiles/robots.txt delete mode 100644 contrib/tweb/TWEB_conFiles/tweb.conf.0.dist delete mode 100644 contrib/tweb/TWEB_conFiles/tweb.conf.1.dist delete mode 100644 contrib/tweb/TWEB_conFiles/tweb.lang.0.dist delete mode 100644 contrib/tweb/TWEB_conFiles/tweb.lang.1.dist delete mode 100644 contrib/tweb/TWEB_conFiles/tweb.rc.dist delete mode 100644 contrib/tweb/Versiongw.c delete mode 100644 contrib/tweb/ch_malloc.c delete mode 100644 contrib/tweb/ch_malloc_exp.h delete mode 100644 contrib/tweb/charray.c delete mode 100644 contrib/tweb/charray_exp.h delete mode 100644 contrib/tweb/checkclient.c delete mode 100644 contrib/tweb/checkclient.h delete mode 100644 contrib/tweb/checkclient_exp.h delete mode 100644 contrib/tweb/dn.c delete mode 100644 contrib/tweb/dn.h delete mode 100644 contrib/tweb/dn_exp.h delete mode 100644 contrib/tweb/html.c delete mode 100644 contrib/tweb/html.h delete mode 100644 contrib/tweb/html_exp.h delete mode 100644 contrib/tweb/init.c delete mode 100644 contrib/tweb/init.h delete mode 100644 contrib/tweb/init_exp.h delete mode 100644 contrib/tweb/queries.c delete mode 100644 contrib/tweb/queries.h delete mode 100644 contrib/tweb/queries_exp.h delete mode 100644 contrib/tweb/regular.c delete mode 100644 contrib/tweb/regular.h delete mode 100644 contrib/tweb/regular_exp.h delete mode 100644 contrib/tweb/server.c delete mode 100644 contrib/tweb/server.h delete mode 100644 contrib/tweb/server_exp.h delete mode 100644 contrib/tweb/strng.c delete mode 100644 contrib/tweb/strng_exp.h delete mode 100644 contrib/tweb/support.c delete mode 100644 contrib/tweb/support.h delete mode 100644 contrib/tweb/support_exp.h delete mode 100644 contrib/tweb/tgeneral.h delete mode 100644 contrib/tweb/tglobal.h delete mode 100644 contrib/tweb/tweb.c delete mode 100644 contrib/tweb/tweb.h delete mode 100644 contrib/tweb/x500.c delete mode 100644 contrib/tweb/x500.h delete mode 100644 contrib/tweb/x500_exp.h delete mode 100644 contrib/web500gw/README delete mode 100644 contrib/web_ldap/COPYRIGHT delete mode 100644 contrib/web_ldap/Makefile.in delete mode 100644 contrib/web_ldap/README delete mode 100644 contrib/web_ldap/maint_form.h delete mode 100644 contrib/web_ldap/process_form.h delete mode 100644 contrib/web_ldap/util.c delete mode 100644 contrib/web_ldap/web_ldap.c delete mode 100644 contrib/web_ldap/web_ldap.cfg delete mode 100644 contrib/web_ldap/web_ldap.html delete mode 100644 contrib/web_ldap/web_ldap.log.sample delete mode 100644 contrib/web_ldap/web_ldap_usage.html delete mode 100644 contrib/web_ldap/web_ldap_usage.txt delete mode 100644 contrib/whois++/BUGS delete mode 100644 contrib/whois++/INSTALL delete mode 100644 contrib/whois++/Makefile delete mode 100644 contrib/whois++/README delete mode 100644 contrib/whois++/TODO delete mode 100644 contrib/whois++/command.c delete mode 100644 contrib/whois++/config.c delete mode 100644 contrib/whois++/describe.c delete mode 100644 contrib/whois++/help.c delete mode 100644 contrib/whois++/helpfiles/english/command delete mode 100644 contrib/whois++/helpfiles/english/commands delete mode 100644 contrib/whois++/helpfiles/english/constraints delete mode 100644 contrib/whois++/helpfiles/english/describe delete mode 100644 contrib/whois++/helpfiles/english/general delete mode 100644 contrib/whois++/helpfiles/english/help delete mode 100644 contrib/whois++/helpfiles/english/list delete mode 100644 contrib/whois++/helpfiles/english/search delete mode 100644 contrib/whois++/helpfiles/english/show delete mode 100644 contrib/whois++/helpfiles/english/version delete mode 100644 contrib/whois++/output.c delete mode 100644 contrib/whois++/root.Makefile.diff delete mode 100644 contrib/whois++/template.c delete mode 100644 contrib/whois++/templates/applicationentity delete mode 100644 contrib/whois++/templates/organizationalrole delete mode 100644 contrib/whois++/templates/organizationalunit delete mode 100644 contrib/whois++/templates/person delete mode 100644 contrib/whois++/util.c delete mode 100644 contrib/whois++/version.c delete mode 100644 contrib/whois++/whois++.c delete mode 100644 contrib/whois++/whois++.h delete mode 100644 contrib/whois++/whois++d.man delete mode 100644 contrib/whois++/whois++dtailor diff --git a/contrib/README b/contrib/README index 45f2848a8b..308f4208ae 100644 --- a/contrib/README +++ b/contrib/README @@ -7,9 +7,6 @@ this directory has it's own use and redistribution restrictions as documented within the package. Current contributions: - gtk-tool - GTK-based frontend from Predrag Balorda - ldapc++ The OpenLDAP LDAP C++ API Contributed by SuSE Gmbh. @@ -17,33 +14,12 @@ Current contributions: ldaptcl TCL API from NeoSoft - php3-tool - PHP3-based frontend from Predrag Balorda - saucer General purpose command-line LDAP client, modeled after ISODE's DISH (DIrectory SHell) client. Contributed by Eric Rosenquist. See saucer/README and its man page for more information. - tweb - HTTP gateway derived from web500gw. Contributed - by the Universitaet Tuebingen, GERMANY. See - tweb/README for more information. - - web_ldap - web frontend (in C) from Jens Moller - - web500gw - HTTP gateway for X.500, modeled after go500gw. - Contributed by Frank Richter. See web500gw/README - for more information. - - whois++ - WHOIS++ gateway to X.500. Contributed by Mark Prior. - See whois++/README for more information. - - Please submit your contributions using the OpenLDAP Issue Tracking System . diff --git a/contrib/gtk-tool/COPYRIGHT b/contrib/gtk-tool/COPYRIGHT deleted file mode 100644 index 755a0ddd37..0000000000 --- a/contrib/gtk-tool/COPYRIGHT +++ /dev/null @@ -1,8 +0,0 @@ -Copyright 1998,1999,2000 Predrag Balorda, London, UK -All rights reserved. - -Redistribution and use in source and binary forms are permitted only -as authorized by the OpenLDAP Public License. A copy of this -license is available at http://www.OpenLDAP.org/license.html or -in file LICENSE in the top-level directory of the distribution. - diff --git a/contrib/gtk-tool/ChangeLog b/contrib/gtk-tool/ChangeLog deleted file mode 100644 index cfbf97fd62..0000000000 --- a/contrib/gtk-tool/ChangeLog +++ /dev/null @@ -1,95 +0,0 @@ -ChangeLog for gtk-tool -06/01/2000 - Pele - * Added cn=schema - -03/01/2000 - Pele - * Fixed localtime() bug in Linux ?;) - -03/01/19100 - Pele - * Auto-select the first server if any supplied as arguments - * A visual bug in the former (deselect a bit messy) - * Follow aliases (not tested with leaf nodes though) - * "Show Debug Info" in "Options" menu - -28/12/1999 - Pele - * Updated Gtk-- API from 1.0 to 1.1 - * Added -d switch (for debugging info) - * Added "Options" menu - -12/01/1999 - Pele - * Added some defines for U-MICH compatibility - * Updated to the latest Gtk-- API (in Gtk-- CVS tree) - * Minor fixes due to the new and cleaner Gtk-- API - * A new server can be added by entering a hostname into the - "url" field at the top and clicking on "Query Server" button - (note that one server still has to be supplied on the command line - - I'll try and fix this tomorrow...to do with ldap_get_opt) - * Somewhat "smarter" Makefile - can someone please look into integrating - gtk-tool into the openldap autoconf stuff? - -09/12/1998 - Pele - * Display of all ldap options in their proper widgets (sliders for - timeout, radio buttons for booleans etc.) when server selected - * Code cleanups - * Misc fixes - -03/12/1998 - Pele - * Added support for multiple servers (via multiple -s options) - * More testing - * Started experimenting with status bar for display of various info - * Got rid of many warning and error messages generate by gtk - * Added a new icon for objectclass=alias; - * Display of some ldap options aquired with ldap_get_option when - server selected. - * Traversing set to only 1 subtree (then 1 by 1); - * Started experimenting with a progress bar for traversal - (so users don't get bored while waiting for subtrees to be aquired and - constructed) - -02/12/1998 - Pele - * Added Gtk_LdapTree class - * Added utils (with debug only) - * "Smart" traversing of ldap tree (only 2-deep, then add 2 subtrees as - the tree gets expanded) - * Lots of updates and bug-fixes - -29/11/1998 - Pele - * Added Gtk_LdapServer class - * Started using cn=config, ldap_get_option (not sure about get_option - though, cn=config looks much nicer for the future-proofing) - * Can traverse, display and serve two (or possibly/hopefully) more - databases on the local machine - remote machines also possible - - need to use "-s hostname" - * The program needs the "-s" switch! Without it it won't run (temporary - "feature") - -28/11/1998 - Pele - * Fixes, enhancements, started using ldap utility api - * It now traverses the whole tree at startup, not sure if it's smart - but I did it because of something that has no relevance to network - traffic - -27/11/1998 - Pele - * Added viewports, both sides now scroll automatically - * Brought back the "cache" stuff, now data gets reused if it's allready - available without redundant searches/listings. - * Editing pixmaps by hand is so much, er, fun! - * Miniscule fixes - -26/11/1998 - Pele - * Added nice icons in the browser pane - looks decent now. - * Fixed scrolling in the data (right) pane - now scrolls if there is - a long tab - * removed class My_Scroller - * removed file Gtk_LdapItem.cc (useless) - * commented-out the part where data gets reused instead of re-querying - the server, stupid I know, but for the time being if resolves some - problems with replacement of right pane. - * Misc. fixes - -26/11/1998 - Pele - * First appearance of ChangeLog - * Fixed removal of scrolled window on the right hand side - thus making gtk-tool a viable project to be worked on - * added command-line parameter parsing - now accepts - -s for server, -p for port, -b for baseDN diff --git a/contrib/gtk-tool/Gtk_LdapItem.h b/contrib/gtk-tool/Gtk_LdapItem.h deleted file mode 100644 index 73c1a7cd14..0000000000 --- a/contrib/gtk-tool/Gtk_LdapItem.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef GTK_LDAPITEM_H -#define GTK_LDAPITEM_H -#include "cpluscommon.h" -#include "gtk.h" -#include -class Gtk_LdapTreeItem; - -class Gtk_LdapItem { -public: - Gtk_Tree *tree; - Gtk_LdapTreeItem *treeitem; - G_List *value_list; - char *attribute_name; - G_List *attribute_list; - char *entry_name; -}; -#endif diff --git a/contrib/gtk-tool/Gtk_LdapServer.cc b/contrib/gtk-tool/Gtk_LdapServer.cc deleted file mode 100644 index 8bb7480989..0000000000 --- a/contrib/gtk-tool/Gtk_LdapServer.cc +++ /dev/null @@ -1,446 +0,0 @@ -#include "Gtk_LdapServer.h" -#include - -Gtk_LdapServer::Gtk_LdapServer() : Gtk_TreeItem() { - this->hostname = NULL; - this->par = NULL; - this->base_dn = NULL; - this->port = 0; -} - -Gtk_LdapServer::Gtk_LdapServer(My_Window *w, char *h, int p) : Gtk_TreeItem() { - char *s, *s2; - this->par = w; - this->hostname = h; - this->port = p; - this->notebook = NULL; - debug("%s %i\n", this->hostname, this->port); - this->setType(1); - this->getConfig(); -} - -Gtk_LdapServer::Gtk_LdapServer(GtkTreeItem *t) : Gtk_TreeItem(t) { -} - -Gtk_LdapServer::~Gtk_LdapServer() { - debug("Bye\n"); - delete this; -} - -void Gtk_LdapServer::setType(int t) { - debug("Gtk_LdapServer::setType(%i)\n", t); - Gtk_Pixmap *xpm_icon; - Gtk_Label *label; - char *c = NULL; - if (this->get_child() != NULL) this->remove(); - xpm_label = new Gtk_HBox(); - debug(this->hostname); - if (strcasecmp(this->hostname,"localhost") == 0) - xpm_icon=new Gtk_Pixmap(local_server); - else xpm_icon=new Gtk_Pixmap(remote_server); -// sprintf(c, "%s:%i", this->hostname, this->port); -// printf("%s\n", c); - label = new Gtk_Label(this->hostname); - xpm_label->pack_start(*xpm_icon, false, false, 1); - xpm_label->pack_start(*label, false, false, 1); - if (this->get_child() == NULL) this->add(*xpm_label); - this->show_all(); -} - -int Gtk_LdapServer::showDetails() { - debug("Gtk_LdapServer::showDetails()\n"); - if (this->notebook == NULL) this->getOptions(); - if (this->notebook != NULL) { - debug("Have a notebook here"); - if (par->viewport2->get_child() != NULL) { - debug(" and viewport has children"); - par->viewport2->remove(); - debug(" which have been removed\n"); - } - else debug(" and viewport without children\n"); - par->viewport2->add(*this->notebook); - } - this->show_all(); - debug("done\n"); - return 0; -} - -int Gtk_LdapServer::getMonitor() { - debug("Gtk_LdapServer::getMonitor()\n"); - int error, entriesCount; - LDAPMessage *entry, *result_identifier; - BerElement *ber; - char *attribute, **t; - - if ((this->ld = ldap_open(this->hostname, this->port)) == NULL) { - perror("connection"); - } - - error = ldap_search_s(this->ld, "cn=monitor", LDAP_SCOPE_BASE, "objectclass=*", NULL, 0, &result_identifier); - entriesCount = ldap_count_entries(this->ld, result_identifier); - if (entriesCount == 0) { - return 0; - } - - debug("%i tree(s)\n", entriesCount); - for (entry = ldap_first_entry(this->ld, result_identifier); entry != NULL; entry = ldap_next_entry(this->ld, result_identifier)) { - for (attribute = ldap_first_attribute(this->ld, entry, &ber); attribute != NULL; attribute = ldap_next_attribute(this->ld, entry, ber)) { - debug("Attrib: %s\n", attribute); - if (strcasecmp(attribute, "database") == 0) { - debug("have database here\n"); - this->databases = NULL; - t = ldap_get_values(this->ld, entry, attribute); - for (int i=0; idatabases = g_list_append(this->databases, strdup(t[i])); - } - ldap_value_free(t); - debug("databases loaded\n"); - GList *t; - for (int i=0;i>g_list_length(this->databases);i++) { - t = g_list_nth(this->databases, i); - debug("database(%i) %s\n", i, (char*) t->data); - } - } - } - debug("entry done\n"); - } - return entriesCount; -} - -int Gtk_LdapServer::getConfig() { - debug("Gtk_LdapServer::getConfig()\n"); - int error, entriesCount; - LDAPMessage *entry, *result_identifier; - BerElement *ber; - char *attribute, **t; - - if ((this->ld = ldap_open(this->hostname, this->port)) == NULL) { - perror("connection"); - } - - error = ldap_search_s(this->ld, "cn=config", LDAP_SCOPE_BASE, "objectclass=*", NULL, 0, &result_identifier); - entriesCount = ldap_count_entries(this->ld, result_identifier); - if (entriesCount == 0) { - return 0; - } - -// debug("%i tree(s)\n", entriesCount); - for (entry = ldap_first_entry(this->ld, result_identifier); entry != NULL; entry = ldap_next_entry(this->ld, result_identifier)) { - for (attribute = ldap_first_attribute(this->ld, entry, &ber); attribute != NULL; attribute = ldap_next_attribute(this->ld, entry, ber)) { - debug("Attrib: %s\n", attribute); - if (strcasecmp(attribute, "database") == 0) { - debug("have database here\n"); - this->databases = NULL; - t = ldap_get_values(this->ld, entry, attribute); - for (int i=0; idatabases = g_list_append(this->databases, strdup(t[i])); - } - this->databases = g_list_append(this->databases, "ldbm : cn=config"); - this->databases = g_list_append(this->databases, "ldbm : cn=monitor"); - this->databases = g_list_append(this->databases, "ldbm : cn=schema"); - ldap_value_free(t); - debug("databases loaded\n"); - GList *t; - for (int i=0;idatabases);i++) { - t = g_list_nth(this->databases, i); - debug("database(%i) %s\n", i, (char*) t->data); - } - } - } - debug("entry done\n"); - } - return entriesCount; -} - -#ifndef LDAP_GET_OPT /* a temporary fix for usability with (old) U-MICH api */ -char* Gtk_LdapServer::getOptDescription(int option) { - debug("Gtk_LdapServer::getOptDescription(%i) ", option); - char *c; - switch (option) { - case LDAP_OPT_API_INFO: c = "API info"; break; - case LDAP_OPT_CLIENT_CONTROLS: c = "Client controls"; break; - case LDAP_OPT_DEREF: c = "Dereference"; break; - case LDAP_OPT_DESC: c = "Description"; break; - case LDAP_OPT_DNS: c = "DNS Lookup"; break; - case LDAP_OPT_ERROR_NUMBER: c = "Error number"; break; - case LDAP_OPT_ERROR_STRING: c = "Error string"; break; - case LDAP_OPT_SIZELIMIT: c = "Size limit"; break; - case LDAP_OPT_TIMELIMIT: c = "Time limit"; break; - case LDAP_OPT_REFERRALS: c = "Referrals"; break; - case LDAP_OPT_RESTART: c = "Started"; break; - case LDAP_OPT_PROTOCOL_VERSION: c = "Protocol version"; break; - case LDAP_OPT_HOST_NAME: c = "Host name"; break; - case LDAP_OPT_SERVER_CONTROLS: c = "Server controls"; break; - default: c = "No description"; break; - } - debug("%s\n", c); - return c; -} - -int Gtk_LdapServer::getOptType(int option) { - debug("Gtk_LdapServer::getOptType(%i) ", option); - /* types: - * 0 = int, 1 = string, 2 = boolean, - * 3 = range, 4 = LDAPAPIInfo, 5 = unknown - */ - int type; - switch(option) { - /* ints */ - case LDAP_OPT_DEREF: - case LDAP_OPT_DESC: - case LDAP_OPT_ERROR_NUMBER: - case LDAP_OPT_PROTOCOL_VERSION: type = 0; break; - /* strings */ - case LDAP_OPT_ERROR_STRING: - case LDAP_OPT_HOST_NAME: type = 1; break; - /* bools */ - case LDAP_OPT_REFERRALS: - case LDAP_OPT_DNS: - case LDAP_OPT_RESTART: type = 2; break; - /* range */ - case LDAP_OPT_SIZELIMIT: - case LDAP_OPT_TIMELIMIT: type = 3; break; - /* api */ - case LDAP_OPT_API_INFO: type = 4; break; - /* unknowns */ - case LDAP_OPT_SERVER_CONTROLS: - case LDAP_OPT_CLIENT_CONTROLS: - default: type = 5; break; - } - debug("%i\n", type); - return type; -} -#endif /* LDAP_GET_OPT */ - -int Gtk_LdapServer::getOptions() { - debug("Gtk_LdapServer::getOptions()\n"); - if (this->notebook != NULL) return 0; -#ifdef LDAP_GET_OPT /* a temporary fix for usability with (old) U-MICH api */ - Gtk_Label *label; - label = new Gtk_Label("This tool has been compiled with (old) U-MICH API (no LDAP_GET_OPT)\nCompile with the latest -devel (from OpenLDAP cvs tree)\nto get some nice options here"); - this->notebook = new Gtk_Frame("LDAP Options"); - this->notebook->add(*label); - //label->show(); - //this->notebook->show(); - this->notebook->show_all(); - return 0; -#else - LDAPAPIInfo api; - Gtk_HBox *hbox, *mini_hbox; - Gtk_VBox *vbox, *mini_vbox; - Gtk_Table *table; - Gtk_Label *label; - Gtk_RadioButton *radio1, *radio2; - Gtk_HScale *scale; - Gtk_Adjustment *adjustment; - char *description = NULL, *s_value = NULL; -// int i_value; - string label_string; - - int things[10] = { - LDAP_OPT_API_INFO, - LDAP_OPT_CLIENT_CONTROLS, - // LDAP_OPT_DESC, - // LDAP_OPT_DEREF, - LDAP_OPT_DNS, - // LDAP_OPT_ERROR_NUMBER, - // LDAP_OPT_ERROR_STRING, - LDAP_OPT_HOST_NAME, - LDAP_OPT_PROTOCOL_VERSION, - LDAP_OPT_REFERRALS, - LDAP_OPT_RESTART, - LDAP_OPT_SERVER_CONTROLS, - LDAP_OPT_SIZELIMIT, - LDAP_OPT_TIMELIMIT - }; - -/* if (GTK_TREE_ITEM(this->gtkobj())->subtree == NULL) { - this->getSubtree(); - } */ - -// vbox = new Gtk_VBox(); - table = new Gtk_Table(10, 1, TRUE); - - for (int i=0; i<10; i++) { - int i_value; - // debug("%i\n", i); - hbox = new Gtk_HBox(TRUE, 2); - hbox->set_border_width(2); - description = this->getOptDescription(things[i]); - label = new Gtk_Label(description); - label->set_justify(GTK_JUSTIFY_LEFT); - label->set_alignment(0, 0); - hbox->pack_start(*label); - label->show(); - switch (this->getOptType(things[i])) { - case 0: - ldap_get_option(this->ld, things[i], &i_value); - debug("%s value %d\n", description, i_value); - sprintf(s_value, "%d", i_value); - label = new Gtk_Label(s_value); - label->set_justify(GTK_JUSTIFY_LEFT); - label->set_alignment(0, 0); - hbox->pack_end(*label); - label->show(); - break; - case 1: - ldap_get_option(this->ld, things[i], &s_value); - label = new Gtk_Label(s_value); - label->set_justify(GTK_JUSTIFY_LEFT); - label->set_alignment(0, 0); - hbox->pack_end(*label); - label->show(); - break; - case 2: - ldap_get_option(this->ld, things[i], &i_value); - radio1 = new Gtk_RadioButton("Enabled"); - radio2 = new Gtk_RadioButton("Disabled"); - radio2->set_group(radio1->group()); - if (i_value == 1) radio1->set_active(true); - else radio2->set_active(true); - mini_hbox = new Gtk_HBox(FALSE, 2); - mini_hbox->set_border_width(2); - mini_hbox->pack_start(*radio1); - //radio1->show(); - mini_hbox->pack_end(*radio2); - //radio2->show(); - hbox->pack_end(*mini_hbox); - //mini_hbox->show(); - break; - case 3: - ldap_get_option(this->ld, things[i], &i_value); - debug("i_value: %s\n", i_value); - adjustment = new Gtk_Adjustment(i_value, 0.0, 20.0, 1.0, 1.0, 0.0); - scale = new Gtk_HScale(*adjustment); - scale->set_update_policy(GTK_UPDATE_CONTINUOUS); - scale->set_value_pos(GTK_POS_TOP); - scale->set_digits(0); - scale->set_draw_value(true); - hbox->pack_end(*scale); - //scale->show(); - break; - case 4: -#ifdef LDAP_API_INFO_VERSION - api.ldapai_info_version = LDAP_API_INFO_VERSION; -#else - api.ldapai_info_version = 1; -#endif - if (ldap_get_option(this->ld, things[i], &api) != LDAP_SUCCESS) { - perror(this->getOptDescription(things[i])); - break; - } - s_value = api.ldapai_vendor_name; - label = new Gtk_Label(s_value); - label->set_justify(GTK_JUSTIFY_LEFT); - label->set_alignment(0, 0); - hbox->pack_end(*label); - //label->show(); - break; - default: - label = new Gtk_Label("Not implemented (yet)"); - label->set_justify(GTK_JUSTIFY_LEFT); - label->set_alignment(0, 0); - hbox->pack_end(*label); - //label->show(); - break; - } - // hbox->pack_end(*label); - // label->show(); - table->attach(*hbox, 0, 1, i, i+1); - hbox->show(); - } - table->set_border_width(2); - this->notebook = new Gtk_Frame("LDAP Options"); - this->notebook->add(*table); - //table->show(); - this->notebook->show_all(); - return 0; -#endif /* LDAP_GET_OPT */ -} - -Gtk_Tree* Gtk_LdapServer::getSubtree() { - debug("Gtk_LdapServer::getSubtree()\n"); - Gtk_LdapTree *tree, *subtree; - Gtk_LdapTreeItem *treeitem; - int entries; - - debug("this->hostname=%s\n", this->hostname); - debug("this->port=%i", this->port); - - char *c; - char *tok; - - int len = g_list_length(this->databases); - debug("this->databases->length()=%i\n", len); - - tree = new Gtk_LdapTree(); - for (int i=0; idatabases, i); - tok = strdup((char*)t->data); - tok = strtok(tok, ":"); - // c = strtok(NULL, " "); - c = strtok(NULL, "\0"); - debug("database %i %s\n", i, c); - treeitem = new Gtk_LdapTreeItem(c, this->par, this->ld); - subtree = treeitem->getSubtree(this->ld, 1); - debug("inserting %s into %s\n", treeitem->rdn, this->hostname); - tree->append(*treeitem); - if (subtree != NULL) treeitem->set_subtree(*subtree); - treeitem->show(); - // treeitem->setDnd(); - // tree->show(); - } -// this->set_subtree(*tree); - debug("getSubtree() done\n"); - return tree; -} -/* -void Gtk_LdapServer::show_impl() { - debug("%s showed\n", this->hostname); - BaseClassType *sig=static_cast(get_parent_class()); - if (!sig->show) return; - sig->show(gtkobj()); -// Gtk_c_signals_Item *sig=(Gtk_c_signals_Item *)internal_getsignalbase(); -// sig->show(GTK_WIDGET(gtkobj())); -} -*/ -void Gtk_LdapServer::select_impl() { - debug("%s selected\n", this->hostname); -// Gtk_c_signals_Item *sig=(Gtk_c_signals_Item *)internal_getsignalbase(); -// if (!sig->select) return; - this->showDetails(); -// sig->select(GTK_ITEM(gtkobj())); - Gtk_TreeItem::select_impl(); -} - -void Gtk_LdapServer::collapse_impl() { - debug("%s collapsed\n", this->hostname); -// Gtk_c_signals_TreeItem *sig=(Gtk_c_signals_TreeItem *)internal_getsignalbase(); -// if (!sig->collapse) return; -// sig->collapse(GTK_TREE_ITEM(gtkobj())); -// gtk_widget_hide(GTK_WIDGET(GTK_TREE(GTK_TREE_ITEM (this->gtkobj())->subtree))); - Gtk_TreeItem::collapse_impl(); -} - -void Gtk_LdapServer::expand_impl() { - debug("%s expanded\n", this->hostname); - Gtk_TreeItem::expand_impl(); -// BaseClassType *sig=static_cast(get_parent_class()); -// if (!sig->expand) -// { return; } -// sig->expand(gtkobj()); -// Gtk_c_signals_TreeItem *sig=(Gtk_c_signals_TreeItem *)internal_getsignalbase(); -// if (!sig->expand) return; -// sig->expand(GTK_TREE_ITEM(gtkobj())); -// Gtk_Tree *t; -// t = new Gtk_Tree(GTK_TREE(GTK_TREE_ITEM(this->gtkobj())->subtree)); -// bool vis = t->visible(); -// if (vis == false) { -// gtk_widget_show(GTK_WIDGET(GTK_TREE(GTK_TREE_ITEM (this->gtkobj())->subtree))); -// cout << this->dn << " expanded" << endl; -// } -// else { -// gtk_widget_hide(GTK_WIDGET(GTK_TREE(GTK_TREE_ITEM (this->gtkobj())->subtree))); -// cout << this->dn << " collapsed" << endl; -// } -} diff --git a/contrib/gtk-tool/Gtk_LdapServer.h b/contrib/gtk-tool/Gtk_LdapServer.h deleted file mode 100644 index 21466a0b6c..0000000000 --- a/contrib/gtk-tool/Gtk_LdapServer.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef GTK_LDAPSERVER_H -#define GTK_LDAPSERVER_H -#include "gtk.h" -#include "utils.h" -#include -#include -#include -#include -#include -#include "icons/local_server.h" -#include "icons/remote_server.h" - -#define LOCAL_SERVER 1 -#define REMOTE_SERVER 2 - -class My_Window; - -class Gtk_LdapServer : public Gtk_TreeItem { -public: - char *dn; - char *hostname; - LDAPMessage **thing; - LDAP *ld; - char *host; - char *base_dn; - int c, port; - My_Window *par; -// Gtk_Notebook *notebook; - Gtk_Frame *notebook; - Gtk_HBox *xpm_label; -// Gtk_Tree *subtree; - Gtk_Menu *popup; - GList *databases; - Gtk_LdapServer(); - Gtk_LdapServer(My_Window *w, char *c, int p); - Gtk_LdapServer(GtkTreeItem *t); - ~Gtk_LdapServer(); - void setType(int t); - int getMonitor(); - int getConfig(); - Gtk_Tree* getSubtree(); -#ifndef LDAP_GET_OPT - char* getOptDescription(int option); - int getOptType(int option); -#endif - int getOptions(); - int showDetails(); -// void show_impl(); - void select_impl(); - void collapse_impl(); - void expand_impl(); -}; -#endif diff --git a/contrib/gtk-tool/Gtk_LdapTree.cc b/contrib/gtk-tool/Gtk_LdapTree.cc deleted file mode 100644 index 3908621aa0..0000000000 --- a/contrib/gtk-tool/Gtk_LdapTree.cc +++ /dev/null @@ -1,26 +0,0 @@ -#include - -void Gtk_LdapTree::show_impl() { - debug("Gtk_LdapTree::show_impl()\n"); - Gtk_LdapTree *tree; - Gtk_LdapTreeItem *item = NULL; - Gtk_LdapTree::ItemList &items = this->tree(); - Gtk_LdapTree::ItemList::iterator i; // = items.begin(); - debug("iterator\n"); - for (i=items.begin(); i!=items.end();++i) { -// while (i!=items.end()) { - item = (Gtk_LdapTreeItem *)(*i); - debug("new item\n"); - debug("#%s#\n", item->dn); - if (item->get_subtree() == NULL) { - debug("ding!\n"); - tree = item->getSubtree(item->ld, 1); - if (tree != NULL) { - item->set_subtree(*tree); - } - item->setDnd(); - } - } - debug("done\n"); - Gtk_Tree::show_impl(); -} diff --git a/contrib/gtk-tool/Gtk_LdapTree.h b/contrib/gtk-tool/Gtk_LdapTree.h deleted file mode 100644 index a0a713bc04..0000000000 --- a/contrib/gtk-tool/Gtk_LdapTree.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef GTK_LDAP_TREE_H -#define GTK_LDAP_TREE_H -#include -#include "utils.h" -#include - -class Gtk_LdapTree : public Gtk_Tree { - void show_impl(); -}; -#endif diff --git a/contrib/gtk-tool/Gtk_LdapTreeItem.cc b/contrib/gtk-tool/Gtk_LdapTreeItem.cc deleted file mode 100644 index 0216a6503d..0000000000 --- a/contrib/gtk-tool/Gtk_LdapTreeItem.cc +++ /dev/null @@ -1,376 +0,0 @@ -#include "Gtk_LdapTreeItem.h" - -Gtk_LdapTreeItem::Gtk_LdapTreeItem() : Gtk_TreeItem() { - this->objectClass = NULL; -} - -Gtk_LdapTreeItem::Gtk_LdapTreeItem(char *c, My_Window *w, LDAP *ld) : Gtk_TreeItem() { - debug("Gtk_LdapTreeItem::Gtk_LdapTreeItem(%s)\n", c); - char **s; - this->dn = c; - s = ldap_explode_dn(this->dn, 1); - this->rdn = g_strdup_printf("%s", s[0]); - this->par = w; - this->ld = ld; - this->objectClass = NULL; - this->getDetails(); - this->createPopupMenu(); -} - -void Gtk_LdapTreeItem::setDnd() { - debug("Gtk_LdapTreeItem::setDnd()\n"); - this->set_events(get_events()|GDK_ALL_EVENTS_MASK); - this->drag_dest_set(GTK_DEST_DEFAULT_ALL, target_table, n_targets, static_cast (GDK_ACTION_COPY|GDK_ACTION_MOVE)); - this->drag_data_received.connect(slot(this, &(Gtk_LdapTreeItem::item_drag_data_received))); - this->drag_drop.connect(slot(this,&Gtk_LdapTreeItem::target_drag_drop)); - this->drag_source_set(static_cast(GDK_BUTTON1_MASK|GDK_BUTTON3_MASK), target_table, n_targets, static_cast(GDK_ACTION_COPY|GDK_ACTION_MOVE)); - gtk_drag_source_set(GTK_WIDGET(this->gtkobj()), static_cast(GDK_BUTTON1_MASK|GDK_BUTTON3_MASK), target_table, n_targets, static_cast(GDK_ACTION_COPY|GDK_ACTION_MOVE)); - this->drag_data_get.connect(slot(this, &Gtk_LdapTreeItem::source_drag_data_get)); - this->drag_data_delete.connect(slot(this,&Gtk_LdapTreeItem::source_drag_data_delete)); - this->drag_leave.connect(slot(this,&Gtk_LdapTreeItem::target_drag_leave)); - -} - -Gtk_LdapTreeItem::Gtk_LdapTreeItem(GtkTreeItem *t) : Gtk_TreeItem(t) { -} - -Gtk_LdapTreeItem::~Gtk_LdapTreeItem() { - cout << "Bye" << endl; - delete this; -} - -Gtk_LdapTree* Gtk_LdapTreeItem::getSubtree(LDAP *ld, int counter) { - debug("Gtk_LdapTreeItem::getSubtree(%s)\n", this->dn); - if (counter <= 0) return NULL; - if (this->gtkobj()->subtree != NULL) { - //return (Gtk_LdapTree *)GTK_TREE(this->gtkobj()->subtree); - debug("This item has a subtree\n"); - return (Gtk_LdapTree *)this->get_subtree(); //gtkobj()->subtree); - } - counter--; - Gtk_LdapTree *subtree = NULL, *tree = NULL; - Gtk_LdapTreeItem *subtreeitem = NULL; - LDAPMessage *r_i = NULL, *entry = NULL; - gchar *c; - char **s; - int entriesCount = 0, error; - - this->ld = ld; - if (this->dn == "cn=config" || this->dn == "cn=monitor" || this->dn == "cn=schema") error = ldap_search_s(this->ld, this->dn, LDAP_SCOPE_BASE, "objectclass=*", NULL, 0, &r_i); - else { - if (strcasecmp(this->objectClass,"alias") == 0) error = ldap_search_s(this->ld, this->getAttribute("aliasedobjectname"), LDAP_SCOPE_ONELEVEL, "objectclass=*", NULL, 0, &r_i); - else error = ldap_search_s(this->ld, this->dn, LDAP_SCOPE_ONELEVEL, "objectclass=*", NULL, 0, &r_i); - } -// printf("%s\n", ldap_err2string(error)); - entriesCount = ldap_count_entries(this->ld, r_i); - debug("%i results\n", entriesCount); - if (entriesCount != 0) { - tree = new Gtk_LdapTree(); - // this->set_subtree(*tree); - tree->set_selection_mode(GTK_SELECTION_BROWSE); - tree->set_view_mode(GTK_TREE_VIEW_ITEM); - tree->set_view_lines(false); - entry = ldap_first_entry(this->ld, r_i); - // float i = 1; - gfloat percent = 100/entriesCount; - debug("percent is %f\n", percent); - // this->par->progress.set_percentage(percent/100); - // this->par->progress.show(); - while (entry != NULL) { - subtreeitem = new Gtk_LdapTreeItem(ldap_get_dn(this->ld, entry), this->par, this->ld); - debug("inserting %s into %s\n",subtreeitem->rdn,this->rdn); - tree->append(*subtreeitem); - subtree = subtreeitem->getSubtree(this->ld, counter); - subtreeitem->show(); - if (subtree != NULL) subtreeitem->set_subtree(*subtree); - // subtreeitem->setDnd(); - debug("done\n"); - entry = ldap_next_entry(this->ld, entry); - // gfloat pvalue = (i*percent)/100; - // cout << pvalue << " %" << endl; - // this->par->progress.update(pvalue); - // this->par->progress.show(); - // i++; - } - // this->set_subtree(*tree); - // this->par->progress.update(0); - // this->par->progress->show(); - } -// this->getDetails(); - debug("done\n"); - return tree; -} - -void Gtk_LdapTreeItem::setType(int t) { - debug("Gtk_LdapTreeItem::setType(%s)\n", this->objectClass); - Gtk_Pixmap *xpm_icon; - Gtk_Label *label; - if (this->get_child() != NULL) { - debug("got a child here"); - //xpm_label = new Gtk_HBox(this->get_child()); - this->remove(); - /* - //xpm_label = new Gtk_HBox(*GTK_HBOX(this->get_child()->gtkobj())); - xpm_label = new Gtk_HBox(this->get_child()); //->gtkobj()); - //xpm_label->remove_c(xpm_label->children().nth_data(0)); - Gtk_HBox::BoxList &list = xpm_label->children(); - Gtk_HBox::BoxList::iterator i = list.begin(); - xpm_label->remove(*i); - //xpm_label->remove_c(xpm_label->children().nth_data(0)); - xpm_label->remove(*xpm_label->children().begin()); - */ - } - xpm_label = new Gtk_HBox(); - if (strcasecmp(this->objectClass,"organization") == 0) - //xpm_icon=new Gtk_Pixmap(*xpm_label, root_node); - xpm_icon=new Gtk_Pixmap(root_node); - else if (strcasecmp(this->objectClass,"organizationalunit") == 0) - //xpm_icon=new Gtk_Pixmap(*xpm_label, branch_node); - xpm_icon=new Gtk_Pixmap(branch_node); - else if (strcasecmp(this->objectClass,"person") == 0) - //xpm_icon=new Gtk_Pixmap(*xpm_label, leaf_node); - xpm_icon=new Gtk_Pixmap(leaf_node); - else if (strcasecmp(this->objectClass,"alias") == 0) - //xpm_icon=new Gtk_Pixmap(*xpm_label, alias_node); - xpm_icon=new Gtk_Pixmap(alias_node); - else if (strcasecmp(this->objectClass,"rfc822mailgroup") == 0) - //xpm_icon=new Gtk_Pixmap(*xpm_label, rfc822mailgroup_node); - xpm_icon=new Gtk_Pixmap(rfc822mailgroup_node); - else if (strcasecmp(this->objectClass,"LDAPsubentry") == 0) - xpm_icon=new Gtk_Pixmap(monitor); - else //xpm_icon=new Gtk_Pixmap(*xpm_label, general_node); - xpm_icon=new Gtk_Pixmap(general_node); - label = new Gtk_Label(this->rdn); - xpm_label->pack_start(*xpm_icon, false, false, 1); - xpm_label->pack_start(*label, false, false, 1); - if (this->get_child() == NULL) { - debug("no children - GREAT!!"); - this->add(*xpm_label); - } - //label->show(); - //xpm_icon->show(); - //xpm_label->show(); - show_all(); -} - -int Gtk_LdapTreeItem::showDetails() { - debug("Gtk_LdapTreeItem::showDetails()\n"); - if (this->notebook == NULL) this->getDetails(); - if (this->notebook != NULL) { - debug("Have a notebook here"); - if (par->viewport2->get_child() != NULL) { - debug(" and the viewport has children"); - //par->viewport2->remove(par->viewport2->get_child()); - par->viewport2->remove(); - debug(" which have been removed"); - } - else debug(" and viewport has no children"); - par->viewport2->add(*this->notebook); - this->notebook->show(); - par->viewport2->show(); - return 0; - } - else debug("No notebook and no details"); - return 0; -} - -char* Gtk_LdapTreeItem::getAttribute(char *c) { - int entriesCount, error; - BerElement *ber; - LDAPMessage *entry; - char *attribute, **values; - error = ldap_search_s(this->ld, this->dn, LDAP_SCOPE_BASE, "objectclass=*", NULL, 0, &this->result_identifier); - entriesCount = ldap_count_entries(this->ld, this->result_identifier); - if (entriesCount == 0) return 0; - for (entry = ldap_first_entry(ld, result_identifier); entry != NULL; entry = ldap_next_entry(ld, result_identifier)) { - for (attribute = ldap_first_attribute(ld, entry, &ber); attribute != NULL; attribute = ldap_next_attribute(ld, entry, ber)) { - values = ldap_get_values(ld, entry, attribute); - if (strcasecmp(attribute, "aliasedobjectname") == 0) { - this->aliasedObjectName = strdup(values[0]); - } - } - } - return this->aliasedObjectName; -} - -int Gtk_LdapTreeItem::getDetails() { - debug("Gtk_LdapTreeItem::getDetails()\n"); - int error, entriesCount; - BerElement *ber; - LDAPMessage *entry; - char *attribute, **values; - char attrib[32]; - Gtk_CList *table; - Gtk_Label *label; - GList *child_list; - Gtk_Viewport *viewport; - error = ldap_search_s(this->ld, this->dn, LDAP_SCOPE_BASE, "objectclass=*", NULL, 0, &this->result_identifier); - entriesCount = ldap_count_entries(this->ld, this->result_identifier); - if (entriesCount == 0) return 0; - this->notebook = new Gtk_Notebook(); - this->notebook->set_tab_pos(GTK_POS_LEFT); - const gchar *titles[] = { "values" }; - - for (entry = ldap_first_entry(ld, result_identifier); entry != NULL; entry = ldap_next_entry(ld, result_identifier)) { - for (attribute = ldap_first_attribute(ld, entry, &ber); attribute != NULL; attribute = ldap_next_attribute(ld, entry, ber)) { - values = ldap_get_values(ld, entry, attribute); - if (strcasecmp(attribute, "objectclass") == 0) { - // debug("processing objectclass\n"); - if (strcasecmp(values[0],"top") == 0) - this->objectClass = strdup(values[1]); - else this->objectClass = strdup(values[0]); - } - table = new Gtk_CList(1, titles); - for (int i=0; iappend(t); - } - ldap_value_free(values); - sprintf(attrib, "%s", attribute); - label = new Gtk_Label(attrib); - label->set_alignment(0, 0); - label->set_justify(GTK_JUSTIFY_LEFT); - this->notebook->pages().push_back(Gtk_Notebook_Helpers::TabElem(*table, *label)); - table->show(); - label->show(); - } - } - this->setType(1); - debug("done\n"); - return 0; -} - -void Gtk_LdapTreeItem::createPopupMenu() { - debug("Gtk_LdapTreeItem::createPopupMenu()\n"); - Gtk_MenuItem *item; - - this->menu = new Gtk_Menu(); - - item = new Gtk_MenuItem("Add"); - this->menu->add(*item); - item = new Gtk_MenuItem("Delete"); - this->menu->add(*item); - item = new Gtk_MenuItem(); - this->menu->add(*item); - item = new Gtk_MenuItem("Cut"); - this->menu->add(*item); - item = new Gtk_MenuItem("Copy"); - this->menu->add(*item); - item = new Gtk_MenuItem("Paste"); - this->menu->add(*item); - this->menu->show_all(); - this->menu->activate(); -} -/* -void Gtk_LdapTreeItem::show_impl() { - debug("%s showed\n", this->dn); -// Gtk_c_signals_Base *sig=(Gtk_c_signals_Base *)internal_getsignalbase(); -// sig->show(GTK_WIDGET(gtkobj())); -} -*/ -/* -void Gtk_LdapTreeItem::select_impl() { - debug("%s selected\n", this->dn); - this->showDetails(); - Gtk_TreeItem::select_impl(); -} -*/ - -void Gtk_LdapTreeItem::collapse_impl() { - debug("%s collapsed\n", this->dn); - Gtk_TreeItem::collapse_impl(); -} - -void Gtk_LdapTreeItem::expand_impl() { - debug("%s expanded\n",this->dn); - Gtk_LdapTreeItem *item; - G_List *list; - Gtk_Tree *tree; - Gtk_TreeItem::expand_impl(); -} - -void Gtk_LdapTreeItem::click() { - debug("%s clicked\n", this->dn); -} - -/* -gint Gtk_LdapTreeItem::button_press_event_impl(GdkEventButton *p0) { - debug("Gtk_LdapTreeItem::button_press_event_impl(%i)\n", p0->button); - GdkEventButton *bevent = (GdkEventButton *) p0; - if (p0->button == 3) gtk_menu_popup(this->menu->gtkobj(), NULL, NULL, NULL, NULL, bevent->button, bevent->time); - Gtk_TreeItem::button_press_event_impl(p0); -// Gtk_TreeItem::select_impl(); -} -*/ - -void Gtk_LdapTreeItem::item_drag_data_received(GdkDragContext *context, - gint x, - gint y, - GtkSelectionData *data, - guint info, - guint time) { - debug("Gtk_LdapTreeItem::item_drag_data_received\n"); - Gdk_DragContext gdc(context); - if ((data->length >= 0) && (data->format == 8)) { - cout << "Received \"" << (gchar *)data->data << "\" in label" << endl; - Gtk_Widget::drag_finish(gdc, true, false, time); - return; - } - - Gtk_Widget::drag_finish(gdc , false, false, time); -} - -gboolean Gtk_LdapTreeItem::target_drag_drop(GdkDragContext *context, - gint x, gint y, guint theTime) { - debug("Gtk_LdapTreeItem::target_drag_drop\n"); - cout << "drop" << endl; - have_drag = false; - -// pixmap.set(trashcan_closed, trashcan_closed_mask); - - Gdk_DragContext gdc(context); - Gdk_Atom *ga = static_cast (context->targets->data); - if (context->targets) { - this->drag_get_data(gdc, *ga, theTime); - return true; - } - - return false; -} - - -void Gtk_LdapTreeItem::source_drag_data_get(GdkDragContext *context, - GtkSelectionData *selection_data, - guint info, guint32 time) { - debug("Gtk_LdapTreeItem::source_drag_data_get\n"); - if (info == TARGET_ROOTWIN) { - cout << "I was dropped on the rootwin" << endl; - } - else { - if ( info == TARGET_URL ) { - gtk_selection_data_set(selection_data, - selection_data->target, 8, - reinterpret_cast < const unsigned char * > - ("file:///home/otaylor/images/weave.png"), 37); - } - else { - gtk_selection_data_set(selection_data, - selection_data->target, 8, - reinterpret_cast - ("I'm Data!"), 9); - } - } -} - -void Gtk_LdapTreeItem::source_drag_data_delete(GdkDragContext *context) { - debug("Gtk_LdapTreeItem::source_drag_data_delete\n"); - debug("Delete the data!\n"); -} - -void Gtk_LdapTreeItem::target_drag_leave(GdkDragContext *context, guint time) { - debug("Gtk_LdapTreeItem::target_drag_leave\n"); - this->have_drag = false; -// pixmap.set(trashcan_closed, trashcan_closed_mask); -} - diff --git a/contrib/gtk-tool/Gtk_LdapTreeItem.h b/contrib/gtk-tool/Gtk_LdapTreeItem.h deleted file mode 100644 index fecc277368..0000000000 --- a/contrib/gtk-tool/Gtk_LdapTreeItem.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef GTK_LDAPTREEITEM_H -#define GTK_LDAPTREEITEM_H -#include "gtk.h" -#include "utils.h" -#include -#include -#include -#include -#include "icons/root_node.h" -#include "icons/branch_node.h" -#include "icons/leaf_node.h" -#include "icons/alias_node.h" -#include "icons/rfc822mailgroup_node.h" -#include "icons/general_node.h" -#include "icons/monitor.h" - -#define ROOT_NODE 1 -#define BRANCH_NODE 2 -#define LEAF_NODE 3 - -class My_Window; -class Gtk_LdapTree; - -class Gtk_LdapTreeItem : public Gtk_TreeItem { -public: - char *dn; - char *rdn; - char *objectClass; - char *aliasedObjectName; - LDAP *ld; - LDAPMessage *result_identifier; - My_Window *par; - Gtk_Notebook *notebook; - Gtk_HBox *xpm_label; - Gtk_Menu *menu; - enum - { - TARGET_STRING, - TARGET_ROOTWIN, - TARGET_URL - }; - bool have_drag; - - //Functions - Gtk_LdapTreeItem(); - Gtk_LdapTreeItem(char *c, My_Window *w, LDAP *ld); - Gtk_LdapTreeItem(GtkTreeItem *t); - ~Gtk_LdapTreeItem(); - void setDnd(); - gchar* getAttribute(char *c); - Gtk_LdapTree* getSubtree(LDAP *ld, int i); - void setType(int t); - int getDetails(); - void createPopupMenu(); - int showDetails(); -// void show_impl(); -// void select_impl(); - void collapse_impl(); - void expand_impl(); - void click(); -// gint button_press_event_impl(GdkEventButton *p0); - void item_drag_data_received (GdkDragContext *context, - gint x, gint y, GtkSelectionData *data, - guint info, guint32 time); - gboolean target_drag_drop ( GdkDragContext *context, - gint x, gint y, guint time); - - void source_drag_data_get(GdkDragContext *context, - GtkSelectionData *selection_data, - guint info, guint32 time); - void source_drag_data_delete(GdkDragContext *context); - void target_drag_leave(GdkDragContext *context, guint time); -}; - -static GtkTargetEntry target_table[] = { - { "STRING", 0, Gtk_LdapTreeItem::TARGET_STRING }, - { "text/plain", 0, Gtk_LdapTreeItem::TARGET_STRING }, - { "text/uri-list", 0, Gtk_LdapTreeItem::TARGET_URL }, - { "application/x-rootwin-drop", 0, Gtk_LdapTreeItem::TARGET_ROOTWIN } -}; - -static guint n_targets = sizeof(target_table) / sizeof(target_table[0]); -#endif diff --git a/contrib/gtk-tool/INSTALL b/contrib/gtk-tool/INSTALL deleted file mode 100644 index 84a5c594e8..0000000000 --- a/contrib/gtk-tool/INSTALL +++ /dev/null @@ -1,13 +0,0 @@ -Please read this carefully - -To copile gtk-tool, although OpenLDAP in itself is a very out-of-the-box -straightforward piece of code to compile gtk-tool isn't. You will require following: - - Gtk+1.2.x - Gtk--1.1.x - -So, latest gtk stuff and if you successfully compiled and installed all that it should be easy. If you didn't I really hope you can take some comfort in that I have provided you with some snapshots of what the thing actually looks like. I hope in the near future I would be able to provide you with a static binary..next week perhaps..I don't know, I'm looking for a job right now so no promises... -(I'm no longer looking for a job but the situation with spare time seems even worse - I wish I could do this full-time guys, I really do...) - -Pele -pele@openldap.org diff --git a/contrib/gtk-tool/LICENSE b/contrib/gtk-tool/LICENSE deleted file mode 100644 index 5731d2cffd..0000000000 --- a/contrib/gtk-tool/LICENSE +++ /dev/null @@ -1,122 +0,0 @@ -The OpenLDAP Public License - -Version 1.2, 1 September 1998 -Copyright 1998, The OpenLDAP Foundation. -All Rights Reserved. - -Note: - This license is derived from the "Artistic License" as distributed - with the Perl Programming Language. As differences may exist, the - complete license should be read. - -PREAMBLE - -The intent of this document is to state the conditions under which a -Package may be copied, such that the Copyright Holder maintains some -semblance of artistic control over the development of the package, -while giving the users of the package the right to use and distribute -the Package in a more-or-less customary fashion, plus the right to make -reasonable modifications. - -Definitions: - - "Package" refers to the collection of files distributed by the - Copyright Holder, and derivatives of that collection of files - created through textual modification. - - "Standard Version" refers to such a Package if it has not been - modified, or has been modified in accordance with the wishes - of the Copyright Holder. - - "Copyright Holder" is whoever is named in the copyright or - copyrights for the package. - - "You" is you, if you're thinking about copying or distributing - this Package. - - "Reasonable copying fee" is whatever you can justify on the - basis of media cost, duplication charges, time of people involved, - and so on. (You will not be required to justify it to the - Copyright Holder, but only to the computing community at large - as a market that must bear the fee.) - - "Freely Available" means that no fee is charged for the item - itself, though there may be fees involved in handling the item. - It also means that recipients of the item may redistribute it - under the same conditions they received it. - -1. You may make and give away verbatim copies of the source form of the -Standard Version of this Package without restriction, provided that you -duplicate all of the original copyright notices and associated disclaimers. - -2. You may apply bug fixes, portability fixes and other modifications -derived from the Public Domain or from the Copyright Holder. A Package -modified in such a way shall still be considered the Standard Version. - -3. You may otherwise modify your copy of this Package in any way, provided -that you insert a prominent notice in each changed file stating how and -when you changed that file, and provided that you do at least ONE of the -following: - - a) place your modifications in the Public Domain or otherwise make them - Freely Available, such as by posting said modifications to Usenet or - an equivalent medium, or placing the modifications on a major archive - site such as uunet.uu.net, or by allowing the Copyright Holder to include - your modifications in the Standard Version of the Package. - - b) use the modified Package only within your corporation or organization. - - c) rename any non-standard executables so the names do not conflict - with standard executables, which must also be provided, and provide - a separate manual page for each non-standard executable that clearly - documents how it differs from the Standard Version. - - d) make other distribution arrangements with the Copyright Holder. - -4. You may distribute the programs of this Package in object code or -executable form, provided that you do at least ONE of the following: - - a) distribute a Standard Version of the executables and library files, - together with instructions (in the manual page or equivalent) on where - to get the Standard Version. - - b) accompany the distribution with the machine-readable source of - the Package with your modifications. - - c) accompany any non-standard executables with their corresponding - Standard Version executables, giving the non-standard executables - non-standard names, and clearly documenting the differences in manual - pages (or equivalent), together with instructions on where to get - the Standard Version. - - d) make other distribution arrangements with the Copyright Holder. - -5. You may charge a reasonable copying fee for any distribution of this -Package. You may charge any fee you choose for support of this Package. -You may not charge a fee for this Package itself. However, -you may distribute this Package in aggregate with other (possibly -commercial) programs as part of a larger (possibly commercial) software -distribution provided that you do not advertise this Package as a -product of your own. - -6. The scripts and library files supplied as input to or produced as -output from the programs of this Package do not automatically fall -under the copyright of this Package, but belong to whomever generated -them, and may be sold commercially, and may be aggregated with this -Package. - -7. C subroutines supplied by you and linked into this Package in order -to emulate subroutines and variables of the language defined by this -Package shall not be considered part of this Package, but are the -equivalent of input as in Paragraph 6, provided these subroutines do -not change the language in any way that would cause it to fail the -regression tests for the language. - -8. The name of the Copyright Holder may not be used to endorse or promote -products derived from this software without specific prior written permission. - -9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -The End diff --git a/contrib/gtk-tool/Makefile b/contrib/gtk-tool/Makefile deleted file mode 100644 index 7ac761ea07..0000000000 --- a/contrib/gtk-tool/Makefile +++ /dev/null @@ -1,32 +0,0 @@ -HOME_LOCATION=$(shell pwd) -CPLUS= g++ -OPTS=-g #-DDEBUG -INCLUDES=`gtkmm-config --cflags` -I. -GTKMMLIBS=`gtkmm-config --libs` -LDFLAGS=-L/usr/lib -L/usr/X11/lib -L/usr/local/ldap/lib -lldap -llber -L/usr/local/kerberos/lib -lkrb5 -lkrb4 `gtkmm-config --libs` -LIBS=-lXext -lgtkmm -lX11 -lXt -lXxf86dga - -.EXPORT_ALL_VARIABLES: - -SOURCES=My_Window.cc Gtk_LdapTree.cc Gtk_LdapTreeItem.cc Gtk_LdapServer.cc utils.cc main.o -OBJECTS=My_Window.o Gtk_LdapTree.o Gtk_LdapTreeItem.o Gtk_LdapServer.o utils.o main.o - -################################################################################ - -all: main -main: $(OBJECTS) - $(CPLUS) $(OBJECTS) -o main $(LDFLAGS) $(GTKMMLIBS) - exec - -main.o: main.cc - $(CPLUS) -c $(OPTS) $(INCLUDES) $< - -exec: all - chmod a+x main - ls -al main - -%.o: %.cc %.h - $(CPLUS) -c $(OPTS) $(INCLUDES) $< - -clean: - rm -f main a.out *.o straced core diff --git a/contrib/gtk-tool/My_Window.cc b/contrib/gtk-tool/My_Window.cc deleted file mode 100644 index ee21e94243..0000000000 --- a/contrib/gtk-tool/My_Window.cc +++ /dev/null @@ -1,187 +0,0 @@ -#include - -My_Window::My_Window(GtkWindowType t) : Gtk_Window(t) { - debug("My_Window(t)\n"); - Gtk_VBox *main_hbox; - Gtk_HBox *top_hbox; - Gtk_VBox *bottom_hbox; - Gtk_Menu *menu, *sub_menu; - Gtk_MenuItem *new_menu, *file_menu, *options_menu, *menuitem; - Gtk_CheckMenuItem *check_menuitem; - - pane = new Gtk_HPaned(); - this->scroller = new Gtk_ScrolledWindow(); - this->viewport = new Gtk_Viewport(); - this->scroller->set_policy(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - this->scroller->add(*this->viewport); - pane->add1(*this->scroller); - this->scroller->show(); - this->viewport->show(); - - this->scroller2 = new Gtk_ScrolledWindow(); - this->viewport2 = new Gtk_Viewport(); - this->scroller2->set_policy(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - this->scroller2->add(*this->viewport2); - pane->add2(*this->scroller2); - this->scroller2->show(); - this->viewport2->show(); - - top_hbox = new Gtk_HBox(); - - menu = new Gtk_Menu(); - - sub_menu = new Gtk_Menu(); - menuitem = new Gtk_MenuItem("Server"); - menuitem->activate.connect(slot(this,&My_Window::addServer)); - //connect_to_method(menuitem->activate, this, &addServer); - sub_menu->append(*menuitem); -// menuitem->show(); - new_menu = new Gtk_MenuItem("New..."); - new_menu->set_submenu(*sub_menu); -// sub_menu->show(); - menu->append(*new_menu); -// new_menu->show(); - - menuitem = new Gtk_MenuItem("Quit"); - menuitem->activate.connect(Gtk_Main::quit.slot()); - menu->append(*menuitem); -// menuitem->show(); - this->menubar = new Gtk_MenuBar(); - file_menu = new Gtk_MenuItem("File (?)"); - file_menu->set_submenu(*menu); - this->menubar->append(*file_menu); -// menu->show(); - - menu = new Gtk_Menu(); - check_menuitem = new Gtk_CheckMenuItem("Show Debug Info"); - check_menuitem->toggled.connect(slot(this,&My_Window::setDebug)); - //connect_to_method(check_menuitem->toggled, this, &setDebug); - menu->append(*check_menuitem); - check_menuitem->show(); - options_menu = new Gtk_MenuItem("Options"); - options_menu->set_submenu(*menu); - this->menubar->append(*options_menu); -// menu->show(); - -// file_menu->show(); -// options_menu->show(); - -// top_hbox->pack_start(*this->menubar, TRUE, TRUE, 1); -// this->menubar->show(); - this->urlfield = new Gtk_Entry(); - top_hbox->pack_start(*this->urlfield, TRUE, TRUE, 1); -// this->urlfield->show(); - this->display_button = new Gtk_Button("Query Server"); - this->display_button->clicked.connect(slot(this, &My_Window::getHost)); - //connect_to_method(this->display_button->clicked, this, &getHost); - top_hbox->pack_end(*this->display_button, FALSE, FALSE, 1); -// this->display_button->show(); - - this->status = new Gtk_Statusbar(); -// this->progress = new Gtk_ProgressBar(); -// this->status->add(*progress); -// this->progress->show(); - - bottom_hbox = new Gtk_VBox(); - bottom_hbox->pack_start(*pane, TRUE, TRUE, 1); - bottom_hbox->pack_end(*status, FALSE, TRUE, 1); - pane->show(); -// status->show(); - - main_hbox = new Gtk_VBox(); - main_hbox->pack_start(*this->menubar, FALSE, FALSE, 1); - main_hbox->pack_start(*top_hbox, FALSE, TRUE, 1); - main_hbox->pack_end(*bottom_hbox, TRUE, TRUE, 1); - top_hbox->show(); - bottom_hbox->show(); - this->add(*main_hbox); - this->destroy.connect(Gtk_Main::quit.slot()); - main_hbox->show(); -// this->show_all(); -} - -My_Window::~My_Window() { - cout << "~My_Window()" << endl; - delete this; -} - -int My_Window::debug(const char *format,...) { - if (debug_level > 1) { - va_list args; - int ret; - char *c; - char buff[50]; - unsigned int m_context_id; - va_start(args, format); - ret = vprintf(format, args); - /* if (this->status != NULL) { - m_context_id = this->status->get_context_id("gtk-tool"); - ret = vsprintf(c, format, args); - g_snprintf(buff, 50, "Action: %s", c); - this->status->push(m_context_id, buff); - } - */ va_end(args); - return ret; - } -} - -void My_Window::do_display() { - cout << this->urlfield->get_text() << endl; -} - -void My_Window::getHost() { - debug("My_Window::getHost()\n"); - Gtk_Tree *tree, *subtree; - Gtk_LdapServer *treeitem; - char *host, *prt; - int port; - -// viewport = (Gtk_Viewport *) GTK_VIEWPORT(this->scroller->children()->nth_data(1)); -// viewport = (Gtk_Viewport *)this->scroller->children()->nth_data(1); - if (this->viewport->get_child()!=NULL) { - tree = (Gtk_Tree *)(this->viewport->get_child()); - } - else { - tree = new Gtk_Tree(); - } - string thing; - thing = this->urlfield->get_text(); - gchar **c; - c = g_strsplit(thing.c_str(), ":", 2); - host = c[0]; - prt = c[1]; //strtok(NULL, "\0"); - if (prt != NULL) port = atoi(prt); - else port = LDAP_PORT; - treeitem = new Gtk_LdapServer(this, host, port); - subtree = treeitem->getSubtree(); - tree->append(*treeitem); - treeitem->set_subtree(*subtree); - treeitem->show(); - this->viewport->add(*tree); - tree->show(); - this->viewport->show(); - this->scroller->show(); - treeitem->select(); -} - -void My_Window::setDebug() { - if (debug_level > 0) debug_level = 0; - else debug_level = 1; -} - -void My_Window::addServer() { - debug("%s\n", "Creating new server"); - Gtk_Entry *entry = new Gtk_Entry(); -// entry->connect(slot(entry->activate, this, &getHost)); - entry->activate.connect(slot(this,&My_Window::getHost)); - this->dialog = new Gtk_InputDialog(); -// this->dialog->add(*entry); -// entry->show(); - this->dialog->show(); - -} - -gint My_Window::delete_event_impl(GdkEventAny*) { - //Gtk_Main::instance()->quit(); - return 0; -} diff --git a/contrib/gtk-tool/My_Window.h b/contrib/gtk-tool/My_Window.h deleted file mode 100644 index f68c480473..0000000000 --- a/contrib/gtk-tool/My_Window.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef MY_WINDOW_H -#define MY_WINDOW_H -#include "cpluscommon.h" -#include "gtk.h" -#include "Gtk_LdapServer.h" -#include "Gtk_LdapTreeItem.h" - -extern int debug_level; - -class My_Window : public Gtk_Window { -public: - Gtk_ScrolledWindow *scroller, *scroller2; - Gtk_Viewport *viewport, *viewport2; - Gtk_Entry *urlfield; - Gtk_Button *display_button; - Gtk_InputDialog *dialog; - Gtk_Paned *pane; - Gtk_MenuBar *menubar; -// Gtk_ProgressBar *progress; - Gtk_Statusbar *status; - My_Window(GtkWindowType t); - ~My_Window(); - int debug(const char *c,...); - void do_display(); - void addServer(); - void getHost(); - void setDebug(); - gint delete_event_impl(GdkEventAny *); -}; -#endif diff --git a/contrib/gtk-tool/README b/contrib/gtk-tool/README deleted file mode 100644 index e2579e5af0..0000000000 --- a/contrib/gtk-tool/README +++ /dev/null @@ -1,39 +0,0 @@ -README for gtk-tool v0.7a - -This package has been tested and run with the latest Gtk+1.2/Gtk--1.1 -OpenLDAP 2.0-devel. It should also compile (i.e. it is backward-compatible) with -the U-MICH (old) API but it has not been tested (read compiled) - however the siplicity of the "problem" and a few ifdefs lead me to believe everything should -be allright with gtk-tool now. This thing doesn't run as it should, please -read TODO! - -Just type 'make' to compile and if you have all the necessary stuff it'll do so. -You do need the latest version of Gtk+ and Gtk-- (which may be tricky to build). -You can also edit the Makefile and under "OPTS=-g" add " -DDEBUG" (line should -read "OPTS=-g -DDEBUG") to get a trace of what the gtk-tool is doing (getting -entries, traversing trees etc...) -After that, hopefully all goes well, you start the thing by doing: -./main -s localhost - -It no longer has a default base, instead it reads cn=config off your slapd -and accordignly inserts all available databases under "localhost". If you are -not running slapd on your local machine, then supply it with a "-s hostname" -i.e.: - ./main -s server02.nowhere.net - -or if you feel like having an adventure try multiple servers -i.e.: - ./main -s server02.nowhere.net -s server03.nowhere.com:322 - -etc... -It does not accept -b switch as it no longer needs it to aquire databases. -There's also a -d switch (try it with -d 1) for all the debug info. -But please feel free to add whatever else you consider neccessary to -understanding how this thing works. Enjoy, and I hope this can be useful to -you in some miniscule way. - -All emails to -devel list, and plase make sure you put "GTK-TOOL" -in the subject line, so other people who are not interested don't -have to read our garbage. - -Pele -pele@openldap.org diff --git a/contrib/gtk-tool/TODO b/contrib/gtk-tool/TODO deleted file mode 100644 index d316745daa..0000000000 --- a/contrib/gtk-tool/TODO +++ /dev/null @@ -1,18 +0,0 @@ -LOADS!!! - -Please someone test this with old U-MICH API - hopefully all is as it should be. - -Priorities: - Now that we have cn=config we can start using ldap_get_option propperly - and be able to run/stop server from the gtk-tool. Other things like - new entries would now come in handy. - Implement searches - Integrate with OpenLDAP build - autoconf stuff (anyone?) - -Optional: - comments in the source code - port it to NT so we can use it with the NT port of OpenLDAP - (they say that there is an NT port of Gtk+?) - -Pele -pele@openldap.org diff --git a/contrib/gtk-tool/common.h b/contrib/gtk-tool/common.h deleted file mode 100644 index c65ba42ae9..0000000000 --- a/contrib/gtk-tool/common.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef MY_COMMON -#define MY_COMMON - -#include "system.h" -#include "cpluscommon.h" -#include -#include -#include -#include -#include -extern int errno; -extern int debug_level; -#endif diff --git a/contrib/gtk-tool/cpluscommon.h b/contrib/gtk-tool/cpluscommon.h deleted file mode 100644 index 48f1a7c4e7..0000000000 --- a/contrib/gtk-tool/cpluscommon.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef MY_CPLUS_COMMON -#define MY_CPLUS_COMMON - -#include -#include -#include -#include -#include -#include -#endif diff --git a/contrib/gtk-tool/gtk.h b/contrib/gtk-tool/gtk.h deleted file mode 100644 index c9660247c1..0000000000 --- a/contrib/gtk-tool/gtk.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef MY_GTK_INCLUDES -#define MY_GTK_INCLUDES - -#include -#include -#include -#include -#include -#include -#include -/*#include */ -#include - -#endif diff --git a/contrib/gtk-tool/icons/alias_node.h b/contrib/gtk-tool/icons/alias_node.h deleted file mode 100644 index 6f5b623c82..0000000000 --- a/contrib/gtk-tool/icons/alias_node.h +++ /dev/null @@ -1,54 +0,0 @@ -/* XPM */ -static char *alias_node[] = { -/* columns rows colors chars-per-pixel */ -"19 20 28 1", -" c Gray0", -". c #010101010101", -"X c #020202020202", -"o c Gray1", -"O c Gray2", -"+ c #060606060606", -"@ c #090909090909", -"# c Gray6", -"$ c Gray9", -"% c Gray11", -"& c #1d1d1d1d1d1d", -"* c #7f7f78787f7f", -"= c #909090900000", -"- c #cfcfc8c86060", -"; c #cfcfc8c86161", -": c #d0d0c9c96262", -"> c #d0d0c9c96363", -", c #d1d1caca6565", -"< c #d1d1caca6666", -"1 c #ffffc8c89090", -"2 c #ffffc8c89191", -"3 c #ffffc9c99191", -"4 c #fffff8f89090", -"5 c #c0c0c0c0c0c0", -"6 c #fffff8f8cfcf", -"7 c #efefe8e8efef", -"8 c #fffff8f8ffff", -"9 c None", -/* pixels */ -"9999999999999999999", -"99===== 99999999999", -"9=76644= 9999999999", -"=-------======99999", -"=666666666664- 9999", -"=644444444441- 9999", -"=644444441414- 9999", -"=644444444141- 9999", -"=644444141414- 9999", -"****** 414141- 9999", -"*88888 141411- 9999", -"*88 8 414233;X9999", -"*8 * 8.;:>,<<,+9999", -"*8 888.o@#$&%$#9999", -"*88888o999999999999", -" .O999999999999", -"9999999999999999999", -"9999999999999999999", -"9999999999999999999", -"9999999999999999999" -}; diff --git a/contrib/gtk-tool/icons/branch_node.h b/contrib/gtk-tool/icons/branch_node.h deleted file mode 100644 index b6d0ed3512..0000000000 --- a/contrib/gtk-tool/icons/branch_node.h +++ /dev/null @@ -1,36 +0,0 @@ -/* XPM */ -static char *branch_node[] = { -/* columns rows colors chars-per-pixel */ -"19 20 10 1", -" c Gray0", -". c Gray40", -"X c Magenta", -"o c #999999990000", -"O c #cccccccc6666", -"+ c #ffffcccc9999", -"@ c #ffffffff9999", -"# c #ffffffffcccc", -"$ c Gray100", -"% c None", -/* pixels */ -"%%%%%%%%%%%%%%%%%%%", -"%%ooooo %%%%%%%%%%%", -"%o$$##@O %%%%%%%%%%", -"oOOOOOOOoooooo%%%%%", -"o###########@O %%%%", -"o#@@@@@@@@@@+O %%%%", -"o#@@@@@@@+@+@@ %%%%", -"o#@@@@@@@@+@+O %%%%", -"o#@@@@@+@+@+@O %%%%", -"o#@@@@@@+@+@+O %%%%", -"o#@@@+@+@+@++@ %%%%", -"o#+@+@+@+@+++O %%%%", -"oOOOOOOOOOOOOO %%%%", -"% %%%%", -"%%%%%%%%%%%%%%%%%%%", -"%%%%%%%%%%%%%%%%%%%", -"%%%%%%%%%%%%%%%%%%%", -"%%%%%%%%%%%%%%%%%%%", -"%%%%%%%%%%%%%%%%%%%", -"%%%%%%%%%%%%%%%%%%%" -}; diff --git a/contrib/gtk-tool/icons/general_node.h b/contrib/gtk-tool/icons/general_node.h deleted file mode 100644 index 39d33bf221..0000000000 --- a/contrib/gtk-tool/icons/general_node.h +++ /dev/null @@ -1,67 +0,0 @@ -/* XPM */ -static char *general_node[] = { -/* columns rows colors chars-per-pixel */ -"17 17 44 1", -" c Gray0", -". c #101000000000", -"X c #000000003030", -"o c #303020203030", -"O c Gray19", -"+ c #000030305151", -"@ c #000020206161", -"# c #000030306161", -"$ c #414130304141", -"% c #414141414141", -"& c #515161615151", -"* c #717171717171", -"= c #101000008686", -"- c #00000000aeae", -"; c #30302020aeae", -": c #00001010efef", -"> c #20201010efef", -", c #20202020efef", -"< c #000051519e9e", -"1 c #51514141efef", -"2 c #61617171efef", -"3 c #717182827171", -"4 c #868671717171", -"5 c #868671718686", -"6 c #969692929696", -"7 c #9e9ea2a29e9e", -"8 c #9e9eaeae9e9e", -"9 c #9e9ea2a2aeae", -"0 c #aeaea2a2aeae", -"q c #aeaeaeaeaeae", -"w c #bebebebebebe", -"e c #86868282efef", -"r c #96968282efef", -"t c #9e9ea2a2efef", -"y c #9e9eaeaeefef", -"u c #aeaeaeaeefef", -"i c #bebebebeefef", -"p c #cfcfcfcfdfdf", -"a c #cfcfcfcfefef", -"s c #cfcfdfdfefef", -"d c #dfdfefefdfdf", -"f c #efefdfdfefef", -"g c #efefefefefef", -"h c None", -/* pixels */ -"hhhhhhhhhhhhhhhhh", -"hh gggggggg hhhhh", -"hh ggX5q gggggg hh", -"h-,;%$6 fdgggg hh", -"h 12e u 8wgggg hh", -"h rtua .7&&gg hh", -"hh yisg O9gggg hh", -" o 4gg hh", -"h * & gg hh", -"h 808988pgggg hh", -"hhh hh" -}; diff --git a/contrib/gtk-tool/icons/leaf_node.h b/contrib/gtk-tool/icons/leaf_node.h deleted file mode 100644 index 20eec7a554..0000000000 --- a/contrib/gtk-tool/icons/leaf_node.h +++ /dev/null @@ -1,59 +0,0 @@ -/* XPM */ -static char *leaf_node[] = { -/* columns rows colors chars-per-pixel */ -"16 20 33 1", -" c Gray0", -". c Gray19", -"X c #303030306060", -"o c #505050505050", -"O c #5f5f5f5f5f5f", -"+ c Gray44", -"@ c #000000008080", -"# c #000030309f9f", -"$ c #30303030cfcf", -"% c #000060609f9f", -"& c #00006060cfcf", -"* c #30306060cfcf", -"= c #30306060ffff", -"- c #0000cfcfffff", -"; c #60609f9f9f9f", -": c #6060ffffffff", -"> c Magenta", -", c #808080800000", -"< c #9f9f9f9f6060", -"1 c #cfcf9f9f6060", -"2 c #808080808080", -"3 c #9f9f9f9f9f9f", -"4 c #9f9fcfcfcfcf", -"5 c #ffffcfcf9f9f", -"6 c #ffffffff9f9f", -"7 c #c0c0c0c0c0c0", -"8 c Gray81", -"9 c #e0e0e0e0d0d0", -"0 c #efefefefefef", -"q c Gray94", -"w c ivory", -"e c Gray100", -"r c None", -/* pixels */ -"rrr+222222222rrr", -"rrr+eeeeeeee3orr", -"rrr+ewwwwwww3wor", -"rrr+eww&&wwwo...", -"rrr@&&&&w=qw83+o", -"rr@;4$$:&qwq083o", -"r@<6&ww$-&q0098o", -"r+5=&&&&&&00998o", -"+1*=&wwqw0q9098o", -"O<#==77$=%00998o", -",$X$====%009098o", -"r$r %%%0090998o", -"rr$+eqwq0909998o", -"rrr+00099099998o", -"rrr+88888888888o", -"rrr+oooooooooooo", -"rrrrrrrrrrrrrrrr", -"rrrrrrrrrrrrrrrr", -"rrrrrrrrrrrrrrrr", -"rrrrrrrrrrrrrrrr" -}; diff --git a/contrib/gtk-tool/icons/local_server.h b/contrib/gtk-tool/icons/local_server.h deleted file mode 100644 index 2e454b51db..0000000000 --- a/contrib/gtk-tool/icons/local_server.h +++ /dev/null @@ -1,266 +0,0 @@ -/* XPM */ -static char *local_server[] = { -/* columns rows colors chars-per-pixel */ -"19 20 240 2", -" c Gray0", -". c #023e04130000", -"X c #073b07af0360", -"o c #000000000a4b", -"O c #000000000f11", -"+ c #0f580fce0000", -"@ c #0000000010d0", -"# c #07ab0eb01e98", -"$ c #14b41637012b", -"% c #168917a80ab2", -"& c #175c18520a5a", -"* c #1a0b1b520eb5", -"= c #1e231e6d0bf9", -"- c #17091db31bda", -"; c #1aaf1bb4122d", -": c #19741af214be", -"> c #1c8d1df31118", -", c #1ec01fc915d0", -"< c #1ef51ff71651", -"1 c #0000079e232a", -"2 c #03a20f492c9f", -"3 c #05590f692831", -"4 c #072b113229fd", -"5 c #0de317392448", -"6 c #0e48163327ef", -"7 c #09e713c52c71", -"8 c #0ebe1619282b", -"9 c #0e6d17482956", -"0 c #0f4817eb299f", -"q c #0c56160c2dcf", -"w c #0f201a2425db", -"e c #0be6165230b9", -"r c #0d6917bd324a", -"t c #0ff51a183470", -"y c #10431cfd2b8f", -"u c #15631d8a32e0", -"i c #16811da73182", -"p c #1f2f209a1346", -"a c #1d4020891a22", -"s c #171221aa2fcd", -"d c #160d20113996", -"f c #18d621893596", -"g c #1d8e235a30e7", -"h c #1e4226db3a44", -"j c #1f4027663b36", -"k c #1ebd282c3af4", -"l c #21c022e615d4", -"z c #224e22ab1570", -"x c #24e325221696", -"c c #2172227b18dd", -"v c #2374248b1abd", -"b c #25ae26bd18f5", -"n c #257726891c6a", -"m c #275c28461e3d", -"M c #2ce52d5d1e67", -"N c #2e0d317f1d9b", -"B c #298b2a6f2027", -"V c #2a5b2ae92075", -"C c #2b1d2bb82201", -"Z c #2b922c3522c4", -"A c #2b8b2dfb26cc", -"S c #224929923335", -"D c #23892b663903", -"F c #217c2aa73e75", -"G c #280f2f9e3ac1", -"H c #2f6231172843", -"J c #28e4318f3d9b", -"K c #2de4327f3c5e", -"L c #385c392a2eb5", -"P c #370e3bbe368b", -"I c #3d973fff3561", -"U c #200d2964419b", -"Y c #21382a9542af", -"T c #21372b164533", -"R c #22882c8447b1", -"E c #267e2f8a46a5", -"W c #23f82e1d485b", -"Q c #27c430b34778", -"! c #277f30be48e2", -"~ c #280330ee4794", -"^ c #28c331ed4959", -"/ c #28f9321f48f3", -"( c #295232764a58", -") c #2aab33ad4a5d", -"_ c #2b9734644ad0", -"` c #2b4234414b9a", -"' c #2cdd35a14c17", -"] c #2d9c3759502c", -"[ c #35c73a1843c3", -"{ c #348e39fb453b", -"} c #36d33e394a1a", -"| c #34a13d075244", -" . c #34f73d7b5328", -".. c #35983dbd5362", -"X. c #36cc3f2f53d4", -"o. c #37713fd854df", -"O. c #3c1b41ef4a48", -"+. c #382941505988", -"@. c #3cb244ae5933", -"#. c #413545b24744", -"$. c #44c1455c418f", -"%. c #428c464e4eb2", -"&. c #49e74b17480e", -"*. c #4b7a4b984919", -"=. c #4b424c124924", -"-. c #4e2b4ce1494c", -";. c #4b5450bb574f", -":. c #545f56ee543c", -">. c #520055075b58", -",. c #45ca4deb63f7", -"<. c #47c54ea9618f", -"1. c #477d4f716673", -"2. c #48314fb16218", -"3. c #4cd2542760ea", -"4. c #4b93542768dd", -"5. c #528858de6a23", -"6. c #5d7f62a36740", -"7. c #606162956770", -"8. c #639c687068a6", -"9. c #692e6b18620d", -"0. c #6c456e4766cc", -"q. c #6bc06e9068a9", -"w. c #64656af87761", -"e. c #6c7f6da9716d", -"r. c #6e426e0971fc", -"t. c #6eae6f6f73f0", -"y. c #6f79716769b5", -"u. c #75af75d26eec", -"i. c #71a275b87813", -"p. c #7dc582a986da", -"a. c #862d47a59174", -"s. c #885b47d79329", -"d. c #8fac5b4596fb", -"f. c #898d7a518c04", -"g. c #8a1b7bb78c25", -"h. c #9ff76cefabfe", -"j. c #a01373e4a9c2", -"k. c #a9327743af85", -"l. c #813c82307990", -"z. c #81e482da7a7f", -"x. c #82a183727b14", -"c. c #833e83de7b92", -"v. c #83248602867e", -"b. c #8b538c308b37", -"n. c #8f4d99148ef8", -"m. c #8ddd9240969e", -"M. c #9b689b8586d9", -"N. c #953097a99355", -"B. c Gray58", -"V. c #96d09842970f", -"C. c #979799719910", -"Z. c #9b579caa9ae3", -"A. c #9ba99d2a9c8f", -"S. c Gray62", -"D. c #99659de1a359", -"F. c #ac17ab8b9ea2", -"G. c Gray64", -"H. c #a007a1f1a793", -"J. c #a2a1a27ea639", -"K. c #a1c7a6b9ac80", -"L. c Gray66", -"P. c #aa08ab5ba86e", -"I. c #aaa1aa8daa8b", -"U. c #adedaf8bae65", -"Y. c #a8ffaf75b90b", -"T. c #ad0bb5d3aca9", -"R. c #afcab577bbfb", -"E. c #b3cab37fae09", -"W. c #b065b1f7b0b8", -"Q. c #b1f1b1efb1e7", -"!. c #b0b0b090b228", -"~. c #b27fb26eb259", -"^. c #b34ab4cdb34c", -"/. c #b6f9b7c3b6c1", -"(. c #b2d3b572b8bd", -"). c #b679bc3fbfdf", -"_. c #b94dba06b74f", -"`. c #bb54bb51bb4c", -"'. c #bf9eb931bc1d", -"]. c Gray74", -"[. c #bd72bdc7bee1", -"{. c #bebbbe54bf75", -"}. c #c12dc14abd26", -"|. c #c23ec236c1f7", -" X c Gray76", -".X c #c3e8c682c6e7", -"XX c #c6c6c7c3c0d5", -"oX c #c1a0c68acf26", -"OX c #c506c896cf5d", -"+X c #c991ca28ccd9", -"@X c Gray80", -"#X c #cdcccceccccd", -"$X c #cf73c67ed0d0", -"%X c #c95fcc81d1c3", -"&X c #ca18cce0d140", -"*X c #ce76d0ddd44f", -"=X c #cfc6d296d6cb", -"-X c #d1e9d451d713", -";X c #d559d665d6c9", -":X c #d501d68ed787", -">X c Gray84", -",X c #d543d771d9f9", -" W.=.h ,.X._ | ) E Q T 6 MXl.NXNXNX", -"c * U.*.u +.@.o. .` ^ ) W 8 MXl.NXNXNX", -"< % P.-.i ] ' Y d t r e 2 @ mXl.NXNXNX", -", & D.{ # g K [ %.>.7.e.t.r.MXx.NXNXNX", -"; & ).Y.R.oXOX=X8XiXjXvXlXkXaX9.NXNXNX", -"X A H I 8.w.3.} J s y w - a : NXNXNX", -" NXNX NX . P S o NX NXNXNX", -"M $ + M.}.E.F.XX(.m.p.q.:.#.N = NXNXNX", -"'.rXzXcXMXxXsX9X4X1X#X{.!.J.N.u.NXNXNX", -"j.h.2XT.;X+X|.H.[.].~.I.G.Z.n.f.NXNXNX", -"a.s.k.$X5X>X@X X`.Q.L.S.B.b.g.d.NXNXNX", -"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX", -"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX", -"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX" -}; diff --git a/contrib/gtk-tool/icons/monitor.h b/contrib/gtk-tool/icons/monitor.h deleted file mode 100644 index ce45960c7a..0000000000 --- a/contrib/gtk-tool/icons/monitor.h +++ /dev/null @@ -1,286 +0,0 @@ -/* XPM */ -static char *monitor[] = { -/* columns rows colors chars-per-pixel */ -"19 19 260 2", -" c Gray0", -". c #0433043a0433", -"X c Gray2", -"o c #062c06220626", -"O c #0cb40cb50cb4", -"+ c #0ccd0d540d92", -"@ c #0d8e0d760e8b", -"# c Gray6", -"$ c #10530f801046", -"% c #10da10c610d7", -"& c #117f11721184", -"* c #11f8120d120c", -"= c Gray7", -"- c #13a7139113a8", -"; c #142214191519", -": c Gray9", -"> c #18e718f318ea", -", c #19a719aa19a1", -"< c Gray12", -"1 c #234e23382345", -"2 c #27ad279627c0", -"3 c #2a872a822a84", -"4 c #2e0d2de92dfb", -"5 c Gray24", -"6 c #3dd03e053df5", -"7 c #6dde57513ad0", -"8 c #78ae78d132cd", -"9 c #7fc87faf3a4e", -"0 c #417d416c41f8", -"q c #43c544184427", -"w c #4594460145b7", -"e c Gray28", -"r c #48b8489a48b0", -"t c #49ba49a849b8", -"y c #4c834c894c48", -"u c Gray30", -"i c Gray31", -"p c #4fb251055619", -"a c #55e2566a426c", -"s c #507c5060506d", -"d c #5122511750e7", -"f c #520551f75202", -"g c Gray32", -"h c #536853575355", -"j c #558b557d5578", -"k c #561455fa5621", -"l c #531353795e7a", -"z c #588d58a8589d", -"x c Gray35", -"c c #5adf5ad25ada", -"v c #5bb45b5e5bd6", -"b c #593c59f85ef7", -"n c #5cc55d315d83", -"m c #5da35da05d68", -"M c Gray37", -"N c #5f285f3e5f24", -"B c #59d65dcc6463", -"V c #5bf95e1566e2", -"C c #4a576f134a1d", -"Z c #4c067f2f4c3e", -"A c #659966275b42", -"S c #7df565484934", -"D c Gray38", -"F c #607761f96387", -"G c #63f964176407", -"H c #646f6454646f", -"J c #64fb65246521", -"K c #65fe66076606", -"L c #661f65e76612", -"P c Gray40", -"I c #662166a2670b", -"U c #669667186662", -"Y c #671c674c672b", -"T c #624b677e6c07", -"R c #628a676a6d3a", -"E c #64d764fd6e4d", -"W c #655e65cc6e6f", -"Q c #668e672c6c5e", -"! c #64e36a126edf", -"~ c #6eae6f8f62d7", -"^ c #68f368de690a", -"/ c #69d969e66a08", -"( c #69f96a6469be", -") c #6af16afd6aff", -"_ c Gray42", -"` c #6b7d6be06e14", -"' c #6bb06c496c6a", -"] c #6cb76cba6cb7", -"[ c #6d8c6d806d6a", -"{ c #6c076dfa6f68", -"} c Gray43", -"| c #6fc56fda6fa1", -" . c #66f166e871f5", -".. c #6a7f6ad97350", -"X. c #6aee705f75d2", -"o. c #6ec4724d76ee", -"O. c #70116fbd7026", -"+. c #70c26f4a7124", -"@. c #72996fba72bc", -"#. c Gray44", -"$. c #70f0712570c3", -"%. c #719a71a371c2", -"&. c #72b372bc7299", -"*. c #7355733672f5", -"=. c Gray45", -"-. c #712f71e47703", -";. c #7457744d7480", -":. c #752374e174e1", -">. c Gray46", -",. c #7630765675ec", -"<. c #7660767f7688", -"1. c #777a7778778d", -"2. c #72e572f77e86", -"3. c #71a774037abe", -"4. c #778677f97e30", -"5. c #77aa780b7795", -"6. c #77fb7806780c", -"7. c #79c570ac7a0a", -"8. c Gray47", -"9. c #795579317930", -"0. c Gray48", -"q. c #7aff7b1e7b62", -"w. c #7bc57bbc7b80", -"e. c #7c3d7bfd7bf5", -"r. c #7cbd7cd57c8f", -"t. c Gray49", -"y. c #7dd67e417e2e", -"u. c #7ef17f057ece", -"i. c #7f3c7ef87f3a", -"p. c Gray50", -"a. c #7e5e794984ba", -"s. c #7efa7858883b", -"d. c #3a32a4303a10", -"f. c #7f0e802f5593", -"g. c #47f3d9d747ed", -"h. c #7df58115862a", -"j. c #80427f288146", -"k. c #876b879d4763", -"l. c #814681036c33", -"z. c #c9c7849537bf", -"x. c #f0f6a65957f2", -"c. c #f3ecf3e9321d", -"v. c #ff25fefa3c32", -"b. c #c79cc70d7fb9", -"n. c #80898076804c", -"m. c #80ee814b8120", -"M. c #812c81338115", -"N. c #8218820b81e7", -"B. c Gray51", -"V. c #832d82e3833e", -"C. c #8361836b8333", -"Z. c #83ed83c78414", -"A. c #846b8463848a", -"S. c #84e1851e84ac", -"D. c Gray52", -"F. c #85fa864a8620", -"G. c #867d867a8661", -"H. c #874486e4873e", -"J. c Gray53", -"K. c #807c815489e4", -"L. c #80ef80b38a26", -"P. c #84b683d98c0f", -"I. c #8808876f87e6", -"U. c #8ab183538acf", -"Y. c #880e87bd880f", -"T. c #8f3485e48ef9", -"R. c #887d88628873", -"E. c #88e2890188c4", -"W. c #8915891388de", -"Q. c #8a0a89c78a0e", -"!. c Gray54", -"~. c #8ad38b0d8b09", -"^. c #8b7a8ae18b80", -"/. c #8bb78b818ba7", -"(. c Gray55", -"). c #8d4b8ce08d0f", -"_. c #8da38dc08d9e", -"`. c #8e2e8dc88e29", -"'. c #8eb28e598ea6", -"]. c #8ea98f258eca", -"[. c Gray56", -"{. c #908f879d90be", -"}. c #90768ef190e7", -"|. c #91ce8ee691f7", -" X c Gray57", -".X c #91fb91f39203", -"XX c #91e4922091fe", -"oX c #921f91f59219", -"OX c #920a920a91f4", -"+X c #92bd9279928f", -"@X c #930092d792e6", -"#X c #933792de936c", -"$X c #937d936f9376", -"%X c #94bd909d9776", -"&X c Gray58", -"*X c #953a95209549", -"=X c Gray59", -"-X c #975f9792979d", -";X c #980d985b9837", -":X c #98e4990298fc", -">X c Gray60", -",X c #9a729a479aac", -" iX(.t.N ,.j % !.>.NXNX", -"aXi./.5 X3Xr , iX1.# z ~.f & J.&.NXNX", -"tX9.yXkXr.H.t , rX;.- G F.d = S.#.NXNX", -"6X8.I.$ v #X0 ; ,X' + n y.q @ y.} NXNX", -"2X>.8X7.{.%XL. .K.h.R X.o...l E ` NXNX", -">X@.7Xg.d.s.b.c.f.P.x.z.V 9Xv.k.W NXNX", -"=X+.}.Z C a.l.9 A 3.S 7 B ~ 8 a Q NXNX", -"$X] |.T.U.j.4.2.-.{ ! T F b l p I NXNX", -"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX", -"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX", -"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX", -"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX" -}; diff --git a/contrib/gtk-tool/icons/remote_server.h b/contrib/gtk-tool/icons/remote_server.h deleted file mode 100644 index 482f27b14e..0000000000 --- a/contrib/gtk-tool/icons/remote_server.h +++ /dev/null @@ -1,266 +0,0 @@ -/* XPM */ -static char *remote_server[] = { -/* columns rows colors chars-per-pixel */ -"19 20 240 2", -" c Gray0", -". c #023e04130000", -"X c #073b07af0360", -"o c #000000000a4b", -"O c #000000000f11", -"+ c #0f580fce0000", -"@ c #0000000010d0", -"# c #07ab0eb01e98", -"$ c #14b41637012b", -"% c #168917a80ab2", -"& c #175c18520a5a", -"* c #1a0b1b520eb5", -"= c #1e231e6d0bf9", -"- c #17091db31bda", -"; c #1aaf1bb4122d", -": c #19741af214be", -"> c #1c8d1df31118", -", c #1ec01fc915d0", -"< c #1ef51ff71651", -"1 c #0000079e232a", -"2 c #03a20f492c9f", -"3 c #05590f692831", -"4 c #072b113229fd", -"5 c #0de317392448", -"6 c #0e48163327ef", -"7 c #09e713c52c71", -"8 c #0ebe1619282b", -"9 c #0e6d17482956", -"0 c #0f4817eb299f", -"q c #0c56160c2dcf", -"w c #0f201a2425db", -"e c #0be6165230b9", -"r c #0d6917bd324a", -"t c #0ff51a183470", -"y c #10431cfd2b8f", -"u c #15631d8a32e0", -"i c #16811da73182", -"p c #1f2f209a1346", -"a c #1d4020891a22", -"s c #171221aa2fcd", -"d c #160d20113996", -"f c #18d621893596", -"g c #1d8e235a30e7", -"h c #1e4226db3a44", -"j c #1f4027663b36", -"k c #1ebd282c3af4", -"l c #21c022e615d4", -"z c #224e22ab1570", -"x c #24e325221696", -"c c #2172227b18dd", -"v c #2374248b1abd", -"b c #25ae26bd18f5", -"n c #257726891c6a", -"m c #275c28461e3d", -"M c #2ce52d5d1e67", -"N c #2e0d317f1d9b", -"B c #298b2a6f2027", -"V c #2a5b2ae92075", -"C c #2b1d2bb82201", -"Z c #2b922c3522c4", -"A c #2b8b2dfb26cc", -"S c #224929923335", -"D c #23892b663903", -"F c #217c2aa73e75", -"G c #280f2f9e3ac1", -"H c #2f6231172843", -"J c #28e4318f3d9b", -"K c #2de4327f3c5e", -"L c #385c392a2eb5", -"P c #370e3bbe368b", -"I c #3d973fff3561", -"U c #200d2964419b", -"Y c #21382a9542af", -"T c #21372b164533", -"R c #22882c8447b1", -"E c #267e2f8a46a5", -"W c #23f82e1d485b", -"Q c #27c430b34778", -"! c #277f30be48e2", -"~ c #280330ee4794", -"^ c #28c331ed4959", -"/ c #28f9321f48f3", -"( c #295232764a58", -") c #2aab33ad4a5d", -"_ c #2b9734644ad0", -"` c #2b4234414b9a", -"' c #2cdd35a14c17", -"] c #2d9c3759502c", -"[ c #35c73a1843c3", -"{ c #348e39fb453b", -"} c #36d33e394a1a", -"| c #34a13d075244", -" . c #34f73d7b5328", -".. c #35983dbd5362", -"X. c #36cc3f2f53d4", -"o. c #37713fd854df", -"O. c #3c1b41ef4a48", -"+. c #382941505988", -"@. c #3cb244ae5933", -"#. c #413545b24744", -"$. c #44c1455c418f", -"%. c #428c464e4eb2", -"&. c #49e74b17480e", -"*. c #4b7a4b984919", -"=. c #4b424c124924", -"-. c #4e2b4ce1494c", -";. c #4b5450bb574f", -":. c #545f56ee543c", -">. c #520055075b58", -",. c #45ca4deb63f7", -"<. c #47c54ea9618f", -"1. c #477d4f716673", -"2. c #48314fb16218", -"3. c #4cd2542760ea", -"4. c #4b93542768dd", -"5. c #528858de6a23", -"6. c #5d7f62a36740", -"7. c #606162956770", -"8. c #639c687068a6", -"9. c #692e6b18620d", -"0. c #6c456e4766cc", -"q. c #6bc06e9068a9", -"w. c #64656af87761", -"e. c #6c7f6da9716d", -"r. c #6e426e0971fc", -"t. c #6eae6f6f73f0", -"y. c #6f79716769b5", -"u. c #75af75d26eec", -"i. c #71a275b87813", -"p. c #7dc582a986da", -"a. c #862d47a59174", -"s. c #885b47d79329", -"d. c #8fac5b4596fb", -"f. c #898d7a518c04", -"g. c #8a1b7bb78c25", -"h. c #9ff76cefabfe", -"j. c #a01373e4a9c2", -"k. c #a9327743af85", -"l. c #813c82307990", -"z. c #81e482da7a7f", -"x. c #82a183727b14", -"c. c #833e83de7b92", -"v. c #83248602867e", -"b. c #8b538c308b37", -"n. c #8f4d99148ef8", -"m. c #8ddd9240969e", -"M. c #9b689b8586d9", -"N. c #953097a99355", -"B. c Gray58", -"V. c #96d09842970f", -"C. c #979799719910", -"Z. c #9b579caa9ae3", -"A. c #9ba99d2a9c8f", -"S. c Gray62", -"D. c #99659de1a359", -"F. c #ac17ab8b9ea2", -"G. c Gray64", -"H. c #a007a1f1a793", -"J. c #a2a1a27ea639", -"K. c #a1c7a6b9ac80", -"L. c Gray66", -"P. c #aa08ab5ba86e", -"I. c #aaa1aa8daa8b", -"U. c #adedaf8bae65", -"Y. c #a8ffaf75b90b", -"T. c #ad0bb5d3aca9", -"R. c #afcab577bbfb", -"E. c #b3cab37fae09", -"W. c #b065b1f7b0b8", -"Q. c #b1f1b1efb1e7", -"!. c #b0b0b090b228", -"~. c #b27fb26eb259", -"^. c #b34ab4cdb34c", -"/. c #b6f9b7c3b6c1", -"(. c #b2d3b572b8bd", -"). c #b679bc3fbfdf", -"_. c #b94dba06b74f", -"`. c #bb54bb51bb4c", -"'. c #bf9eb931bc1d", -"]. c Gray74", -"[. c #bd72bdc7bee1", -"{. c #bebbbe54bf75", -"}. c #c12dc14abd26", -"|. c #c23ec236c1f7", -" X c Gray76", -".X c #c3e8c682c6e7", -"XX c #c6c6c7c3c0d5", -"oX c #c1a0c68acf26", -"OX c #c506c896cf5d", -"+X c #c991ca28ccd9", -"@X c Gray80", -"#X c #cdcccceccccd", -"$X c #cf73c67ed0d0", -"%X c #c95fcc81d1c3", -"&X c #ca18cce0d140", -"*X c #ce76d0ddd44f", -"=X c #cfc6d296d6cb", -"-X c #d1e9d451d713", -";X c #d559d665d6c9", -":X c #d501d68ed787", -">X c Gray84", -",X c #d543d771d9f9", -" W.=.h ,.X._ | ) E Q T 6 MXl.NXNXNX", -"c * U.*.u +.@.o. .` ^ ) W 8 MXl.NXNXNX", -"< % P.-.i ] ' Y d t r e 2 @ mXl.NXNXNX", -", & D.{ # g K [ %.>.7.e.t.r.MXx.NXNXNX", -"; & ).Y.R.oXOX=X8XiXjXvXlXkXaX9.NXNXNX", -"X A H I 8.w.3.} J s y w - a : NXNXNX", -" NXNX NX . P S o NX NXNXNX", -"M $ + M.}.E.F.XX(.m.p.q.:.#.N = NXNXNX", -"'.rXzXcXMXxXsX9X4X1X#X{.!.J.N.u.NXNXNX", -"j.h.2XT.;X+X|.H.[.].~.I.G.Z.n.f.NXNXNX", -"a.s.k.$X5X>X@X X`.Q.L.S.B.b.g.d.NXNXNX", -"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX", -"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX", -"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX" -}; diff --git a/contrib/gtk-tool/icons/rfc822mailgroup_node.h b/contrib/gtk-tool/icons/rfc822mailgroup_node.h deleted file mode 100644 index 7e1719baf7..0000000000 --- a/contrib/gtk-tool/icons/rfc822mailgroup_node.h +++ /dev/null @@ -1,214 +0,0 @@ -/* XPM */ -static char *rfc822mailgroup_node[] = { -/* columns rows colors chars-per-pixel */ -"19 20 188 2", -" c Gray0", -". c #07ec07f907f3", -"X c #182314d8146d", -"o c #1e231c221704", -"O c #19be18a01d49", -"+ c #1e561e181f78", -"@ c #1dd61e7e2152", -"# c #1fde1fb822c6", -"$ c #20a31fc52305", -"% c #21e6216923e3", -"& c #23b623892600", -"* c #248021b820a9", -"= c #2f322c592663", -"- c #2d2b2f472fb9", -"; c #39b03c313cd7", -": c #6ec620f41c4a", -"> c #444b3fab42c8", -", c #416e41f64689", -"< c #42e543e1448b", -"1 c #4cbe4fcc5163", -"2 c #4ced4f405230", -"3 c #4d034f715233", -"4 c #4cea501b5125", -"5 c #4d7552225212", -"6 c #4f0d523b5357", -"7 c #4e7f5151541e", -"8 c #69b86c9a6ada", -"9 c #6ea16d54712e", -"0 c #75906b666109", -"q c #70166ce2720b", -"w c #77e778e075e8", -"e c #820e74fc7d5a", -"r c #85b87b917708", -"t c #915b7e0f6e32", -"y c #9a5e7e7c8a53", -"u c #939484d477b3", -"i c #abd7840f7bf8", -"p c #83d18068847e", -"a c #8bb880a78829", -"s c #885288778970", -"d c #89e388af89f7", -"f c #8ad58beb8c02", -"g c #948587d780da", -"h c #953f810c8d16", -"j c #903389da8ddb", -"k c #90d38d838ffc", -"l c #95aa886e8a91", -"z c #90c591b28ac7", -"x c #948091a58e4a", -"c c Gray58", -"v c #95bc945095b4", -"b c #953c9543959d", -"n c #9624972597cc", -"m c #973b94549946", -"M c #99a593bd96a6", -"N c #9cd0975c9c3a", -"B c #9cee9c29942e", -"V c #9af499929e79", -"C c #9ffa9e3fa019", -"Z c #a79084328fe5", -"A c #a7eb8ca69735", -"S c #a28d8e35987a", -"D c #a160956e9bb9", -"F c #a11a964d9eac", -"G c #b69a9d9aacf5", -"H c #a57fa2159dcf", -"J c #a866a1f49301", -"K c #b249a4cb8be6", -"L c #a40ba35fa567", -"P c #aa20ab3eac0e", -"I c #b141a8c0ad2e", -"U c #b4b8abccaada", -"Y c #b66eacbdaa0c", -"T c #b46dadc5b088", -"R c #b954a7eeb2f9", -"E c #b6abb013b44e", -"W c Gray71", -"Q c #b724b7bbb862", -"! c #b7fdba01b8c5", -"~ c #bf11b3c6b779", -"^ c Gray72", -"/ c #ba9bb8ffba6e", -"( c #bc41bd36bf2d", -") c #bf4dc73fc925", -"_ c #c16bad47ae4f", -"` c #c4adac0fac1e", -"' c #c99bbe96a1dd", -"] c #cdc7bed6a35d", -"[ c #c2bab293b434", -"{ c #c0f1b999b8cc", -"} c #c995b3c1b26a", -"| c #ceceb062b0a4", -" . c #d4c9ba53b1cf", -".. c #c8f9ba29c4cb", -"X. c #cb67bde2c81c", -"o. c #cbd2bc75ca58", -"O. c #d1d6bb50c77d", -"+. c #c29bc064bd9d", -"@. c #da7ecaf8af12", -"#. c #db3ad18bb699", -"$. c #e1fdd073b2e1", -"%. c #f38ae2a6be16", -"&. c #c45fc94cc8fc", -"*. c #c98ec715c6fe", -"=. c #cdd9cb75c361", -"-. c #cbfdc9b1ca87", -";. c #c940cc27d0be", -":. c #caf8cd6ad331", -">. c #cf6ed365d5f7", -",. c #d191c301ce2c", -"<. c #d1e5ccb0cfdc", -"1. c #d670cde4cfcb", -"2. c #d55fc433d1e3", -"3. c #d4edcfb7d3f9", -"4. c #da77cd44d11e", -"5. c #dc54cd67dbf8", -"6. c #d493d2dfcd5d", -"7. c #d296d516dbd1", -"8. c #d307d5e6da14", -"9. c #dbddd262d49d", -"0. c #deeed007d441", -"q. c #ddddd53fd59d", -"w. c #de3ed638d560", -"e. c #d8c8d6f0db5e", -"r. c #df88d22ad81e", -"t. c #de4bd5abdaaf", -"y. c #dee2db6bd34f", -"u. c #dfa7db2bdcb5", -"i. c #eddbc33cc98e", -"p. c #e3dad086d1d2", -"a. c #e218d5fbd86e", -"s. c #e2bfd7ffdba9", -"d. c #e325d765db4b", -"f. c #e0d1da19da1c", -"g. c #e0fedc7bdf13", -"h. c #e391df6edc8f", -"j. c #e50fdbfddeb0", -"k. c #eb5fdb16d71e", -"l. c #f03bddfadcf2", -"z. c #e3d0dc36e364", -"x. c #e24bdf83e33f", -"c. c #e300def1e2be", -"v. c #e2b0de09e412", -"b. c #e334df1fe43b", -"n. c #e2efe2e5ddde", -"m. c #ffffefa7d2cd", -"M. c #ff9ef4c5d83d", -"N. c #e036e30ae01d", -"B. c #e227e002e294", -"V. c #e7d2e46fe31a", -"C. c #e6cae51ae728", -"Z. c #e8f3e3cfe3f8", -"A. c #e87fe5c0e77e", -"S. c #eab9e60de6a3", -"D. c #e8b5e415e83d", -"F. c #e94ae426e933", -"G. c #eb09e86ae626", -"H. c #e9a1eadeeea5", -"J. c #e92deb70eed0", -"K. c #eb91e966ecc8", -"L. c #ed64eb3bedbf", -"P. c #ee1bee85eeca", -"I. c #ed44ebedf06b", -"U. c #eed8ecd1f1a2", -"Y. c #f197e5d0e989", -"T. c #f6f2e0cdeaef", -"R. c #f02dea01e9b5", -"E. c #f192ea47ee91", -"W. c #f016eff5f204", -"Q. c #f96ceda8f62c", -"!. c #f053f0daf4ac", -"~. c #f5ddf1e3f730", -"^. c #f606f36ef6c8", -"/. c #f570f42bf44a", -"(. c #f52ff1f5f892", -"). c #f4f3f51ef9ab", -"_. c #f726f6cfffff", -"`. c #f7dcf835f989", -"'. c #f7a7f8adfbd6", -"]. c #fbb3f497f63e", -"[. c #f88ff59ffc7c", -"{. c #f818f99dfb5e", -"}. c #fd46f943fd84", -"|. c #feadfb96ff2b", -" X c #ff97fceeffba", -".X c #ff5afd52ffff", -"XX c Gray100", -"oX c None", -/* pixels */ -"oXoXoXoXoXoX = 0 X oXoXoXoXoXoXoXoXoX", -"oXoXoXoXoXoXoXo u oXoXoXoXoXoXoXoXoX", -"oXoXoXoXoXoX #.XXg oX oXoXoXoXoXoX", -"oXoXoXoXoX @.m.' %.r 9 * oXoXoXoXoX", -"oXoXoXoX ] $.J z ^ XXXXE oXoXoXoXoX", -"oXoXoX K M.B &.XX.XY.}.XX> oXoXoXoXoX", -"oXoXoXt .Y w.p.| _ } ` l.l oXoXoX", -"< 5 H k.X.[ U y Z D S A F o.q . oXoXoX", -"a R T.,._.).I.L.W.J.F.K.4.i.N.+ oXoXoX", -"e h O.G ..P.G.Z.B.u.q.D.i : { & oXoXoX", -"j I Q.5.2.E.S.C.b.d.0.z.n 8 ) % oXoXoX", -"b ! XXH.+.1.P ( 3.j.t.e.n.].7.$ oXoXoX", -"c W XXx.L V d M ~ T v.h.6.f.;.$ oXoXoX", -"c W Xc.N f k m C p w x *.g.:.$ oXoXoX", -"v / XXR.V.A.s.a.r.9.=.-.<.y.>.# oXoXoX", -"s Q XX`.{.'.[.^.~.(./.!.U.|.8.@ oXoXoX", -"- ; 6 4 1 1 1 1 1 1 3 2 3 7 , O oXoXoX", -"oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX", -"oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX", -"oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX" -}; diff --git a/contrib/gtk-tool/icons/root_node.h b/contrib/gtk-tool/icons/root_node.h deleted file mode 100644 index e1b376f096..0000000000 --- a/contrib/gtk-tool/icons/root_node.h +++ /dev/null @@ -1,75 +0,0 @@ -/* XPM */ -static char *root_node[] = { -/* columns rows colors chars-per-pixel */ -"19 20 49 1", -" c #313131310000", -". c #313131313131", -"X c #000000006363", -"o c #000031316363", -"O c #313131316363", -"+ c #000042424242", -"@ c #00007b7b7b7b", -"# c #313163636363", -"$ c #636363633131", -"% c #5a5a5a5a5a5a", -"& c #7b7b7b7b7b7b", -"* c #31313131ffff", -"= c #000042428484", -"- c #313163639c9c", -"; c #31316363cece", -": c #636363639c9c", -"> c #00009c9c3131", -", c #31319c9c3131", -"< c #63639c9c3131", -"1 c #63639c9c6363", -"2 c #31319c9ccece", -"3 c #31319c9cffff", -"4 c #0000ceceffff", -"5 c Cyan", -"6 c #63639c9c9c9c", -"7 c #63639c9ccece", -"8 c #63639c9cffff", -"9 c #6363ceceffff", -"0 c #9c9c00000000", -"q c #cece00000000", -"w c Magenta", -"e c #848484844242", -"r c #9c9c9c9c6363", -"t c #848484848484", -"y c Gray58", -"u c Gray71", -"i c #84848484ffff", -"p c #9c9ccececece", -"a c #9c9cceceffff", -"s c #8484ffffffff", -"d c #a5a5cecef7f7", -"f c #ffff9c9c9c9c", -"g c #cececece9c9c", -"h c #c6c6c6c6c6c6", -"j c #c6c6dedec6c6", -"k c #cecececeffff", -"l c #ceceffffcece", -"z c Gray100", -"x c None", -/* pixels */ -"xxxxx&t&&txxxxxxxxx", -"xxxhujds9u&&xxxxxxx", -"xxhzzdadd1<1 xxxxxx", -"x7zhjdag&1e,$ xxxxx", -"x7ddkuj61e&$, xxxxx", -"7asapryt&.@>., xxxx", -"7983py&z5l.., xxxx", -"2i226&z5l54.%. xxxx", -"272;:t5l545.. xxxx", -"22;-$&h5454. . xxxx", -"---1.,&454.&.. xxxx", -"-*##$#+...&zq0xxxxx", -"xXO++. + . qfq0xxxx", -"xxXoOo+.. . qfq0xxx", -"xxxXX+=++ ..xqq0xxx", -"xxxxx.....xxxx..xxx", -"xxxxxxxxxxxxxxxxxxx", -"xxxxxxxxxxxxxxxxxxx", -"xxxxxxxxxxxxxxxxxxx", -"xxxxxxxxxxxxxxxxxxx" -}; diff --git a/contrib/gtk-tool/main.cc b/contrib/gtk-tool/main.cc deleted file mode 100644 index 55978ed507..0000000000 --- a/contrib/gtk-tool/main.cc +++ /dev/null @@ -1,113 +0,0 @@ -#include "cpluscommon.h" -#include "gtk.h" -#include -#include -#include -#include -#include - -int debug_level = 0; - -target_drag_leave(GdkDragContext *context, guint time) { -} - -int main(int argc, char **argv) { - My_Window *window; - Gtk_LdapItem *treeresult; - Gtk_Tree *tree = NULL, *subtree = NULL; - Gtk_Tree *machine, *machinetree; - Gtk_LdapServer *server; - Gtk_Viewport *viewport; - char *host = NULL, *prt = NULL; - char *base_dn = NULL; - int c, port = 0; - GList *hosts = NULL; - int host_count = 0; - char *pair[2]; - - //hosts = new G_List(); - while ((c = getopt(argc, argv, "d:s:p:h")) != -1) { - switch (c) { - case 'd': - debug_level = atoi(optarg); - break; - case 's': - debug("host\n"); - hosts = g_list_append(hosts, (strdup(optarg))); - break; - case 'p': - port = atoi(optarg); break; - case 'h': - default: - fprintf(stderr, "Usage: %s [-d level] [-s server[:port]]*\n", argv[0]); - exit(-1); - } - fprintf(stderr,"b"); - } - debug("%i hosts\n", g_list_length(hosts)); - if (g_list_length(hosts) == 0) { -#ifndef LDAP_GET_OPT - ldap_get_option(NULL, LDAP_OPT_HOST_NAME, host); -#endif /* LDAP_GET_OPT */ - if (host!=NULL) { - hosts = g_list_append(hosts, host); - debug("Default host: %s\n", host); - } else { -#ifndef LDAP_GET_OPT - fprintf(stderr,"Why isn't your LDAP_OPT_HOST_NAME defined?\n"); -#endif - fprintf(stderr,"Supply me with a host please (hint: use -s)\n"); - } - } else { - for (int f=0; fdata); - } - } - if (port == 0) port = LDAP_PORT; - - Gtk_Main m(&argc, &argv); - - window = new My_Window(GTK_WINDOW_TOPLEVEL); - - if (hosts!=NULL) { - tree = new Gtk_Tree(); - window->viewport->add(*tree); - for (int f=0; fdata, ":"); - prt = strtok(NULL, "\0"); - if (prt != NULL) port = atoi(prt); - else port = LDAP_PORT; - server = new Gtk_LdapServer(window, host, port); - subtree = server->getSubtree(); - tree->append(*server); - server->set_subtree(*subtree); - server->show(); - } - //window->viewport->add(*tree); -// tree->show(); - } - -// window->viewport->show(); -// window->scroller->show(); - - //Select first server - if (tree != NULL) { - Gtk_LdapTree::ItemList &items = tree->tree(); - Gtk_LdapTree::ItemList::iterator i = items.begin(); - server = (Gtk_LdapServer *)(* i); - // server->select_impl(); - } - - window->set_title("gtk-tool"); - window->activate(); - window->set_usize(600, 500); - - window->set_events(window->get_events()|GDK_ALL_EVENTS_MASK); - window->drag_dest_set(GTK_DEST_DEFAULT_ALL, target_table, n_targets, static_cast (GDK_ACTION_COPY|GDK_ACTION_MOVE)); - window->drag_source_set(static_cast(GDK_BUTTON1_MASK|GDK_BUTTON3_MASK), target_table, n_targets, static_cast(GDK_ACTION_COPY|GDK_ACTION_MOVE)); - window->drag_leave.connect(window->slot(window,target_drag_leave)); - window->show_all(); - - m.run(); - return 0; -} diff --git a/contrib/gtk-tool/system.h b/contrib/gtk-tool/system.h deleted file mode 100644 index a9ca0181af..0000000000 --- a/contrib/gtk-tool/system.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef MY_SYSTEM_H -#define MY_SYSTEM_M -#include -#include -#include -#include -#include -#include /* for memcpy.h */ -#endif diff --git a/contrib/gtk-tool/utils.cc b/contrib/gtk-tool/utils.cc deleted file mode 100644 index 9f430cde4a..0000000000 --- a/contrib/gtk-tool/utils.cc +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -extern int debug_level; - -int debug(const char *format,...) { - if (debug_level > 0) { -//#ifdef DEBUG - va_list args; - int ret; - va_start(args, format); - ret = vprintf(format, args); - va_end(args); - return ret; -//#endif - } -} diff --git a/contrib/gtk-tool/utils.h b/contrib/gtk-tool/utils.h deleted file mode 100644 index d7a593a91b..0000000000 --- a/contrib/gtk-tool/utils.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef MY_UTIL_H -#define MY_UTIL_H -int debug(const char *format,...); -#endif /* MY_UTIL_H */ diff --git a/contrib/php3-tool/at.conf b/contrib/php3-tool/at.conf deleted file mode 100644 index b47e498431..0000000000 --- a/contrib/php3-tool/at.conf +++ /dev/null @@ -1,53 +0,0 @@ -aliasedObjectName,Aliased Object Name,TRUE -associatedname,Associated Name,TRUE -associateddomain,Associated Domain,TRUE -audio,Audio Sample,TRUE -cn,Common Name,TRUE -dn,Distinguished Name,TRUE -description,Description,TRUE -documentauthor,Document Author,TRUE -drink,Favourite Drink,TRUE -errorsto,Errors To,TRUE -facsimiletelephonenumber,Fax Number,TRUE -fax,Fax Number,TRUE -homephone,Home Telephone Number,TRUE -homepostaladdress,Home Postal Address,TRUE -joinable,Can be joined,TRUE -jpegphoto,Photograph,TRUE -krbname,Kerberos Name,FALSE -l,Location,TRUE -labeledurl,Web Page,TRUE -lastmodifiedby,Last Modified by,TRUE -lastmodifiedtime,Last Modified at,TRUE -mail,E-mail,TRUE -manager,Manager,TRUE -member,Mambers,TRUE -mobile,Mobile Phone Number,TRUE -mobiletelephonenumber,Mobile Phone Number,TRUE -modifytimestamp,Modified at,TRUE -modifiersname,Modified by,TRUE -multilinedescription,Multi-lined description,TRUE -naminglink,Naming Link,TRUE -nobatchupdates,No Batch Updates,FALSE -notice,Notice,TRUE -o,Organization,TRUE -objectclass,Object Class,TRUE -onvacation,On Vacation,TRUE -ou,Organizational Unit,TRUE -owner,Owner,TRUE -pager,Pager Number,TRUE -pagertelephonenumber,Pager Number,TRUE -personalsignature,Personal Signature,TRUE -photo,Photograph,TRUE -postaladdress,Postal Address,TRUE -reciprocalnaminglink,Reciprocal Naming Link,TRUE -requeststo,Requests To,TRUE -secretary,Secretary,TRUE -seealso,See Also,TRUE -sn,Surname,TRUE -st,State,TRUE -streetaddress,Streed Address,TRUE -telephonenumber,Telephone Number,TRUE -title,Title,TRUE -userpassword,User Password,TRUE -uid,User ID,TRUE diff --git a/contrib/php3-tool/at.conf2 b/contrib/php3-tool/at.conf2 deleted file mode 100644 index 0c46a6a599..0000000000 --- a/contrib/php3-tool/at.conf2 +++ /dev/null @@ -1,53 +0,0 @@ -aliasedObjectName,Aliased Object Name,TRUE -associatedname,Associated Name,TRUE -associateddomain,Associated Domain,TRUE -audio,Audio Sample,TRUE -cn,Common Name,TRUE -dn,Distinguished Name,TRUE -description,Description,TRUE -documentauthor,Document Author,TRUE -drink,Favourite Drink,TRUE -errorsto,Errors To,TRUE -facsimiletelephonenumber,Fax Number,TRUE -fax,Fax Number,TRUE -homephone,Home Telephone Number,TRUE -homepostaladdress,Home Postal Address,TRUE -joinable,Can be joined,TRUE -jpegphoto,Photograph,TRUE -krbname,Kerberos Name,TRUE -l,Location,TRUE -labeledurl,Web Page,TRUE -lastmodifiedby,Last Modified by,TRUE -lastmodifiedtime,Last Modified at,TRUE -mail,E-mail,TRUE -manager,Manager,TRUE -member,Mambers,TRUE -mobile,Mobile Phone Number,TRUE -mobiletelephonenumber,Mobile Phone Number,TRUE -modifytimestamp,Modified at,TRUE -modifiersname,Modified by,TRUE -multilinedescription,Multi-lined description,TRUE -naminglink,Naming Link,TRUE -nobatchupdates,No Batch Updates,TRUE -notice,Notice,TRUE -o,Organization,TRUE -objectclass,Object Class,TRUE -onvacation,On Vacation,TRUE -ou,Organizational Unit,TRUE -owner,Owner,TRUE -pager,Pager Number,TRUE -pagertelephonenumber,Pager Number,TRUE -personalsignature,Personal Signature,TRUE -photo,Photograph,TRUE -postaladdress,Postal Address,TRUE -reciprocalnaminglink,Reciprocal Naming Link,TRUE -requeststo,Requests To,TRUE -secretary,Secretary,TRUE -seealso,See Also,TRUE -sn,Surname,TRUE -st,State,TRUE -streetaddress,Streed Address,TRUE -telephonenumber,Telephone Number,TRUE -title,Title,TRUE -userpassword,User Password,TRUE -uid,User ID,TRUE diff --git a/contrib/php3-tool/false.gif b/contrib/php3-tool/false.gif deleted file mode 100644 index b5a6fb3dd6db932d544df83cff4e7015a75e1abc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94 zcmZ?wbhEHbIxs79 qB-~n;CZQz9<9ti>#xrNb&~ra@@1-Za+?=*(YuA*Vx+PN?7_0$JP$G-~ diff --git a/contrib/php3-tool/images/I.gif b/contrib/php3-tool/images/I.gif deleted file mode 100644 index e9067b2030285159e8fc579c42cc3819ccc981ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114 zcmZ?wbhEHb6lM@%*v!CCU0wa3;Xm;}@h1x-0|O(24g(N?%wS-VH#p(Bdh3H%XVc#$ c{AgWbHf_c9b(c;~ddGdt$o;ySI3t5K05AbU+5i9m diff --git a/contrib/php3-tool/images/L.gif b/contrib/php3-tool/images/L.gif deleted file mode 100644 index a11cead6f81697274f315d5aff05aa2c0423cf5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 850 zcmZ?wbhEHb6lM@%_|5@@XKCPG&1qp}R1eEQ1JOUpc>5`D;^Egqs_;`%&)P z)89Q1<4E=_Vp_Pai_@% diff --git a/contrib/php3-tool/images/Lplus.gif b/contrib/php3-tool/images/Lplus.gif deleted file mode 100644 index 701c16c778bfac4f3b97400a1730f97cce0ee0a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143 zcmZ?wbhEHb6lM@%*vtR|)z#H4EiL~U{u2Wff3h$#FfcRdfOLY)U|_K+IN`Z^>%&)P z)89Q1<4E=_Vp_Pa8z<;b+9I+lYWo={@C|cq&S<-t^%8H@{2L=Xf E0PrUhWB>pF diff --git a/contrib/php3-tool/images/Tminus.gif b/contrib/php3-tool/images/Tminus.gif deleted file mode 100644 index 1a3b056898bf7219da6ec45403f49cb6c6629114..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139 zcmZ?wbhEHb6lM@%*vtR|)z#H4EiL~U{u2Wff3h$#FfcRdfOLY)U|_K*IN`Z^>%&)P z)89Q1<4E=_Vp_Pa%&)P z)89Q1<4E=_Vp_Pa8z<;b+9I+lY0Zu7 LGV3QU3=Gx)&w)#T diff --git a/contrib/php3-tool/images/foldericon.gif b/contrib/php3-tool/images/foldericon.gif deleted file mode 100644 index 96b709eaf0d4f4d794d5d3e035d4685c0a514b4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 923 zcmc(e&5O-p6vw~D2(z4PQW{BVN-1$>K~u`xxWh^o8ci{adr}q@3oPZOCd=8JTM9J` zjWQ)_c2kp3hl!1pHUEH;)$zH{KjB&Y>UqvN-}8OB_sq=nk)!h+?a&_$j!7$d>7}K;<=YbRM z>0V7Ci@8U5hF22|56Y3A>DBZ@i|#1T@@jVA7WUu=2A~*;XhH<6p$RXDuo-Bu0b`nW z>O62VqMDT`WHI;5sOBt!;Xyeosu@iz|z<8X-TD-&#STc+s7=U6VLK-Ys zLla&QVKdNR1I9G%)Op~vU*doG?EO2uNm|u`!S2C-LfdZZ=JxUK%G2Zb#zrTGZ>(H- zaP6Cax_j#3{QBJ3hpRuj)6Y&k8a=tN*!}W+ZKSj3#oX%Q^QZ6cpFMVV^1{;0<3qi# zx9)V7KKCatU;5a4_iN+H!L7Ttj4b-b>{Lwj`@i?SUmm~yb7<|&^2Jv>*B5r5d;9YH K>)z%eP5lF{YmSkk9}E z3q7#1u%+{Ue@5yPR-aI~9I zjAg=%2@73$rS$v`I2a|ePf%bEP!M=?9l*RlOFoP4KH|Sl|@gt-~!~P++o>g-u2yz+=JzrdHm7rB)jX4z9VeIbgTf zmJbJ;+j%PQ2fcl$iTqHpaYTw znZdvkb>W2P>ZK~rvpIjrAM}k&nANZ>^l4?&fq;aD?Ab;u-`x~=GHIH(fWQehhvp3# zN^+A=-P)j`AhKqQTJV9XiJ3 diff --git a/contrib/php3-tool/images/top.gif b/contrib/php3-tool/images/top.gif deleted file mode 100644 index 7284af16f32602c6d1b2a54464a16511256fe9a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1017 zcmZ?wbhEHb6lM@%_|5ypG?RMfusBD)jVbxBra@XWf6%_ z_|bkyu~Sr9r=Y@safuU;bfn3i1x1Hj*!9?x6h1Z{;Sf~dQBw#|U_93%VUp5ez;vXo zo;^y%piAL7H;0^p!;TLouNav*Ra7=`F*38Ti&#~d79?a{ZHbaKnX!TK==Jr<$JKHU zTyMI_n{zO)V0SqqGn=pk$BbDIR(1)9Flq>FkZ5FJNe(?wA!FIl#L)d&>B5;vMFs{Y fwt!=E9<+8{5|Q-xwXk0D_V$kA*Y{+N6d0@lz1IlR diff --git a/contrib/php3-tool/images/topopen.gif b/contrib/php3-tool/images/topopen.gif deleted file mode 100644 index 9aa42400cadf72500a20c95fd5c8fa7d6259b266..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1020 zcmZ?wbhEHb6lM@%_|5ypG?RMfusBD)jVbxBra@XWf6%_ z_|bkyu~Sr9r=Y@safuU;bfn3i1x1Hj*!9?x6h1Z{;Sf~dQBw#|U_93%VUp5ez;vXo zo;^y%piAL7H;0^p!;TLouNav*Ra7=`F*38Ti&#~d79?a{ZHbaKnX!TK==Jr<$JKHU zTyMI_n{zO)V0SqqGn=pk$BbDIR(1)9Flq>FkZ5FJNe(?wA!FIl#L)d&>B5;vMFs{Y jwt!=E9<+8{5|Q-xwXk0D_BN;agL`MK&EGXJFjxZs+vy4& diff --git a/contrib/php3-tool/images/white.gif b/contrib/php3-tool/images/white.gif deleted file mode 100644 index 6a62ac8b2ad686f1f2e87368d4c0381dcae8dd65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 837 zcmZ?wbhEHb6lM@%_|CvkU0wa3;r}QY4S|sv0*XIb7#SEC8FUzc0F);fIFuNeIb=LG kEI8QAA*>a1V#C72?E=bPb38UKI@&E^oOMUTK!L#;0K?i0RR910 diff --git a/contrib/php3-tool/include/ldap_entry.inc b/contrib/php3-tool/include/ldap_entry.inc deleted file mode 100644 index eb9d387578..0000000000 --- a/contrib/php3-tool/include/ldap_entry.inc +++ /dev/null @@ -1,105 +0,0 @@ -\n"; - $this->link_identifier = $l_i; - } - - cfunction getAttributes() { - $i=0; - $attrib = new ldap_entry_attribute($this->dn); - $n = ldap_first_attribute($this->link_identifier, $this->r_e_i, &$ber); - while ($n) { - $attrib->name = $n; - $attrib->getValues($this->link_identifier,$this->r_e_i); - $this->attributes[$i] = $attrib; - $i++; - $attrib = new ldap_entry_attribute($this->dn); - $n = ldap_next_attribute($this->link_identifier, $this->r_e_i, $ber); - } - } - - cfunction formatHTMLDN($dn) { - global $FILE, $host; - $string = ""; - $attribs = ldap_explode_dn($dn, 0); - $names = ldap_explode_dn($dn, 1); - for ($i=0; $i<$attribs["count"]; $i++) { - $s = $attribs[$i]; - for ($j=$i+1; $j<$attribs["count"]; $j++) { - $s .= ",".$attribs[$j]; - } - if (($s[0] == "c") && ($s[1] == "n")) { - $string .= "".$names[$i].""; - } - else { - $string .= "".$names[$i].""; - } - if ($i<$attribs["count"]-1) { $string .= ", "; } - } - return $string; - } - - cfunction formatHTMLAttributes() { - global $FILE, $host; - $s = ""; - $s .= "\n\t"; - $s .= ''; - $s .= "\n\t\t

".$this->formatHTMLDN($this->dn)."

\n"; - $s .= "\t\t\n\t\n"; - $c = count($this->attributes); - for ($i=0; $i<$c; $i++) { - $attrib = $this->attributes[$i]; - if ($attrib->isVisible($attrib->name) == "TRUE") { - $s .= $attrib->formatHTMLValues(); - } - } - $a = $this->attributes[0]; - $v = $a->values[1]; - if ($v == "organizationalUnit" || $v == "organization") { - $s .= "\n\t\n"; - $s .= "\t\tdn).">Browse\n"; - $s .= "\t\t\n\t\n"; - } - else if ($v == "person") { - $s .= "\n\t\n"; - $s .= "\t\tdn).">Modify\n"; - $s .= "\t\t\n\t\n"; - } - else { - $s .= "\n\t\n\t\t \n\t\t\n\t\n"; - } - return $s; - } - - cfunction display() { - global $FILE, $host; - echo ""; - echo "

".ldap_dn2ufn($this->dn)."

"; - echo ""; - $c = count($this->attributes); - for ($i=0; $i<$c; $i++) { - $attrib = $this->attributes[$i]; - $attrib->display(); - } - $a = $this->attributes[0]; - $v = $a->values[1]; - if ($v == "organizationalUnit" || $v == "organization") { - echo ""; - echo "dn).">Browse"; - echo ""; - } - else { - echo " "; - } - } -} -?> diff --git a/contrib/php3-tool/include/ldap_entry_attribute.inc b/contrib/php3-tool/include/ldap_entry_attribute.inc deleted file mode 100644 index 1d2167c2b4..0000000000 --- a/contrib/php3-tool/include/ldap_entry_attribute.inc +++ /dev/null @@ -1,169 +0,0 @@ -\n"; - $this->dn = $d; - $a = ldap_explode_dn($this->dn, 1); - $this->cn = $a[0]; - } - - cfunction getAttributeName($string) { - global $prefs; - for ($i=0; $iattribute_names); $i++) { - if ($prefs->attribute_names[$i][0] == $string) { - return $prefs->attribute_names[$i][1]; - } - } - return $string; - } - cfunction isVisible($string) { - global $prefs; - for ($i=0; $iattribute_names); $i++) { - if ($prefs->attribute_names[$i][0] == $string) { - return $prefs->attribute_names[$i][2]; - } - } - return "FALSE"; - } - - cfunction getValues($l_i, $r_e_i) { - //echo "My name is ".$this->name."
\n"; - $this->values = ldap_get_values($l_i, $r_e_i, $this->name); - } - - cfunction display() { - echo "\n\t\n"; - echo "\t\t".$this->name."\n\t\t\n\t\n"; - echo "
    \n"; - for($i=0; $i<$this->values["count"]; $i++) { - //echo "Displaying value ".$i."
    \n"; - echo "
  • "; - $this->displayValue($i); - echo "
    \n"; - } - echo "
\n"; - echo "\n\n"; - } - - cfunction formatHTMLValues() { - $ct = $this->values["count"]; - $str = ""; - $str .= "\n\t\n"; - $n = $this->getAttributeName($this->name); - $str .= "\t\t".$n."\n\t\t\n\t\n\t\t
    \n"; - // if ($ct > 1) { - // $str .= "\t\t
      \n"; - // } - for ($i=0; $i<$this->values["count"]; $i++) { - $str .= "\t\t\t
    • "; - $str .= $this->formatHTMLValue($i); - $str .= "
      \n"; - } - //if ($ct > 1) { $str .= "\t\t\t
    \n"; } - $str .= "\t\t\t
\n\t\t\n\t\n"; - return $str; - } - - cfunction formatHTMLValue($index) { - global $prefs, $FILE, $host; - $p = ""; - switch ($this->name) { - case "cn": - $p .= "dn).">".$this->values[$index].""; - break; - case "ou": - $p .= "dn).">".$this->values[$index].""; - break; - case "seealso": - case "member": - case "requeststo": - case "errorsto": - case "owner": - case "lastmodifiedby": - case "modifiersname": - $p .= "values[$index]).">".ldap_dn2ufn($this->values[$index]).""; - break; - case "mail": - $p .= "values[$index].">".$this->values[$index].""; - break; - case "postaladdress": - case "homepostaladdress": - $i=0; - $tok = strtok($this->values[$index], "$"); - while ($tok) { - $p .= $i." ".$tok."
\n"; - $tok = strtok("$"); - $i++; - } - break; - case "labeledurl": - $tok = strtok($this->values[$index], " "); - $tok2 = strtok("\0"); - $p .= ''.$tok2.''; - break; - case "lastmodifiedtime": - case "modifytimestamp": - $t = $this->values[$index]; - $hour = (int) $t[6].$t[7]; - $minute = (int) $t[8].$t[9]; - $second = (int) $t[10].$t[11]; - $month = (int) $t[2].$t[3]; - $day = (int) $t[4].$t[5]; - $year = (int) $t[0].$t[1]; - $timestamp = mktime($hour, $minute, $second, $month, $day, $year); - $date = date("h:i:sa, on l, dS of F Y", $timestamp); - $p .= $date; - break; - case "jpegphoto": - $p .= 'Image of '.$this->cn.''; - break; - default: - $p .= $this->values[$index]; - break; - } - return $p; - } - - cfunction displayValue($index) { - //echo "ldap_entry_attribute.displayValue(".$index.")
\n"; - global $FILE, $host; - if ($this->name == "cn") { - print "dn).">".$this->values[$index].""; - } - else if ($this->name == "ou") { - print "dn).">".$this->values[$index].""; - } - else if ($this->name == "seealso" || $this->name == "member" || $this->name == "requeststo" || $this->name == "errorsto" || $this->name == "owner" || $this->name == "lastmodifiedby" || $this->name == "modifiersname") { - print "values[$index]).">".ldap_dn2ufn($this->values[$index]).""; - } - else if ($this->name == "mail") { - print "values[$index].">".$this->values[$index].""; - } - else if ($this->name == "labeledurl") { - $tok = strtok($this->values[$index], " "); - $tok2 = strtok("\0"); - print ''.$tok2.''; - } - else if ($this->name == "lastmodifiedtime" || $this->name == "modifytimestamp") { - $t = $this->values[$index]; - $hour = (int) $t[6].$t[7]; - $minute = (int) $t[8].$t[9]; - $second = (int) $t[10].$t[11]; - $month = (int) $t[2].$t[3]; - $day = (int) $t[4].$t[5]; - $year = (int) $t[0].$t[1]; - $timestamp = mktime($hour, $minute, $second, $month, $day, $year); - $date = date("h:i:sa, on l, dS of F Y", $timestamp); - // $date = getdate($timestamp); - // $date = getdate($this->values[$index]); - // echo "".$date["hours"].":".$date["minutes"].", - // ".$date["weekday"].",".$date["month"]." ".$date["mday"].", ".$date["year"]."
\n"; - print $date; - } - else { - print $this->values[$index]; - } - } -} -?> diff --git a/contrib/php3-tool/include/ldap_manager.inc b/contrib/php3-tool/include/ldap_manager.inc deleted file mode 100644 index 6db3fc7911..0000000000 --- a/contrib/php3-tool/include/ldap_manager.inc +++ /dev/null @@ -1,115 +0,0 @@ -link_identifier = ldap_connect($host); - if ($this->link_identifier) return 1; - return 0; - } - - function disconnect() { - ldap_close($this->link_identifier); - } - - function ldapTakeAction($a = "search") { - $func_ptr = "ldap_".$a; - if ($this->result_identifier = $func_ptr($this->link_identifier, $this->base_dn, $this->search_filter)) { - $this->entriesCount = ldap_count_entries($this->link_identifier, $this->result_identifier); - return 1; - } - return 0; - } - - cfunction getEntries() { - $i=0; - $entry = new ldap_entry($this->link_identifier); - $entry->r_e_i = ldap_first_entry($this->link_identifier, $this->result_identifier); - while($entry->r_e_i) { - $entry->dn = ldap_get_dn($this->link_identifier, $entry->r_e_i); - $entry->getAttributes(); - $this->entries[$i] = $entry; - $i++; - $r = $entry->r_e_i; - $entry = new ldap_entry($this->link_identifier); - $entry->r_e_i = ldap_next_entry($this->link_identifier, $r); - } -// ldap_free_result($this->result_identifier); - } - - cfunction displayEntries() { - echo $this->formatHTMLEntries(); - } - - cfunction formatHTMLBaseDN($dn) { - global $FILE, $host; - $string = ""; - $attribs = ldap_explode_dn($dn, 0); - $names = ldap_explode_dn($dn, 1); - for ($i=0; $i<$attribs["count"]; $i++) { - $s = $attribs[$i]; - for ($j=$i+1; $j<$attribs["count"]; $j++) { - $s .= ",".$attribs[$j]; - } - if (($s[0] == "c") && ($s[1] == "n")) { - $string .= "".$names[$i].", "; - } - else { - $string .= "".$names[$i].", "; - } - } - return $string; - } - - cfunction formatHTMLEntries() { - $string = ""; - $string .= ''; - $string .= "\n"; - for ($i=0; $ientries); $i++) { - $e = $this->entries[$i]; - $string .= $e->formatHTMLAttributes(); - } - $string .= "
\n"; - return $string; - } - - cfunction calculateTime($string, $s_t, $e_t) { - $tok1 = strtok($s_t, " "); - $msecs1 = $tok1; - $tok1 = strtok(" "); - $secs1 = $tok1; - - $tok2 = strtok($e_t, " "); - $msecs2 = $tok2; - $tok2 = strtok(" "); - $secs2 = $tok2; - $t_t = (float) ($secs2 + $msecs2) - (float) ($secs1 + $msecs1); - echo "execution time for ".$string." : ".$t_t." seconds
\n"; - // echo "start: ".$secs1."
\n"; - // echo "end: ".$secs2."
\n"; - return (float) $t_t; - } - - cfunction stripString($string, $tokens) { - $s = $string; - for ($i=0; $i diff --git a/contrib/php3-tool/include/preferences.inc b/contrib/php3-tool/include/preferences.inc deleted file mode 100644 index 11ca8f04f0..0000000000 --- a/contrib/php3-tool/include/preferences.inc +++ /dev/null @@ -1,155 +0,0 @@ -"; - $sect = array(); - for ($i=0; $isections); $i++) { - $sect = $this->sections[$i]; - // echo $sect[0]."
"; - if ($sect[0] == $s) { - // echo "Found ".$sect[0]."
"; - return $sect[1]; - } - } - // echo "Didn't find ".$s."
"; - } - cfunction get($s) { - $class = explode(".", $s); - $sect = $this->getSection($class[0]); - $values = array(); - $values = $sect[1]; - for ($i=0; $i"; - if ($values[0] == $class[1]) { - // echo "Found ".$values[0]."
"; - return $values[1]; - } - } - // echo "Didn't find ".$class[1]."
"; - } - cfunction getName($s) { - $n = trim(strtok($s, "{")); - return $n; - } - cfunction getBody($s) { - $i = strpos($s, "{") + 1; - $j = strpos($s, "}") - 1; - $tok = substr($s, $i, $j-$i); - return $tok; - } - cfunction getValues($b) { - $t = '" ","\" ","\n"'; - $av_pairs = array(); - $pairs = array(); - $av_pair = array(); - $pairs = explode(";", $b); - for ($i=0; $istripString($av_pair[1], $t)); - // echo "
  • ".$av_pair[0].":".$av_pair[1]; - $av_pairs[$i] = $av_pair; - } - return $av_pairs; - } - cfunction getStatements($s) { - $i = 0; - $end = strpos($s, "}"); - while($end != FALSE) { - $tok = substr($s, 0, $end+1); - $s = substr($s, $end+1, strlen($s)); - // echo "
      "; - $this->sections[$i] = $this->getStatement($tok); - // echo "
    \n"; - $end = strpos($s, "}"); - $i++; - } - // echo count($this->sections)." sections
    "; - } - cfunction getStatement($s) { - $values[0] = $this->getName($s); -// echo "
  • Name ".$values[0]; - $body = $this->getBody($s); -// echo "
  • Values
      "; - $values[1] = $this->getValues($body); -// echo "
  • "; - return $values; - } - cfunction loadPreferences() { - if (count($preferences) != 0) { - echo "I have got ".count($this->sections)." preferences here
    \n"; - } - else { - $fp = fopen("php3tool.conf", "r"); - $i = 0; - $string = ""; - while (!feof($fp)) { - $string .= fgets($fp, 80); - } - fclose($fp); - $this->getStatements($string); - } - $this->loadAttributeNames($this->get("PATH.attributes")); - } - - cfunction loadAttributeNames($s = "at.conf") { - // global $attribute_names; - if (count($this->attribute_names) != 0) { - //This is bullshit here..how do we make php3 - //preserve an array in memory between re-loads? - //And no, I'm not going to send it every time - //I make a subsequent request.. - //If we don't fix these things it won't run - //on anything smaller than a StarFire 10000 - //EVEN THOUGH this stuff is suprisingly fast. - echo "I have got attribute_names here
    \n"; - } - else { - //echo "I dont have attribute_names here
    \n"; - $fp = fopen($s, "r"); - $i = 0; - while (!feof($fp)) { - $string = ""; - $foo = ""; - $string = fgets($fp, 80); - $foo = strtok($string, ","); - $this->attribute_names[$i][0] = $foo; - $foo = strtok(","); - $this->attribute_names[$i][1] = $foo; - $foo = strtok("\n"); - $this->attribute_names[$i][2] = $foo; - $i++; - } - } - // echo "Hello world:".count($this->attribute_names)."\n"; - // for ($i=0; $iattribute_names)-1; $i++) { - // echo $this->attribute_names[$i][0]." - ".$this->attribute_names[$i][1]." - ".$this->attribute_names[$i][2]."
    \n"; - // } - return $this->attribute_names; - } - - cfunction stripString($string, $tokens) { - $s = $string; - for ($i=0; $i diff --git a/contrib/php3-tool/include/query_manager.inc b/contrib/php3-tool/include/query_manager.inc deleted file mode 100644 index a5a40210e5..0000000000 --- a/contrib/php3-tool/include/query_manager.inc +++ /dev/null @@ -1,141 +0,0 @@ -
    > -
    - - - -
    -\n"; - for ($i=0; $i\n"; - echo "\n\t\n"; - echo $parameter[0]; - echo "\t\t\n\t"; - echo "\n\t\n"; - echo "\t\t\n"; - echo "\t\t\n\t\n"; - echo "\t\t\n"; - echo "\t\t\n\t\n\n"; - } - echo "\n"; - } - - cfunction display_console() { - echo ''; - echo ''; - echo '

    LDAP Console

    '; - $things = array( - 0 => array("Bind (authenticate) to the directory.", "bind", "who"), - 1 => array("Change the search base.", "cb", "where"), - 2 => array("Change information associated with an entry","change","entry"), - 3 => array("Create a new group entry","create","group"), - 4 => array("Edit a complete Directory entry","vedit","entry"), - 5 => array("Find an entry in the directory.","find","entry") - ); - $this->makeForm($things); - echo ''; - $things = array( - 0 => array("Change the group base.","groupbase","where"), - 1 => array("Display detailed help for a function","help","command"), - 2 => array("Subscribe to a group.","join","group"), - 3 => array("List the groups owned by someone","list","who"), - 4 => array("List out the groups in which someone is a member.", "memberships", "who"), - 5 => array("Remove obsolete entries from a group.", "purge", "group") - ); - $this->makeForm($things); - echo '
    '; - } -} -?> diff --git a/contrib/php3-tool/include/search_form.inc b/contrib/php3-tool/include/search_form.inc deleted file mode 100644 index 6dee433ad7..0000000000 --- a/contrib/php3-tool/include/search_form.inc +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - -
    > -
    - - -
    - - - - -
    -

    -

    > - Find - within - whose
    - - - - -
    -

    -
    - diff --git a/contrib/php3-tool/index.php3 b/contrib/php3-tool/index.php3 deleted file mode 100644 index c76777638d..0000000000 --- a/contrib/php3-tool/index.php3 +++ /dev/null @@ -1,111 +0,0 @@ - - - - - PHP3 Thingy - - - -ldap_action = $qm->get_action(); - $lm->base_dn = $qm->get_base_dn(); - $lm->host = $qm->get_host(); - $lm->search_filter = $qm->get_search_filter(); - $prefs->loadPreferences(); - display_advanced_form(); - if (!$lm->connect($lm->host)) { - echo "Couldn't connect to ".$lm->host."
    \n"; - echo "Bye"; - return 0; - } - if (!$lm->ldapTakeAction($lm->ldap_action) || $lm->entriesCount == 0) { - echo "Didn't find anything for ".$lm->ldap_action." on ".$lm->search_filter." from ".$lm->base_dn."
    \n"; - return 0; - } - else { - // echo "I got ".$lm->entriesCount." entries for ".$lm->ldap_action." on ".$lm->search_filter." from ".$lm->base_dn."
    \n"; - $get_entries_s_t = microtime(); - $lm->getEntries(); - $get_entries_e_t = microtime(); - // echo "Disconnecting from ".$lm->host."
    \n"; - $lm->disconnect(); - } - if (($qm->get_mode() == "tree") && ($lm->ldap_action == "list")) { - $display_entries_s_t = microtime(); - ?> - - - -
    -

    formatHTMLBaseDN($lm->base_dn);?>

    -
    -

    - " ", 1 => ","); - $e = $lm->entries[0]; - $s = ldap_dn2ufn($e->dn); - $firstel = $lm->stripString($s, $tokens); - for ($i=0; $ientries); $i++) { - $c = ""; - $e = $lm->entries[$i]; - $s = ldap_dn2ufn($e->dn); - $tin = $lm->stripString($s, $tokens); - ?>

    -

    - - - dn, 1); echo $n[0]; ?>

    -
    -
    - - formatHTMLAttributes(); echo $c; ?> -
    -
    -
    formatHTMLEntries(); - echo $c; - } - $display_entries_e_t = microtime(); -// echo "
    "; -// $t1 = $lm->calculateTime("getEntries()", $get_entries_s_t, $get_entries_e_t); -// $t2 = $lm->calculateTime("displayEntries()", $display_entries_s_t, $display_entries_e_t); -// $main_end_time = microtime(); -// $t3 = $lm->calculateTime("main()", $main_start_time, $main_end_time); -// $t = $t3 - ($t1 + $t2); -// echo "Ether : ".$t." seconds
    \n"; -// echo "
    "; - return 1; -} -$return = main(); -?> - - diff --git a/contrib/php3-tool/javascript/expandable-outlines.js b/contrib/php3-tool/javascript/expandable-outlines.js deleted file mode 100644 index 83c1c937af..0000000000 --- a/contrib/php3-tool/javascript/expandable-outlines.js +++ /dev/null @@ -1,133 +0,0 @@ - var bV=parseInt(navigator.appVersion); - NS4=(document.layers) ? true : false; - IE4=((document.all)&&(bV>=4))?true:false; - ver4 = (NS4 || IE4) ? true : false; - function expandIt(){return} - function expandAll(){return} - isExpanded = false; - - function getIndex(el) { - ind = null; - for (i=0; i"); - if (NS4) { - write(".parent {position:absolute; visibility:hidden}"); - write(".child {position:absolute; visibility:hidden}"); - write(".regular {position:absolute; visibility:hidden}") - } - else { - write(".child {display:none}") - } - write("\n"); -} -onload = initIt; diff --git a/contrib/php3-tool/javascript/resize.js b/contrib/php3-tool/javascript/resize.js deleted file mode 100644 index 01dfc1b80f..0000000000 --- a/contrib/php3-tool/javascript/resize.js +++ /dev/null @@ -1,21 +0,0 @@ -/** - * resize.js 0.3 970811 - * by gary smith - * js component for "reloading page onResize" - */ - -if(!window.saveInnerWidth) { - window.onresize = resize; - window.saveInnerWidth = window.innerWidth; - window.saveInnerHeight = window.innerHeight; -} - -function resize() { - if (saveInnerWidth < window.innerWidth || - saveInnerWidth > window.innerWidth || - saveInnerHeight > window.innerHeight || - saveInnerHeight < window.innerHeight ) - { - window.history.go(0); - } -} diff --git a/contrib/php3-tool/ldap-photo.php3 b/contrib/php3-tool/ldap-photo.php3 deleted file mode 100644 index 54d8c3b8d0..0000000000 --- a/contrib/php3-tool/ldap-photo.php3 +++ /dev/null @@ -1,46 +0,0 @@ -\n"; -} -if (isset($cn)) { -// echo urldecode ($cn)."
    \n"; -} -$link_identifier = ldap_connect("127.0.0.1"); -$result_identifier = ldap_read($link_identifier, $base_dn, 'objectclass=*'); -if(!$result_identifier) { - echo "No results.\n"; -} -else { - $num_entries = ldap_count_entries($link_identifier, $result_identifier); - if ($num_entries == 0) { - echo "No results\n"; - return 1; - } - Header("Content-type: image/jpeg"); - $info = ldap_get_entries($link_identifier, $result_identifier); - ldap_close($link_identifier); - for ($i=0; $i<$info["count"]; $i++) { -// echo $i; - if ($info[$i]["cn"][0] == $cn) { - //echo "".$info[$i]["cn"][0]."
    "; - } - for ($j=0; $j<$info[$i]["count"]; $j++) { - $attribute = $info[$i][$j]; - if (strtolower ($attribute) == "jpegphoto") { - // $file = fopen("/tmp/tmpphoto.jpg", "w"); - // echo $info[$i]["jpegphoto"][0]; - $p = $info[$i]["jpegphoto"][0]; - $photo = base64_decode($p); - echo $photo; - // fwrite($file, $photo); - // flush(); - // fclose($file); - // $file = fopen("/tmp/tmpphoto.jpg", r); - // $contents = fread ($file, filesize("/tmp/tmpphoto.jpg")); - // fclose($file); - // echo $contents; - } - } - } -} -?> diff --git a/contrib/php3-tool/php3tool.conf b/contrib/php3-tool/php3tool.conf deleted file mode 100644 index a71123c4bd..0000000000 --- a/contrib/php3-tool/php3tool.conf +++ /dev/null @@ -1,10 +0,0 @@ -PATH { - attributes: "at.conf"; - photo: "ldap-photo.php3"; -} - -BASE { - basedn: "o=University of Michigan, c=US"; - other: "o=Balorda and Balorda, c=UK"; - other: "o=Simpson Family, c=ES"; -} diff --git a/contrib/php3-tool/style.css b/contrib/php3-tool/style.css deleted file mode 100644 index f27247ca48..0000000000 --- a/contrib/php3-tool/style.css +++ /dev/null @@ -1,24 +0,0 @@ - BODY,B,P,H2,H1 { - font-family: lucida sans unicode; - } - BODY,P { - font-weight: bold; - font-size: 12pt; - } - .form { - font-size: 10pt; - color: #003333; - } - H3 { - font-family: Verdana,Arial,Helvetica; - font-size: 12pt; - font-weight: bold; - } - .head { - font-size: 13pt; - color: #003333; - } - .subsection { - font-size: 12pt; - color: #003333; - } diff --git a/contrib/php3-tool/true.gif b/contrib/php3-tool/true.gif deleted file mode 100644 index 306d3416ed8469a0fa7de722f7953d1b0809396b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91 zcmZ?wbhEHbIxs76 n?7E}PH^b50kY(1{-I>Rxx~80za9qVFvBW1#`efQ$6$Wbn)D<5x diff --git a/contrib/tweb/CHANGES b/contrib/tweb/CHANGES deleted file mode 100644 index afc8fe6dc5..0000000000 --- a/contrib/tweb/CHANGES +++ /dev/null @@ -1,200 +0,0 @@ -/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ -* * -* CHANGES * -* * -* Function:..A short description of the last modifications of TWEB * -* * -* * -* * -* Authors:...Dr. Kurt Spanier & Bernhard Winkler, * -* Zentrum fuer Datenverarbeitung, Bereich Entwicklung * -* neuer Dienste, Universitaet Tuebingen, GERMANY * -* * -* ZZZZZ DDD V V * -* Creation date: Z D D V V * -* September 14 1995 Z D D V V * -* Last modification: Z D D V V * -* January 15 1999 ZZZZ DDD V * -* * -_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/*/ - - - - Changes of the web-x.500-gateway TWEB - ===================================== - -Version: tweb-2.3 1998/10/05 - -Changes to code - - - dynamic re-sort and re-display based on entries found in the DIT: - SORT definitions given by config files can be changed due to - local information within a DIT area; that provides for dynamic - definitions of sorting groups and/or display of groups with new - labels and/or other sorting order; - DISPLAY definitions can be replaced or added dynamically, in order - to display contents of entries in other than the statically - configured way - - -Version: tweb-2.2 1998/3/20 - -Changes in configuration files (please check!) - - - INDEX-URL (new): display hrefs below a certain dit showing special parts - of the entry-dn in any sequence - - - DIT-CONFIG (new): get from a specified location the information how to - switch to other gateways depending on the given dn. - With NOT-BROWSE you can turn of this functionality for browsing. - - - DISP-SEA-RDN (new): with this option you can make search-results to be - displayed only by rdn and not by relative dn to the search-base - - - TON-URLS (new): hereby you can reference a given organization/alunit - by TONS (special numbers for organizational hirarchies) - example: T013307 can mean: - computing centre, dept. development of new services - - - INDIRECT-ATTRS (new): attribute-value can be fetched by special keys from - other locations and additional be transformed by according - functions - - - ALLOW-STRING DENY-STRING GRANT REFUSE : CHANGE IN BEHAVIOUR!! - now regular expressions are used. That means you have shorter - config strings. - - - ALLOW-MSG (new): by this option you can specify a special file located - in the ETCDIRectorie containing a message to be displayed - in case of an allowed access to TWEB - - - TABLES (new): triggered by the presence of a special objectclass - will be displayed a button in the header of the TWEB-page - allowing an eXtended data access such as: - a table with names, telephonenumbers and e-mail addresses - of the current organization - - or the access to the electronic telephonebook-data - of the university of tuebingen generated by TWEB - dynamically - - -Version: tweb-2.0a 1997/1/7 - -Changes in configuration files (please check!) - - - PULL-DOWN-MENUS (new): use BUTTONS and PULL-DOWN-MENUS instead of links - in order to support: help, language-switch, move-upwards - and read-entry functionalities - - - GRANT (new): allow general access to TWEB for specified locations - ( same syntax as ALLOW-STRING ) - - - REFUSE (new): refuse general access to TWEB for specified locations - ( same syntax as DENY-STRING ) - - - INDIRECT-ATTRS (new): Get specified attribute-values from another - location - - - CACHING-TERMS (new): specify caching-behaviour for browsers and www-caches - - - CACHE-EXPIRE-DEFAULT (new): set a default caching-time for browsers - and www-caches - - - SHOW-DEFOC (new): Show Default Objectclass - - - COMREFUSE (new): prevent engine-access - - - robots.txt (new): supply robots.txt-file functionality with the same - behaviour as in www-servers - - -Version: tweb-1.1b 1996/5/7 - -Changes in configuration files (please check!) - - - STRICT-BASEDN (new): Access not below basedn is switched to responsible - gateway ( -> gw-switch) - - - ALLOW-PROXY (new): if NO-PROXY is configured access from - given domain is allowed - - -Version: tweb-1.1a, 1996/4/25 - -Changes in configuration files (please check!) - - - SORT extensions: fourth parameter RELATED DISPLAY-CLASS: - relation to according DISPLAY-entry - (default is 'default') - see DISPLAY changes - - fifth parameter SORT-ATTRIBUTE: - attribute used to sort entries - (default is 'sn') - - - DISPLAY changes: The DISPLAY objectClass entry is replaced by the string - that is used as fifth attribute with SORT - - - NO-PROXY (new): option for access restrictions via PROXY-servers - - - TWEBHOST (new): option to support a constant tweb-hostname - - - NO-MODIFY (new): option to prevent entries with named objectclasses from - modification - - - PGPKEY (new): DISPLAY-TYPE for PGPKeys enabling cut&paste - - - Changes to code - - - conversion from upper to lowercase characters in: - make_oc_to_str(), pick_oc(), init_sort(), init_modify(), - attrs in display() and all internal comparison-strings!!! - - - modification with multiline attributes now possible with NETSCAPE - - - pictures in X.500 are shown (only with NETSCAPE) - - - display is denied in do_read() in case of missing default-Display - - - technical entries (gw...) are not shown if using DYNAMIC-GW - - - the tokens to filter proxy-access with NO_PROXY are extended to: - " via " & "Proxy gateway" - - - the tweb-version and compilation date is now shown with C & K options - - - many bugfixes - - -Version: tweb-1.0b, 1996/2/29 - - Changes in configuration files (please check!) - - - ALLOW/DENY-String moved from tweb.conf.[01] to tweb.rc - - tweb.lang.[01]: string 4 TEXT/HTML --> text/html - - tweb.rc : optional parameter TWEBHOST (see FEATURE-LIST) - - Changes to code - - - better behaviour in modify operations - BEWARE: modification of inherited attributes still NOT possible (!) - - - logging-option (-l) with facultative parameter: LOCAL[0-7] of syslogd - - -lx --> LOCAL3 (default) - - - simplified metasyntax of GW-switches: - - labeledURI= http://:/ (gw[-]) - - - use 'aliasedObjectName' in HREF of aliases - - always print HTML header - - many bugfixes - - -Version: tweb-1.0a, 1996/2/7 - - - base distibution - diff --git a/contrib/tweb/COPYRIGHTS b/contrib/tweb/COPYRIGHTS deleted file mode 100644 index 6b5f68d690..0000000000 --- a/contrib/tweb/COPYRIGHTS +++ /dev/null @@ -1,101 +0,0 @@ -Copyright (c) 1994 - 1999 University of Tuebingen, Germany. -Written by Kurt Spanier and Bernhard Winkler. All rights reserved. - -This software is not subject to any license of the University of -Tuebingen, Germany. - -Permission is granted to anyone to use this software for any purpose -on any computer system, and to alter it and redistribute it, subject -to the following restrictions: - -1. The author is not responsible for the consequences of use of this - software, no matter how awful, even if they arise from flaws in it. - -2. The origin of this software must not be misrepresented, either by - explicit claim or by omission. Since few users ever read sources, - credits should appear in the documentation. - -3. Altered versions must be plainly marked as such, and must not be - misrepresented as being the original software. Since few users - ever read sources, credits should appear in the documentation. - -4. This notice may not be removed or altered. - - - -This work is derived from the Technical University of Chemnitz web500gw -by Frank Richter. Information concerning is available at - http://www.tu-chemnitz.de/~fri/web500gw. - -web500gw is itself derived from the University of Michigan go500gw -by Tim Howes. Information concerning is available at - http://www.umich.edu/~dirsvcs/ldap/ldap.html - -This work also contains materials derived from public sources: - - ch_malloc.c, charray.c, dn.c from the University of Michigan LDAPv3.3, - with some minor bug fixes. - - regular.c from the University of Toronto regexp by Henry Spencer, - with renaming of functions for not colliding with putative - build-in regexp functions in the underlying LDAP libraries, - as well as minor modifications. - The original software can be obtained from - ftp://ftp.cs.toronto.edu/pub/regexp.README, and - ftp://ftp.cs.toronto.edu/pub/regexp.shar.Z - - -Additional Information can be obtained by sending e-mail to: - tweb-support@mail500.uni-tuebingen.de - - ---- - -Portions Copyright (c) 1994-1998 Chemnitz University of Technology. -All rights reserved. - - A LDAP based WWW - X.500 gateway - - written by: Frank Richter, Frank.Richter@hrz.tu-chemnitz.de - Chemnitz University of Technology, Germany, 1994-1998 - - Redistribution and use in source and binary forms are permitted - provided that this notice is preserved and that due credit is given - to the Technical University of Chemnitz. The name of the University - may not be used to endorse or promote products derived from this - software without specific prior written permission. This software - is provided ``as is'' without express or implied warranty. - - ---- - -Portions Copyright (c) 1992-1996 Regents of the University of Michigan. -All rights reserved. - - Redistribution and use in source and binary forms are permitted - provided that this notice is preserved and that due credit is given - to the University of Michigan at Ann Arbor. The name of the University - may not be used to endorse or promote products derived from this - software without specific prior written permission. This software - is provided ``as is'' without express or implied warranty. - - ---- - -Portions Copyright (c) 1986 by University of Toronto. - Written by Henry Spencer. Not derived from licensed software. - - Permission is granted to anyone to use this software for any - purpose on any computer system, and to redistribute it freely, - subject to the following restrictions: - - 1. The author is not responsible for the consequences of use of - this software, no matter how awful, even if they arise - from defects in it. - - 2. The origin of this software must not be misrepresented, either - by explicit claim or by omission. - - 3. Altered versions must be plainly marked as such, and must not - be misrepresented as being the original software. - diff --git a/contrib/tweb/FEATURE-LIST b/contrib/tweb/FEATURE-LIST deleted file mode 100644 index 9e338626fb..0000000000 --- a/contrib/tweb/FEATURE-LIST +++ /dev/null @@ -1,1138 +0,0 @@ -/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ -* * -* FEATURE-LIST * -* * -* Function:..A description of the basic of TWEB, * -* the Tuebinger Web-X.500 gateway * -* * -* * -* Authors:...Dr. Kurt Spanier & Bernhard Winkler, * -* Zentrum fuer Datenverarbeitung, Bereich Entwicklung * -* neuer Dienste, Universitaet Tuebingen, GERMANY * -* * -* ZZZZZ DDD V V * -* Creation date: Z D D V V * -* September 14 1995 Z D D V V * -* Last modification: Z D D V V * -* January 15 1999 ZZZZ DDD V * -* * -_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/*/ - - - -0 TABLE OF CONTENTS - - 1 Introduction - 2 General overview - 2.1 A case of Public Relations - 2.2 Configuration files and TWEB start-up - 2.3 The running gateway - 2.4 check4access: who is allowed to see (what) data - 2.5 Preparing the data - 2.6 Searching for data - 2.7 Data based behaviour: the dynamic gateway - 2.8 Restricting the service - 2.8.1 Restricting the number of entries - 2.8.2 Suppression of certain entries by RDN - 2.8.3 Defining DIT areas for search-only operations - 2.8.4 Controlling the hackers - 3 Configuration of TWEB features in detail - 3.1 Technical configuration options - 3.2 Political configuration options - 3.3 Load balancing configuration options - 3.4 Display configuration options - 4 Support and discussion list - - -1 INTRODUCTION - - TWEB is based on the Web500gw implementation by Frank Richter, - Technische Universitaet Chemnitz-Zwickau, which is based on the - go500gw implementation by Tim Howes, University of Michigan. - - TWEB was compiled and tested on LINUX with cc, HPUX 9.05 with the - HP-ANSI C compiler, as well as SunOS 4.1.2 with the SUN C compiler. - TWEB was also compiled with gcc on all platforms. On SUN Solaris - 2.6.x TWEB was also compiled with gcc 2.7.2. - - The UMICH LDAP client library version 3.0 or 3.3 - ( URL:ftp://terminator.rs.itd.umich.edu/ldap/ldap-3.3.tar.Z ) - must be installed on the machine (library path and include file - path is configured in Makefile). With QUIPU ICR-2.x the ISODE- - provided LDAP libraries should be used. As such, TWEB only supports - LDAP version 2 with the University of Michigan type C API. TWEB is - also adapted for the OpenLDAP LDAP library, release version 1.1.2 - (http://www.openldap.org). - - An upgrade to LDAP version 3 and a C API standadized by the IETF - is planned for a not so far away future, most probably in step - with the OpenLDAP package. - - TWEB, as provided here is a fully functional core gateway, which - is extended at the author's site by some local features. These - extensions are included into the same code base, so that some - "#ifdef TUE_TEL" or "#ifdef AMBIX" pre-processor statements can - be found throughout the code. - - -2 GENERAL OVERVIEW - -2.1 A case of Public Relations - - TWEB is a gateway between the HTML-based World-Wide-Web (WWW - for short) and the X.500-based wordlwide directory, nowadays - mainly accessed through LDAP, the Leightweight Directory Access - Protocoll. As such, TWEB is a mediator between these worlds, - providing run-time access to a lively database and preparing - results in a usable format. - - Why not access the directory directly via my browser-built-in - LDAP functionality, you may ask. One answer is, that TWEB with - it's build-in security features may provide access to more - internal data for permitted users, while denying these data for - outside users. This might be very handy from the database - administration point of view, easing the task of checking - for consistencies between seperate inside and outside databases. - - Secondly, TWEB provides for a flexible display of results, - not just showing the pure data. Corporate identity, even when - using a staff's directory, can be implemented by an organization. - Furtheron, important messages and hints can be added on the fly, - that are relevant to the directory user. This is also possible - via HTTP links, provided either through the directory data (e.g., - links to personal home pages) or embeded into HTML text loaded - during result page preparation. Thus, the integration of WWW and - the directory can be two-ways, not just one-way. - - Thirdly, TWEB can, with some extensions not yet provided in - the current distribution, easily be configured to access the - directory more than once, in order to return results for a - single request. For example, this can be used to build a page - with the phoenbook entries of a whole department, institute, or - faculty, spanning many hierarchies is the underlying directory - database, as implemented at the University of Tuebingen. - - When running TWEB with some of the configuration options, one - might easily find more points that are in favor of a gateway - solution, rather than purely accessing the data of a single - directory entry at a time. - - BUT AFTER THIS SHORT EXCURSION INTO THE WORLD OF PR, LET'S - HAVE A LOOK AT WHAT TWEB PROVIDES AND WHAT FEATURES CAN - BE USED. - - -2.2 Configuration files and TWEB start-up - - Allmost anything what TWEB provides is determined by a set of - configuration files during start-up, or at run-time. There is - the main ressource file (tweb.rc) that provides for basic, - language-independant features, like host and port of the connected - directory server. Language-specific configuration parameters - are located in the config files (tweb.conf.x), with x (0-9) - standing for any of a set of supported languages. Language - strings, that are used to build an HTML result page are taken - from the language files (tweb.lang.x), again with x indicating - the language in question. Those files are located in the - TWEB_conFiles subdirectory; the TWEB binary, probably via a - symbolic link, should also reside within that directory. - - Header and footer files, and certain message files are loaded - during run-time, so that the content can be updated on-the-fly, - without restarting the gateway. Those files can be found in the - LDAP_etc subdirectory, but can also be located elsewhere, after - setting the ETCDIR parameter in the tweb.rc file. - - Certain configuration parameters can be overridden by command - line parameters during start-up. Type 'tweb -h' to get a short - description of each command line parameter, or have a look at - the description below. The important parameters are '-l' for - selection of the LOCAL user of the syslog facility, and '-L' - for selection of languages. - - When starting, TWEB first of all determines which languages should - be supported. A sub-process is created for each language by the - fork() system call, and the starting process is terminated. (In case - of only one language, TWEB will not fork, but instead use the first - process for the gateway service.) Each sub-process is responsible for - one of the languages, and presents hyperlinks to the other languages' - HTTP addresses on HTML pages, so that the user can switch from one - language to the other. When language hints are provided within the - directory data (see below) even attribute values may be presented - language-specific. (This is not to be mixed up with the LDAPv3 - standard, which provides for language specification via attribute - options.) - - The starting TWEB initializes itself by reading the tweb.rc, the - tweb.conf.x, and the tweb.lang.x files, and stores the configuration - in a global data structure that can be used by all parts of the - program. Command line options are considered last, and can override - previously defined parameters. In the tweb.rc and tweb.conf.x files - parameters are generally additive, meaning that configuration can be - spread across those files (e.g., GW-SWITCH can be set to language- - independant gateways in tweb.rc and extended by language-specific - gateways in the tweb.conf.x files.) - - Also, message, header and footer files are checked for presence, and - a warning is printed to standard output, if they are missing. After - some more sanity checks of the configuration, TWEB connects to the - port it was configured for and starts listening for HTTP requests. - (In the tweb.rc config file only a base port is given; the gateway - process serving for language 0 will listen at this port; the gateway - for language 1 at port+1, for language 2 at port+2, and so on, upto - the language with number 9.) - - -2.3 The running gateway - - When a request is started by an external HTTP client, TWEB checks - for access rights of that client (see below), and decides, whether - the request can be handled by the process itself (mainly simple - requests, like, e.g., sending the help file), or whether another - sub-process should be started. In both cases the TWEB master process - returns to listening for requests, so that new request can be - handled while old ones are still in progress. - - A request is encoded into the URL, the Universial Ressource Locater, - the HTTP client sends to the gateway process. Such an URL is build - of different parts, as follows: - - http://host:port/request - - First of all, 'http://' defines the HTTP protocoll itself. As - TWEB is the mediator between WWW and the directory, it is an HTTP - server towards the browser, accepting normal HTTP request, but is an - LDAP client towards the directory server, sending LDAP requests. - - Host and port are the same as in the tweb.rc configuration file, - and tell the browser, where to direct the request. - - The request for TWEB is given in the last part of the URL, in a more - or less complicated format. The most simple request is the EMPTY - request ( http://host:port/ ), which will cause TWEB to return a - listing of directory entries just below it's BASEDN. (Besides beeing - the "home" for TWEB when sending an URL without further specification, - the BASEDN can also be configured as beeing the root entry of an DIT - area, and TWEB will only serve requests within, but not outside that - area; STRICT-BASEDN.) - - All other requests are given by a starting letter (beware: that - letter is CASE-SENSITIVE) and possibly a further specification. - That letter directs TWEB to one of several actions, like returning - a directory listing, reading a specified entry, or sending a - formular for modification of an entry. If a directory look-up - is necessary, TWEB will perform that via LDAP, prepare the results - as an HTML page, and return it to the requesting client. After - that the process will die, unless it was the master process, that - returns to listening for further requests. Thus, TWEB's action is - as state-less as the HTTP protocoll itself, but some information - for subsequent client requests can be embedded into the result, - like for example a gateway-switch (see below) or an entries' old - data in a modification formular. - - Like in HTTP, the TWEB request URL should contain no space characters, - and certain special chars should be HTML escaped. TWEB will allways - prepare such URLs in its own results, e.g., when returning a list of - entries, with each one beeing a clickable hyperlink for the next data - retrieval. Thus, during interaction with TWEB, the user has not to - consider such special characters, for they are converted automatically. - Only the very first link to TWEB, be it embedded into a web page, or - entered directly into the browser's 'goto URL' field, or whatever it is - called, should be checked for those characters. - - -2.4 check4access: who is allowed to see (what) data - - A requesting client not only gives the URL to TWEB, but also it's - IP or Internet address. This is an address needed by computers to - find each other in the world-wide network. Normally, computers - have also so-called Internet Names, that are more human-readable. - To match IP addresses and internet names, the Domain Name Service - (DNS) is run on the Internet. When TWEB receives an IP adress, - it will try to look up the corresponding internet name of the - requesting client and use that information to decide on access - rights of the client. If a host's name cannot be found in the - DNS, this is also used as a bit of information. The configuration - parameters GRANT, REFUSE, ALLOW-STRING, and DENY-STRING can be - set to specify access rights based on internet names in a very - flexible way. Furtheron, the HTTP information of proxy access - is considered, if the parameters NO-PROXY and ALLOW-PROXY are set. - - When TWEB has decided on access rights, it will continue depending - on these rights. When service is totally refused to a requesting - host, or a complete IP domain, a corresponding message is send to - the client and the TWEB process terminates. Otherwise, TWEB selects - one of two configured WEBDNs (the directory names of corresponding - entries in the local directory) and WEBPWs (corresponding passwords) - and sends the LDAP requests with these DNs to the directory server. - The server should of course be configured in a way, that the one DN - has access to internal data, whereas the other has not. Thus, data - retrieval can be controlled by the server, not only by TWEB itself. - - -2.5 Preparing the data - - Almost any result page is build by combining different areas, as - appropriate for the result returned. A header and footer is located - at the top and the bottom of the HTML page, respectively. (In fact, - the footer is followed by a tiny TWEB version info, so the footer - is only the second-last element.) Below the header some internal - message can follow (ALLOW-MESSAGE), which will not be shown to an - outside requestor, and in front of the footer there can be a Legal - Message for the outsider (LEGAL; actually, if the ON-TOP parameter - is specified for the LEGAL option, this Legal Message will also be - printed at the beginning of the result page). Below the header/ - internal message, an area for navigation, reading the current base - position and a search box may follow, that can be used for entering - further requests. Below that, the results of the current request - are shown. - - If there are more than one result entries to the current request (e.g., - due to a listing of entries below the current DIT position, or multiple - matches for a search request), a hyperlink for each entry is displayed, - to give the user the possibility to follow the link and obtain the - results for the next request. The HREF within the hyperlink is a - complete URL, with host:port, and the directory entries' distinguished - name (DN) for the next request to TWEB. - - Results can be grouped to different lists and sorted within each - group, according to the settings of the SORT configuration parameter, - and the entries' objectclasses. The objectclasses given in the SORT - configuration parameter are scanned for in each result entry, - sequentially, and an entry is placed into the appropriate group, as - soon as an objectclass is found. (Entries having none of the SORT - objectclasses will only be shown, if the SHOW-DEFOC configuration - parameter as well as a DEFAULT DISPLAY-TYPE is given.) After scanning - for groups, each group of entries is sorted according to the contents - of the sort attribute listed within the group's SORT clause, or by the - attribute "sn" (surname), if no explicite sort attribute is given, or - according to the entries' relative distinguished name, if there is no - sn attribute within the entries. The sorted groups are displayed in - the order, that is given numerically in the SORT clauses. Thus, the - order while scanning for objectclasses (i.e., preparing the groups) - is distinct from the order during display. Each group is prepanded - by the label given in the SORT clause, with a label consisting only - of space characters meaning no label. (Labels containing space - characters must be surrounded by double quote characters, i.e., '"'.) - - If there is only one result to a request, TWEB will perform a read - request for the X.500 entry and display the attributes of the entry. - Since access rights are also checked at the server (see above), the - attribute list for a permitted user can differ from the list of an - external user. In each case, the attributes are sorted according to - the DISPLAY-OBJECT given in the SORT configuration parameter, after - classification of the entry to one of the SORT groups in much the - same way, as described above. The DISPLAY-OBJECT selects the attributes - to be displayed and determines the order of, as well as labels for - the attributes. (If the DISPLAY-OBJECT parameter is not given to the - SORT configuration option, DISPLAY-OBJECT DEFAULT will be used; if - that, however, is not given by the configuration files, the entry - will NOT be displayed!) The method for displaying is also given. Thus, - attributes can be displayed as simple strings, prepared as HTTP URLs, - or as mailto hyperlinks. A complete list of display methods is given - below with the description of the FIRST-PAGE configuration parameter. - Within the DISPLAY-OBJECT definition, FIRST-PAGE describes attributes - to be shown on a first HTML page, and SECOND-PAGE lists attributes - for a second HTML page, if given. To obtain the second page, a hyper- - link that directs TWEB to read the same entry again with additional - attributes, is placed at the end of the first page's attribute list. - - -2.6 Searching for data - - As described above, one element of a result page may be a search box - that can be used to enter appropriate search strings. The input is - taken by TWEB and used according to the definitions of the - ldapfilter.conf file (a basic version is located in the LDAP_etc - sub directory.) In that file, rather complicated search algorithms - can be defined, but the most simple ones will be to look for cn or - sn attributes. By default, the search scope is restricted to one - level below the current DIT position, unless the base entry (the - current position) containes objectclasses 'organization' or - 'organizationalUnit'. In this case, the search will cover the whole - DIT area rooted at the current position. (Subtree search.) This - scope also determines which search rules are taken from the - ldapfilter.conf file. (Look for "web500gw onelevel" and "web500gw - subtree".) - - One word for a warning: since TWEB is currently based on LDAPv2 and - servers that are NOT aware of special characters, like german umlaute, - such characters should NOT be entered to the search box. Depending - on the server's implementation and configuration, these characters - might crash the server, since they are not one of the expected ASCII - characters. TWEB, on the other hand, can hardly figure out the - character entered because of differrent code tables in use with - the browsers and the platforms housing TWEB itself. If someone has - a simple sollution to the latter problem, the authers would welcome - a hint, so they could implement a safe character conversion method. - - -2.7 Data based behaviour: the dynamic gateway - - In the 'preparing data' section, the construction of hyperlinks for - further requests was described for situations, when more than one - entry matches the previous request. For these hyperlinks, the under- - lying URL will normally contain the TWEB's own host and port address, - so that requests will be directed towards the same gateway. This, - however, can be modified by a feature called "gateway-switching", - directing further requests to other gateways. - - Gateway-switching exists in two flavors: static (via the GW-SWITCH - configuration option) and dynamic (selected by the configuration - option DYNAMIC-GW) due to data contents. In both cases, a new host - and corresponding port address is inserted into the URL of a hyperlink. - - Static gateway-switching is performed, if a DN given in the configu- - ration file, or an entry below that DN, is referred to in the hyperlink. - In that case, the beginning of the URL is taken from the configuration - file and the DN of the referred-to X.500 entry is appended. Like other - configuration options, GW-SWITCH in the tweb.rc file will refer to one - such external gateway for all TWEB languages, whereas GW-SWITCH in the - tweb.conf.x files will be language-specific. - - When the configuration option DYNAMIC-GW is given, TWEB will scan each - entry to be referred to, for the presence of a so-called gateway- - switch-URL. For the time beeing, this is encoded in the attribute - "labeledURI", with the value having a special syntax. Normal syntax - is an URL of the from "http://host/ label". With the gateway-switching - option, this format is extended to "http://host:port/ label (gw)", - for a language-independant switch, and "http://host:port/ label (gw-xx)", - for a languager-specific switch. The "xx" has to be replaced by the - international 2-letter language tag, as defined in ISO 639, "Code for - the representation of names of languages" (see also RFC-1766). Thus, - "gw-de" means "german language", "gw-en" means "english", "gw-fr" - means "frensh". When displaying the contents of a labeledURI attribute, - TWEB will suppress values that follow the above syntax. For performance - reasons, searching of entries, as well as listing entries below the - current position (i.e., browsing through the directory), will allways - include look-up of the labeledURI and other attributes. - - If both static and dynamic gateway-switching are active, the dynamic - switch will be considerred first; if no gateway-switch URL, first testing - for a language-specific one, than testing for an independant one, is - found within an entry, static switching is tested, again the specific - case prior to the un-specific. - - The most prominent usage of the gateway-switching feature is to direct - requests for other organizations' data within a country (or for sub- - organizations within one organization) to specific gateways, thus - giving the option to implement a Corporate Identity for each organi- - zation via organization-specific header and footer files. Beside that, - of course, specific access policies can be implemented by each orga- - nization, and network traffic is reduced by accessing an organization's - data directly with a HTTP browser, not via an intermittant gateway - and X.500 server of another organization. This latter point may also - mean a much reduced response time, when unnecessary data transfers are - ommited. - - -2.8 Restricting the service - - A number of configuration options can be used to restrict the display - of certain information, or to deny service totally for certain users. - These options are described in the following sub-chapters. - -2.8.1 Restricting the number of entries - - Normally, an X.500 server will have an option "sizelimit" set to - some small or medium value, e.g., 100 or 500. This sizelimit will - prevent the number of entries returned for any one request, to - exceed that number. This is mainly set by the server's administrator - to reduce system and network load. - - When displaying all entries returned from the server, TWEB might - produce a very large HTML file. That file may take some time for - transfer, and may be very un-handy, because of the long list of - entries. - - To prevent the possibiloty of such large files, the TWEB administrator - can reduce the number of entries displayed even further, by use of - the MAXCOUNT configuration option. This will reduce the number of - ALL entries returned from the server. - - If this restriction should only apply to person's entries, the - configuration option MAX-PERSON can be used. This option will - apply to each sub list of person's entries seperately. Thus, the - total number of persons may exceed the MAX-PERSON limit, if more - sub lists containing person's entries are given. - - Each restriction of the number of entries to be displayed, will - lead to a random list of entries, cutting the results as soon as - the maximum count is reached. However, rhis is also true for the - sizelimit option at the server itself. - -2.8.2 Suppression of certain entries by RDN - - The server's access control rules will normally define, which entries - can be obtained by the TWEB gateway. In some situations, the TWEB - administrator might want to suppress even more entries, e.g., DSA - entries or other mere technical ones. (This can also mean, that - complete DIT areas could be hided from the user.) - - To invoke that, the configuration option NO-SHOW-RDN can be defined - to reflect a space-seperated collection of RDNs, or parts of RDNs, - which will not be shown to the user. This, of course, is a very - crude method, but normally will give the results, the TWEB admin - may be interested in. - -2.8.3 Defining DIT areas for search-only operations - - As described allready in the "Restricting the number of entries" - section, large lists of entries may be cumbersome to read, if at - all they are returned completely by the server. To exclude the - possibility of such partial, or ultra-long lists, TWEB can be - configured to display the search box only at certain DIT positions. - This is done via the SEARCH-ONLY configuration option, which defines - the DIT area(s) for this restriction, as well as certain message - files, which should explain the local restriction to the user, and - tell him, how to find the information, he is looking for. The - SEARCH-ONLY configuration option will only take effect, when - browsing the directory, but not prevent a normal subtree search. - - This configuration option, of course, can also be used to implement - certain access policies. The option will be active for both the - internal and the external user. - -2.8.4 Controlling the hackers - - From time to time, users will direct tools to the world-wide-web, - that will screen through all, what is supplied in the system. This - tools are known as robots, or crawles, and normally the collect data - to build indices for faster information retrieval. - - Sometimes, however, these tools can be very ugly, especially, when - they try to collect data as fast as possible. This might cause - severe performance decrease, preventing other users to get data - at all. In order to have some mechanisms against this type of - data harvest, TWEB can be configured with the COMREFUSE option - activated, which will control the number of accesses to the gate- - way by a certain number of IP ranges within a selected time-slice. - - Those IP ranges are constructed by reducing the requesting host's - 32-bit Internet address to a 13-bit number, thus giving 8192 - different IP ranges. Each IP range is controlled seperately during - a pre-set time-slice, and each IP range can be excluded from - further service (returning an appropriate error message), when - a pre-set number of accesses is reached within that time-slice. - All hosts of that IP range are suspended from TWEB's service for - a number of time-slices, and resumed for service afterwards. - - -3 Configuration of TWEB features in detail - - Runtime configuration is provided by the files tweb.rc (general - configuration) and tweb.conf.x (language-specific configuration). - For each supported language there must be a tweb.conf.x and - tweb.lang.x file, with 0 <= x <= 9. - - Remark: most of the features are best configured in the files as given - below, but there may be situations, where transfer, or even - splitting to other configuration files could be used, e.g., - static gateway-switching may be configured in tweb.rc listing - organizations which support only one gateway, whereas organi- - zations supporting different language-specific gateways may be - configured in the appropriate tweb.conf.x files; the resulting - gw-switch list will contain all organizations, regardless of the - originating files. - - In order to keep off WWW robots from blocking the gateway put - a file with name robots.txt into the directory, together with - the tweb binary, containing the following: - - # go away - User-agent: * - Disallow: / - - This is the same behaviour as if there were a www-server with a - corresponding public directory containing the file robots.txt. - - - The following sections will list TWEB's configuration options. - (See also the example configuration files.) - - -3.1 Technical configuration options - - This section lists options, which define the technical parameters of - TWEB's operation. Most of them are located in the tweb.rc configuration - file, but some could also go into the tweb.conf.x files. - - LDAPD -- The host running the LDAP daemon - ( usually located in tweb.rc ) - - example: LDAPD x500.zdv.uni-tuebingen.de - - LDAPPORT -- The port the LDAP daemon is listening on - ( usually located in tweb.rc ) - - example: LDAPPORT 389 - - WEBPORT -- The base port the gateway is attached to - (the language-specific offset x is added - to this number for every running GW) - ( usually located in tweb.rc ) - - example: WEBPORT 7000 - - TIMEOUT -- Timeout in seconds for any one LDAP - operation - ( usually located in tweb.rc ) - - example: TIMEOUT 240 - - ETCDIR -- The directory containing support files - (help files, header/footer files ...) - ( usually located in tweb.rc ) - - example: ETCDIR ./LDAP_etc/ - - FILTERFILE -- The LDAP filterfile - ( usually located in tweb.rc ) - - example: FILTERFILE ldapfilter.conf - - BASEDN -- The default starting point of DIB access, when - no other directory position is given - At this position, optional header and footer - information (HTML code in file) can be displayed - ( usually located in tweb.conf.x ) - - example: BASEDN "o=Universitaet Tuebingen, c=DE" - tweb-base.head.0 tweb-base.foot.0 - - HELPFILE -- Name and path of the help-file - ( usually located in tweb.conf.x ) - - example: HELPFILE tweb.help.0 - - FRIENDLYFILE -- Name and path of the friendly-file - ( usually located in tweb.conf.x ) - - example: FRIENDLYFILE ldapfriendly.0 - - HEADER/FOOTER -- General header/footer information displayed on - every HTML-page, except when other headers/footers - apply - ( usually located in tweb.conf.x ) - - example: HEADER tweb.header.0 - FOOTER tweb.footer.0 - - ALLOW-MSG -- Option to specify a special file located in the - ETCDIRectory containing a message to be displayed - in case of an allowed access to TWEB - (see next section) - ( usually located in tweb.conf ) - - example: ALLOW-MSG allow.msg.0 - - -3.2 Political configuration options - - This section lists options to implement a certain access policy with the - TWEB web-X.500 gateway, or to alter the behaviour of the gateway when - displaying data from certain DIT areas. - - WEBDN -- The DN of a technical webgw X.500 entry, - which is used for a permitted (internal) user - (for logging AND access control) - ( usually located in tweb.rc ) - - example: WEBDN "cn=TWEB-quickie-intern, - ou=SERVICES, o=Universitaet - Tuebingen, c=DE" - - WEBPW -- The Password in the WEBDN entry - ( usually located in tweb.rc ) - - example: WEBPW password4quickie-intern - - WEBDN2* -- The DN of a technical webgw X.500 entry, - which is used for a not-permitted (external) user - (for logging AND access control) - ( usually located in tweb.rc ) - - example: WEBDN2 cn=TWEB-quickie-extern, - ou=SERVICES, o=Universitaet - Tuebingen, c=DE" - - WEBPW2* -- The Password in the WEBDN2 entry - ( usually located in tweb.rc ) - - example: WEBPW2 password4quickie-extern - - * setting WEBDN2 as well as WEBPW2 to real values is useful, - if the X.500 service in the background is also used by other - directory user agents; in this case, a clean distinction, - even on the ACL level, can be made between TWEB and those - other DUAs. - To fully exploit the feature of two different WEBDNs the - DSA must support an ACL policy, which can reduce access - rights for a specified DN, while at the same time defining - broader access rights for a group of other DN, which may - also include the specific DN; such a behaviour is NOT - implemented in Isode's QUIPU 2.x DSA; a patch introducing - such a policy was developped at the University of Tuebingen - for QUIPU 2.2v4, and can be optained seperately. - Slapd stand-alone LDAP servers implement a different ACL - mechanism and can be configured more easily by use of the - first matching access-rule in the slapd.conf configuration file - - GRANT** -- A string describing IP domains allowed to access - the gateway - ( usually located in tweb.rc ) - - example: GRANT (www9|mog|x500server|meal) - \.zdv\.uni-tuebingen\.de$| - (abcde01|xyz)\.modem\.org\.de$ - - REFUSE** -- A string describing IP domains refused to access - the gateway - ( usually located in tweb.rc ) - - example: REFUSE hackhost\.(org1\.)?uni-xyz\.de$ - - ALLOW-STRING** -- A string describing IP domains allowed to - access the DIB authorized by WEBDN (see above) - example: "\.de$|\.us$|\.edu$" - ==> host of domains de, us and edu will - have authorized access to the DSA, others NOT - ( usually located in tweb.rc ) - - example: ALLOW-STRING uni-tuebingen\.de$ - - DENY-STRING** -- The opposite of ALLOW-STRING. Here, access for - subsets of the ALLOW-STRING may be reduced. - ( usually located in tweb.rc ) - - example: DENY-STRING not\.secure\.host - \.uni-tuebingen\.de$ - - ** GRANT/REFUSE are considered first to decide, whether the - requesting host will be served at all; only hosts granted - the service will be checked against ALLOW-STRING/DENY-STRING - to classify as internal or external user (hence, giving - WEBDN or WEBDN2 as the DN during X.500 look-up); - both, GRANT and ALLOW-STRING are used as positive-lists, - whereas REFUSE and DENY-STRING are used as negative-lists; - if the positive-lists are defined, and the requesting host's - IP domain is NOT covered by the list's description, the - host is considered as not-permitted; only when the host - is accepted by the positive-list, the negative-list will - be considered to decide on a more specific exclusion of - the host's IP domain; - if the positive-lists are not defined, each host will be - accepted, as if contained within the list; if the negative- - lists are not defined, each host will be accepted, as if - NOT contained within the list; - hosts NOT found in the Domain Name Service (DNS) will be - granted access, but will NEVER have authorized access - via WEBDN - - TWEBHOST -- Supplies a constant hostname in the returned URL - of HTTP links independant from the local one - ( usually located in tweb.rc ) - - example: TWEBHOST x500.zdv.uni-tuebingen.de - - NO-PROXY -- Access restrictions for WWW-PROXY-Servers - ( usually located in tweb.rc ) - - example: NO-PROXY - - ALLOW-PROXY -- if NO-PROXY is configured - access from a given set of proxy-hosts - ('host1:host2') is allowed - ( usually located in tweb.rc ) - - example: ALLOW-PROXY www1.zdv.uni-tuebingen.de: - www2.zdv.uni-tuebingen.de - - COMREFUSE -- If configured, implements an interrupt-driven - time-slicing of the gateway. During these - slices only a maximum number of accesses - from a given group of IP-addresses is permitted; - additional accesses will lead to immediate - suspension of the IP connection to the WWW - client; this suspension will last for a con- - figured number of time-slices, and service - for the IP domain in question will resume - afterwards. Additionally, access statistics will - be dumped to a file at given intervals; - the duration of a time-slice will be computed - randomly between a minimum and maximum; - all times are given in seconds - ( usually located in tweb.rc ) - - example: COMREFUSE 100 200 40 12 43200 - ./stats/hack-stats - - i.e.: minimum timeslice -> 100 secs - maximum timeslice -> 200 secs - number of accesses to tolerate in slice -> 40 - how long will be blocked -> 12 slices - period to write a stat-file -> 43200 secs - name of stat-file -> ./stats/hack-stats - (i.e., file relative to TWEB binary) - - STRICT-BASEDN -- Access to entries not below basedn is relayed - to another gateway ( -> GW-SWITCH must be set) - ( usually located in tweb.rc ) - - example: STRICT-BASEDN - - MAXCOUNT -- The maximum number of displayed entries - ( usually located in tweb.rc ) - - example: MAXCOUNT 200 - - MAX-PERSON -- Maximum number of persons displayed in any of - the configured sub-lists ( -> SORT option), - if access is not allowed; - if STRICT is given, this number of persons is - shown at maximum, even in case of an - allowed access; - if NO-BROWSE is given, only non-person entries - will be displayed while browsing, whereas persons - have to be searched for - ( usually located in tweb.rc ) - - example: MAX-PERSON 5 STRICT NO-BROWSE - - NO-SHOW-RDN -- Matching rules for RDNs that will NOT be displayed - (e.g., technical entries in the DIT or internal - OUs not to be displayed by the GW) - words surrounded by spaces will be matched as - substrings; allignment to the start or end of - the tested RDN can be enforced by surrounding - the words with "|", on either side - ( usually located in tweb.rc ) - - example: NO-SHOW-RDN "|cn=Dummy notToBeShownRDN" - - SEARCH-ONLY -- Defines the root of a DIT area, where browsing - is restricted to non-person entries; person - entries can only be found by explicite searching - (with appropriate header and footer information) - ( usually located in tweb.conf ) - - example: SEARCH-ONLY "ou=students, o=my-university, - c=my" search-only.head.0 - search-only.foot.0 - - LEGAL -- Flag for displaying of a comment concerning - Peoples Rights - (the text is configured in the tweb.lang.x files, - string numbered 65 of the gateway) - (Comment: certainly, it would be better to have - that text in an external file) - Sub-option ON-TOP directs TWEB to display the - message immediately below the HEADER information, - not above the FOOTER message - ( usually located in tweb.rc ) - - example: LEGAL ON-TOP - - CACHE-EXPIRE-DEFAULT -- The default value for the expire time - in seconds. After this time the page is no - longer cached by a browser or WWW cache. - ( usually located in tweb.rc ) - - example: CACHE-EXPIRE-DEFAULT 900 - - CACHING-TERMS -- A more detailed description of caching directives. - Format: - READ|MENU|L2ND RDN|OC - ... - - To specify for a given access-type: - READ|MENU|L2ND (L2ND = second page) the expire-time - in seconds for given RDN|OC values - ( usually located in tweb.rc ) - - BEWARE: THIS OPTION IS NOT USED AT THE AUTHOR'S - SITE, ROUTINELY. THUS, CORRECT BEHAVIOUR - CANNOT BE GARANTEED ! - - example: CACHING-TERMS 3600 READ RDN Fax - 7200 MENU OC person - 10800 menu RDN Mueller - - MODIFY/MODATTR -- Selects for specified object-class (MODIFY) the - attributes permitted for modification, their - labels and the maximum number of values to be - handled by TWEB (MODATTR) - ( usually located in tweb.conf ) - - BEWARE: THIS OPTION IS NOT USED AT THE AUTHOR'S - SITE, ROUTINELY. THUS, CORRECT BEHAVIOUR - CANNOT BE GARANTEED ! - - example: MODIFY person - MODATTR personalTitle title 1 - telephoneNumber phone 2 - ... - - NO-MODIFY -- Entries that contain one of the named - ObjectClasses will be displayed without - the possibility for modification. - ( usually located in tweb.rc ) - - example: NO-MODIFY |toc_primas| - - -3.3 Load balancing configuration options - - This section lists configuration options related to gateway-switching. - - GW-SWITCH -- Defines DIT areas, which will direct TWEB to - introduce other gateway addresses for the - so-called gateway-switching - (STATIC gateway-switching; see section 2.7) - ( usually located in tweb.conf ) - - REMARK: A set of slides explaining gateway-switching, - presented at the January-1999 DANTE meeting - in Utrecht, NL, can be found at the TWEB FTP - site at - ftp://ftp-x500.uni-tuebingen.de/tweb - - example: GW-SWITCH "ROOT" HTTP://x500-relay. - uni-tuebingen.de:8901/M - "c=DE" HTTP://x500-relay. - uni-tuebingen.de:8911/ - - DYNAMIC-GW -- If given, tells TWEB to use dynamic gateway- - switching; if not given, only static switching - will be used, if configured; - a labeledURI attribute in an X.500 entry con- - taining (gw), (gw-de), or (gw-en) in its label - part is used to link this entry to another gateway - ( usually located in tweb.rc ) - - example: DYNAMIC-GW - -3.4 Display configuration options - - This section lists options related to the displaying of results on an - HTML page. The options direct display of entries, attributes, as well - as styles for displaying. - - SORT -- Classification of a list of entries into sub-lists - according to their object classes; generating of - sub-lists will be according to the order the - OCs are given in the SORT option; displaying the - sub-lists will be according to the numbers given - as third parameter; sub-lists without an intro- - ducing label (second parameter) should have a - label of " "; the fourth parameter is the DISPLAY- - TYPE for a given object (see below) and the fifth - parameter is the attribute used for sorting; - parameters four and five are optional; - if not given reasonable defaults will be used; - if none of the entries objectclasses is given - in the SORT option, TWEB will randomly select - one of the entry's OCs as a new entry to the - SORT list, using DISPLAY-TYPE "default"; if that - type is not defined, the entry will NOT be - displayed at all - (see also section 2.5) - ( usually located in tweb.conf.x ) - - example: SORT person Staff 4 person tat_sort - organization Organizations 3 orgs - organizationalUnit "O Units" 2 ous - ... - - DISPLAY-OBJECT -- For specified DISPLAY-TYPES define the order, - labels and type of HTML-code produced for given - attributes (see FIRST-PAGE, SECOND-PAGE below); - a DISPLAY-TYPE "default" will match all types - NOT specifically listed; when the default type - is not giving, some X.500 entries might NOT be - displayed (see also SHOW-DEFOC below) - ( usually located in tweb.conf.x ) - - example: DISPLAY-OBJECT person - FIRST-PAGE .... - - FIRST-PAGE -- Attributes to be displayed for a specified - DISPLAY-TYPE - Format: