From c2b15814599e0796c0b17d69a33cc6c42a99e6fb Mon Sep 17 00:00:00 2001 From: ms Date: Mon, 6 Mar 2006 14:30:36 +0000 Subject: [PATCH] Webinterface-Bilder neu gemacht | IPAC-NG-Patches installiert | Berkeley-DB installiert git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@77 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8 --- doc/packages-list.txt | 2 +- doc/updated-sources.txt | 124 - html/cgi-bin/connections.cgi | 352 +- html/html/images/background.gif | Bin 0 -> 1022 bytes html/html/images/boxbottom1.png | Bin 355 -> 340 bytes html/html/images/boxbottom2.png | Bin 134 -> 122 bytes html/html/images/boxbottom3.png | Bin 294 -> 346 bytes html/html/images/boxleft.png | Bin 116 -> 112 bytes html/html/images/boxright.png | Bin 113 -> 118 bytes html/html/images/boxtop1.png | Bin 1307 -> 331 bytes html/html/images/boxtop2.png | Bin 387 -> 119 bytes html/html/images/boxtop3.png | Bin 2362 -> 374 bytes html/html/images/forward.gif | Bin 107 -> 609 bytes html/html/images/header.png | Bin 19115 -> 2598 bytes html/html/images/header_icons.gif | Bin 0 -> 1974 bytes html/html/images/heading-back.gif | Bin 0 -> 4342 bytes html/html/images/help.gif | Bin 0 -> 1365 bytes html/html/images/logo_ipfire.gif | Bin 0 -> 3060 bytes html/html/images/logo_ipfire2.gif | Bin 0 -> 3159 bytes html/html/images/logout.gif | Bin 0 -> 1092 bytes html/html/images/menu_item.gif | Bin 0 -> 196 bytes html/html/images/menu_left_bottom.gif | Bin 0 -> 168 bytes html/html/images/menu_left_selected.gif | Bin 0 -> 667 bytes html/html/images/menu_left_top.gif | Bin 0 -> 201 bytes html/html/images/menu_top_left.gif | Bin 0 -> 1096 bytes html/html/images/menu_top_left_selected.gif | Bin 0 -> 866 bytes html/html/images/menu_top_right.gif | Bin 0 -> 356 bytes html/html/images/menu_top_right_selected.gif | Bin 0 -> 352 bytes html/html/images/sflogo.png | Bin 0 -> 2108 bytes html/html/images/stock_down-16.png | Bin 0 -> 401 bytes html/html/images/stock_ok.png | Bin 0 -> 672 bytes html/html/images/stock_stop.png | Bin 0 -> 1379 bytes html/html/images/stock_up-16.png | Bin 0 -> 364 bytes html/html/images/table-header.gif | Bin 0 -> 3857 bytes lfs/apache | 2 +- lfs/berkeley-DB | 2 +- lfs/configroot | 2 +- lfs/ipac-ng | 10 +- make.sh | 2 +- src/ROOTFILES.i386 | 5319 +++++++++++++++++ src/patches/ipac-ng-1.31-fetchcounter.patch | 11 + src/patches/ipac-ng-1.31-iptables-1.3.1.patch | 4826 +++++++++++++++ 42 files changed, 10432 insertions(+), 220 deletions(-) delete mode 100644 doc/updated-sources.txt create mode 100644 html/html/images/background.gif create mode 100644 html/html/images/header_icons.gif create mode 100644 html/html/images/heading-back.gif create mode 100644 html/html/images/help.gif create mode 100644 html/html/images/logo_ipfire.gif create mode 100644 html/html/images/logo_ipfire2.gif create mode 100644 html/html/images/logout.gif create mode 100644 html/html/images/menu_item.gif create mode 100644 html/html/images/menu_left_bottom.gif create mode 100644 html/html/images/menu_left_selected.gif create mode 100644 html/html/images/menu_left_top.gif create mode 100644 html/html/images/menu_top_left.gif create mode 100644 html/html/images/menu_top_left_selected.gif create mode 100644 html/html/images/menu_top_right.gif create mode 100644 html/html/images/menu_top_right_selected.gif create mode 100644 html/html/images/sflogo.png create mode 100644 html/html/images/stock_down-16.png create mode 100644 html/html/images/stock_ok.png create mode 100644 html/html/images/stock_stop.png create mode 100644 html/html/images/stock_up-16.png create mode 100644 html/html/images/table-header.gif create mode 100644 src/patches/ipac-ng-1.31-fetchcounter.patch create mode 100644 src/patches/ipac-ng-1.31-iptables-1.3.1.patch diff --git a/doc/packages-list.txt b/doc/packages-list.txt index 5e4e43c22..4b13b1e66 100644 --- a/doc/packages-list.txt +++ b/doc/packages-list.txt @@ -74,7 +74,7 @@ * iana-etc-2.00 * ibod * inetutils-1.4.2 -* ipac-ng-1.28 +* ipac-ng-1.31 * ipaddr-1.2 * iproute2-2.4.7-now-ss010824 * iptables-1.3.5 diff --git a/doc/updated-sources.txt b/doc/updated-sources.txt deleted file mode 100644 index 65042b770..000000000 --- a/doc/updated-sources.txt +++ /dev/null @@ -1,124 +0,0 @@ -Dateien IPCOP_v1_4_10_FINAL/config/cfgroot/general-functions.pl und ipfire-1.4.11/config/cfgroot/general-functions.pl sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/config/cfgroot/header-menu.pl und ipfire-1.4.11/config/cfgroot/header-menu.pl sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/config/cfgroot/proxy-acl und ipfire-1.4.11/config/cfgroot/proxy-acl sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/config/etc/inittab und ipfire-1.4.11/config/etc/inittab sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/config/kernel/kernel.config.alpha und ipfire-1.4.11/config/kernel/kernel.config.alpha sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/config/kernel/kernel.config.i386 und ipfire-1.4.11/config/kernel/kernel.config.i386 sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/config/kernel/kernel.config.i386.installer und ipfire-1.4.11/config/kernel/kernel.config.i386.installer sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/config/kernel/kernel.config.i386.smp und ipfire-1.4.11/config/kernel/kernel.config.i386.smp sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/config/ssl/openssl.cnf und ipfire-1.4.11/config/ssl/openssl.cnf sind verschieden. -Nur in ipfire-1.4.11/doc: make.sh-usage. -Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/aliases.cgi und ipfire-1.4.11/html/cgi-bin/aliases.cgi sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/backup.cgi und ipfire-1.4.11/html/cgi-bin/backup.cgi sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/credits.cgi und ipfire-1.4.11/html/cgi-bin/credits.cgi sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/ddns.cgi und ipfire-1.4.11/html/cgi-bin/ddns.cgi sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/dhcp.cgi und ipfire-1.4.11/html/cgi-bin/dhcp.cgi sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/logs.cgi/log.dat und ipfire-1.4.11/html/cgi-bin/logs.cgi/log.dat sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/pppsetup.cgi und ipfire-1.4.11/html/cgi-bin/pppsetup.cgi sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/proxy.cgi und ipfire-1.4.11/html/cgi-bin/proxy.cgi sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/shutdown.cgi und ipfire-1.4.11/html/cgi-bin/shutdown.cgi sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/updates.cgi und ipfire-1.4.11/html/cgi-bin/updates.cgi sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/home/httpd/cgi-bin/vpnmain.cgi und ipfire-1.4.11/html/cgi-bin/vpnmain.cgi sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/bz/install/lang_bz.c und ipfire-1.4.11/langs/bz/install/lang_bz.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/cs/install/lang_cs.c und ipfire-1.4.11/langs/cs/install/lang_cs.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/da/cgi-bin/da.pl und ipfire-1.4.11/langs/da/cgi-bin/da.pl sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/da/install/lang_da.c und ipfire-1.4.11/langs/da/install/lang_da.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/de/cgi-bin/de.pl und ipfire-1.4.11/langs/de/cgi-bin/de.pl sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/de/install/lang_de.c und ipfire-1.4.11/langs/de/install/lang_de.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/el/cgi-bin/el.pl und ipfire-1.4.11/langs/el/cgi-bin/el.pl sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/el/install/lang_el.c und ipfire-1.4.11/langs/el/install/lang_el.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/en/cgi-bin/en.pl und ipfire-1.4.11/langs/en/cgi-bin/en.pl sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/en/install/lang_en.c und ipfire-1.4.11/langs/en/install/lang_en.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/es/cgi-bin/es.pl und ipfire-1.4.11/langs/es/cgi-bin/es.pl sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/es/install/lang_es.c und ipfire-1.4.11/langs/es/install/lang_es.c sind verschieden. -Nur in ipfire-1.4.11/langs: fa. -Dateien IPCOP_v1_4_10_FINAL/langs/fi/cgi-bin/fi.pl und ipfire-1.4.11/langs/fi/cgi-bin/fi.pl sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/fi/install/lang_fi.c und ipfire-1.4.11/langs/fi/install/lang_fi.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/fr/cgi-bin/fr.pl und ipfire-1.4.11/langs/fr/cgi-bin/fr.pl sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/fr/install/lang_fr.c und ipfire-1.4.11/langs/fr/install/lang_fr.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/hu/install/lang_hu.c und ipfire-1.4.11/langs/hu/install/lang_hu.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/it/install/lang_it.c und ipfire-1.4.11/langs/it/install/lang_it.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/la/install/lang_la.c und ipfire-1.4.11/langs/la/install/lang_la.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/list und ipfire-1.4.11/langs/list sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/nl/cgi-bin/nl.pl und ipfire-1.4.11/langs/nl/cgi-bin/nl.pl sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/nl/install/lang_nl.c und ipfire-1.4.11/langs/nl/install/lang_nl.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/no/cgi-bin/no.pl und ipfire-1.4.11/langs/no/cgi-bin/no.pl sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/no/install/lang_no.c und ipfire-1.4.11/langs/no/install/lang_no.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/pl/install/lang_pl.c und ipfire-1.4.11/langs/pl/install/lang_pl.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/pt/install/lang_pt.c und ipfire-1.4.11/langs/pt/install/lang_pt.c sind verschieden. -Nur in ipfire-1.4.11/langs: sk. -Dateien IPCOP_v1_4_10_FINAL/langs/so/install/lang_so.c und ipfire-1.4.11/langs/so/install/lang_so.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/sv/cgi-bin/sv.pl und ipfire-1.4.11/langs/sv/cgi-bin/sv.pl sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/sv/install/lang_sv.c und ipfire-1.4.11/langs/sv/install/lang_sv.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/tr/install/lang_tr.c und ipfire-1.4.11/langs/tr/install/lang_tr.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/langs/vi/install/lang_vi.c und ipfire-1.4.11/langs/vi/install/lang_vi.c sind verschieden. -Nur in ipfire-1.4.11/lfs: as86. -Dateien IPCOP_v1_4_10_FINAL/lfs/boot.img und ipfire-1.4.11/lfs/boot.img sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/cdrom und ipfire-1.4.11/lfs/cdrom sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/Config und ipfire-1.4.11/lfs/Config sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/configroot und ipfire-1.4.11/lfs/configroot sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/coreutils und ipfire-1.4.11/lfs/coreutils sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/driver.img und ipfire-1.4.11/lfs/driver.img sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/eciadsl und ipfire-1.4.11/lfs/eciadsl sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/gcc und ipfire-1.4.11/lfs/gcc sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/hdparm und ipfire-1.4.11/lfs/hdparm sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/iana-etc und ipfire-1.4.11/lfs/iana-etc sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/initrd und ipfire-1.4.11/lfs/initrd sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/installer und ipfire-1.4.11/lfs/installer sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/ipac-ng und ipfire-1.4.11/lfs/ipac-ng sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/iptables und ipfire-1.4.11/lfs/iptables sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/linux und ipfire-1.4.11/lfs/linux sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/man-pages und ipfire-1.4.11/lfs/man-pages sind verschieden. -Nur in ipfire-1.4.11/lfs: mbr. -Nur in ipfire-1.4.11/lfs: ndiswrapper. -Dateien IPCOP_v1_4_10_FINAL/lfs/openssl und ipfire-1.4.11/lfs/openssl sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/openswan und ipfire-1.4.11/lfs/openswan sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/rrdtool und ipfire-1.4.11/lfs/rrdtool sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/scsi.img und ipfire-1.4.11/lfs/scsi.img sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/setup und ipfire-1.4.11/lfs/setup sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/stage2 und ipfire-1.4.11/lfs/stage2 sind verschieden. -Nur in ipfire-1.4.11/lfs: strip. -Dateien IPCOP_v1_4_10_FINAL/lfs/tar und ipfire-1.4.11/lfs/tar sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/tcl und ipfire-1.4.11/lfs/tcl sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/util-linux und ipfire-1.4.11/lfs/util-linux sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/vlan und ipfire-1.4.11/lfs/vlan sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/lfs/wireless und ipfire-1.4.11/lfs/wireless sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/make.sh und ipfire-1.4.11/make.sh sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/install+setup/install/config.c und ipfire-1.4.11/src/install+setup/install/config.c sind verschieden. -Nur in ipfire-1.4.11/src/install+setup/install: install2.c. -Dateien IPCOP_v1_4_10_FINAL/src/install+setup/install/install.h und ipfire-1.4.11/src/install+setup/install/install.h sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/install+setup/install/main.c und ipfire-1.4.11/src/install+setup/install/main.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/install+setup/install/Makefile und ipfire-1.4.11/src/install+setup/install/Makefile sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/install+setup/install/nic.c und ipfire-1.4.11/src/install+setup/install/nic.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/install+setup/install/pcmcia.c und ipfire-1.4.11/src/install+setup/install/pcmcia.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/install+setup/install/scsi.c und ipfire-1.4.11/src/install+setup/install/scsi.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/install+setup/install/usb.c und ipfire-1.4.11/src/install+setup/install/usb.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/install+setup/libsmooth/main.c und ipfire-1.4.11/src/install+setup/libsmooth/main.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/install+setup/libsmooth/Makefile und ipfire-1.4.11/src/install+setup/libsmooth/Makefile sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/install+setup/setup/main.c und ipfire-1.4.11/src/install+setup/setup/main.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/install+setup/setup/networking.c und ipfire-1.4.11/src/install+setup/setup/networking.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/misc-progs/ipcopbackup.c und ipfire-1.4.11/src/misc-progs/ipcopbackup.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/misc-progs/ipcopbkcfg.c und ipfire-1.4.11/src/misc-progs/ipcopbkcfg.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/misc-progs/ipcoprscfg.c und ipfire-1.4.11/src/misc-progs/ipcoprscfg.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/misc-progs/Makefile und ipfire-1.4.11/src/misc-progs/Makefile sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/misc-progs/setfilters.c und ipfire-1.4.11/src/misc-progs/setfilters.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/misc-progs/setuid.c und ipfire-1.4.11/src/misc-progs/setuid.c sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/misc-progs/setuid.h und ipfire-1.4.11/src/misc-progs/setuid.h sind verschieden. -Nur in ipfire-1.4.11/src/patches: ipac-ng-1.31-fetchcounter.patch. -Nur in ipfire-1.4.11/src/patches: ipac-ng-1.31-iptables-1.3.1.patch. -Nur in ipfire-1.4.11/src/patches: iptables-1.3.4-old-string.patch. -Nur in ipfire-1.4.11/src/patches: linux-2.4-seg-4.patch. -Dateien IPCOP_v1_4_10_FINAL/src/patches/patch-o-matic-ng-20040621_nf-log_2.4.29.patch und ipfire-1.4.11/src/patches/patch-o-matic-ng-20040621_nf-log_2.4.29.patch sind verschieden. -Nur in IPCOP_v1_4_10_FINAL/src/patches: pomng.fix. -Nur in ipfire-1.4.11/src/patches: pom-ng_proc-net-conntrack-permissions.patch. -Dateien IPCOP_v1_4_10_FINAL/etc/rc.d/rc.firewall und ipfire-1.4.11/src/rc.d/rc.firewall sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/etc/rc.d/rc.red und ipfire-1.4.11/src/rc.d/rc.red sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/etc/rc.d/rc.sysinit und ipfire-1.4.11/src/rc.d/rc.sysinit sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/etc/rc.d/rc.updatered und ipfire-1.4.11/src/rc.d/rc.updatered sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/ROOTFILES.alpha und ipfire-1.4.11/src/ROOTFILES.alpha sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/ROOTFILES.i386 und ipfire-1.4.11/src/ROOTFILES.i386 sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/scripts/httpscert und ipfire-1.4.11/src/scripts/httpscert sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/scripts/makegraphs und ipfire-1.4.11/src/scripts/makegraphs sind verschieden. -Dateien IPCOP_v1_4_10_FINAL/src/scripts/setddns.pl und ipfire-1.4.11/src/scripts/setddns.pl sind verschieden. -Nur in ipfire-1.4.11/src/scripts: upgrade. -Nur in ipfire-1.4.11/updates: 1.4.11. diff --git a/html/cgi-bin/connections.cgi b/html/cgi-bin/connections.cgi index 36bbaf0de..838425350 100644 --- a/html/cgi-bin/connections.cgi +++ b/html/cgi-bin/connections.cgi @@ -4,7 +4,9 @@ # # (c) 2003 Dave Roberts - colour coded netfilter/iptables rewrite for 1.3 # -# $Id: connections.cgi,v 1.6.2.11 2005/02/24 07:44:35 gespinasse Exp $ +# (c) 2006 Franck - add sorting+filtering capability +# +# $Id: connections.cgi,v 1.6.2.12 2006/02/27 19:48:46 franck78 Exp $ # # Setup GREEN, ORANGE, IPCOP, VPN CIDR networks, masklengths and colours only once @@ -39,7 +41,8 @@ my @active = ; close (ACTIVE); my @vpn = ('none'); -open (ACTIVE, "/proc/net/ipsec_eroute") and @vpn = ; close (ACTIVE); +open (ACTIVE, "/proc/net/ipsec_eroute") and @vpn = ; +close (ACTIVE); my $aliasfile = "${General::swroot}/ethernet/aliases"; open(ALIASES, $aliasfile) or die 'Unable to open aliases file.'; @@ -140,42 +143,37 @@ if (open(IP, "${General::swroot}/red/local-ipaddress")) { push(@colour, ${Header::colourfw} ); } -&Header::showhttpheaders(); -&Header::openpage($Lang::tr{'connections'}, 1, ''); -&Header::openbigbox('100%', 'left'); -&Header::openbox('100%', 'left', $Lang::tr{'connection tracking'}); -print < -$Lang::tr{'legend'} : - $Lang::tr{'lan'} - $Lang::tr{'internet'} - $Lang::tr{'dmz'} - $Lang::tr{'wireless'} - IPCop - $Lang::tr{'vpn'} - - -
- - - - - - - - - - - -END -; +#Establish simple filtering&sorting boxes on top of table -foreach my $line (@active) -{ +our %cgiparams; +&Header::getcgihash(\%cgiparams); + +my @list_proto = ($Lang::tr{'all'}, 'icmp', 'udp', 'tcp'); +my @list_state = ($Lang::tr{'all'}, 'SYN_SENT', 'SYN_RECV', 'ESTABLISHED', 'FIN_WAIT', + 'CLOSE_WAIT', 'LAST_ACK', 'TIME_WAIT', 'CLOSE', 'LISTEN'); +my @list_mark = ($Lang::tr{'all'}, '[ASSURED]', '[UNREPLIED]'); +my @list_sort = ('orgsip','protocol', 'expires', 'status', 'orgdip', 'orgsp', + 'orgdp', 'exsip', 'exdip', 'exsp', 'exdp'); + +# init or silently correct unknown value... +if ( ! grep ( /^$cgiparams{'SEE_PROTO'}$/ , @list_proto )) { $cgiparams{'SEE_PROTO'} = $list_proto[0] }; +if ( ! grep ( /^$cgiparams{'SEE_STATE'}$/ , @list_state )) { $cgiparams{'SEE_STATE'} = $list_state[0] }; +if ( ! grep ( /^$cgiparams{'SEE_MARK'}$/ , @list_mark )) { $cgiparams{'SEE_MARK'} = $list_mark[0] }; +if ( ! grep ( /^$cgiparams{'SEE_SORT'}$/ , @list_sort )) { $cgiparams{'SEE_SORT'} = $list_sort[0] }; +# *.*.*.* or a valid IP +if ( $cgiparams{'SEE_SRC'} !~ /^(\*\.\*\.\*\.\*\.|\d+\.\d+\.\d+\.\d+)$/) { $cgiparams{'SEE_SRC'} = '*.*.*.*' }; +if ( $cgiparams{'SEE_DEST'} !~ /^(\*\.\*\.\*\.\*\.|\d+\.\d+\.\d+\.\d+)$/) { $cgiparams{'SEE_DEST'} = '*.*.*.*' }; + + +our %entries = (); # will hold the lines analyzed correctly +my $unknownlines = ''; # should be empty all the time... +my $index = 0; # just a counter to make unique entryies in entries + +foreach my $line (@active) { my $protocol=''; my $expires=''; - my $connstatus=''; + my $status=''; my $orgsip=''; my $orgdip=''; my $orgsp=''; @@ -186,56 +184,93 @@ foreach my $line (@active) my $exdp=''; my $marked=''; my $use=''; - my $orgsipcolour=''; - my $orgdipcolour=''; - my $exsipcolour=''; - my $exdipcolour=''; chomp($line); my @temp = split(' ',$line); - print "\n"; + + if ($temp[0] eq 'icmp') { + $protocol = $temp[0]; + $status = $Lang::tr{'all'}; + $orgsip = substr $temp[3], 4; + $orgdip = substr $temp[4], 4; + $marked = $temp[8] eq '[UNREPLIED]' ? '[UNREPLIED]' : ' '; + } + if ($temp[0] eq 'udp') { + $protocol = $temp[0]; + $status = $Lang::tr{'all'}; + $orgsip = substr $temp[3], 4; + $orgdip = substr $temp[4], 4; + $marked = $temp[7] eq '[UNREPLIED]' ? '[UNREPLIED]' : defined ($temp[12]) ? $temp[11] : ' '; + } + if ($temp[0] eq 'tcp') { + $protocol = $temp[0]; + $status = $temp[3]; + $orgsip = substr $temp[4], 4; + $orgdip = substr $temp[5], 4; + $marked = $temp[8] eq '[UNREPLIED]' ? '[UNREPLIED]' : defined ($temp[13]) ? $temp[12] : ' '; + } + + # filter the line if we found a known proto + next if( !( + (($cgiparams{'SEE_PROTO'} eq $Lang::tr{'all'}) || ($protocol eq $cgiparams{'SEE_PROTO'} )) + && (($cgiparams{'SEE_STATE'} eq $Lang::tr{'all'}) || ($status eq $cgiparams{'SEE_STATE'} )) + && (($cgiparams{'SEE_MARK'} eq $Lang::tr{'all'}) || ($marked eq $cgiparams{'SEE_MARK'} )) + && (($cgiparams{'SEE_SRC'} eq "*.*.*.*") || ($orgsip eq $cgiparams{'SEE_SRC'} )) + && (($cgiparams{'SEE_DEST'} eq "*.*.*.*") || ($orgdip eq $cgiparams{'SEE_DEST'} )) + )); + + if ($temp[0] eq 'icmp') { + my $offset = 0; + $protocol = $temp[0] . " (" . $temp[1] . ")"; + $expires = $temp[2]; + $status = ' '; + if ($temp[8] eq '[UNREPLIED]' ) { + $offset = +1; + } + $orgsip = substr $temp[3], 4; + $orgdip = substr $temp[4], 4; + $orgsp = &General::GetIcmpDescription(substr( $temp[5], 5)) . "/" . substr( $temp[6], 5);; + $orgdp = 'id=' . substr( $temp[7], 3); + $exsip = substr $temp[8 + $offset], 4; + $exdip = substr $temp[9 + $offset], 4; + $exsp = &General::GetIcmpDescription(substr( $temp[10 + $offset], 5)). "/" . substr( $temp[11 + $offset], 5); + $exdp = 'id=' . substr( $temp[11 + $offset], 5); + $marked = $temp[8] eq '[UNREPLIED]' ? '[UNREPLIED]' : ' '; + $use = substr( $temp[13 + $offset], 4 ); + } if ($temp[0] eq 'udp') { my $offset = 0; $marked = ''; $protocol = $temp[0] . " (" . $temp[1] . ")"; $expires = $temp[2]; - $connstatus = ' '; + $status = ' '; $orgsip = substr $temp[3], 4; $orgdip = substr $temp[4], 4; $orgsp = substr $temp[5], 6; $orgdp = substr $temp[6], 6; if ($temp[7] eq '[UNREPLIED]') { - $marked = $temp[7]; - $offset = 1; - } - else { - $connstatus = ' '; - } - + $offset = 1; + $marked = $temp[7]; + $use = substr $temp[12], 4; + } else { + if ((substr $temp[11], 0, 3) eq 'use' ) { + $marked = ''; + $use = substr $temp[11], 4; + } else { + $marked = $temp[11]; + $use = substr $temp[12], 4; + } + } $exsip = substr $temp[7 + $offset], 4; $exdip = substr $temp[8 + $offset], 4; $exsp = substr $temp[9 + $offset], 6; $exdp = substr $temp[10 + $offset], 6; - if ($marked eq '[UNREPLIED]') { - $use = substr $temp[11 + $offset], 4; - } - else { - $marked = $temp[11 + $offset]; - $use = substr $marked, 0, 3; - if ($use eq 'use' ) { - $marked = ''; - $use = substr $temp[11 + $offset], 4; - } - else { - $use = substr $temp[12 + $offset], 4; - } - } } if ($temp[0] eq 'tcp') { my $offset = 0; $protocol = $temp[0] . " (" . $temp[1] . ")"; $expires = $temp[2]; - $connstatus = $temp[3]; + $status = $temp[3]; $orgsip = substr $temp[4], 4; $orgdip = substr $temp[5], 4; $orgsp = substr $temp[6], 6; @@ -243,25 +278,22 @@ foreach my $line (@active) if ($temp[8] eq '[UNREPLIED]') { $marked = $temp[8]; $offset = 1; - $use = substr $temp[13], 4; - } - else { + } else { $marked = $temp[12]; - $use = substr $temp[13], 4; } - $exsip = substr $temp[8 + $offset], 4; $exdip = substr $temp[9 + $offset], 4; $exsp = substr $temp[10 + $offset], 6; $exdp = substr $temp[11 + $offset], 6; + $use = substr $temp[13], 4; } if ($temp[0] eq 'unknown') { my $offset = 0; $protocol = "??? (" . $temp[1] . ")"; $protocol = "esp (" . $temp[1] . ")" if ($temp[1] == 50); - $protocol = " ah (" . $temp[1] . ")" if ($temp[1] == 51); + $protocol = "ah (" . $temp[1] . ")" if ($temp[1] == 51); $expires = $temp[2]; - $connstatus = ' '; + $status = ' '; $orgsip = substr $temp[3], 4; $orgdip = substr $temp[4], 4; $orgsp = ' '; @@ -288,24 +320,119 @@ foreach my $line (@active) $marked = $temp[17]; $use = $temp[18]; } - $orgsipcolour = &ipcolour($orgsip); - $orgdipcolour = &ipcolour($orgdip); - $exsipcolour = &ipcolour($exsip); - $exdipcolour = &ipcolour($exdip); + # Only from this point, lines have the same known format/field + # The floating fields [UNREPLIED] [ASSURED] etc are ok. + + # Store the line in a hash array for sorting + if ( $protocol ) { # line is decoded ? + my @record = ( 'index', $index++, + 'protocol', $protocol, + 'expires', $expires, + 'status', $status, + 'orgsip', $orgsip, + 'orgdip', $orgdip, + 'orgsp', $orgsp, + 'orgdp', $orgdp, + 'exsip', $exsip, + 'exdip', $exdip, + 'exsp', $exsp, + 'exdp', $exdp, + 'marked', $marked, + 'use', $use); + my $record = {}; # create a reference to empty hash + %{$record} = @record; # populate that hash with @record + $entries{$record->{index}} = $record; # add this to a hash of hashes + } else { # it was not a known line + $unknownlines .= ""; + $unknownlines .= ""; + } +} + +# Build listbox objects +my $menu_proto = &make_select ('SEE_PROTO', $cgiparams{'SEE_PROTO'}, @list_proto); +my $menu_state = &make_select ('SEE_STATE', $cgiparams{'SEE_STATE'}, @list_state); +my $menu_src = &make_select ('SEE_SRC', $cgiparams{'SEE_SRC'}, &get_known_ips('orgsip')); +my $menu_dest = &make_select ('SEE_DEST', $cgiparams{'SEE_DEST'}, &get_known_ips('orgdip')); +my $menu_mark = &make_select ('SEE_MARK', $cgiparams{'SEE_MARK'}, @list_mark); +my $menu_sort = &make_select ('SEE_SORT', $cgiparams{'SEE_SORT'}, @list_sort); + +&Header::showhttpheaders(); +&Header::openpage($Lang::tr{'connections'}, 1, ''); +&Header::openbigbox('100%', 'left'); +&Header::openbox('100%', 'left', $Lang::tr{'connection tracking'}); + +print < + + + + + + + + +
$Lang::tr{'protocol'}$Lang::tr{'expires'}
($Lang::tr{'seconds'})
$Lang::tr{'connection'}
$Lang::tr{'status'}
$Lang::tr{'original'}
$Lang::tr{'source ip and port'}
$Lang::tr{'original'}
$Lang::tr{'dest ip and port'}
$Lang::tr{'expected'}
$Lang::tr{'source ip and port'}
$Lang::tr{'expected'}
$Lang::tr{'dest ip and port'}
$Lang::tr{'marked'}$Lang::tr{'use'}
unknown:$line>
$Lang::tr{'legend'} : $Lang::tr{'lan'}$Lang::tr{'internet'}$Lang::tr{'dmz'}$Lang::tr{'wireless'}IPCop$Lang::tr{'vpn'}
+
+ + + + + + + + + + + + + + + + + + + + + + +END +; + +foreach my $entry (sort sort_entries keys %entries) { + + print ""; + my $orgsipcolour = &ipcolour( $entries{$entry}->{orgsip} ); + my $orgdipcolour = &ipcolour( $entries{$entry}->{orgdip} ); + my $exsipcolour = &ipcolour( $entries{$entry}->{exsip} ); + my $exdipcolour = &ipcolour( $entries{$entry}->{exdip} ); print <$protocol - - - - - - - + + + + + + + + + END - ; +; } -print "
$Lang::tr{'protocol'}$Lang::tr{'expires'}
($Lang::tr{'seconds'})
$Lang::tr{'connection'}
$Lang::tr{'status'}
$Lang::tr{'original'}
$Lang::tr{'source ip and port'}
$Lang::tr{'original'}
$Lang::tr{'dest ip and port'}
$Lang::tr{'expected'}
$Lang::tr{'source ip and port'}
$Lang::tr{'expected'}
$Lang::tr{'dest ip and port'}
$Lang::tr{'marked'}$Lang::tr{'use'}
$menu_proto$menu_state$menu_src$menu_dest$Lang::tr{'sort ascending'}:$menu_sort $menu_mark
$expires$connstatus$orgsip:$orgsp$orgdip:$orgdp$exsip:$exsp$exdip:$exdp$marked$use$entries{$entry}->{protocol}$entries{$entry}->{expires}$entries{$entry}->{status} + + $entries{$entry}->{orgsip} + :$entries{$entry}->{orgsp} + + $entries{$entry}->{orgdip} + :$entries{$entry}->{orgdp} + + $entries{$entry}->{exsip} + :$entries{$entry}->{exsp} + + $entries{$entry}->{exdip} + :$entries{$entry}->{exdp}$entries{$entry}->{marked}$entries{$entry}->{use}
\n"; + +print "$unknownlines"; &Header::closebox(); &Header::closebigbox(); @@ -316,10 +443,9 @@ sub ipcolour($) { my $line; my $colour = ${Header::colourred}; my ($ip) = $_[0]; - my $found = 0; - foreach $line (@network) - { - if (!$found && ipv4_in_network( $network[$id] , $masklen[$id], $ip) ) { + my $found = 0; + foreach $line (@network) { + if (!$found && ipv4_in_network( $network[$id] , $masklen[$id], $ip) ) { $found = 1; $colour = $colour[$id]; } @@ -327,3 +453,55 @@ sub ipcolour($) { } return $colour } + +# Create a string containing a complete SELECT html object +# param1: name +# param2: current value selected +# param3: field list +sub make_select ($,$,$) { + my $select_name = shift; + my $selected = shift; + my $select = ""; + return $select; +} + +# Build a list of IP obtained from the %entries hash +# param1: IP field name +sub get_known_ips ($) { + my $field = shift; + my $qs = $cgiparams{'SEE_SORT'}; # switch the sort order + $cgiparams{'SEE_SORT'} = $field; + + my @liste=('*.*.*.*'); + foreach my $entry ( sort sort_entries keys %entries) { + push (@liste, $entries{$entry}->{$field}) if (! grep (/^$entries{$entry}->{$field}$/,@liste) ); + } + + $cgiparams{'SEE_SORT'} = $qs; #restore sort order + return @liste; +} + +# Used to sort the table containing the lines displayed. +sub sort_entries { #Reverse is not implemented + my $qs=$cgiparams{'SEE_SORT'}; + if ($qs =~ /orgsip|orgdip|exsip|exdip/) { + my @a = split(/\./,$entries{$a}->{$qs}); + my @b = split(/\./,$entries{$b}->{$qs}); + ($a[0]<=>$b[0]) || + ($a[1]<=>$b[1]) || + ($a[2]<=>$b[2]) || + ($a[3]<=>$b[3]); + } elsif ($qs =~ /expire|orgsp|orgdp|exsp|exdp/) { + $entries{$a}->{$qs} <=> $entries{$b}->{$qs}; + } else { + $entries{$a}->{$qs} cmp $entries{$b}->{$qs}; + } +} + +1; diff --git a/html/html/images/background.gif b/html/html/images/background.gif new file mode 100644 index 0000000000000000000000000000000000000000..a511572ebf0a2c5065f8e9147d9d9225050054ee GIT binary patch literal 1022 zcmZ?wbhEHbhPC6mMcI+00P7 zg|TcKL&a8x^6d@8*5-=<(yn4}tjU<0nAy?8#Fg zc>eSm5WINy90*=Me*pw9U%q_x>ecJluiw0R^Y-oAckkYPc=sL%KED3|1RpHhsnn-q~~J&YiMg(#*xv=PjGVw{q3$)%@$$Z`dHP zdCS%ehuhSHJmz>z zT-4PqVVo9oaN}b4ejTSS8Ou$rCnswJ?ut0MY3b?d`pGBecus!SEoD*s>WpUca{oCd zb-#KPOES(bHf$0*%bA>cPTH^VR!0;w`_AA2)q9(c-$wVdT&~f< zYj4T?D|mcrD))kQcXyXFzqosP`uc|b4b1Fv4m&m^9%d2Jj@z@N;qmbait;mjb{3^F z&oIuucV_42=jRvjK9J2VZ-04tMd0g*v%5;O9g8L_`W&H0||NL-&dx5yhr?duzYBb%+=qs<#KG2U*1j4ekn!ERAexD;_j?s62eo?5Xl2q1h`W<6*0p z%EBW;GG#9ow)?bbJnB%kN_^C*G4BS8h|abbN!|V~ijR9tE@>R?wRkq;v53vL7mNEt zSTvtZa1Kj+GSNLMb>R}xP>sr?ll`L@mre;!NPIdqAZcQ%SWMZ=r_&=d6w_wJW(6*r z5tY;UY*uF8!)LP#j!CME$K*Jw&n>&R^7*`)vWL&-*A+3oSkNNowL-i@ZPklKJ!Y?7 WES}(|^>WFSu&kF$r?N3ISOWmHu0yr} literal 0 HcmV?d00001 diff --git a/html/html/images/boxbottom1.png b/html/html/images/boxbottom1.png index ac30c96579d7ff0492462cca7506fb5edf28b199..58d269c3064c24cc664255ef57b9ad1630c3b50a 100644 GIT binary patch literal 340 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQwj^(N7a$D;Kb?2i11Zh|kH}&M z25un`X1sK_?hjCqy~NYkmHjfCfRL8zo>!dtK%s}8E{-7;x7J=#%xiHFIri~?p3$!J z225w91ZKSCwKBgE`a*7@`vbPUPG2RyvCUQ1X=_o4YG&9Rq8!znVV*hbP!0Q!r?u~G z=M?A9Z`{OwZ+WJY%eMyp&e&sxDiNzz?P|Lv`PpXv?|uA1!Vi|d-c=Afw|M{)y+j<;{Rmx g4}v?`bqank1?vTMy-`0=4fHI7r>mdKI;Vst0FKy*P5=M^ literal 355 zcmV-p0i6DcP)pG6-h)vRCt_)&r5EDFc5%Y-+vdW7s(<=2!3K?8~hkdA%+A3?H#%x zQmRx+N8j?-Xa@PP)b+KhE`oQAwiL(1;UoW=)A5WRk-7-pF#_aIlygSjFV;><4T5)+ z04c)Th$Tt@zmGUe6#o|q{@nBeJ--tjqb5nhrgfIG=PXeIq=>i(xCo>O zq=*DZ6yn{vn=zwOLn%7W62zz)T@IzQL-q;*!ZFGa^_%W2D5+6kUegw^|{Zm!0R zl^Ue%OYteoPg(X#4oVJ64G3V{&$4#XRj$-fRTr(ZF{3r3wUf0IYSY)=IXBn!b=NdE z=VtGh9ZKCdv|Eg;4~z4&^RxF$i1!F9zzVPdY(ISEoup6T5Pkpv002ovPDHLkV1m1s BnI!-K diff --git a/html/html/images/boxbottom2.png b/html/html/images/boxbottom2.png index f8bff5470b70f20931d94243ec0e981512a04b16..139baa5941fb83b633093e218a28b9702d580c9f 100644 GIT binary patch delta 105 zcmZo;tePO6EX={iz`zj5oh}KaI14-?iy0VruLJQ0#*8Ux5H=O_A9JB;yg@q z=Et`Hg(N*)978H@CI9&U|9`z28xX7#ULC$Zje((dEt^uT;DotAMGT&Uz`&5G_>db&aTa()7BevL9R^{>fyD~>lrsGDanOQ SwUY&!!QkoY=d#Wzp$PyORVyC= diff --git a/html/html/images/boxbottom3.png b/html/html/images/boxbottom3.png index 44bebe16f162c72558aae42ffdef687da74df41f..c03dd92bece50ef99b35b40cfcecbd47251803a1 100644 GIT binary patch literal 346 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQwj^(N7a$D;Kb?2i11Zh|kH}&M z25un`X1sK_?hjCqy~NYkmHjfCfRL8Vh7 zbr${R9&QD`VqR(-n;WkROt`UPA;ZL0eN*mb8+(p82sl2Ps`BCC-G}d1P6=8OaBRlL zm5iMn4xwkl4kq<5h74mfgYG`A59VgFSku^+ z7?D=;hx?a!x8b8X%1gg+&5=vr!o{ulV6Xbpl>8IVXYui!wsC2ZP`+$(^6j;A*%PhP ndL$bKHym)){JQU}(muvxa~-WONmu*@dYQq~)z4*}Q$iB}#L|mL literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^+(697!2~4Bmjmjga_wvQ&mf&5-v8FjLQJgj8Q(i4FYkcWWnXmNW-YG_ z@bc`}Tso&uRQ1G4VH*w0EL+E0XX=G}6w>29EJ!h_|NBEXFmhY2rA*wuB~#`J2fpU? zJD$}Zc4Ecq_quA#${ywtg;N$h*q3>4_q!w?wsSVi-${S&Nziq=J@5Cwq&Q;^xw0&| zThG=!$?)0sjmyhT)m`=YaiOU_bGvHiZ<*JY$hKJhuW<4wgEJl63!(+SubI1cuae%m p^$!laSM0XsG=Coc{QB>g!k)tQanqW-&H??%;OXk;vd$@?2>|Htc1!>O diff --git a/html/html/images/boxleft.png b/html/html/images/boxleft.png index 6ed550ae01daf9a2265cac03c7c0b44870616afc..c238f706997cdb70bcc3f8d8029aa7b7a30d6c0f 100644 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^!a&T(!2~2X>o9QxDb50q$YP-Ubs*lrm@y?y0w~B{ z;_2(keub4sTtfOUlGtM!{07|g@XPjb!twHYYI;OXk;vd$@? F2>^5k8Lrd&8g0tm;~o6sELzt6951#_cl0rSX1>nMKra7`tn>I3biSH9N% z-?X=qt@A|rxyaD3YeQ%3U9kH`SVm*)^uNYD&fCS9GXCv7KIM{HMxpy)%XZv$*mutMBQn-Ln$!#@&!N XPs}_0m4AUb(2oqBu6{1-oD!MD6u;jG5+W$5C1^{Z_A+kPJyzBC~0mRl=>^$R02~)DYT_z@o;q zhg0sZmadsvQ|dakS*{CdO8EeC+p^b~o2lefKJt;4du`f3?m2VrJ?D3R=P~z)R1!_2 zcvAoXwAJFMc&OR%1d~xHJ3?Ea1kNh)#ytSI)=wX#Nm;f9UJ|!P#zg{9m93drdkWgv zW^sHR0P6Vw;CcYYr=acwU>^qnha7;gJOI3uCpX;|!O#<{qaqX1AMu(yoB>89NJr<` z9;vnJSCmH=-;#alGrI!RJ#dXUl^K5?Y^K7&ghM8ceGD4sZ)uY9B@K z&axu9hdFFh;?0r%0D6*E-F>&cdBfSnx=Er?cpV!I%5{m{P_djq#z@8*Y^6Cn^Tu#v ztZ|9&m7D0&fqNxQUW=F4s-8d39C9n{MGX^gC&y>>SP{FHPRPQ$0MdYO3w$Uw{-kTu zkW%fN3mtoUUKfOFdxpy&3*3!uXKP$U0`tw%HBUqL4KAf4tWxufpVy@UR29+42e&xX z7gKLi`g!g<7R4FTU5a*yL((fHBdH&1V;!$PF1%dQbl}&L-9pkYu|pviO!ED#yV9tc zVbx10?HVGTz|-gux75X!hD*nB0!#gI@Ey1P_8VX9_7j_5Bl|RIp^_1s8&1J(7HLgf*nfa z4c~f}v^Dk3vKpne@3K#hyB?rM#M?7OhCX%K+wW93YJEx|`P*zBO}J}~dJMCaSQZ?Z z7%5;9A@p&Kbb%=6gLd$wswqbnPEGx)!Pe^IW_q{G&lN!WoD+mrr_k}c9&&zuM8>Em zXAAV&Jr-oEnixH+3m;+}0T|B2C5Pr6iao>C>3d3~!t*NZ&OHm@76N*nOA+$ohjL+1xc$Kq20>7TNjb?zii zuJuX8{z($Y%zl`*YwB6MDLo^K^%*pu+M--&8t*dQ{*cioxJSqo5g_Z6rpbs_%4Ek4n(F^t@IB)Yy8%ZP&_K@ zE2PZ|90+3`lhPHURtxZ<32zP$-`?evS@UH4ItN+`u2H0+*^Fw4iI9zeE`VP(-viKe3B7d=oSnGqEjvmJx>kS=*SxtCaiJ oL*AeA85kHdIZmbk3;~XSb$4jSK)-=^@FN4OS4pC-2;~R=1J-c>@&Et; diff --git a/html/html/images/boxtop2.png b/html/html/images/boxtop2.png index 01ebb03de27c93349273f86eac112ac6726de18e..a1f3f8e86738011c001dfa63ce1310293ae328ee 100644 GIT binary patch delta 102 zcmZo>E}tNtAk4wUz`$@X^MfCd;w3BqTJBGGy*$mD3EK7YtOv;OXk;vd$@?2>@U} B9SZ;e literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^j6iJ4!2~4v=ZK{ODb50q$YKTtzQZ8Qcszea3Q&+G z-O<;Pfnj4`&F{d;K)ynz%)UP?3JntH=2tTaIPfg@yT`_%&?bC5pNU1_@W;j1 z8JRi~Umsh{zh*E^m^l;#fG)>_4HzPSS{O diff --git a/html/html/images/boxtop3.png b/html/html/images/boxtop3.png index 77374ea6e393c27c7c8f4c302859be6502d1ee69..b279db2961f08d646cbb446990a297a4acfb32b5 100644 GIT binary patch literal 374 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 diff --git a/html/html/images/forward.gif b/html/html/images/forward.gif index d8e09bff0a4ddffa59ee36876cf61d7cbe9e160b..33d18b57197a951673ace2b3091fd202ba58dd47 100644 GIT binary patch literal 609 zcmZ?wbhEHb6k!lyc*elMqMrNV!^h}~Ef(R^dKO<$_L{NxdX2Wrvox)2NdsM(5O^$ZgWkVmry$Q z@r%!f5zEa38W*lVlh(X1p<=n9N!7cLKLQKZDR|9eP%E-dT-Q49oO||G8Q1AI9()KY z-IdXH*eR&RDt?8OWrcfe&$^vwHG|f^|NdRrep-0h7N3G`Ogarby7^`i^VGa1A2{>a zD|;=6Nsqc~qgil2uW1{@kOhiASy)9FxEORmJ^;lD1N*)PuBPUe*0%PJc5}A2?oJV2 zmevWAI&{U=MO&uNY}eM&Q5WK9n!j*y8;7Q*u&Sv7*Qzz^HneD{tIMkL+sSX=xqEM` zsF2WZJ_~^($M{bO96qY$C?Rp`;^nKYEV8VeYHEsHx9{G6*dn8Et;8VR^y1Z%IUy5@R2Om>@f`GVF%DENmxh3A`!O2e3I-(vZrw&+j#wt7d diff --git a/html/html/images/header.png b/html/html/images/header.png index bbf8902c9f18446fe0424bf799cd790129ae08bd..64aed7e8da526de3a37c924ff581338702cf108b 100644 GIT binary patch literal 2598 zcmcImc{r478=qE=J)-L~U!;ZaL^xU|&7d5G#!y*?$VehPiJ`%yq+>f$SEd<^)3H<% zkzHe#2-7iXEYl3lu|>w1W;w?4J@eN0*ZJ?euJc^8+}Hcw@BQ5O@Atd!_enkDXsfKC ztpJ0;l~>sPr=nlobMOOynNOxG}3y58Xb# zdGi8vMQuY85;AO#kE=k&Hno4oB`M?3moYZGIh@m6US95Q6vNF#SW3okDQX!#te(1~ znnb<3YDPz7fFNa^}5Hd&D1cx;p>u*cuvCls+f)vI0OdH#`51}?-2@x zTwUZb*`mgNO4T%Ua}drY{xwN@^ym?r%}z}s*xGgv!Kzc4)P?(EFyJj`pBE)*TsOBS;Uyxq+U4b#-I zs>^75`<_l;G#V|hM|O~HX7XyWz4B7`KxoF|x5T}sK;o)OO37;b4Gpo+&(~a?>;+4$ z{i*X~{qk8J&kBzzJ?a`47uVI*Rp}n$%kMELD0}v-NxIPVvwXln-UtX+KwL9_`cwNs z2#N?Ynu~URSyiQf!HY#n&mob-@1312Ru((-lBraxNF-`m|Gu~WC(=r|yN3rkHy3U_ zGe3W=WrHk)-Te$Qv6J!Gso-d&ub<~b>`1QoZL>>G38~|PeZeU@f1Ese6P~j$VN=gddYJFw5HjcO| zG-;Ojo{PM4<<06=na3`S|Fv;Iu(tJojEq>X;-cg)P7mbUX6exGzOHCq-ak|y$S83) z$_YY6O=U=xWse-E^v#e;R8&>(r~%xrLJJtiFCszaL$Q+&u)iWo(qx{nyDEH8m&Z$g zOrstCTW>hHvgDzAKFj}4Z|urUlFrP`6e&V6>RpQWMPzmP>Lu6K*0!~^0R-!6YHq7l zRaIrcWga)suBVP2!R%G<=;#1NC5T1>y3;2oCtpLAv=;9_kVJ@y5iKq*O1f=!SNiu; zmgF0;01_qZz6F$wCQ;p?~*_;-ABIk0ovZH9Y{$AYJPscfn%O~m0#*M zNW2l|c5l(n>1k=!@-!MvPF3fSFZ6)1T;LBZ(gDvL8U0s6LP7!q$x~qgbSmb8lCm=9 zX=MDW3mn?qr*v@1jto+Y(!(!1 zY|Ei)i{vw|u9{ihQmGWKEnCY{sk4yVorSaGwzjsy!(aXJ?wzTr>D^L%baVq4yI>Xl zj7sp_p{W@z}0Vxlp6&e-?P;Nals=xA5^j)2RT`>7U9FJ45n-Q1#=yh%=F z@BJRdz`lV2ss$k?GLrxM$#iS^0>H}f@WUo(E*}5WciO2OO7@20HiYbb0E0cW{NME4 zwP$DU+GBGOr`L~Syq5B)sQH@^jPuqfzR%S+5`3N+)jW|uJv@>j$*Zi)_TVQ=ISi@w_y?gigr^CZ}rLND`MmP;kO-KYnyrK#D zJ-m0wvV+#rLIgwrR$uz}YnymS54p;z{98giP*_-~u>&H%wdJJtCNTjFBr%6*VrZzS z7cb~XJoUxn#n0>5qYTEu=CYH2mgVx5;NZEO1D+o$a0R97Ul~qLR;$-=I9yCj zOhQ7!#fuk9*OuOztgi^@V|C#i@ENTM&eF9?>`+Fqz{DM^4fOoxc%JTB^fS8w;m({Gz$g*aYFw)Y}8XFrQ7-IF+Q*Yk9X+aRVxVSiYnVOlIp-}N3 zqnTTr(2&^1!?zVw8V~^Wa5$V~hcc&C55ZqmZyX))y-}`&tUdhRs zvsTub`L@iSEfI?Hk|>CTh)_^aDAH15%1}@rCjQ*>!bAVLZZ^>#{`p~a5!ZAPbv83{ zv2w8gsA^?r2Bl);@{yh6;}=(pkL;|h93NSE`PkV1d_FR;^0KlHyF&2){O^N{^f&Pj z)9`pG#AwSC99n-KAvj8D0id8rd;a;p>$Or<`Sb9-#g}hiprC4Fk)DlUp`c`-rNzFe zdMq7he)vu@>v=ZLJ8fURoc>rQD<$=PzjN_B{lEs{cFX%a9-s-WQ%15egg1f&k2uU? zu*K-t_ZU0m&k`R+Fyj^Haiz;oZf=EcGPupo>a?ZH)s_<{?xtrgPe)TZAU*)svr+%9 z2eMIo(LZzeL-`5l?C4V%6!1#H?}H=ZrQu6&qa?%YlT$brylMj*aT(kQP;$R_;x595 z>!DeUTi(v}=u%KnEz451llEreozT}NvwBC4=&(J7jFkUa{cL^~LSg=qhEh*bP8^?d z6rF{_)*e6W!0;br|Cb;qj1Zte z7KdKI`^p%T5-t|#=vcIk@ZXn0Wk?zhIez$O_^ZgUe8G%qIZbJhIz9Oq*#&UOWYOMk zo0zdgC|GAvQkhG%ORcLF4ml2~$QZCsD0g1&7t^txKWXmEve?axcPc#{N^6c^q@R)< zq9YfKb*48rJjCD{@jx3l4H@Fim~{NcgeqPs5x>YmqW1Uw8v@YmEARdpikR7vB;MGM zsSkU452W&8c4*E`lXw%X$s6K<=nwn!PZx$XW$^(C?qkdYTKvDjU5cJq+DS8G?4;g) zsuvcvsxN~niF&5k1%-Ab`t|ylM!F*OiSR0{g_;;n#YON^yaE`s5FSJl%$7XataoUu>H0s;(B{ zs@n4AcS{k6p_LJU-5qz+s57uSv`H{wzpXPJ8#{$#sfU4%-Ue4Ax1hk#i4IFudrPi! zKZ%cF;>X8hvQsvHw|@0ytwqMHdTqm(n&l~B6L>r(QMVmQKJg4wtroNx{2v|1QQ+$f*hGG@LfnQ_T(^m<1*W{!kht z!M<%qZR3(2+;#D(X`D?nXe@IZu1mH5!<=89!Pc_NV8s&P1)s*PsXL>At{VX#pFI7N zHT{`~+M+YbqQPzwtWW6=%jHW`@(Z6K*;!+AKT3%EQy#h6w}V7|A43E4yDHq-PUGP; z8$3M^UK)LGRkh0F2j)bg?;yC-J@5$`0_a_qs4mu2J#vt{g(FZQ0d8X$tWG=Nx3Ry!ptll9l7((+!|SJ64rR5L<3U=MF5q`i)R%-nA=AtaiDJwin$n zb?>N06EV`Sv!_nl_UO4#`3;O>L5ZP^v6=$1hOC6r``SVQo;yFI_ZC&z#R5c^(GJ(& zFvd&|rl|MlWJ7RdS7!{{ml`+UBY3m2jJbIHUD@}msCqredCnk8^+2M5g;=Ko%Fb2okM_@7t-B8=V9F$*(uH!1EX(1*k?&$rPbxS*epi6*a^yj4 zTtED6zCP99)XLR#Z)`dhFO$pDq^ixH`&?0aIWA#(-AUq>^D?ulN4kFdv{*ny!Se#y zH40IyqsZg4gd&UC#IQ?KFd+_w#aLcz?x^r<+I4asAfoNF~+*9@baQ zbyIPORyy#DmXHQ9ft(pfzv9eY#Q56F%h~fMQcxS!q%H&eO7J1JR(=8@+_Xz3y9_H^ zl$z=Xi}6ye22(dPwSB5I%kraWWeL{&6yrd)^!S<6=nwqrm<11jI1+w14Ct|cu+n7J z`QR?M5SJOC-v9}5K5Tp9Jn1jXn4I%~+msj9?kG$W zX^cknQ_Aozb zEIT(%A{V-|zJlc%9%Re~w z;%qR%KtVZDRXm#Gw+M9ob(Xp^Cspf!?m)cCwzT zABwxZ#h9)3Y@R<2EO5;mSb|sXvW`gK4x)6LPc7iMqPJ(j$0$+ajhb?(s8sIu!uR`> z{*Tv?GtUhZ2Q;`&OKTph!}7%K_zzFL3U7JMJHre>4g zY-=Tqu)DNE^^@6edp!%CY7;BF^(eTB`q#@^g=^fVCYr)iG!qq+hm>fZvf-nE`|U<-iuJ`_^8j!cW^KKZZVEh z^9E!np%!gi zP*5qXu=Jgihpd44zIOd9Z=F3(M)ApX{-)FNi{rBD+!JrB`KsrYMWbp15gxMX6xm$n zFGTdXw+#=tVC8ZN-N0srq;{q6?^k{7V#3A~4v)@3cAS=$%3IVsZHZT7GKF;)9@_L% zhTm<%k*i~DOU6(i=9@>?8Q>W-P&>A_(att>^f_=(Y`xE6vUpudZP9m1MYKu#jgtc8 zN)R3xFlZNIXqv`Q{|g=zlpGlrtoxS@*i*W3gAbzmSwvi4E2|>zpR45Bcygl$8CG4_ z6H#sw>>8;xddoYG!#{Si78!+Dv~q`ig(^RVoO0?U7R$cnr`N zLMqmJ3?b<@-9++;C5lSSa#S@G0Gb8D$apLSdE&iH;PBfpKlRfzxNSyV6obB6mrN)ZC0uZV+vNVLEw&M^@)`rXUhu4c;p z2wLX>KOj*CehzxR{R{CV4h?V9>q3{8kE;o!w{p!|vrS`m)!j{JTc9NQ&dO-^Q7zt+ zXjY4Hf$^hI=JVeRP-R26-jYKX-WDcxPnIa#${Sw*!Vt}7`_-&YeqL}}HU<3Lm*!Zm z^Et>cE#{9yR49(fhp5!Szz-pNiIJy=MHQ;839Up(izIad&N+Je9-gbmA#GK=OHaG6 ztKvPe&M!0DMgbpXEUYNfr7dbe+b6z3?LO405DhdQbl~JJ6Wh~=wA`^JmvzjzsDd27aKdaQAaY0-iQy*2^&T9Q}yX4#? zusw0de&75KJ*71pR*t&)Wk|sN>IXprVJL5I(*}6dlhk=-97f;c9p~NjC@rbaNQNII z7mG;#kD27tOIH9iPWSRodoYswAYfKut~k3S1vhB*=Rsm1s1+r$sImJb4%mB~4@hY# zqqGH3paN;Vm;_LnEF^7xYV>(>HLa)}bp&ZIw2AZ+Dnu6$w0N6kt1ilbhX9~3ZJGaw znD}0(T$#eF-1m1FX7xJrUD0z75OlOxdAi+KHRsl4;*f)%Y3IoPJ3~2-@6y8bD)>8X zQq!sCV7MhG-Y+&sGH;}Rv77D_D~+cN?lm>059I+ymrmO!Q%P^dxu%K(JL>cR7x8K~ zd%}0ic34SAZ9)@x>0Y9XEoB6NSBgNAcKkf6v|m@i0Oa})DuPoDs~OH_Or(j8_o+Z( zM+%;7^-$!XB$Ss-N!(upFC7~pc$gbZfUi6<%upFLW$0}f7vBWtLx!}kAcFi0!^$W1 z$@fP=2QR*b^I<9SK5L51SsY0$NXK^c{l*oINTuu)&}ynz?bU4|Uqr665eo$I_3)0oK2jqgnAKD#FtjG-6=5TF zWJ7q`oU6RX3T=3gGQ>rs>Q$C9E8L*v+5e*QOYYBpK%2BB4`h@ake<$y-J$-C-Wvuw z3Zx@e>(OthIcT+L%I&o&OrYLw{b|!sSr6Q+=f^#p3q6P#U$UFOn^-9Z-xnNEPM3`9@V+8tzuD#H zWEo35Se5Q%{C-YzrR1FFBl%VT!{x(Qwf^4>FQONkLnRUTNXatYe&R8)3C`?^Vl%>W z-j65&7IBCxZA7!G^*Q13y_UDS0<2<@&@`%9-GPj@tje%cOA(#Se)g)B2t>_P01d30 zgN%!8Y9%DKw&)#M!qkvM1IUW3fXOS?i$cqW41o=ctZjXZEOr^ zUT-qpg>|j&oO^gaTmCt0Otsbe9LX#B`Pbx&@ZCdsk!EgvO*x0wCo6dr$+ERr;imd( zmaCo*%rZ2H+fQ{~uDxVg4rJZyAB6o59Q>!Jrhf{ltL>fAU`tUUzMbEV$5!|0w%F;M zMX?aGx?6YIS;FgkzXWpG5Yiqj4U>c$2zJhwo%ZJVi`-%2!EB`opyI~V@)ydc^qwHb$rb6VwjB7WW47^@@+Pa^A&K3V9!^f1e4g2EA z82twAB90w8yc%aE^J}_N)4B?hM)@y1uUP9s*$Lwe4qeSS>awN9ZoqmYvpN%52?%2` zhIKTz1sO+DuGzGkjZCQ_TH^@dS&mvVwh%PW9P(ysean-gb@B-%`#rTgU@$oH;N8T-Y?!1n?#_H+mKbo0zXzqamFxZ5eL z_4c6n_WAIjGog;iL7T^~e4hKx=Umh#U+HW+_GIP!@=s``eZAFqd*GD+RC8$p-+Gbz zdcvLi_1R+i3U+rg`$V(0?)L5ZYHUxv`^gSeo5rTT>5#Q}_Y620ESs=}#F8zl>zzEE zOR`wmR|#0Fy}e8f3=~Zm_??ysdc)CP@1l)2ulo&7S@?CLB{trS`=4?b#@})qbj+=Q zlx&{X$?P)~f7uqap4`*IeReo}Jy2NlfOImvJsx`QEhifs-cO=69};F3*wDIv%!nU< z>v|C->uM<)@HhPs>s2F<^eMmNfe18eplh9pY)G9RgW}?%+YqYixga&Nzi+WQvegfQ zsYSE{$y2aavWu-km!ag9nJ0`=X6DFn1QVvK73#MVLX=0kjH3G^2g<^`%|tvJPrl-qctP>FWv&6xch2S13&MR5RN`Y{=Lz;KS}xZ?jWNzK zN9M$JY_%~4EAI(8aWxbGknnayN%Xe10&pM->bZT*W* zNGSqO?dkxp#LA}FF&?DY*~Xvz=%{4g=Tm8fZ`k}EZFI^^q8L5E#0>M-wj}4E$c%`` zkVnL}oCu~A$QF;#TJ{hPGB@tm4AypN>EQb~NqWaZWbmG2X?VMLgQ~p4Q6Y(E@-kUg z@kAQ!Rsh~ZV9u$2>ev{!HDN6kMntbOUls{pi5VZSt4M(;vpp5&h??rOV&W+ZuF7I= zSl8Qv|J(fAPCe|EWIznzV2TBefJC2w!-Or0zKN6|*5+TvL47yjm_@$3AZAE>C@F(v z>3wkTblQ;W(L=v4T2xb6Bw=H@peM{87qF)MT3TeKj!R@T7hZ*rq=}zBb(+#j#x=gW zqP-E~Y#`70aMF@a-24jxp^sK?c?VRyc2t^>T`)T1&Ka`ewo`I~75)8V?+ep+6R?nY zqpt_L+C11LYW>suz^V&}u&}GW>$A7pyKOw0pZ&uOPAhs%c1NqNCOP?(S)fnbHh`H; ztSwC(KBiQzqy3_<3a`$0-?&)_r?-lyl4Jd!>nyVEeD^e-5Mdij>94DvG`^KQx4;5% zvQ1#^MiC%XsD1C{PYpAPiP@FmE)5xtaoFmSRKXS>;AB^ELNhjX#n3{X@^zA_x++m< zB}@s(c_TVV$EALY6PzL8e;Lq)t3|pZ-VR>uu-=L$={|J^Q8QAs?% z=lbkymxKRN;%(Eyi96#zDil4kw`bq%$mr|o3{*3+vomyLU0%)PE8BaGi>-RfK6CiA zlc-isL~{VTpEQQ~GVgm=&2CU_%X7WJ;`VxX_u22p#(~J-z6Dl}0%JUm{Z0vwPmliq zhRrBr8B0*J7`j*YdoS^42`257siyYE+DVcN3(?o`ynX5zE5-@ItzmP~dT23X#!y^u zAEjP1De)|LFA1XIJx`z>AWx=KPwg=X9hK znYA4;oXu@}XG~Xl9XksS;iut^i>c)}6Eag{lvEwJ5_kK7Khdkh756vTygtF_mv2l@ zp)~ZL_Xb`^tC>tLi0pM2rtMG|+HzWdXPhqaZdB+sjy%TuKi6jdIVL{z=ko(~Hk<4^ zf2w-)#*FQ8Z^imIxW2tEC>=cvNzR|Fu$^D4c+(t2&D+Fmug-mD_cNMl0%F{o02$eH zf8ER2`z{-s>NNA0XAoFyDz&?{q4rUk30-WcfNefKr6Iym3go3du(*+OV6q~BD`Ump zW1H7%`&YS_q)1&!U5$%&wJFb3t3^DyuF&s$t2!&v`b)`pH_&L9+T|Q>F;P7(z|$u+ zaV6-Z5OfnNbwBwWNRC@~ul>?)o7|{LOt635w@IrSsryjeIZ&fWOi$w#=8ft~a%gK~ zHC{X|rIKFOOZNOLvz)oBkJKo1Kj|1qKLFc@Ey2@Q7rncGAUO6ntPk~l8^Fi0a>e^_ z^!A)m8EFzp$Cbj7v=>L6j>qM*gVp@4Ry&BDlW#xOZWaiyz-l( zAZ=dUq!(?E4?Uh=Cn8%}t1O8Jp3y8d$r!*;p)EZTOU{1jRqy{H+>wct)k zXXXYYlN9nt%Zq}8s#21us0O)M zTu+hCq_U2aop*To^iZszUrKbwt7Fp9D*?M|^s*asUW=Mp^c!}7kD(6&EK0!`+f;qW zXz%AzJ=4C+-VVd`RP?|`^8dB2td$!GG^|YCe8SIb)y>C8LZhykxeV1>w?7U1c+ndq z{D=tUe9l+j+71%ue*Ub?S988%IqA(Fj}e0d}n= z15={gI6c7%&(C*Fp#DM-dSTGzmSEiOgM3_FC3-E1*=V|Ki zJSsDh37XtpIH&}3=LJ%%GFw~JU5elHvKTL0CV#`Js^G0-Ek9m1sR544$5<@M!Y&1v zozsf7NoDq_7iXhGV3~b_$XMQXn^x29Xb_l=N?jD}S@=}|`q z;uoU;3HSt_-v3>?9IXoOih_1=Q#_cl)EB(61gg@04M1D%@H$B#wk3HztX3a$4E|mp zwM3t2tks84(ZjKpfxw@~D>e|LUxG&2SU?{R@T~c0LW37-wuJ;ApH4}Y98>Nrq^gyR za!ZR?QAPh%7jr6jL6K2;8}dHF+6zR~PDGR*7=u!1dgchqU1}YRms0u|EQWn_j3B}0 z#3IyR=5owoBNgrPt*e!t-DO5?h>&QL%BI9J#dYebFeG6yUmUNJFM>H)_4Jw)dQDFd z<_!mG<2q-VMSxE;GK9l{zm#KEzXYLA_cwV#iUFXBsjWTFI)Fdpx2hpIAT!EI$+QI} zbH`Qr7@s1=m?aiQjZWv9zF;UK3y0i~?RO#PC8AWBMaB1Etu))dpY$vM>3Cw6Qa`jU z8GNG9qA0?f^|mfI5?Ebfs1&X#kR2_1ng5uPkC>k1WB66(uGAdzb$bhrcn+1lJ|Y*}mZMEvN%wy!s)3hYDSre_V? z=SkVR)aIbZ$s}$C<-|kx?2$c{WBCHU=M(pk3S)l%hqa{gl!XJ~^T9e!xT#YkB-^Q_S`jugszi6n=2bK{_bZPMnFU8K|R^ZiH< zE|XZ7_z6X!TXAV+$Bx}%u(7gv#LCXn!?H5svm`g-J0%IaSx4N#z#4VBOM5a|iIXluBOp)*IZUq*n6>u8l`nO-HnRbxT^2g}`hY-rwpH@Rkxzc@@bcteG(WuAx(Pj*M zp$gjjO0e@*$yS)*K!2i}NJ(`r>Gav$dnz08YL8PlJBcM9Q?(~I_e>>E`%h|ckPASBQA$?0UN^%v?#B9>!WboO8Kighy#NbP*L4dfY^Y)Hax*bfQAShh!o` zEZe-gI7Wg&Qs|njQn&7wpyUi=H80;zt)MuTKWe|}L}G>$rbXjE#Z?mT82`j{Cxut| zbH8p2ZET2q;!|F6%e0l9Ck>!T*jwKHhwhfF`0;&026v|rVAUv52`Cy(IrK~_DmRAf zq5qMZ`sgm~nYpvT@x9I)040()uc+S3wNO`?N`kjr107b#fRI5HMdp|tAMmGEK>AA= zkaJ8?EiXZ_))Ym(@_;Uh)0z6n6I&00K@z7W68~(D0!KNCZe0OV3vN9QZ{CH*>Wo|LiE{DAdTiKpU5Bue_^k>u0v_AR5{0 zOV3LXxT)B{(f@&#ZeO%4T6r<6N^bfzlM|cIYFMBt*o32TN34H?wJd>m52ViXsY&tsLpmigstKRu6- zmWLij4s%;nzF=t_ShF)^%b@HRGSSwrI|(|YQ7IIG6sof0M89XPyOn*gA=F`p>~g#= z60K)O{-BV~n|JlQd6aXpu>VPZG(=mQ_Z49fIq2%Xh6bxQrw#1ADk0q?)SSd{!7L3< z?tlquliYfbhXV^}%{>ZKlNb;h*Cf!OE3x^+rdpY@?fHcTmseL6^F!fO4GnFr@(d46 z2*M?PMpbchk}^x}Cmh%@d4#@muh4RsSJ6(tt8z@6edl2NDp4GJ>hy8s;_Zu$zU?M* zY$B!b$REL5?AmW|1nkfufw&g{5M)E^-B=;{H}ZC`=s67D%G|=nW6JrfZjTt^Q8?sa zHMRT%_7NY_dEwVygLUV@c1B@hTj5_8%#ADN@~@M8|Lz<-O2AJoZ|ie&Ss_t`Lidx+ zf-ilcb~?8$n4YCXzggCYWHpg*W%jj}wgV2l$p z&6G(x`5$SJOOGvyyha^s$%_#~s|u(302du#+aIWXyoZt;R$jtj8X3OV*#lRp_`~cF z$y0@LSaCu0y^>me+u@a1XYK2z;SjAy=R*Qbr1)_2k4fwS>`ei7cKA|>4wpzZ0!k)z zl+w6i?s@hDgz_IY;L^E|6F(QMePTZmse`XI_Ae$dtxLzPYS^4NRAarzn+~4N@A1kW zfEF31IT^&T&lqBG5S3*z4?<%INFv`WBk(aevH|;p4?oZ<~mtxAIRv7 zWCu_z>mWr->qL`(|I}L<=n3=Z+sv3Dgm*Y2nqL!%jT9@{dVoB z6r(r~CgS5Ck?}scDKE3hKQOJjn#lQx_#jtX?Z0E_y}o*{9i&mKybmP%lKwum{7tk?a*v%a^S!U0*-K>7|$~%eC z?w?|x)~!RN*XuC5*cTsP`szKz{+pv=4nvZG#8os=^FgMH+B* zFegdT!5|Q0PgD?c#{cdK&)HE8*f7ku7|%&#G44zJ^eKf7Q7F6JpRUVlJB!8VVig}t z-%`KL<&~kjE8sZkAT$607gk^0R7;)eD|3q>K@;5j4ZFt7M6>@b;r$O2QiNKneRdhP z*WKMw1+R7(7?@LvZCtKwnD*2@58RK~XuO9x-4p-DoNSrI>ydLt)_t81$zHAV8iV$q zcseuiW+Vlr^(R%P`1Tya*5%O{FTSqzU3D)zzkI{f_b|GmL=zTf{h=tM{VCDk7oa1M zl{?dcJW!a|W+N$C@Y{QHNqo?H9jn`?w%^5`ft z2lgM(mjG8jy`P@-Py&)+HW)Ci&YPjyxxh@^%o(Fk0Xw_r3 zzq#{@ROxa-kJXzh>FU~OLiMjg7(RZ)T4N|Hv)2B&LAoDH6ndk}E8(%$v4nEu4sjMQ zmSc}QIf^Px>#}s3o>s6myq$(bC4;@zvscf@&V09!{M`-cj=8uQuoKAq-rND{M1fzH zg>WdXYZQl`eo5MEb(;62>|E@y=o1{rl9l@sE8v?XDD^&@^o}Om1#$EsLzsGjBtgRW zn*+sJ_Ah-FYeIgliw=Kb7U7iVBqTDhva^#_(EY+yL=$JutYK?HAn<6+SNFV9%BAL9 z@}q7bq)5m{8+%`bFK%R4HRyey5zGfw%n~ZGt!;!V{qjnDDoQ(R@>m?TgHm+9xFsA7 zlZ0Shaq02a7lOVY%BIj$J_5bOC{I?(;&L25@fg<=atIce4T=dS5vmUBif{oovJ_QJ*Lo7dg5XX5{tUQT{DWWPHdme-BVZ(&URql7v$ z0w}DuMtZ{^^+ZDh*@GD8df?FNvS3`^NKKx~uM>swt6wJ5>^;>6g6}+Z;q%MN)bM7* zddJi(#{~Sk5}apCn8%gRo@c{!r+&yx^@L{VOjv*Q@-^w1T;xjhgc*X6dqpVX9AION z!iOOem|JFWQ^gcS>neeEqaw=)+AtIf>KC7vaIW5tU$|}3%*mJqH?GbFAUAFAft109 zS1e&1rK6qhYaYY1$>`;h4UBdCBmBG<-~WxE{u<_(?0q>f=*pubG#dp2h)B$t41Q1= zz5S^sZn;~XPd($VShvFGM8A$kE|w98U6gi$9(Q*~dAs+|ew(lM=fp(iX*5&m?+Fm| ztob~*pz1nY2pWCBDaU0r;A$=hEM%}?@4D~_OJkAH2P>QFr>e-Y^`vNlF9&_s{N+TP zWU>ISP=8QOn`ZGlXmaq`M)SVA{qm2s{$Hcv^l8%L@L;a}RM!@zRK~SnCobM3GVqdG zRgUA62~KT%^kXOrTI`k;hk&y*O(~-WBm37H*Vx~zp_r$}`pPmphCQn}t?ADTc&?>h zlAlP>F4O$6hIN+O_$_y97>JRcYAWiaprXPPD$Lff9rPgh($LR8f^>~aa z-bZ@enBZDqZukZKQPT_%1T*k&OUy4$r$QCp(QhMQ@#IYC6N2 z8CB1*oAM_w$=~GJMiY2h>q{Li7iA2|kgH1~9W^mV^U8=~9mJL=KqnEJ9c&o{2k@b!%K>yfpSWz-Z7{p_Q;<@vEp1NWI*!Pk5B zBQkF}ehW+fz;)v7)1ia+G*nDkfXAT;MN*8{p6-^8V(!)XWHFP~|JynL;l=j*gX4&G zFOcy}W0-4G-iuvBb2{mYg8SL*5?=$5)a1pc!a;^D{rE@z@ngOqk{Ur8Be z5)-(nzUq{m)Tx6Y=rOX#Q(t+OHkVbYlc_Mz`*SP|%omnD`rK%IJ`iZ=>}xCLW$Rco zyp^V-lPbqJCBDVSxIrc1#Rfbx72>ey0Aza-ii~}A&PGku(R}9{YEbuM<2a*EClHUv zf5JdTWf!gGw%PrngOwFs1v>=7Bd!FQ(|7@CygBzwJ>Ywfz+LZk_sP?Lywy4X-yWg= z*z}^=S6n~S=5CU zJvGsBJ9pZ@y>g{s0w%`hQ+=H=U;7_G2*yeXn~&yHZL8M984}{PGbBG3!}B6f^K|)C zcN9k$sJLJur;O%5E&3wGx{t1h_E>=;zaJj9K3{;^z_xzZY84|Bcfb6q3eWu@K zjv;Y+DN(6>lJ-XFg_bFzKfSS&?i0o?NIyn=SMi4c{le3$t zDJQ_ugDy_aBJ)A9Z+=3P8a_Xee-Hy0ed^SryLOaJf%Cfkc_vO=BCMs}!bPumx94KuR9y8@VYe^;M1wEq?HX zeO+T-oj#2e;Zf-7;K{ygnni^o*0rU&=^KB$UIIP+useQjT4qV*@AkV?Uy79QG~|~ha(eYt zK_p=KOlk@tU3!GCK6=y)NCiG1)SC<%+UR(J110{y>k&7fKYz`=J~WoTYtS0(VEIce z#se&aTPX=0=A%y>PT?Q&a-?8)u|yCw<0X5091C`Eq^$5-3R_!(Xu}Po+yQ`J6>gz?Db1iRr&&;jvqMx5vSszmhYDh zY0|0k*~oW?{f(1^6K(cl5>1L4EQW`N*sAvJTXFrYTHMo`Yj5Ga?q_09aXo>a#I=oc{i*x4~&NFebOD!HN)NDk)L!GPuYyj7y`g3158HNKnV5x+ed*TWDR(z^zl;L$JeHExdtjuayj`yb(Ob^FY% zt7eYv-J9xHRmzYN#w%&?;p^14e3uB5ogLJ`zB0DJSEHe@*jMcgE;ZW6PW?hlZ2X|w zn7y1#4TI2OI~>@4+V*MU`0wK=SJojMN9PbfZYesFktUSFH%X~)EBaB!Hf@AmY~VcB$!!qeqBTYkGr zMN;Rc)R`A?GdBFJqWdF?zyX-lQ2MBp>nnVfo~F)voUpe}KeA;$kQG5OgeYrZmI z0rd~Ai~$4Gq`*?D{d1T8RN!;E4bWr;&($Bj%>!8|0ECV_rCEd=LPzgS@8vGH+m+|?SMHAF7Y7z1|Fr_FtLHzfvzl{W zg}a|h?*u2h9%hrOs*GB5SZ(N3x18GNs&ud;HT~EP9>easUv6cy{oO!AiX#&!lhk0F zs_qvcsO*SBo;vOGqMz7A(S`r<+Xfa1V%SJ<^PDOy zGbV}8>v;)(UcVssn|_*<8r;QuTWIr`Y|F278PIi7265?B?#0E`I%FbAZOHZ>C^w;Z zTH_?kg*=9>`1H@c=7uC&g)ovO?FVlv`}(PlP||4e@mCw~kdp8<+MWU3-4SNhmU6KV zWj6Km1g|8ld)G3_yyxqVs^AG4`Y@UaHhpM{7_8K!(}>zuPYs7u)YNLbJL?tYG+5$A zxxP`7Jb4yfH$Us6wO`9>Tz$>=9T)j@_a~Y8Un;`!`xK(C*D~SrP1&%&>|yUn(+0(4 z=1XG{&E>`T+G0n`0TtoMfLST;Y5N{>4>*~C?THUQ!Uw3zD4e?&;E&D3D+_bK$ z(Bx#KL8d!|KXp^*;ZV%OYdrfB8lXFyAd@;Lc%3{B|KuHbw=P%JMHqH88ILq6=)O^2 zmF_;DmPK3@ZTKynN4Jbho1?#j;3H#je;^)Ok+eQUVyZ;csrj`%0yD*mq zJ}fL*-cGaFN3z&xfyd=j2f?X zji;Q7fs&eQPy)qr$P}@$wvosU#u1ZA= zyA1lIYtS|iV4wmw9Si0lv2^x1mH~=$48?qv)WHY!OwSHhijYRH89oPPAh@lM|mbO>og7 zhFMxYCEFXrHJsHHK%o()(mEQ@*=j3e4UfCsYwhQ;I-*sM%aXxe{Uy#MqDxFquW$Rx zsA8Fft+;BERO{~F4t6NRN1knhQyuPRQ+7|KEj@c9OPZG4a4!L*`<*wA`MT0YDxf#vcRklq6=7 zwhc&$mU3(V0W2C$_>}k;?n)|9^WAQkB4a3FIdZHH*i40~egBT^ z!hS6XcMN6Si5FE2eb1JXu;=#2mw@xgjSQQs84!=CO6r&Y2|)4m`!yQfIr{!#p#`OOW zI_IKcP~*(S=WLF~Bz-?aF*%WFu(D~p6&TC3ovA3Fw9MHXYYfq&mh{}AgTnv*f^6DD zuf8bsq1*ASMaW%YZ)G4x)H~pWMvo;#o%5k3V|3T+gG|qH<&e~{9()TkLlPO2T7vs$_{J-)ki0&O`BFaAv81V| zKelV%p^QG9PM73tY}M*{H(b&nz5SB?``4rrxk$)6f8m@!Flx8NJfeb~cdyya6Yc3a zaGnDI0000000000yp=ddE<~|?9gRnm0VzWq;S7Tk!cp6N*IdhpmELAaAsnw8y1)yL z2gsZHNO_@cx;x`a2Sno>i^jPTrRj=>BQl=tKs3&pXq|&*&vU0KTp6ewSkJ~y?$d3XQwr5KmA-|P8&J2V$Gt}=3pxMio z?)u&4n^qOP6)Y{IL;?k>FwP^T$OLJk1V0=@JG(IUa0X>Q#Hs1N?9edFY#-A5*1u%N zQd_uaRw(GnW%7fuRD0)8ELkWNimZ^nZc*;01?>l)`EHd+BK+isAr%?z}o}r|+py+wxEw7eEywhNy|r;8vG@0Kb`^!3_)D$ig6y z2vIPBfJs#-6w0)v?aX~RkJ12%i3=sxoZn*7bed*zZ+kQI&&@gf@m(EcVmXjAVYmcp z%x^>b$}f`s6yQ5RlMwGlBALxe$;p~kPo+A7cxgMWie!$+VK01FjB^qE+DgZ^<((?8 zRGCdbGgzmLfZ){*Sy=e6xwVr?C$ia;dwC9Jd%OFMMkA&)Upx@cX4IHm%S%5tmMiPq z8_L+!`1EWdTXOGZh;aP9?d~LX{hVF$kAQ(YLI@#*5JCu{OZKk^?p>P(n-GQf^z5~> zBc~CG6ht82Y5##bXg_x*4e3WA{h;LX`(EN`{5|QExwpTkDzZZv^eRFSS(5#IqY|aw zSb6c8W}_^kg8{r#%qRR7I^9vOtr!gb@qXh_lkU;iH^oqHXL03=BD(9lA* z89$nxjAvq6!zN}D@+PQ5plSX+0|g!e@<~9Eo-8YBg(y$J3)~B%<(b8|OOK{ItqwR; z#3B-H6V4drUL6{n!eK*L9ca~owuJ<&Zh<1)GhP>4zpg%TF6zw_YxAq@uHCBQF30X% zg;id!PDoHsxwli*3(-0F6`6ZGRpCr@ z7^H{ZX4cb?eQ=|83{`P7&~FMR6n`5R>BFFgNq9*4R#kSb2q$o0Lop7j23iKxh*w62 z$nM{ZwFK>cQB$Sb))bb;s&8aF(-M_uDI`MAxeR-U7CX^VokKF|p80|GpZFYgR zpwj{_lOtP1H87)a!h|~$T?ZTv?KZfdr|y!>sl=F}%i}rqVUaz*C&uEMOifT7a>Hn~ zsm4j_+Q`bXb!^q%yq-4|;0)T%BQbM~WiQJJ3aYRwmR_)F>T1Qn|CZos97%3{+r`t%aqk6b$V>Dq# z-F4MqbW0=>r5ZsUg|y-&0IyZ{)29lb^5zP|Gx9$v||AUVO98^~bOqEe1DRjWXJhx1XBcmYd&cx8!#) z)LB3O++~%eu=%CaM$p5|>H6wdg>7!np~{Awyk3`qqQZN<9z{Lw`KqIZeO~ufCmI?b ziNp=ngCPT=`iCRoDrs}$3vTmsuJ~o7>_x0}EUH_n=$|g=e_O8YADSQRTOR0J92j2f zd%mI`SW=G+zpWXb6OAm0mq#_Pv>mS(pNucHjccEctu{|AswP&RzFF#iv)VtqGNPSd zT3DQ)c{ez}_G(GHqFq{8)y~hpA6{NuU3fRTxUTu|{^O^=K5lG&`fF=r`}6w7&d$!~ z&8?lyozFYlJ6m7s{}0MG%7YiijtUDU$3#SN$Sh76*~`c86tMmB1Nh%0Kz|!Zb;~IU z2?-D=l!3G_^UbphB1h+YH6%T~ODBAL9{GGOr_2_%hwQB; zcfcS)vXoJSLH@vf*JL>Hn7G=%Lf3?GMlN^LG2H7IJ5LUt8~oklr{x*i9f7HysdX&F z7)*5*vz3+OHKq?WQttG#Vt$iheoG_~Rt+T3j2g0gsW+wc;aC%Qc|uW``=9RvBh=8t zl3hL-CQSIiZCRTHJRWbSG`fNTZ^`@x5RK*!h`pH z8X0@wm;<%hK9ych+97p?@BOUP;122#cd|Cs*K-g48`!pB)abBZ#5?|gz*7N>!W_=$ zuIal^{_|nroDD3xf(K$AR~|5*r}1`#{szh7&fHZ5@!{` zIh2O}mv=|!o_`=cyKSXT0X>}Xzt8>256zS2Wmd+yCG0-9uI}9HGRadJd(qj{D@}tK z8g_I1*D^l;fvEdxw6`dEua{A2kgZJJ;d3*_++g}1niNsS3DFnm8oMBcT}&~7l4|0o zn-H3}aJxpsO%uZMg)yN#-&_ed-8a{Yw~#6fZj+rA4jJ1YMI1RE>C5zDQ1p<;@;D{w zvrJq?oZXA^@c7bE^3{2fRP!lJY0fR8w7VDPBI+k5dp_3dMFRO zG(%j|$YabkTy~_P2#<44tC4P5F-kS#Ja1gnD7*kYzu{TTH>pZh{n!-eTu>3vx}l3Y zvvy8_us9IE!j@EP3egiV3^~4RFj8Bpdu5JhS5(Jd;@p~WAz>w~c;5(Eav(qD3bKmO6&y^9!|!Xw#FRrb_?gK(FIf8P@=HDR-5=|$?MmeiB&o z(c(|>hE|t?WqCCLKP2jHr-+Wj;rIB8<&sWsn`KANW|-gAAvT%$q0>QYI0jC#A{B^x zA&H8Y&?p%OC#ww8429M^RM$#VjIkQ8Dd^du*ipA$RG_+W-B!$T?5T3dV%y+nv)P{0 z`&yQ)MEn07;bFuXc9-go9eC{A%3@_H-kvmaB_&8wgrUp}t}{+)Uw?PwW%KOi9t}|# zdII3sauJ+pgwA}q5LBON)0H%#SeM!(1gjU=jr75(^FuA9*7{&Q1}hPM8WYgpuSc$= z@Lh7U{Z*AO>>X#^5HX;Sh;akS!DJ?1-pRS1gm$W)yLGWwkV@E9aFhs-9*!`La3W{l z{Y5}eqf!8DZ+ICT^5|g6_oLGnoH9-ZyK_S1ot9fDyAK!x|4Tl6Y*cK$+8)lk=*%)U zMn9R)Trdg}6>^5wDD+gf^w_i6jY?LA|Cx^6m${1V*YBwoecHRSM4{Pl?6u-176&~NGC8k2c8(WVyP0X)9@~53n&=w{1i1Vcm5%iK literal 0 HcmV?d00001 diff --git a/html/html/images/heading-back.gif b/html/html/images/heading-back.gif new file mode 100644 index 0000000000000000000000000000000000000000..69c4d0e515d7d55437b81366c94d5b8cd5abd06c GIT binary patch literal 4342 zcmd^>_g52Gw1qL?m>>!fB>{2hN+{~s02u`Ga5fDKR?5Kuw_B(#L0kWfO0 z(7^(sih__HLMOBYNMi))CY12v`#0XV*1h|jz4p03-MiMcbGT?}b=UTfJqp4K1&Th5 ztZ(++(4^DAglqsK8<=z&!a9shs0Jn!19OU@G1<_RYG6t+I7Bft=`b><8km!fjH!mk z6hl+8;UTh-3EjYiYIu-p1fv<6QH@M#h6iazFv@;YDwRs7(x~)KGMz!CG3ZnVlft0U zXmlEdMq^OvG^X68(dl$5i$?H=gq?(6I6?_>A%_4W4m^!E4l4i3l}8W;1#2JwbXSjcOczBF6JTlB39vK@M85tfO866!S9UUDR8yy=P8y_3tj`7CF$9dyi z-uMLfHxuJL?$`uxg3FULF)=YYA)NdTe{xE|pA-nD_69WG9q)@~ch=hER+~NzT{%>qrJT)y4h~#Gog~Hz|6w4!Gp-9f= zhD^?;Y<+!mb5pMJUS4c&{NDawq9@yP?!|+UrkYnz>uJ$!~7oz^&ok}9tjNMAj zD99;ln(5K!?ZA&kj10?{d9O-77PGSTZUQzaFNy5@Q&IYTu#|i3Lf3r9Wy!13zB1>s zdk>`d9-ghZ*%rI+$<-*LeT;5YcVtP$a4o^`0;ku(J-04+ar%3PNWI7v zTiC|E={Qo&WM`tmrPG;ccP<5Yv~FwD>zZ*|`nkA2of?*Ib`YG(yci+=54tMObWEv=zDC#VL$5Kl%Kn0gJx2DCBqLUkX>5h*IAB_pK2U@muGLj%k<- zr+cZz0GnXmoO%bFazAG2$C;L2{w;3@B$7pgzc&Fbvdsha!twC+9YAh`4v4IS(3-a$ z5B)jX$&GZ|L(+|czK!Y%g*aQ@c>^v@4`6lud97Z97cf8TZ8> z??C;}TkGULgR3?i;{um6sn-jVjwJ^fI$y%{6{I+A(ChrJ{5wj#CmtYATjkPx;a7G?)U!~RhV1UweyqE~MC z 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 YMJjl?p;E%p*+{QeZmd2HR#UM4UsZp)^8f$< literal 0 HcmV?d00001 diff --git a/html/html/images/help.gif b/html/html/images/help.gif new file mode 100644 index 0000000000000000000000000000000000000000..83a464554e53953f794dfe1c8d0fe899fbc61e23 GIT binary patch literal 1365 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 literal 0 HcmV?d00001 diff --git a/html/html/images/logout.gif b/html/html/images/logout.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d7b78e443cb75c34e77cc8c686162f02848d997 GIT binary patch literal 1092 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 F)&Qslg+%}W literal 0 HcmV?d00001 diff --git a/html/html/images/sflogo.png b/html/html/images/sflogo.png new file mode 100644 index 0000000000000000000000000000000000000000..503b97490f020c1d7e58a0804ba27a8d7a269c3e GIT binary patch literal 2108 zcmV-C2*dY@P)(*h0x7Qh1|1-#2F|e^Q z@T(J}>DjaAoSYnjf`VjN2oOL677%C7p4+r#%lGd;kOec+Qk2BSe^01pQ{!gv$YbCY zhx+ir^_AjxC<6myZdN8RbUuIn0`z=lS}M>Ah-oUyN0$?y98v=A2Fqr@q z0}}#T^aBJCqOe@BcnQ!Zp!*)k{^L6&K?;I^01!d6 z0HuHl8|dfhv*rLj42&gUzyYOz+JR1d|Na9oCEvYw52yx+TwR>bRy7`SFc@13wWU65O2fC`|unK4i`nB-sjJs6D(Ocz@Z6A z5x`7`sQ_p`&~OM_2V4`U6>H-EHS_UQvfT0e|mcW33 z6ST00SDBm|5gSex19HGoXL`0A?{@2)cp;ard6R@Z<>;hZ_ZS z2~g_D(WBa0TJV$$6bEZ`!eux>05KtF4WLqBF$0NtAVMzNu3Wta30hnR0m}%WPk{EV zT(btK3@!NKJ_lL>MB$+!SPkJ$u>Q6CATBGeg53a0U)I);cmkHkkPHaVWe}HuGK-`X zW?TZD2g!z*03d)60Rd3~%xpjiG#$v;y%(Y9$kAiKD?n$UIT#KA0+3zCC;-AR6ve>{IVxUH5O3fy+*}nsi(9K8E`mOM zAc9+IlBR8v|C5BF%UPqU8-YOjv`fJZ`sBg*v#L1@EcCw-QP_x3Km^6ScOooqlD#Ad zw&OIDWrhnE^0Z%|f{=9W``K10?EYz}j&V59ny?fo-wYX#f0%+(3#M38FfC$0{_MLDk14@1R^a+^@Ob&RA1qdLP zAru5o_70FB$jJkB6BaF40P$*kVq#TIHAD?iq`jr}YZ-Pn_`g@d1jgU9$!#`|;yP zAU7s53ZfXo1u6!r1ag7mK$So(n8pId0Rm`b;RoimXT!G2@pVoF(CfG zdByPQ2gCEr40ks$ynX%e3)7z`-+vsqK~SS6cz9+HxV#`000hur42XZsd_QlnF`T)~ zaBTm-%dfuP;{W}GnMFYaoaaB|(FiFx*RNd*EHdGOz~ZB=r4?S9z{?AGV*~;K0%*Vn zZ}CNrpuoq)SAX67@#_)Wm#e(r&#k;q@aegTzj+q(7V&!3Ep48R6OQ9)ruRHTx!GEf9qxm>((5y;rEZr!Pq zr(9fJAvR8#GzlPp25G13*M&zPN|ygTa^wFm1`c}-k@dMu0$j+|0T2M=57=aW`s68G zBq%rt7&^d!Sig4N6L5sf$jId6iC#!P@(zF8~GvKmd(S m`9T3d0I@*AV>BQD0t^5EplX~|`sPId0000!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BUbs%vhfiKM^R%UgGKN%6^HFg@a9~>w=yr0|O(Ur;B4q z#jT^0H+nHU3bgItdDb!DgXbrSB=HUY3(J}kk_C?(vT{|p(b>wfMc~p+siP8n-mV)1 zw0A2=b?&T4%imnqu2?-!Y?5aC&;4_Mri(3;eRSgH{wvR8LZ6rW#_c-qa=1ewaumAu6 literal 0 HcmV?d00001 diff --git a/html/html/images/stock_ok.png b/html/html/images/stock_ok.png new file mode 100644 index 0000000000000000000000000000000000000000..d92d88d8a472498e358027c560cd0d750f0ffd9c GIT binary patch literal 672 zcmV;R0$=@!P)04*G{O1l660v$<2K~#9!?Uk`>6hRcme>;0IiKnvfB!Sw74N7Kme-7a7$JeZe-_7~9S_)K(4H;{?vd)%f z#|gp;-Ei%bfdPOZtl*ae7G@R!9*N2% z!KMOt3j!B-zc90S;nc;GbRFs>j^qBXpZx6T&9lAj*;c0V^CtQ?zz^W3C`nbI<nFd};v=hLZJWKQT zoBD8!k`|dt5^BJ!_RDGHM^jc;HMLR~{7=73yHn~kaDd;39kYAmwGUtb0000vdGml&%H!h?@2Owfe#af?;xPLBDSQo{2BknLg$Rf!9D)Mc+k{oVS#$ zpcM=S&~-}(@kd_dT(WgSqVH+(X-lbhBA{pwr~x`&Y;S(@_64^Pc72bh6`q3rg`KQ> zeJjg5){<&!;kScdVnlJ~&SzM@eiKVqt)aQDmO@`I<&g{6C|wBtPb0PqI39}vYG@1h)4tgp+2T) z@M#+f@id^C;$Drj7UKkC1!EyF!pvI5f}cO&^EWnK!O-*jwv#!uhr+;VM!JtqKvc;( z>U|vpRBW`cI0wc8I0TI+3eSP^6kalQWi6>|BHMd{Qsz9)O@!=l;0Rrn%rQVRWm^dy z3FD$Xio+A=$_vR=FL2jW8?Ok^yka%PQyhKkdCC_Cu@0;goCvu<$Qubqd0=vet~2NQ z2pnVVJax$;w?9h9ORq6y%9OF35A5CccaS9y(e}hfVvVhs2ppM;qwFAS=mBgjqV$$y zmE`VaRuHYQ0vF0cV{-DCv;Hr((YJdmVLp#>!iqDbiX&YTfLDP) zMP;Jy+Jx%;ptHRp>_3H8pcV9nNp4!bo>t#-@$doiXS?v5TCpfvmail}bvoU<-zO}W z$PEsVE?NdFjvZ%$++e`z)FR17?)u8mRRZ+h1Fddi=H#m(P4JVqQT*3;~ zM|4%Ov93BcB6MdBr*aMp>`I3}mK~iyA(GSyGADoygk1-R!kI2NJpVc`Kq7Rw(I6ri zfwKk6@euu?EPGI{zoh^rA|5cXJIp?!Ts{u`Q)&_7z1dq)QHkqGE;N zQ26$u85s(A8aNP1ru{z+fCl0~1Mo0#IH4)F#FcA_E0@refFr=lXiXy8^Pi%BwYDV| liAU_Rw#7soGXK`L{008Ut+%NB!kPd8002ovPDHLkV1fvjh8_R_ literal 0 HcmV?d00001 diff --git a/html/html/images/stock_up-16.png b/html/html/images/stock_up-16.png new file mode 100644 index 0000000000000000000000000000000000000000..bef754282be2ac92063ff915e16bf708d6fc84b1 GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BUbs%vhfiKM^R%UgGKN%6^HFg@ZxBsO80epwLTC7srr_ zTW2S2%wlpBaXo)Vr|BnacZ07~yy&*i+JDX}EaCpi;21DjEn%r(XNQ--rH&n&^;?zR z8SRctdYrp#M)~>OcO*3?b|@(QiB?(^qgeZ2MysH$XIb;BXBSHr-2FFsn{^@Er0Kc_ z#*w}SuXfaDTzGdx#4+c@o|-FU|H3w%E95{7Q`Ge7$1EqAC~gY0+qg1F=~eC1=Uhx{wk~{om2vmqzGnLc z&))Y-#2C-{ezRx$l5)=5U-`F26-o)OT9C5v;j=H?8#rU*AKcqr1oSk6r>mdKI;Vst E07YMuHUIzs literal 0 HcmV?d00001 diff --git a/html/html/images/table-header.gif b/html/html/images/table-header.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac9bde59451072f1b71b4619473ea96b9c3179aa GIT binary patch literal 3857 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 ^z{X@5Z%7WP9#e}!NfKAC+nbaINbLneLO zXy%Z@o79Sh^WD*ghW$_z+fKzS_|LmNP8@bKWRGzVusib_zTNg+rvJmdSKKa<{9CjNWoQpLGh@g#?g|9C{b4Q1=~m- zR@B9<2mm1F5?DyiR_L^CjF5PYf_C&-aMbf7!VqRiMQ`LFGg7%FN*)k>9uafZJ(@o~ z8bpr1tqlQ#WAC~{RJLMO#Ua-a5Q`w-*G=D!$8mJNxGN}#8W?hy9BZElv0}wNG={8| z#i<*|KLtRn!SP-}G1jaYPg{rsApVtY{0Xpt#+Hy4IkaXobog;XC^+FcB7yT19QnpQ z;bmfi6$0YXk{D+k=?jQ`O^&i8Cz=7GAuW(&L5VO_f;2hdqiqtRGJeT66rE_8K81j>Sg|Pr5rc|kg;hjyv<6? zLM5n6ylVt!+=gbj2Lbix;Q+;qb9SQl_+fvyW(WtT&u?YSXlEYp&$Py*nFhaOBi=be zMGN47!VX}Tv_K9VP|(4D%qlDA4ZqlrEcfy(1W&eygovMF_VKsbcisZCqTWm7WXiW@ zvcdciJ4AdiA~6S%vRV-d&k+LFWuxqJn}T!CrRQ8JM_w7rsou^lnn% # # - Modified Makefile for IPCop build # # # -# $Id: ipac-ng,v 1.5.2.5 2005/02/05 15:38:15 gespinasse Exp $ +# $Id: ipac-ng,v 1.5.2.6 2006/01/14 16:41:15 gespinasse Exp $ # # ############################################################################### @@ -32,12 +32,12 @@ include Config -VER = 1.28 +VER = 1.31 THISAPP = ipac-ng-$(VER) DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_SFNET)/ipac-ng -DIR_APP = $(DIR_SRC)/ipac-ng-1.28 +DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### @@ -48,7 +48,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = fc3c701ec20baa36a2865860f97fd03b +$(DL_FILE)_MD5 = 0c010550adfc140bb3990eb02f1604d0 install : $(TARGET) @@ -78,6 +78,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-iptables-1.3.1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-fetchcounter.patch cd $(DIR_APP) && sed -i -e 's%/var/lib/ipac%/var/log/ip-acct%g' configure cd $(DIR_APP) && chmod 755 configure cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls --enable-default-storage=gdbm diff --git a/make.sh b/make.sh index d825ef6cc..c72ff8c03 100644 --- a/make.sh +++ b/make.sh @@ -693,7 +693,7 @@ buildpackages() { cd $BASEDIR fi - # Create update for this version +# Create update for this version # echo "`date -u '+%b %e %T'`: Building update $VERSION tgz" | tee -a $LOGFILE # tar -cz -C $BASEDIR/build --files-from=$BASEDIR/updates/$VERSION/ROOTFILES.$MACHINE-$VERSION -f $BASEDIR/updates/$VERSION/patch.tar.gz --exclude='#*'; # chmod 755 $BASEDIR/updates/$VERSION/setup diff --git a/src/ROOTFILES.i386 b/src/ROOTFILES.i386 index 9e25ead26..4764565b5 100644 --- a/src/ROOTFILES.i386 +++ b/src/ROOTFILES.i386 @@ -24626,6 +24626,5325 @@ usr/bin/stund ## XAMPP ## opt/lampp +#opt/lampp/ +#opt/lampp/lib/ +#opt/lampp/lib/libgdbm.a +#opt/lampp/lib/libform.a +#opt/lampp/lib/libfreetype.la +#opt/lampp/lib/libintl.a +#opt/lampp/lib/libsqlite.a +#opt/lampp/lib/libapr-0.la +#opt/lampp/lib/libapr-1.la +#opt/lampp/lib/libmenu.a +#opt/lampp/lib/libsybdb.la +#opt/lampp/lib/libc-client.a +opt/lampp/lib/mysql/ +opt/lampp/lib/mysql/libheap.a +opt/lampp/lib/mysql/libmysqlclient_r.a +opt/lampp/lib/mysql/libmysqlclient.a +opt/lampp/lib/mysql/libmysys.a +opt/lampp/lib/mysql/libmysqlclient.la +opt/lampp/lib/mysql/libmyisam.a +opt/lampp/lib/mysql/libmystrings.a +opt/lampp/lib/mysql/libmysqlclient_r.la +opt/lampp/lib/mysql/libmyisammrg.a +opt/lampp/lib/mysql/libvio.a +#opt/lampp/lib/mysql/libdbug.a +#opt/lampp/lib/libexpat.a +#opt/lampp/lib/libexslt.a +#opt/lampp/lib/libapreq2.a +#opt/lampp/lib/libgdbm.la +#opt/lampp/lib/libtds.la +#opt/lampp/lib/libsybdb.a +#opt/lampp/lib/libzzip.la +#opt/lampp/lib/libxml2.a +#opt/lampp/lib/libct.a +#opt/lampp/lib/libgd.a +#opt/lampp/lib/libxslt.a +#opt/lampp/lib/libzzip.a +#opt/lampp/lib/libaprutil-0.la +#opt/lampp/lib/libaprutil-1.la +#opt/lampp/lib/libldap_r.la +#opt/lampp/lib/libpanel.a +#opt/lampp/lib/libapr-0.a +#opt/lampp/lib/libapr-1.a +#opt/lampp/lib/libgettextlib.la +#opt/lampp/lib/libzzipwrap.a +#opt/lampp/lib/libgettextsrc.la +#opt/lampp/lib/libz.a +#opt/lampp/lib/libintl.la +#opt/lampp/lib/libpng12.a +#opt/lampp/lib/libsablot.a +#opt/lampp/lib/libmenu_g.a +#opt/lampp/lib/libtdssrv.la +#opt/lampp/lib/libpanel_g.a +#opt/lampp/lib/libexslt.la +#opt/lampp/lib/libcrypto.a +#opt/lampp/lib/libapreq2.la +#opt/lampp/lib/libncurses++.a +#opt/lampp/lib/libaprutil-0.a +#opt/lampp/lib/libaprutil-1.a +#opt/lampp/lib/libxml2.la +#opt/lampp/lib/libncurses_g.a +#opt/lampp/lib/libsablot.la +#opt/lampp/lib/libapr.a +#opt/lampp/lib/libbz2.a +#opt/lampp/lib/libct.la +#opt/lampp/lib/libcurl.la +#opt/lampp/lib/libpng.a +#opt/lampp/lib/libtds.a +#opt/lampp/lib/libssl.a +#opt/lampp/lib/libxslt.la +#opt/lampp/lib/libsqlite.la +#opt/lampp/lib/liblber.la +#opt/lampp/lib/libtdssrv.a +#opt/lampp/lib/libldap.la +#opt/lampp/lib/libncurses.a +#opt/lampp/lib/libzzipwrap.la +#opt/lampp/lib/libfreetype.a +#opt/lampp/lib/libmhash.la +#opt/lampp/lib/libaprutil.a +#opt/lampp/lib/libmcrypt.la +#opt/lampp/lib/libcurl.a +#opt/lampp/lib/libform_g.a +#opt/lampp/man/ +#opt/lampp/man/man1/ +#opt/lampp/man/man1/ldapadd.1 +#opt/lampp/man/man1/ca.1 +#opt/lampp/man/man1/ec.1 +#opt/lampp/man/man1/dbish.1 +#opt/lampp/man/man1/ud.1 +#opt/lampp/man/man1/safe_mysqld.1 +#opt/lampp/man/man1/perl570delta.1 +#opt/lampp/man/man1/rdjpgcom.1 +#opt/lampp/man/man1/mysql_fix_privilege_tables.1 +#opt/lampp/man/man1/bzcmp.1 +#opt/lampp/man/man1/perlartistic.1 +#opt/lampp/man/man1/perllocale.1 +#opt/lampp/man/man1/bzegrep.1 +#opt/lampp/man/man1/bzip2.1 +#opt/lampp/man/man1/htdigest.1 +#opt/lampp/man/man1/mysqladmin.1 +#opt/lampp/man/man1/HEAD.1 +#opt/lampp/man/man1/ftptop.1 +#opt/lampp/man/man1/perlmodstyle.1 +#opt/lampp/man/man1/ftpwho.1 +#opt/lampp/man/man1/perl561delta.1 +#opt/lampp/man/man1/perlembed.1 +#opt/lampp/man/man1/xsltproc.1 +#opt/lampp/man/man1/perlmacos.1 +#opt/lampp/man/man1/perlnewmod.1 +#opt/lampp/man/man1/crl2pkcs7.1 +#opt/lampp/man/man1/ftpcount.1 +#opt/lampp/man/man1/msgmerge.1 +#opt/lampp/man/man1/ldapmodify.1 +#opt/lampp/man/man1/gettextize.1 +#opt/lampp/man/man1/ldapmodrdn.1 +#opt/lampp/man/man1/GET.1 +#opt/lampp/man/man1/curl-config.1 +#opt/lampp/man/man1/mysqld_multi.1 +#opt/lampp/man/man1/perlthrtut.1 +#opt/lampp/man/man1/a2p.1 +#opt/lampp/man/man1/djpeg.1 +#opt/lampp/man/man1/crl.1 +#opt/lampp/man/man1/dsa.1 +#opt/lampp/man/man1/enc.1 +#opt/lampp/man/man1/tiffmedian.1 +#opt/lampp/man/man1/perldbmfilter.1 +#opt/lampp/man/man1/tiff2rgba.1 +#opt/lampp/man/man1/md2.1 +#opt/lampp/man/man1/md4.1 +#opt/lampp/man/man1/md5.1 +#opt/lampp/man/man1/captoinfo.1.gz +#opt/lampp/man/man1/s2p.1 +#opt/lampp/man/man1/php.1 +#opt/lampp/man/man1/req.1 +#opt/lampp/man/man1/sha.1 +#opt/lampp/man/man1/rsa.1 +#opt/lampp/man/man1/ldappasswd.1 +#opt/lampp/man/man1/perlothrtut.1 +#opt/lampp/man/man1/infotocap.1.gz +#opt/lampp/man/man1/perlpodspec.1 +#opt/lampp/man/man1/tiff2bw.1 +#opt/lampp/man/man1/POST.1 +#opt/lampp/man/man1/tiff2ps.1 +#opt/lampp/man/man1/perl586delta.1 +#opt/lampp/man/man1/bzfgrep.1 +#opt/lampp/man/man1/ripemd160.1 +#opt/lampp/man/man1/errstr.1 +#opt/lampp/man/man1/perl581delta.1 +#opt/lampp/man/man1/pod2html.1 +#opt/lampp/man/man1/dprofpp.1 +#opt/lampp/man/man1/msgfilter.1 +#opt/lampp/man/man1/mysqlaccess.1 +#opt/lampp/man/man1/perlcygwin.1 +#opt/lampp/man/man1/perlstyle.1 +#opt/lampp/man/man1/perl572delta.1 +#opt/lampp/man/man1/perlfreebsd.1 +#opt/lampp/man/man1/tiffcmp.1 +#opt/lampp/man/man1/replace.1 +#opt/lampp/man/man1/perlrequick.1 +#opt/lampp/man/man1/perlnumber.1 +#opt/lampp/man/man1/pstruct.1 +#opt/lampp/man/man1/splain.1 +#opt/lampp/man/man1/perlmpeix.1 +#opt/lampp/man/man1/perlopenbsd.1 +#opt/lampp/man/man1/asn1parse.1 +#opt/lampp/man/man1/tset.1.gz +#opt/lampp/man/man1/ldapwhoami.1 +#opt/lampp/man/man1/find2perl.1 +#opt/lampp/man/man1/perlopentut.1 +#opt/lampp/man/man1/msql2mysql.1 +#opt/lampp/man/man1/perltootc.1 +#opt/lampp/man/man1/ldapsearch.1 +#opt/lampp/man/man1/perl5004delta.1 +#opt/lampp/man/man1/fax2ps.1 +#opt/lampp/man/man1/defncopy.1 +#opt/lampp/man/man1/isamchk.1 +#opt/lampp/man/man1/xmlcatalog.1 +#opt/lampp/man/man1/enc2xs.1 +#opt/lampp/man/man1/perlapio.1 +#opt/lampp/man/man1/perlbeos.1 +#opt/lampp/man/man1/perltru64.1 +#opt/lampp/man/man1/htpasswd.1 +#opt/lampp/man/man1/wrjpgcom.1 +#opt/lampp/man/man1/isamlog.1 +#opt/lampp/man/man1/perlnetware.1 +#opt/lampp/man/man1/perlcall.1 +#opt/lampp/man/man1/perlreftut.1 +#opt/lampp/man/man1/perlintern.1 +#opt/lampp/man/man1/piconv.1 +#opt/lampp/man/man1/sess_id.1 +#opt/lampp/man/man1/perlbook.1 +#opt/lampp/man/man1/perlboot.1 +#opt/lampp/man/man1/pod2text.1 +#opt/lampp/man/man1/libnetcfg.1 +#opt/lampp/man/man1/msgcomm.1 +#opt/lampp/man/man1/perlclib.1 +#opt/lampp/man/man1/msgconv.1 +#opt/lampp/man/man1/perldata.1 +#opt/lampp/man/man1/smime.1 +#opt/lampp/man/man1/php-config.1 +#opt/lampp/man/man1/perldgux.1 +#opt/lampp/man/man1/perldiag.1 +#opt/lampp/man/man1/phpize.1 +#opt/lampp/man/man1/msgunfmt.1 +#opt/lampp/man/man1/bzdiff.1 +#opt/lampp/man/man1/ldapdelete.1 +#opt/lampp/man/man1/perlfaq1.1 +#opt/lampp/man/man1/perlfaq2.1 +#opt/lampp/man/man1/perlfaq3.1 +#opt/lampp/man/man1/perlfaq4.1 +#opt/lampp/man/man1/perlfaq5.1 +#opt/lampp/man/man1/perlfaq6.1 +#opt/lampp/man/man1/perlfaq7.1 +#opt/lampp/man/man1/perlfaq8.1 +#opt/lampp/man/man1/perlfaq9.1 +#opt/lampp/man/man1/s_server.1 +#opt/lampp/man/man1/perlepoc.1 +#opt/lampp/man/man1/lwp-request.1 +#opt/lampp/man/man1/pal2rgb.1 +#opt/lampp/man/man1/ppm2tiff.1 +#opt/lampp/man/man1/mysqlmanager.1 +#opt/lampp/man/man1/mysqlcheck.1 +#opt/lampp/man/man1/msgexec.1 +#opt/lampp/man/man1/speed.1 +#opt/lampp/man/man1/perl583delta.1 +#opt/lampp/man/man1/spkac.1 +#opt/lampp/man/man1/c2ph.1 +#opt/lampp/man/man1/perlfork.1 +#opt/lampp/man/man1/perlform.1 +#opt/lampp/man/man1/passwd.1 +#opt/lampp/man/man1/perlaix.1 +#opt/lampp/man/man1/perlfunc.1 +#opt/lampp/man/man1/perlapi.1 +#opt/lampp/man/man1/perlhack.1 +#opt/lampp/man/man1/perlbot.1 +#opt/lampp/man/man1/perlbug.1 +#opt/lampp/man/man1/perldoc.1 +#opt/lampp/man/man1/perldos.1 +#opt/lampp/man/man1/perldsc.1 +#opt/lampp/man/man1/msggrep.1 +#opt/lampp/man/man1/perlfaq.1 +#opt/lampp/man/man1/perlgpl.1 +#opt/lampp/man/man1/perliol.1 +#opt/lampp/man/man1/perlipc.1 +#opt/lampp/man/man1/perlivp.1 +#opt/lampp/man/man1/perlhist.1 +#opt/lampp/man/man1/bzgrep.1 +#opt/lampp/man/man1/perllol.1 +#opt/lampp/man/man1/lwp-rget.1 +#opt/lampp/man/man1/perlguts.1 +#opt/lampp/man/man1/perlmod.1 +#opt/lampp/man/man1/perlobj.1 +#opt/lampp/man/man1/perlos2.1 +#opt/lampp/man/man1/gendsa.1 +#opt/lampp/man/man1/perlpod.1 +#opt/lampp/man/man1/perlqnx.1 +#opt/lampp/man/man1/perlref.1 +#opt/lampp/man/man1/perlsec.1 +#opt/lampp/man/man1/perlhpux.1 +#opt/lampp/man/man1/perlrun.1 +#opt/lampp/man/man1/perltie.1 +#opt/lampp/man/man1/perlsub.1 +#opt/lampp/man/man1/perltoc.1 +#opt/lampp/man/man1/perlsyn.1 +#opt/lampp/man/man1/perlvar.1 +#opt/lampp/man/man1/perluts.1 +#opt/lampp/man/man1/perlvms.1 +#opt/lampp/man/man1/perlvos.1 +#opt/lampp/man/man1/msginit.1 +#opt/lampp/man/man1/perlhurd.1 +#opt/lampp/man/man1/genrsa.1 +#opt/lampp/man/man1/mysqlman.1 +#opt/lampp/man/man1/perlirix.1 +#opt/lampp/man/man1/ngettext.1 +#opt/lampp/man/man1/ecparam.1 +#opt/lampp/man/man1/pod2latex.1 +#opt/lampp/man/man1/dbiprof.1 +#opt/lampp/man/man1/webalizer.1 +#opt/lampp/man/man1/h2ph.1 +#opt/lampp/man/man1/h2xs.1 +#opt/lampp/man/man1/bzless.1 +#opt/lampp/man/man1/cpan.1 +#opt/lampp/man/man1/dgst.1 +#opt/lampp/man/man1/curl.1 +#opt/lampp/man/man1/perlmint.1 +#opt/lampp/man/man1/perlamiga.1 +#opt/lampp/man/man1/bzmore.1 +#opt/lampp/man/man1/freebcp.1 +#opt/lampp/man/man1/tiffdump.1 +#opt/lampp/man/man1/bsqldb.1 +#opt/lampp/man/man1/infocmp.1.gz +#opt/lampp/man/man1/perlport.1 +#opt/lampp/man/man1/perlos390.1 +#opt/lampp/man/man1/perlos400.1 +#opt/lampp/man/man1/sgi2tiff.1 +#opt/lampp/man/man1/myisamchk.1 +#opt/lampp/man/man1/verify.1 +#opt/lampp/man/man1/toe.1.gz +#opt/lampp/man/man1/perlvmesa.1 +#opt/lampp/man/man1/myisamlog.1 +#opt/lampp/man/man1/lwp-mirror.1 +#opt/lampp/man/man1/msgen.1 +#opt/lampp/man/man1/openssl.1 +#opt/lampp/man/man1/mysql_zap.1 +#opt/lampp/man/man1/tiffdither.1 +#opt/lampp/man/man1/tiffinfo.1 +#opt/lampp/man/man1/perlpacktut.1 +#opt/lampp/man/man1/reset.1.gz +#opt/lampp/man/man1/pod2man.1 +#opt/lampp/man/man1/perltodo.1 +#opt/lampp/man/man1/perltooc.1 +#opt/lampp/man/man1/perltoot.1 +#opt/lampp/man/man1/perltrap.1 +#opt/lampp/man/man1/perlmodinstall.1 +#opt/lampp/man/man1/perl585delta.1 +#opt/lampp/man/man1/mdc2.1 +#opt/lampp/man/man1/msguniq.1 +#opt/lampp/man/man1/gettext.1 +#opt/lampp/man/man1/perlutil.1 +#opt/lampp/man/man1/tiffsplit.1 +#opt/lampp/man/man1/s_client.1 +#opt/lampp/man/man1/ocsp.1 +#opt/lampp/man/man1/ldapcompare.1 +#opt/lampp/man/man1/nseq.1 +#opt/lampp/man/man1/mysqld_safe.1 +#opt/lampp/man/man1/mysqldump.1 +#opt/lampp/man/man1/mysqlimport.1 +#opt/lampp/man/man1/perl571delta.1 +#opt/lampp/man/man1/perlmacosx.1 +#opt/lampp/man/man1/perl.1 +#opt/lampp/man/man1/pkcs12.1 +#opt/lampp/man/man1/thumbnail.1 +#opt/lampp/man/man1/perlwin32.1 +#opt/lampp/man/man1/tic.1.gz +#opt/lampp/man/man1/psed.1 +#opt/lampp/man/man1/mysql.1 +#opt/lampp/man/man1/rand.1 +#opt/lampp/man/man1/perlplan9.1 +#opt/lampp/man/man1/dsaparam.1 +#opt/lampp/man/man1/x509.1 +#opt/lampp/man/man1/perlmodlib.1 +#opt/lampp/man/man1/sha1.1 +#opt/lampp/man/man1/clear.1.gz +#opt/lampp/man/man1/tack.1 +#opt/lampp/man/man1/perlintro.1 +#opt/lampp/man/man1/dbmmanage.1 +#opt/lampp/man/man1/rgb2ycbcr.1 +#opt/lampp/man/man1/tsql.1 +#opt/lampp/man/man1/CA.pl.1 +#opt/lampp/man/man1/perlcheat.1 +#opt/lampp/man/man1/perlmachten.1 +#opt/lampp/man/man1/perlfilter.1 +#opt/lampp/man/man1/perl56delta.1 +#opt/lampp/man/man1/tiffcp.1 +#opt/lampp/man/man1/tiffgt.1 +#opt/lampp/man/man1/tiffsv.1 +#opt/lampp/man/man1/autopoint.1 +#opt/lampp/man/man1/podselect.1 +#opt/lampp/man/man1/jpegtran.1 +#opt/lampp/man/man1/perl587delta.1 +#opt/lampp/man/man1/perllexwarn.1 +#opt/lampp/man/man1/perl582delta.1 +#opt/lampp/man/man1/xsubpp.1 +#opt/lampp/man/man1/mysqlshow.1 +#opt/lampp/man/man1/perlsolaris.1 +#opt/lampp/man/man1/perlapollo.1 +#opt/lampp/man/man1/perldebug.1 +#opt/lampp/man/man1/gif2tiff.1 +#opt/lampp/man/man1/tput.1.gz +#opt/lampp/man/man1/perl573delta.1 +#opt/lampp/man/man1/mysqlhotcopy.1 +#opt/lampp/man/man1/perldelta.1 +#opt/lampp/man/man1/perldebtut.1 +#opt/lampp/man/man1/htdbm.1 +#opt/lampp/man/man1/mysqlbinlog.1 +#opt/lampp/man/man1/pl2pm.1 +#opt/lampp/man/man1/perldebguts.1 +#opt/lampp/man/man1/mysql_config.1 +#opt/lampp/man/man1/xmllint.1 +#opt/lampp/man/man1/dhparam.1 +#opt/lampp/man/man1/fax2tiff.1 +#opt/lampp/man/man1/perlreref.1 +#opt/lampp/man/man1/perlretut.1 +#opt/lampp/man/man1/pkcs7.1 +#opt/lampp/man/man1/pkcs8.1 +#opt/lampp/man/man1/s_time.1 +#opt/lampp/man/man1/lwp-download.1 +#opt/lampp/man/man1/perl5005delta.1 +#opt/lampp/man/man1/dbiproxy.1 +#opt/lampp/man/man1/version.1 +#opt/lampp/man/man1/showtable.1 +#opt/lampp/man/man1/podchecker.1 +#opt/lampp/man/man1/xml2-config.1 +#opt/lampp/man/man1/perlunicode.1 +#opt/lampp/man/man1/perlxstut.1 +#opt/lampp/man/man1/perl58delta.1 +#opt/lampp/man/man1/msgattrib.1 +#opt/lampp/man/man1/myisampack.1 +#opt/lampp/man/man1/sabcmd.1 +#opt/lampp/man/man1/ras2tiff.1 +#opt/lampp/man/man1/msgcat.1 +#opt/lampp/man/man1/perlcompile.1 +#opt/lampp/man/man1/msgcmp.1 +#opt/lampp/man/man1/perlbs2000.1 +#opt/lampp/man/man1/msgfmt.1 +#opt/lampp/man/man1/perlcc.1 +#opt/lampp/man/man1/perlce.1 +#opt/lampp/man/man1/perlcn.1 +#opt/lampp/man/man1/perljp.1 +#opt/lampp/man/man1/perlko.1 +#opt/lampp/man/man1/perlop.1 +#opt/lampp/man/man1/perlre.1 +#opt/lampp/man/man1/perltw.1 +#opt/lampp/man/man1/perlxs.1 +#opt/lampp/man/man1/perror.1 +#opt/lampp/man/man1/ciphers.1 +#opt/lampp/man/man1/pod2usage.1 +#opt/lampp/man/man1/rsautl.1 +#opt/lampp/man/man1/perlebcdic.1 +#opt/lampp/man/man1/perl584delta.1 +#opt/lampp/man/man1/cjpeg.1 +#opt/lampp/man/man1/mysql.server.1 +#opt/lampp/man/man1/prove.1 +#opt/lampp/man/man1/mysqld.1 +#opt/lampp/man/man1/perluniintro.1 +#opt/lampp/man/man1/xgettext.1 +#opt/lampp/man/man3/ +#opt/lampp/man/man3/EVP_PKEY_assign_RSA.3 +#opt/lampp/man/man3/wvline.3ncurses.gz +#opt/lampp/man/man3/B.3 +#opt/lampp/man/man3/bkgrndset.3ncurses.gz +#opt/lampp/man/man3/O.3 +#opt/lampp/man/man3/vw_printw.3ncurses.gz +#opt/lampp/man/man3/set_fieldtype_choice.3form.gz +#opt/lampp/man/man3/SSL_use_certificate_file.3 +#opt/lampp/man/man3/wnoutrefresh.3ncurses.gz +#opt/lampp/man/man3/EVP_EncryptInit.3 +#opt/lampp/man/man3/ERR_PACK.3 +#opt/lampp/man/man3/field_index.3form.gz +#opt/lampp/man/man3/mvwaddch.3ncurses.gz +#opt/lampp/man/man3/EVP_SignUpdate.3 +#opt/lampp/man/man3/d2i_X509_NAME.3 +#opt/lampp/man/man3/sigtrap.3 +#opt/lampp/man/man3/ldap_ufn_timeout.3 +#opt/lampp/man/man3/menu_driver.3menu.gz +#opt/lampp/man/man3/SSL_CTX_set_mode.3 +#opt/lampp/man/man3/mvin_wchnstr.3ncurses.gz +#opt/lampp/man/man3/pad.3ncurses.gz +#opt/lampp/man/man3/lh_node_stats.3 +#opt/lampp/man/man3/RAND_SSLeay.3 +#opt/lampp/man/man3/mod_perl.3 +#opt/lampp/man/man3/RSA_new.3 +#opt/lampp/man/man3/SSL_CTX_ctrl.3 +#opt/lampp/man/man3/TIFFCheckTile.3t +#opt/lampp/man/man3/DB.3 +#opt/lampp/man/man3/set_menu_spacing.3menu.gz +#opt/lampp/man/man3/IO.3 +#opt/lampp/man/man3/TIFFmemcmp.3t +#opt/lampp/man/man3/clear.3ncurses.gz +#opt/lampp/man/man3/has_ic.3ncurses.gz +#opt/lampp/man/man3/BN_sub_word.3 +#opt/lampp/man/man3/Net::libnetFAQ.3 +#opt/lampp/man/man3/wclear.3ncurses.gz +#opt/lampp/man/man3/ldap_parse_result.3 +#opt/lampp/man/man3/scrollok.3ncurses.gz +#opt/lampp/man/man3/SSL_want.3 +#opt/lampp/man/man3/BIO_get_retry_reason.3 +#opt/lampp/man/man3/bn.3 +#opt/lampp/man/man3/dh.3 +#opt/lampp/man/man3/ldap_dn2str.3 +#opt/lampp/man/man3/X509_NAME_ENTRY_get_object.3 +#opt/lampp/man/man3/if.3 +#opt/lampp/man/man3/libcurl-tutorial.3 +#opt/lampp/man/man3/cldap_close.3 +#opt/lampp/man/man3/ldap_dn2ufn.3 +#opt/lampp/man/man3/re.3 +#opt/lampp/man/man3/TIFFmemcpy.3t +#opt/lampp/man/man3/ui.3 +#opt/lampp/man/man3/qiflush.3ncurses.gz +#opt/lampp/man/man3/Encode::JP::JIS7.3 +#opt/lampp/man/man3/ldap_sasl_bind_s.3 +#opt/lampp/man/man3/DES_ofb_encrypt.3 +#opt/lampp/man/man3/Apache::RequestRec.3 +#opt/lampp/man/man3/EVP_MD_CTX_copy_ex EVP_MD_CTX_copy.3 +#opt/lampp/man/man3/Apache2::HookRun.3 +#opt/lampp/man/man3/pos_menu_cursor.3menu.gz +#opt/lampp/man/man3/Carp.3 +#opt/lampp/man/man3/APR::Request::Parser.3 +#opt/lampp/man/man3/BIO_get_conn_ip.3 +#opt/lampp/man/man3/TIFFVGetField.3t +#opt/lampp/man/man3/DES_quad_cksum.3 +#opt/lampp/man/man3/SelectSaver.3 +#opt/lampp/man/man3/SSL_pending.3 +#opt/lampp/man/man3/MDC2_Init.3 +#opt/lampp/man/man3/SSL_get_options.3 +#opt/lampp/man/man3/XS::Typemap.3 +#opt/lampp/man/man3/opts.3menu.gz +#opt/lampp/man/man3/ncurses.3ncurses.gz +#opt/lampp/man/man3/DES_cfb_encrypt.3 +#opt/lampp/man/man3/ldap_set_cache_options.3 +#opt/lampp/man/man3/newterm.3ncurses.gz +#opt/lampp/man/man3/i2d_PKCS8PrivateKey_nid_bio.3 +#opt/lampp/man/man3/IO::Select.3 +#opt/lampp/man/man3/SSL_want_read.3 +#opt/lampp/man/man3/Apache::TestConfig.3 +#opt/lampp/man/man3/Text::Tabs.3 +#opt/lampp/man/man3/SSL_get_error.3 +#opt/lampp/man/man3/ldap_result.3 +#opt/lampp/man/man3/BIO_do_accept.3 +#opt/lampp/man/man3/encoding.3 +#opt/lampp/man/man3/form_userptr.3form.gz +#opt/lampp/man/man3/update_panels.3curses.gz +#opt/lampp/man/man3/MD5_Update.3 +#opt/lampp/man/man3/URI::Split.3 +#opt/lampp/man/man3/slk_attr_off.3ncurses.gz +#opt/lampp/man/man3/X509_NAME_add_entry_by_NID.3 +#opt/lampp/man/man3/X509_NAME_add_entry_by_OBJ.3 +#opt/lampp/man/man3/can_change_color.3ncurses.gz +#opt/lampp/man/man3/OBJ_nid2ln.3 +#opt/lampp/man/man3/ERR_GET_LIB.3 +#opt/lampp/man/man3/OBJ_nid2sn.3 +#opt/lampp/man/man3/TIFFRGBAImageEnd.3t +#opt/lampp/man/man3/ldap_abandon.3 +#opt/lampp/man/man3/BIO_s_accept.3 +#opt/lampp/man/man3/SSL_CTX_set_verify_depth.3 +#opt/lampp/man/man3/new_field.3form.gz +#opt/lampp/man/man3/savetty.3ncurses.gz +#opt/lampp/man/man3/ExtUtils::Liblist.3 +#opt/lampp/man/man3/BF_options.3 +#opt/lampp/man/man3/curl_easy_strerror.3 +#opt/lampp/man/man3/ERR_free_strings.3 +#opt/lampp/man/man3/SSL_CTX_get_verify_callback.3 +#opt/lampp/man/man3/ldap_entry2html_search.3 +#opt/lampp/man/man3/winchnstr.3ncurses.gz +#opt/lampp/man/man3/DES_crypt.3 +#opt/lampp/man/man3/DH_set_ex_data.3 +#opt/lampp/man/man3/BIO_get_accept_port.3 +#opt/lampp/man/man3/bytes.3 +#opt/lampp/man/man3/BIO_new_buffer_ssl_connect.3 +#opt/lampp/man/man3/d2i_PKCS8PrivateKey.3 +#opt/lampp/man/man3/BIO_get_write_buf_size.3 +#opt/lampp/man/man3/wtimeout.3ncurses.gz +#opt/lampp/man/man3/mitem_value.3menu.gz +#opt/lampp/man/man3/ModPerl::RegistryLoader.3 +#opt/lampp/man/man3/DES_string_to_2keys.3 +#opt/lampp/man/man3/subwin.3ncurses.gz +#opt/lampp/man/man3/Search::Dict.3 +#opt/lampp/man/man3/touchwin.3ncurses.gz +#opt/lampp/man/man3/ASN1_OBJECT_new.3 +#opt/lampp/man/man3/wsetscrreg.3ncurses.gz +#opt/lampp/man/man3/DBI::Const::GetInfoReturn.3 +#opt/lampp/man/man3/vline_set.3ncurses.gz +#opt/lampp/man/man3/SSL_CTX_free.3 +#opt/lampp/man/man3/File::DosGlob.3 +#opt/lampp/man/man3/menu.3menu.gz +#opt/lampp/man/man3/vwprintw.3ncurses.gz +#opt/lampp/man/man3/mvwinchstr.3ncurses.gz +#opt/lampp/man/man3/hide_panel.3curses.gz +#opt/lampp/man/man3/TIFFRGBAImageGet.3t +#opt/lampp/man/man3/d2i_PKCS8PrivateKey_fp.3 +#opt/lampp/man/man3/cursor.3form.gz +#opt/lampp/man/man3/extensions.3ncurses.gz +#opt/lampp/man/man3/BIO_set_callback_arg.3 +#opt/lampp/man/man3/getpary.3ncurses.gz +#opt/lampp/man/man3/DES_ede3_cbcm_encrypt.3 +#opt/lampp/man/man3/diagnostics.3 +#opt/lampp/man/man3/SSL_get_accept_state.3 +#opt/lampp/man/man3/File::Copy.3 +#opt/lampp/man/man3/ModPerl::PerlRun.3 +#opt/lampp/man/man3/winsertln.3ncurses.gz +#opt/lampp/man/man3/HMAC.3 +#opt/lampp/man/man3/set_menu_items.3menu.gz +#opt/lampp/man/man3/BN_BLINDING_convert.3 +#opt/lampp/man/man3/mvgetn_wstr.3ncurses.gz +#opt/lampp/man/man3/form_field_validation.3form.gz +#opt/lampp/man/man3/delscreen.3ncurses.gz +#opt/lampp/man/man3/MIME::QuotedPrint.3 +#opt/lampp/man/man3/BIO_set_ssl.3 +#opt/lampp/man/man3/is_wintouched.3ncurses.gz +#opt/lampp/man/man3/SSL_CTX_set_default_passwd_cb.3 +#opt/lampp/man/man3/SSL_CTX_sess_timeouts.3 +#opt/lampp/man/man3/SSL_has_matching_session_id.3 +#opt/lampp/man/man3/SSL_CTX_sess_cb_hits.3 +#opt/lampp/man/man3/mousemask.3ncurses.gz +#opt/lampp/man/man3/curl_share_strerror.3 +#opt/lampp/man/man3/EVP_DigestInit_ex.3 +#opt/lampp/man/man3/Term::Complete.3 +#opt/lampp/man/man3/reset_shell_mode.3ncurses.gz +#opt/lampp/man/man3/vid_puts.3ncurses.gz +#opt/lampp/man/man3/HTTP::Response.3 +#opt/lampp/man/man3/tputs.3ncurses.gz +#opt/lampp/man/man3/new_menu.3menu.gz +#opt/lampp/man/man3/ldap_next_entry.3 +#opt/lampp/man/man3/ldap_modrdn2_s.3 +#opt/lampp/man/man3/lwptut.3 +#opt/lampp/man/man3/flash.3ncurses.gz +#opt/lampp/man/man3/erasechar.3ncurses.gz +#opt/lampp/man/man3/slk_attr_set.3ncurses.gz +#opt/lampp/man/man3/curs_set.3ncurses.gz +#opt/lampp/man/man3/DBM_Filter::int32.3 +#opt/lampp/man/man3/bn_sqr_comba4.3 +#opt/lampp/man/man3/bn_sqr_comba8.3 +#opt/lampp/man/man3/Math::BigInt::Trace.3 +#opt/lampp/man/man3/delwin.3ncurses.gz +#opt/lampp/man/man3/BIO_rw_filename.3 +#opt/lampp/man/man3/UI_ctrl.3 +#opt/lampp/man/man3/ldap_sort_entries.3 +#opt/lampp/man/man3/echo_wchar.3ncurses.gz +#opt/lampp/man/man3/Time::gmtime.3 +#opt/lampp/man/man3/i2d_DHparams.3 +#opt/lampp/man/man3/menu_win.3menu.gz +#opt/lampp/man/man3/APR::Bucket.3 +#opt/lampp/man/man3/ber_put_string.3 +#opt/lampp/man/man3/lh_doall_arg.3 +#opt/lampp/man/man3/mitem_current.3menu.gz +#opt/lampp/man/man3/ldap_dn2dcedn.3 +#opt/lampp/man/man3/ldap_free_templates.3 +#opt/lampp/man/man3/mod_perl2.3 +#opt/lampp/man/man3/printw.3ncurses.gz +#opt/lampp/man/man3/ldap_msgtype.3 +#opt/lampp/man/man3/SSL_CIPHER_description.3 +#opt/lampp/man/man3/ldap_vals2text.3 +#opt/lampp/man/man3/BN_is_bit_set.3 +#opt/lampp/man/man3/ASN1_STRING_cmp.3 +#opt/lampp/man/man3/mvwadd_wchnstr.3ncurses.gz +#opt/lampp/man/man3/ldap_parse_extended_result.3 +#opt/lampp/man/man3/crypto.3 +#opt/lampp/man/man3/ASN1_STRING_dup.3 +#opt/lampp/man/man3/DHparams_print.3 +#opt/lampp/man/man3/IPC::Semaphore.3 +#opt/lampp/man/man3/EVP_PKEY_free.3 +#opt/lampp/man/man3/BIO_find_type.3 +#opt/lampp/man/man3/Pod::Plainer.3 +#opt/lampp/man/man3/X509_NAME_add_entry_by_txt.3 +#opt/lampp/man/man3/killchar.3ncurses.gz +#opt/lampp/man/man3/BIO_write.3 +#opt/lampp/man/man3/UI_construct_prompt UI_add_user_data.3 +#opt/lampp/man/man3/Encode.3 +#opt/lampp/man/man3/ModPerl::RegistryBB.3 +#opt/lampp/man/man3/EVP_CIPHER_CTX_key_length.3 +#opt/lampp/man/man3/ldap_explode_dns.3 +#opt/lampp/man/man3/SSL_CTX_sess_connect.3 +#opt/lampp/man/man3/set_form_page.3form.gz +#opt/lampp/man/man3/ASN1_STRING_type.3 +#opt/lampp/man/man3/curl_easy_setopt.3 +#opt/lampp/man/man3/ldap_ufn_search_c.3 +#opt/lampp/man/man3/ldap_free_searchprefs.3 +#opt/lampp/man/man3/ldap_ufn_search_s.3 +#opt/lampp/man/man3/BN_BLINDING_invert_ex.3 +#opt/lampp/man/man3/wprintw.3ncurses.gz +#opt/lampp/man/man3/keybound.3ncurses.gz +#opt/lampp/man/man3/File::Find.3 +#opt/lampp/man/man3/wins_wch.3ncurses.gz +#opt/lampp/man/man3/HMAC_Final.3 +#opt/lampp/man/man3/Text::Wrap.3 +#opt/lampp/man/man3/TIFFReadDirectory.3t +#opt/lampp/man/man3/bkgd.3ncurses.gz +#opt/lampp/man/man3/Test::Harness::Point.3 +#opt/lampp/man/man3/APR.3 +#opt/lampp/man/man3/BN_BLINDING_new.3 +#opt/lampp/man/man3/mvwscanw.3ncurses.gz +#opt/lampp/man/man3/ASN1_STRING_new.3 +#opt/lampp/man/man3/CGI.3 +#opt/lampp/man/man3/SSL_CTX_sess_misses.3 +#opt/lampp/man/man3/regex.3 +#opt/lampp/man/man3/DBI.3 +#opt/lampp/man/man3/DSA_get_ex_new_index.3 +#opt/lampp/man/man3/OPENSSL_no_config.3 +#opt/lampp/man/man3/APR::Table.3 +#opt/lampp/man/man3/BIO_ptr_ctrl.3 +#opt/lampp/man/man3/overwrite.3ncurses.gz +#opt/lampp/man/man3/set_menu_win.3menu.gz +#opt/lampp/man/man3/SSL_set_verify_result.3 +#opt/lampp/man/man3/lh_retrieve.3 +#opt/lampp/man/man3/TIFFReadRawStrip.3t +#opt/lampp/man/man3/EVP_DigestInit.3 +#opt/lampp/man/man3/mitem_visible.3menu.gz +#opt/lampp/man/man3/RSA_set_method.3 +#opt/lampp/man/man3/mvwaddnstr.3ncurses.gz +#opt/lampp/man/man3/EVP_MD_CTX_md.3 +#opt/lampp/man/man3/i2d_PKCS8PrivateKey_nid_fp.3 +#opt/lampp/man/man3/deleteln.3ncurses.gz +#opt/lampp/man/man3/ERR_reason_error_string.3 +#opt/lampp/man/man3/unpost_form.3form.gz +#opt/lampp/man/man3/SMIME_read_PKCS7.3 +#opt/lampp/man/man3/SSL_get_info_callback.3 +#opt/lampp/man/man3/Cwd.3 +#opt/lampp/man/man3/CGI::Carp.3 +#opt/lampp/man/man3/ASN1_STRING_set.3 +#opt/lampp/man/man3/panel_hidden.3curses.gz +#opt/lampp/man/man3/syncok.3ncurses.gz +#opt/lampp/man/man3/_tracef.3ncurses.gz +#opt/lampp/man/man3/File::Spec::Unix.3 +#opt/lampp/man/man3/Env.3 +#opt/lampp/man/man3/Sys::Syslog.3 +#opt/lampp/man/man3/BIO_should_write.3 +#opt/lampp/man/man3/Memoize::ExpireFile.3 +#opt/lampp/man/man3/Pod::ParseLink.3 +#opt/lampp/man/man3/ldap_explode_rdn.3 +#opt/lampp/man/man3/getsyx.3ncurses.gz +#opt/lampp/man/man3/BN_mask_bits.3 +#opt/lampp/man/man3/DBI::Profile.3 +#opt/lampp/man/man3/Encode::CN::HZ.3 +#opt/lampp/man/man3/ldap_modrdn2.3 +#opt/lampp/man/man3/ldap_modrdn2_s +#opt/lampp/man/man3/field_back.3form.gz +#opt/lampp/man/man3/set_form_opts.3form.gz +#opt/lampp/man/man3/MD2.3 +#opt/lampp/man/man3/Tie::IxHash.3 +#opt/lampp/man/man3/MD4.3 +#opt/lampp/man/man3/MD5.3 +#opt/lampp/man/man3/curl_multi_fdset.3 +#opt/lampp/man/man3/menu_userptr.3menu.gz +#opt/lampp/man/man3/File::Glob.3 +#opt/lampp/man/man3/ldap_modrdn_s.3 +#opt/lampp/man/man3/LWP.3 +#opt/lampp/man/man3/SSL_CIPHER_get_bits.3 +#opt/lampp/man/man3/ExtUtils::Command.3 +#opt/lampp/man/man3/RAND_write_file.3 +#opt/lampp/man/man3/UI_free.3 +#opt/lampp/man/man3/wresize.3ncurses.gz +#opt/lampp/man/man3/mvaddchstr.3ncurses.gz +#opt/lampp/man/man3/TIFFNumberOfStrips.3t +#opt/lampp/man/man3/ungetmouse.3ncurses.gz +#opt/lampp/man/man3/PEM.3 +#opt/lampp/man/man3/hook.3menu.gz +#opt/lampp/man/man3/menu_request_name.3menu.gz +#opt/lampp/man/man3/DES_ncbc_encrypt.3 +#opt/lampp/man/man3/ODBM_File.3 +#opt/lampp/man/man3/B::Concise.3 +#opt/lampp/man/man3/RC4.3 +#opt/lampp/man/man3/ldap_translate_to_t61.3 +#opt/lampp/man/man3/ldap_next_tmplcol.3 +#opt/lampp/man/man3/Net::servent.3 +#opt/lampp/man/man3/SSL_get_msg_callback_arg.3 +#opt/lampp/man/man3/MDC2.3 +#opt/lampp/man/man3/ungetch.3ncurses.gz +#opt/lampp/man/man3/RSA_generate_key.3 +#opt/lampp/man/man3/SSL.3 +#opt/lampp/man/man3/items.3menu.gz +#opt/lampp/man/man3/SSL_COMP_add_compression_method.3 +#opt/lampp/man/man3/unget_wch.3ncurses.gz +#opt/lampp/man/man3/curl_formadd.3 +#opt/lampp/man/man3/URI.3 +#opt/lampp/man/man3/add_wchstr.3ncurses.gz +#opt/lampp/man/man3/item_visible.3menu.gz +#opt/lampp/man/man3/init_color.3ncurses.gz +#opt/lampp/man/man3/des_read_2passwords.3 +#opt/lampp/man/man3/nocbreak.3ncurses.gz +#opt/lampp/man/man3/B::Disassembler.3 +#opt/lampp/man/man3/mvhline_set.3ncurses.gz +#opt/lampp/man/man3/field_fore.3form.gz +#opt/lampp/man/man3/ldap_url_search_st.3 +#opt/lampp/man/man3/post.3menu.gz +#opt/lampp/man/man3/EVP_CIPHER_block_size.3 +#opt/lampp/man/man3/curl_multi_strerror.3 +#opt/lampp/man/man3/ldap_oc2template.3 +#opt/lampp/man/man3/slk_attr_on.3ncurses.gz +#opt/lampp/man/man3/MD2_Final.3 +#opt/lampp/man/man3/CRYPTO_set_id_callback.3 +#opt/lampp/man/man3/Encode::PerlIO.3 +#opt/lampp/man/man3/BIO_get_conn_int_port.3 +#opt/lampp/man/man3/DH_new_method.3 +#opt/lampp/man/man3/BN_BLINDING_update.3 +#opt/lampp/man/man3/HTML::HeadParser.3 +#opt/lampp/man/man3/curses_version.3ncurses.gz +#opt/lampp/man/man3/ldap_next_tmplrow.3 +#opt/lampp/man/man3/page.3form.gz +#opt/lampp/man/man3/BN_mod_word.3 +#opt/lampp/man/man3/cldap_search_s.3 +#opt/lampp/man/man3/TIFFWriteTile.3t +#opt/lampp/man/man3/NEXT.3 +#opt/lampp/man/man3/inopts.3ncurses.gz +#opt/lampp/man/man3/Digest::MD5.3 +#opt/lampp/man/man3/File::Compare.3 +#opt/lampp/man/man3/BIO_read_filename.3 +#opt/lampp/man/man3/libtiff.3t +#opt/lampp/man/man3/Apache2::Module.3 +#opt/lampp/man/man3/bindtextdomain.3 +#opt/lampp/man/man3/bio.3 +#opt/lampp/man/man3/SSL_get_current_cipher.3 +#opt/lampp/man/man3/meta.3ncurses.gz +#opt/lampp/man/man3/ldap_dn2ad_canonical.3 +#opt/lampp/man/man3/Test::Harness.3 +#opt/lampp/man/man3/EVP_MD_CTX_copy.3 +#opt/lampp/man/man3/ExtUtils::MM.3 +#opt/lampp/man/man3/ExtUtils::MY.3 +#opt/lampp/man/man3/des.3 +#opt/lampp/man/man3/ldap_init_searchprefs_buf.3 +#opt/lampp/man/man3/bn_print.3 +#opt/lampp/man/man3/item_opts_on.3menu.gz +#opt/lampp/man/man3/dsa.3 +#opt/lampp/man/man3/CGI::Fast.3 +#opt/lampp/man/man3/err.3 +#opt/lampp/man/man3/ber_get_boolean.3 +#opt/lampp/man/man3/evp.3 +#opt/lampp/man/man3/SSL_want_nothing.3 +#opt/lampp/man/man3/DES_ede2_cbc_encrypt.3 +#opt/lampp/man/man3/BIO_append_filename.3 +#opt/lampp/man/man3/WWW::RobotRules.3 +#opt/lampp/man/man3/TIFFWriteEncodedStrip.3t +#opt/lampp/man/man3/DES_set_key_unchecked.3 +#opt/lampp/man/man3/APR::Request::Cookie.3 +#opt/lampp/man/man3/Bundle::Apache2.3 +#opt/lampp/man/man3/kernel.3ncurses.gz +#opt/lampp/man/man3/BIO_get_ssl.3 +#opt/lampp/man/man3/lib.3 +#opt/lampp/man/man3/md5.3 +#opt/lampp/man/man3/DSA_print_fp.3 +#opt/lampp/man/man3/ber_next_element.3 +#opt/lampp/man/man3/mvwinnwstr.3ncurses.gz +#opt/lampp/man/man3/opts.3form.gz +#opt/lampp/man/man3/IPC::Msg.3 +#opt/lampp/man/man3/wadd_wchnstr.3ncurses.gz +#opt/lampp/man/man3/new_page.3form.gz +#opt/lampp/man/man3/lber-types.3 +#opt/lampp/man/man3/form_new.3form.gz +#opt/lampp/man/man3/curl_global_init.3 +#opt/lampp/man/man3/Hash::Util.3 +#opt/lampp/man/man3/ops.3 +#opt/lampp/man/man3/pem.3 +#opt/lampp/man/man3/nodelay.3ncurses.gz +#opt/lampp/man/man3/APR::Error.3 +#opt/lampp/man/man3/rc4.3 +#opt/lampp/man/man3/BIO_set_conn_port.3 +#opt/lampp/man/man3/RAND_screen.3 +#opt/lampp/man/man3/SSL_set_quiet_shutdown.3 +#opt/lampp/man/man3/RSA_sign.3 +#opt/lampp/man/man3/menu_opts.3menu.gz +#opt/lampp/man/man3/SSL_get_verify_callback.3 +#opt/lampp/man/man3/ber_alloc_t.3 +#opt/lampp/man/man3/sha.3 +#opt/lampp/man/man3/rsa.3 +#opt/lampp/man/man3/BIO_make_bio_pair.3 +#opt/lampp/man/man3/RSA_size.3 +#opt/lampp/man/man3/ssl.3 +#opt/lampp/man/man3/TIFFPrintDirectory.3t +#opt/lampp/man/man3/Attribute::Handlers::demo::Demo.3 +#opt/lampp/man/man3/DSA_print.3 +#opt/lampp/man/man3/set_field_type.3form.gz +#opt/lampp/man/man3/BIO_set_ssl_mode.3 +#opt/lampp/man/man3/BN_copy.3 +#opt/lampp/man/man3/mvvline.3ncurses.gz +#opt/lampp/man/man3/attr_get.3ncurses.gz +#opt/lampp/man/man3/DH_get_ex_data.3 +#opt/lampp/man/man3/SSL_get_default_timeout.3 +#opt/lampp/man/man3/DHparams_print_fp.3 +#opt/lampp/man/man3/DSA_set_method.3 +#opt/lampp/man/man3/use_default_colors.3ncurses.gz +#opt/lampp/man/man3/use_extended_names.3ncurses.gz +#opt/lampp/man/man3/libexslt.3 +#opt/lampp/man/man3/SSL_CTX_get_max_cert_list.3 +#opt/lampp/man/man3/ldap_kerberos_bind_s.3 +#opt/lampp/man/man3/win_wchstr.3ncurses.gz +#opt/lampp/man/man3/ber_flush.3 +#opt/lampp/man/man3/i2d_X509_CRL_fp.3 +#opt/lampp/man/man3/ldap_unbind_ext_s.3 +#opt/lampp/man/man3/SSL_use_RSAPrivateKey_ASN1.3 +#opt/lampp/man/man3/APR::Date.3 +#opt/lampp/man/man3/APR::Status.3 +#opt/lampp/man/man3/SSL_SESSION_free.3 +#opt/lampp/man/man3/ldap_syntax2name.3 +#opt/lampp/man/man3/ecdsa.3 +#opt/lampp/man/man3/UI_add_input_boolean.3 +#opt/lampp/man/man3/baudrate.3ncurses.gz +#opt/lampp/man/man3/ldap_matchingrule_free.3 +#opt/lampp/man/man3/BN_clear_bit.3 +#opt/lampp/man/man3/wdeleteln.3ncurses.gz +#opt/lampp/man/man3/ERR_print_errors_fp.3 +#opt/lampp/man/man3/set_new_page.3form.gz +#opt/lampp/man/man3/APR::Request::Error.3 +#opt/lampp/man/man3/BN_mod_inverse.3 +#opt/lampp/man/man3/URI::Escape.3 +#opt/lampp/man/man3/TIFFDefaultTileSize.3t +#opt/lampp/man/man3/Encode::Unicode.3 +#opt/lampp/man/man3/Term::ReadKey.3 +#opt/lampp/man/man3/RSA_set_default_method.3 +#opt/lampp/man/man3/Config.3 +#opt/lampp/man/man3/APR::Finfo.3 +#opt/lampp/man/man3/ERR_peek_last_error_line_data.3 +#opt/lampp/man/man3/menu_name.3menu.gz +#opt/lampp/man/man3/ldap_schema.3 +#opt/lampp/man/man3/TIFFCurrentStrip.3t +#opt/lampp/man/man3/X509_NAME_print.3 +#opt/lampp/man/man3/d2i_SSL_SESSION.3 +#opt/lampp/man/man3/TIFFComputeStrip.3t +#opt/lampp/man/man3/ExtUtils::XSBuilder.3 +#opt/lampp/man/man3/SSL_new.3 +#opt/lampp/man/man3/TIFFmemory.3t +#opt/lampp/man/man3/curl_multi_cleanup.3 +#opt/lampp/man/man3/DH_generate_parameters.3 +#opt/lampp/man/man3/menu_spacing.3menu.gz +#opt/lampp/man/man3/SSL_rstate_string_long.3 +#opt/lampp/man/man3/SSL_get_ssl_method.3 +#opt/lampp/man/man3/ERR_load_crypto_strings.3 +#opt/lampp/man/man3/has_key.3ncurses.gz +#opt/lampp/man/man3/Archive::Tar::File.3 +#opt/lampp/man/man3/wsyncdown.3ncurses.gz +#opt/lampp/man/man3/wborder_set.3ncurses.gz +#opt/lampp/man/man3/ldap_modify.3 +#opt/lampp/man/man3/ldap_search_s.3 +#opt/lampp/man/man3/form_field_info.3form.gz +#opt/lampp/man/man3/I18N::LangTags::Detect.3 +#opt/lampp/man/man3/ripoffline.3ncurses.gz +#opt/lampp/man/man3/Apache2::Filter.3 +#opt/lampp/man/man3/DES_ecb_encrypt.3 +#opt/lampp/man/man3/_nc_tracebits.3ncurses.gz +#opt/lampp/man/man3/TIFFVStripSize.3t +#opt/lampp/man/man3/warnings.3 +#opt/lampp/man/man3/Text::Balanced.3 +#opt/lampp/man/man3/ModPerl::Util.3 +#opt/lampp/man/man3/set_menu_grey.3menu.gz +#opt/lampp/man/man3/bn_expand2.3 +#opt/lampp/man/man3/touchline.3ncurses.gz +#opt/lampp/man/man3/Pod::Perldoc::ToNroff.3 +#opt/lampp/man/man3/TIFFReverseBits.3t +#opt/lampp/man/man3/SSL_SESSION_get_time.3 +#opt/lampp/man/man3/EVP_get_cipherbyname.3 +#opt/lampp/man/man3/ldap_first_attribute.3 +#opt/lampp/man/man3/SSL_CTX_set_ex_data.3 +#opt/lampp/man/man3/ldap_build_filter.3 +#opt/lampp/man/man3/TIFFComputeTile.3t +#opt/lampp/man/man3/bn_sub_words.3 +#opt/lampp/man/man3/mvwinsch.3ncurses.gz +#opt/lampp/man/man3/menu_requestname.3menu.gz +#opt/lampp/man/man3/DBM_Filter::encode.3 +#opt/lampp/man/man3/scale_menu.3menu.gz +#opt/lampp/man/man3/Apache2::Access.3 +#opt/lampp/man/man3/flushinp.3ncurses.gz +#opt/lampp/man/man3/RAND_set_rand_method.3 +#opt/lampp/man/man3/ldap_modrdn.3 +#opt/lampp/man/man3/ldap_modrdn_s +#opt/lampp/man/man3/set_menu_mark.3menu.gz +#opt/lampp/man/man3/RSA_padding_add_none.3 +#opt/lampp/man/man3/RSA_padding_check_SSLv23.3 +#opt/lampp/man/man3/BIO_reset.3 +#opt/lampp/man/man3/SSL_CTX_set_tmp_dh_callback.3 +#opt/lampp/man/man3/DH_set_default_method.3 +#opt/lampp/man/man3/SHA1.3 +#opt/lampp/man/man3/Apache::TestUtil.3 +#opt/lampp/man/man3/IO::File.3 +#opt/lampp/man/man3/curl_version_info.3 +#opt/lampp/man/man3/Apache2::MPM.3 +#opt/lampp/man/man3/EVP_PKEY_new.3 +#opt/lampp/man/man3/BN_free.3 +#opt/lampp/man/man3/set_field_status.3form.gz +#opt/lampp/man/man3/BF_ecb_encrypt.3 +#opt/lampp/man/man3/ldap_8859_to_t61.3 +#opt/lampp/man/man3/SSL_CTX_add_client_CA.3 +#opt/lampp/man/man3/TIFFSwabShort.3t +#opt/lampp/man/man3/free_menu.3menu.gz +#opt/lampp/man/man3/Net::FTP::A.3 +#opt/lampp/man/man3/Net::FTP::E.3 +#opt/lampp/man/man3/Net::FTP::I.3 +#opt/lampp/man/man3/Net::FTP::L.3 +#opt/lampp/man/man3/Apache2::Log.3 +#opt/lampp/man/man3/mvaddnwstr.3ncurses.gz +#opt/lampp/man/man3/panel_below.3curses.gz +#opt/lampp/man/man3/mvadd_wchstr.3ncurses.gz +#opt/lampp/man/man3/DBI::PurePerl.3 +#opt/lampp/man/man3/DSA_do_verify.3 +#opt/lampp/man/man3/curl_share_init.3 +#opt/lampp/man/man3/SSL_want_write.3 +#opt/lampp/man/man3/DH_OpenSSL.3 +#opt/lampp/man/man3/SSL_CTX_use_certificate.3 +#opt/lampp/man/man3/GDBM_File.3 +#opt/lampp/man/man3/format.3menu.gz +#opt/lampp/man/man3/ldap_first_reference.3 +#opt/lampp/man/man3/Win32.3 +#opt/lampp/man/man3/Apache2::URI.3 +#opt/lampp/man/man3/User::grent.3 +#opt/lampp/man/man3/move.3ncurses.gz +#opt/lampp/man/man3/ASN1_STRING_length.3 +#opt/lampp/man/man3/getyx.3ncurses.gz +#opt/lampp/man/man3/Bundle::DBI.3 +#opt/lampp/man/man3/File::Path.3 +#opt/lampp/man/man3/EVP_MD_CTX_init.3 +#opt/lampp/man/man3/TIFFOpen.3t +#opt/lampp/man/man3/BN_RECP_CTX_new.3 +#opt/lampp/man/man3/wgetbkgrnd.3ncurses.gz +#opt/lampp/man/man3/set_form_init.3form.gz +#opt/lampp/man/man3/setterm.3ncurses.gz +#opt/lampp/man/man3/SSL_alert_desc_string_long.3 +#opt/lampp/man/man3/mvwgetnstr.3ncurses.gz +#opt/lampp/man/man3/ber_put_int.3 +#opt/lampp/man/man3/TIFFmemset.3t +#opt/lampp/man/man3/BIO_should_retry.3 +#opt/lampp/man/man3/Net::HTTP::NB.3 +#opt/lampp/man/man3/ldap_unbind_s.3 +#opt/lampp/man/man3/BN_RECP_CTX_free.3 +#opt/lampp/man/man3/getch.3ncurses.gz +#opt/lampp/man/man3/lh_delete.3 +#opt/lampp/man/man3/keyname.3ncurses.gz +#opt/lampp/man/man3/wgetch.3ncurses.gz +#opt/lampp/man/man3/APR::URI.3 +#opt/lampp/man/man3/del_panel.3curses.gz +#opt/lampp/man/man3/RSA_padding_add_PKCS1_OAEP.3 +#opt/lampp/man/man3/BN_RECP_CTX_set.3 +#opt/lampp/man/man3/PerlIO::scalar.3 +#opt/lampp/man/man3/bottom_panel.3curses.gz +#opt/lampp/man/man3/SSL_CTX_set_default_passwd_cb_userdata.3 +#opt/lampp/man/man3/Getopt::Long.3 +#opt/lampp/man/man3/endwin.3ncurses.gz +#opt/lampp/man/man3/des_read_pw.3 +#opt/lampp/man/man3/d2i_X509_fp.3 +#opt/lampp/man/man3/HTML::Tagset.3 +#opt/lampp/man/man3/Bundle::LWP.3 +#opt/lampp/man/man3/lh_stats_bio.3 +#opt/lampp/man/man3/ldap_next_searchobj.3 +#opt/lampp/man/man3/ber_put_seq.3 +#opt/lampp/man/man3/ber_put_set.3 +#opt/lampp/man/man3/SSL_CTX_use_PrivateKey_file.3 +#opt/lampp/man/man3/ERR_pop_to_mark.3 +#opt/lampp/man/man3/OBJ_txt2nid.3 +#opt/lampp/man/man3/panel.3curses.gz +#opt/lampp/man/man3/OBJ_txt2obj.3 +#opt/lampp/man/man3/RSA_padding_add_PKCS1_type_1.3 +#opt/lampp/man/man3/RSA_padding_add_PKCS1_type_2.3 +#opt/lampp/man/man3/BF_ofb64_encrypt.3 +#opt/lampp/man/man3/Encode::MIME::Header.3 +#opt/lampp/man/man3/hook.3form.gz +#opt/lampp/man/man3/ber_put_ostring.3 +#opt/lampp/man/man3/AutoSplit.3 +#opt/lampp/man/man3/wattr_get.3ncurses.gz +#opt/lampp/man/man3/EVP_MD_CTX_block_size.3 +#opt/lampp/man/man3/UI_construct_prompt.3 +#opt/lampp/man/man3/mvwinchnstr.3ncurses.gz +#opt/lampp/man/man3/ldap_init_templates_buf.3 +#opt/lampp/man/man3/BN_MONT_CTX_copy.3 +#opt/lampp/man/man3/Safe.3 +#opt/lampp/man/man3/ldap_str2attributetype.3 +#opt/lampp/man/man3/init_pair.3ncurses.gz +#opt/lampp/man/man3/BIO_get_bind_mode.3 +#opt/lampp/man/man3/CRYPTO_lock.3 +#opt/lampp/man/man3/SSL_CTX_use_certificate_ASN1.3 +#opt/lampp/man/man3/BN_bn2bin.3 +#opt/lampp/man/man3/SSL_CTX_sess_set_get_cb.3 +#opt/lampp/man/man3/BIO_f_base64.3 +#opt/lampp/man/man3/X509_NAME_get_index_by_NID.3 +#opt/lampp/man/man3/X509_NAME_get_index_by_OBJ.3 +#opt/lampp/man/man3/BIO_set_cipher.3 +#opt/lampp/man/man3/APR::ThreadMutex.3 +#opt/lampp/man/man3/Win32::DBIODBC.3 +#opt/lampp/man/man3/menu_hook.3menu.gz +#opt/lampp/man/man3/Devel::PPPort.3 +#opt/lampp/man/man3/APR::Request::Hook.3 +#opt/lampp/man/man3/BN_bn2dec.3 +#opt/lampp/man/man3/SSL_CTX_flush_sessions.3 +#opt/lampp/man/man3/SSL_get_ex_new_index.3 +#opt/lampp/man/man3/BN_init.3 +#opt/lampp/man/man3/mvvline_set.3ncurses.gz +#opt/lampp/man/man3/ERR_print_errors.3 +#opt/lampp/man/man3/BIO_set_write_buf_size.3 +#opt/lampp/man/man3/ERR_put_error.3 +#opt/lampp/man/man3/Pod::Find.3 +#opt/lampp/man/man3/CGI::Switch.3 +#opt/lampp/man/man3/post.3form.gz +#opt/lampp/man/man3/termname.3ncurses.gz +#opt/lampp/man/man3/Benchmark.3 +#opt/lampp/man/man3/SSL_shutdown.3 +#opt/lampp/man/man3/BN_bn2hex.3 +#opt/lampp/man/man3/SSL_get_client_CA_list.3 +#opt/lampp/man/man3/BIO_s_bio.3 +#opt/lampp/man/man3/post_form.3form.gz +#opt/lampp/man/man3/menu_cursor.3menu.gz +#opt/lampp/man/man3/SSL_accept.3 +#opt/lampp/man/man3/Test::Harness::TAP.3 +#opt/lampp/man/man3/BN_bin2bn.3 +#opt/lampp/man/man3/SSL_CTX_set_options.3 +#opt/lampp/man/man3/tparm.3ncurses.gz +#opt/lampp/man/man3/SSL_set_tmp_rsa.3 +#opt/lampp/man/man3/ExtUtils::MM_DOS.3 +#opt/lampp/man/man3/ExtUtils::MM_Any.3 +#opt/lampp/man/man3/lhash.3 +#opt/lampp/man/man3/menu_post.3menu.gz +#opt/lampp/man/man3/SSL_CTX_get_session_cache_mode.3 +#opt/lampp/man/man3/SSL_CTX_set_info_callback.3 +#opt/lampp/man/man3/longname.3ncurses.gz +#opt/lampp/man/man3/BN_bn2mpi.3 +#opt/lampp/man/man3/form_win.3form.gz +#opt/lampp/man/man3/TIFFGetField.3t +#opt/lampp/man/man3/BN_div_recp.3 +#opt/lampp/man/man3/CGI::Apache.3 +#opt/lampp/man/man3/ldap_attributetype2name.3 +#opt/lampp/man/man3/BIO_shutdown_wr.3 +#opt/lampp/man/man3/i2d_X509_REQ_bio.3 +#opt/lampp/man/man3/ExtUtils::testlib.3 +#opt/lampp/man/man3/BIO_set_conn_hostname.3 +#opt/lampp/man/man3/delch.3ncurses.gz +#opt/lampp/man/man3/Test.3 +#opt/lampp/man/man3/OBJ_cmp.3 +#opt/lampp/man/man3/BN_RECP_CTX_init.3 +#opt/lampp/man/man3/APR::IpSubnet.3 +#opt/lampp/man/man3/wdelch.3ncurses.gz +#opt/lampp/man/man3/EVP_MD_CTX_cleanup.3 +#opt/lampp/man/man3/SSL_CIPHER_get_name.3 +#opt/lampp/man/man3/SSL_get_peer_cert_chain.3 +#opt/lampp/man/man3/mvwin_wchstr.3ncurses.gz +#opt/lampp/man/man3/OBJ_sn2nid.3 +#opt/lampp/man/man3/mvwadd_wch.3ncurses.gz +#opt/lampp/man/man3/OBJ_dup.3 +#opt/lampp/man/man3/BIO_s_mem.3 +#opt/lampp/man/man3/mvwaddwstr.3ncurses.gz +#opt/lampp/man/man3/EVP_CipherInit.3 +#opt/lampp/man/man3/SSL_SESSION_set_time.3 +#opt/lampp/man/man3/panel_window.3curses.gz +#opt/lampp/man/man3/has_il.3ncurses.gz +#opt/lampp/man/man3/newpad.3ncurses.gz +#opt/lampp/man/man3/idcok.3ncurses.gz +#opt/lampp/man/man3/Encode::Encoder.3 +#opt/lampp/man/man3/File::CheckTree.3 +#opt/lampp/man/man3/EVP_PKEY_assign_EC_KEY.3 +#opt/lampp/man/man3/ERR_remove_state.3 +#opt/lampp/man/man3/mvinchstr.3ncurses.gz +#opt/lampp/man/man3/ExtUtils::MM_NW5.3 +#opt/lampp/man/man3/HTTP::Cookies::Microsoft.3 +#opt/lampp/man/man3/ExtUtils::MM_OS2.3 +#opt/lampp/man/man3/MD4_Final.3 +#opt/lampp/man/man3/Apache2::Upload.3 +#opt/lampp/man/man3/EVP_OpenInit.3 +#opt/lampp/man/man3/Apache2::ServerUtil.3 +#opt/lampp/man/man3/BIO_ssl_shutdown.3 +#opt/lampp/man/man3/libxslt.3 +#opt/lampp/man/man3/LWP::MediaTypes.3 +#opt/lampp/man/man3/BN_lshift1.3 +#opt/lampp/man/man3/Tie::File.3 +#opt/lampp/man/man3/set_top_row.3menu.gz +#opt/lampp/man/man3/resetty.3ncurses.gz +#opt/lampp/man/man3/TIFFRegisterCODEC.3t +#opt/lampp/man/man3/instr.3ncurses.gz +#opt/lampp/man/man3/initscr.3ncurses.gz +#opt/lampp/man/man3/TIFFClientOpen.3t +#opt/lampp/man/man3/ldap_delete_s.3 +#opt/lampp/man/man3/winstr.3ncurses.gz +#opt/lampp/man/man3/BIO_get_write_guarantee.3 +#opt/lampp/man/man3/move_field.3form.gz +#opt/lampp/man/man3/setscrreg.3ncurses.gz +#opt/lampp/man/man3/ERR_get_next_error_library.3 +#opt/lampp/man/man3/File::Spec.3 +#opt/lampp/man/man3/ExtUtils::MM_VMS.3 +#opt/lampp/man/man3/ERR_GET_FUNC.3 +#opt/lampp/man/man3/SSL_set_session_id_context.3 +#opt/lampp/man/man3/Symbol.3 +#opt/lampp/man/man3/DBI::ProxyServer.3 +#opt/lampp/man/man3/File::Temp.3 +#opt/lampp/man/man3/SSL_get_version.3 +#opt/lampp/man/man3/set_form_win.3form.gz +#opt/lampp/man/man3/EVP_MD_CTX_create.3 +#opt/lampp/man/man3/EVP_CipherFinal.3 +#opt/lampp/man/man3/BN_MONT_CTX_free.3 +#opt/lampp/man/man3/DBM_Filter::compress.3 +#opt/lampp/man/man3/ber_put_enum.3 +#opt/lampp/man/man3/box.3ncurses.gz +#opt/lampp/man/man3/ldap_t61_to_8859.3 +#opt/lampp/man/man3/BIO_set_mem_buf.3 +#opt/lampp/man/man3/bn_mul_recursive.3 +#opt/lampp/man/man3/TIFFcodec.3t +#opt/lampp/man/man3/_tracemouse.3ncurses.gz +#opt/lampp/man/man3/Tie::Array.3 +#opt/lampp/man/man3/EVP_PKEY_type.3 +#opt/lampp/man/man3/EVP_CIPHER_CTX_ctrl.3 +#opt/lampp/man/man3/ASN1_STRING_print_ex_fp.3 +#opt/lampp/man/man3/ASN1_generate_v3.3 +#opt/lampp/man/man3/Pod::Html.3 +#opt/lampp/man/man3/TIFFWriteEncodedTile.3t +#opt/lampp/man/man3/DES_enc_read.3 +#opt/lampp/man/man3/SSL_CTX_set_generate_session_id.3 +#opt/lampp/man/man3/MDC2_Update.3 +#opt/lampp/man/man3/SSL_CTX_sessions.3 +#opt/lampp/man/man3/Tie::Hash.3 +#opt/lampp/man/man3/tigetstr.3ncurses.gz +#opt/lampp/man/man3/Memoize::ExpireTest.3 +#opt/lampp/man/man3/Apache::Reload.3 +#opt/lampp/man/man3/free_fieldtype.3form.gz +#opt/lampp/man/man3/Apache2::Request.3 +#opt/lampp/man/man3/ByteLoader.3 +#opt/lampp/man/man3/File::Spec::Win32.3 +#opt/lampp/man/man3/ldap_init_searchprefs.3 +#opt/lampp/man/man3/Unicode::UCD.3 +#opt/lampp/man/man3/MD2_Update.3 +#opt/lampp/man/man3/fields.3 +#opt/lampp/man/man3/DH_compute_key.3 +#opt/lampp/man/man3/RSA_public_encrypt.3 +#opt/lampp/man/man3/wredrawln.3ncurses.gz +#opt/lampp/man/man3/Sys::Hostname.3 +#opt/lampp/man/man3/ExtUtils::MakeMaker::bytes.3 +#opt/lampp/man/man3/RSA_get_method.3 +#opt/lampp/man/man3/DBD::Sponge.3 +#opt/lampp/man/man3/ldap_compare_s.3 +#opt/lampp/man/man3/field_userptr.3form.gz +#opt/lampp/man/man3/attroff.3ncurses.gz +#opt/lampp/man/man3/Apache::TestRun.3 +#opt/lampp/man/man3/addch.3ncurses.gz +#opt/lampp/man/man3/DES_ofb64_encrypt.3 +#opt/lampp/man/man3/COLOR_PAIR.3ncurses.gz +#opt/lampp/man/man3/waddch.3ncurses.gz +#opt/lampp/man/man3/ldap_add_ext_s.3 +#opt/lampp/man/man3/form_field_userptr.3form.gz +#opt/lampp/man/man3/BN_nnmod.3 +#opt/lampp/man/man3/bn_mul_part_recursive.3 +#opt/lampp/man/man3/UI_new.3 +#opt/lampp/man/man3/TIFFWriteScanline.3t +#opt/lampp/man/man3/B::Debug.3 +#opt/lampp/man/man3/TIFFIsMSB2LSB.3t +#opt/lampp/man/man3/Apache2::Cookie.3 +#opt/lampp/man/man3/CGI::Push.3 +#opt/lampp/man/man3/TIFFReadEncodedTile.3t +#opt/lampp/man/man3/item_opts.3menu.gz +#opt/lampp/man/man3/Bundle::CPAN.3 +#opt/lampp/man/man3/ERR_get_error_line.3 +#opt/lampp/man/man3/Term::Cap.3 +#opt/lampp/man/man3/SSLeay.3 +#opt/lampp/man/man3/Net::netent.3 +#opt/lampp/man/man3/menu_back.3menu.gz +#opt/lampp/man/man3/d2i_X509_ALGOR.3 +#opt/lampp/man/man3/SSL_state_string_long.3 +#opt/lampp/man/man3/DES_ede3_cbc_encrypt.3 +#opt/lampp/man/man3/form.3form.gz +#opt/lampp/man/man3/BN_from_montgomery.3 +#opt/lampp/man/man3/Apache::Log.3 +#opt/lampp/man/man3/EVP_MAX_MD_SIZE.3 +#opt/lampp/man/man3/BIO_get_mem_data.3 +#opt/lampp/man/man3/IO::String.3 +#opt/lampp/man/man3/XSLoader.3 +#opt/lampp/man/man3/SSL_CTX_need_tmp_rsa.3 +#opt/lampp/man/man3/RAND_event.3 +#opt/lampp/man/man3/tgoto.3ncurses.gz +#opt/lampp/man/man3/Apache2::SizeLimit.3 +#opt/lampp/man/man3/mvaddnstr.3ncurses.gz +#opt/lampp/man/man3/Time::HiRes.3 +#opt/lampp/man/man3/Apache::TestRunPerl.3 +#opt/lampp/man/man3/curl_global_init_mem.3 +#opt/lampp/man/man3/SSL_CTX_use_RSAPrivateKey_file.3 +#opt/lampp/man/man3/SSL_library_init.3 +#opt/lampp/man/man3/has_colors.3ncurses.gz +#opt/lampp/man/man3/BN_MONT_CTX_init.3 +#opt/lampp/man/man3/Exporter::Heavy.3 +#opt/lampp/man/man3/EVP_SealInit.3 +#opt/lampp/man/man3/SSL_CTX_get_ex_data.3 +#opt/lampp/man/man3/HTTP::Cookies::Netscape.3 +#opt/lampp/man/man3/menu_value.3menu.gz +#opt/lampp/man/man3/bn_internal.3 +#opt/lampp/man/man3/ldap_url_parse.3 +#opt/lampp/man/man3/BIO_do_connect.3 +#opt/lampp/man/man3/SSL_set_tmp_dh_callback.3 +#opt/lampp/man/man3/EVP_CIPHER_CTX_nid.3 +#opt/lampp/man/man3/BF_cfb64_encrypt.3 +#opt/lampp/man/man3/cbreak.3ncurses.gz +#opt/lampp/man/man3/default_colors.3ncurses.gz +#opt/lampp/man/man3/item_name.3menu.gz +#opt/lampp/man/man3/menu_fore.3menu.gz +#opt/lampp/man/man3/TIFFReadEncodedStrip.3t +#opt/lampp/man/man3/curl_multi_remove_handle.3 +#opt/lampp/man/man3/leaveok.3ncurses.gz +#opt/lampp/man/man3/new_form.3form.gz +#opt/lampp/man/man3/curl_formfree.3 +#opt/lampp/man/man3/Apache2::PerlSections.3 +#opt/lampp/man/man3/ldap_count_entries.3 +#opt/lampp/man/man3/mvinnstr.3ncurses.gz +#opt/lampp/man/man3/EVP_CIPHER_mode.3 +#opt/lampp/man/man3/B::Asmdata.3 +#opt/lampp/man/man3/ldap_result2error.3 +#opt/lampp/man/man3/UI_OpenSSL.3 +#opt/lampp/man/man3/bn_mul_comba4.3 +#opt/lampp/man/man3/bn_mul_comba8.3 +#opt/lampp/man/man3/DES_xcbc_encrypt.3 +#opt/lampp/man/man3/SSL_CTX_use_PrivateKey.3 +#opt/lampp/man/man3/Pod::Text::Termcap.3 +#opt/lampp/man/man3/URI::Heuristic.3 +#opt/lampp/man/man3/Apache2::Util.3 +#opt/lampp/man/man3/ModPerl::RegistryPrefork.3 +#opt/lampp/man/man3/EVP_DecryptInit_ex.3 +#opt/lampp/man/man3/BIO_new_socket.3 +#opt/lampp/man/man3/SSL_get_ciphers.3 +#opt/lampp/man/man3/BIO_ctrl_wpending.3 +#opt/lampp/man/man3/termcap.3ncurses.gz +#opt/lampp/man/man3/attrset.3ncurses.gz +#opt/lampp/man/man3/ExtUtils::MakeMaker::Tutorial.3 +#opt/lampp/man/man3/BF_cbc_encrypt.3 +#opt/lampp/man/man3/Attribute::Handlers.3 +#opt/lampp/man/man3/RSA_print_fp.3 +#opt/lampp/man/man3/BN_div_word.3 +#opt/lampp/man/man3/TIFFFlushData.3t +#opt/lampp/man/man3/tigetnum.3ncurses.gz +#opt/lampp/man/man3/SSL_set_verify_depth.3 +#opt/lampp/man/man3/BIO_free_all.3 +#opt/lampp/man/man3/ExtUtils::Constant::Base.3 +#opt/lampp/man/man3/SSL_get_fd.3 +#opt/lampp/man/man3/EVP_DecryptFinal_ex.3 +#opt/lampp/man/man3/OBJ_nid2obj.3 +#opt/lampp/man/man3/IO::Pipe.3 +#opt/lampp/man/man3/PKCS7_sign.3 +#opt/lampp/man/man3/replace_panel.3curses.gz +#opt/lampp/man/man3/EVP_CIPHER_CTX_flags.3 +#opt/lampp/man/man3/DBI::ProfileDumper::Apache.3 +#opt/lampp/man/man3/Pod::LaTeX.3 +#opt/lampp/man/man3/menu_request_by_name.3menu.gz +#opt/lampp/man/man3/mvcur.3ncurses.gz +#opt/lampp/man/man3/Apache2::RequestUtil.3 +#opt/lampp/man/man3/libcurl-errors.3 +#opt/lampp/man/man3/DSA_SIG_free.3 +#opt/lampp/man/man3/_tracechtype.3ncurses.gz +#opt/lampp/man/man3/Apache2::Directive.3 +#opt/lampp/man/man3/EVP_OpenFinal.3 +#opt/lampp/man/man3/erasewchar.3ncurses.gz +#opt/lampp/man/man3/ExtUtils::MM_Cygwin.3 +#opt/lampp/man/man3/SSL_use_PrivateKey_file.3 +#opt/lampp/man/man3/IO::Poll.3 +#opt/lampp/man/man3/BN_rand.3 +#opt/lampp/man/man3/APR::Pool.3 +#opt/lampp/man/man3/UI_new_method.3 +#opt/lampp/man/man3/SSL_CTX_sess_number.3 +#opt/lampp/man/man3/_tracedump.3ncurses.gz +#opt/lampp/man/man3/get_wstr.3ncurses.gz +#opt/lampp/man/man3/EVP_MD_CTX_size.3 +#opt/lampp/man/man3/RSA_print.3 +#opt/lampp/man/man3/panel_above.3curses.gz +#opt/lampp/man/man3/menu_sub.3menu.gz +#opt/lampp/man/man3/TIFFSwabArrayOfShort.3t +#opt/lampp/man/man3/dngettext.3 +#opt/lampp/man/man3/set_field_just.3form.gz +#opt/lampp/man/man3/CRYPTO_get_new_dynlockid.3 +#opt/lampp/man/man3/BUF_MEM_new.3 +#opt/lampp/man/man3/standend.3ncurses.gz +#opt/lampp/man/man3/RSA_public_decrypt.3 +#opt/lampp/man/man3/SSL_write.3 +#opt/lampp/man/man3/form_fields.3form.gz +#opt/lampp/man/man3/SSL_clear.3 +#opt/lampp/man/man3/BN_rshift.3 +#opt/lampp/man/man3/EVP_CIPHER_param_to_asn1.3 +#opt/lampp/man/man3/HTTP::Headers.3 +#opt/lampp/man/man3/ldap_set_rebind_proc.3 +#opt/lampp/man/man3/I18N::LangTags.3 +#opt/lampp/man/man3/I18N::Collate.3 +#opt/lampp/man/man3/d2i_DSA_PUBKEY.3 +#opt/lampp/man/man3/_tracechar.3ncurses.gz +#opt/lampp/man/man3/DBD::Proxy.3 +#opt/lampp/man/man3/ldap_get_dn.3 +#opt/lampp/man/man3/bn_set_max.3 +#opt/lampp/man/man3/ld_errno.3 +#opt/lampp/man/man3/ldap_abandon_ext.3 +#opt/lampp/man/man3/EVP_CIPHER_CTX_init.3 +#opt/lampp/man/man3/bn_set_low.3 +#opt/lampp/man/man3/DSA_do_sign.3 +#opt/lampp/man/man3/tigetflag.3ncurses.gz +#opt/lampp/man/man3/ber_get_int.3 +#opt/lampp/man/man3/attr.3ncurses.gz +#opt/lampp/man/man3/BIO_new_mem_buf.3 +#opt/lampp/man/man3/RSA_padding_check_PKCS1_OAEP.3 +#opt/lampp/man/man3/EVP_md_null.3 +#opt/lampp/man/man3/Apache::Test.3 +#opt/lampp/man/man3/ldap_search_ext_s.3 +#opt/lampp/man/man3/Opcode.3 +#opt/lampp/man/man3/SSL_alert_type_string.3 +#opt/lampp/man/man3/mvinnwstr.3ncurses.gz +#opt/lampp/man/man3/d2i_X509_CRL.3 +#opt/lampp/man/man3/ber_bvarray_free.3 +#opt/lampp/man/man3/CGI::Util.3 +#opt/lampp/man/man3/wins_nwstr.3ncurses.gz +#opt/lampp/man/man3/current_field.3form.gz +#opt/lampp/man/man3/BN_BLINDING_create_param.3 +#opt/lampp/man/man3/APR::Base64.3 +#opt/lampp/man/man3/ModPerl::BuildMM.3 +#opt/lampp/man/man3/EVP_PKEY_get1_DSA.3 +#opt/lampp/man/man3/X509_new.3 +#opt/lampp/man/man3/SSL_CTX_get_options.3 +#opt/lampp/man/man3/dupwin.3ncurses.gz +#opt/lampp/man/man3/Encode::JP::H2Z.3 +#opt/lampp/man/man3/set_menu_sub.3menu.gz +#opt/lampp/man/man3/BIO_s_connect.3 +#opt/lampp/man/man3/HTTP::Status.3 +#opt/lampp/man/man3/threads.3 +#opt/lampp/man/man3/ldap_is_dns_dn.3 +#opt/lampp/man/man3/i2d_X509_ALGOR.3 +#opt/lampp/man/man3/BIO_f_ssl.3 +#opt/lampp/man/man3/ASN1_STRING_type_new.3 +#opt/lampp/man/man3/HTML::TokeParser.3 +#opt/lampp/man/man3/ModPerl::Const.3 +#opt/lampp/man/man3/field_status.3form.gz +#opt/lampp/man/man3/IO::Socket.3 +#opt/lampp/man/man3/assume_default_colors.3ncurses.gz +#opt/lampp/man/man3/wenclose.3ncurses.gz +#opt/lampp/man/man3/APR::UUID.3 +#opt/lampp/man/man3/ldap_error.3 +#opt/lampp/man/man3/TIFFSwabArrayOfLong.3t +#opt/lampp/man/man3/slk_attron.3ncurses.gz +#opt/lampp/man/man3/NDBM_File.3 +#opt/lampp/man/man3/mvwget_wch.3ncurses.gz +#opt/lampp/man/man3/SSL_CTX_get_verify_mode.3 +#opt/lampp/man/man3/BUF_strdup.3 +#opt/lampp/man/man3/EVP_MD_CTX_type.3 +#opt/lampp/man/man3/d2i_X509_REQ.3 +#opt/lampp/man/man3/ASN1_OBJECT_free.3 +#opt/lampp/man/man3/mvgetch.3ncurses.gz +#opt/lampp/man/man3/BN_mod_mul_reciprocal.3 +#opt/lampp/man/man3/set_current_item.3menu.gz +#opt/lampp/man/man3/Net::Domain.3 +#opt/lampp/man/man3/d2i_X509_SIG.3 +#opt/lampp/man/man3/SSL_CTX_sess_get_cache_size.3 +#opt/lampp/man/man3/DES_cfb64_encrypt.3 +#opt/lampp/man/man3/border.3ncurses.gz +#opt/lampp/man/man3/ldap_friendly.3 +#opt/lampp/man/man3/scanw.3ncurses.gz +#opt/lampp/man/man3/RSA_get_ex_new_index.3 +#opt/lampp/man/man3/wscanw.3ncurses.gz +#opt/lampp/man/man3/APR::String.3 +#opt/lampp/man/man3/TIFFRGBAImageOK.3t +#opt/lampp/man/man3/ExtUtils::Packlist.3 +#opt/lampp/man/man3/form_request_by_name.3form.gz +#opt/lampp/man/man3/BN_hex2bn.3 +#opt/lampp/man/man3/ExtUtils::MakeMaker.3 +#opt/lampp/man/man3/BN_swap.3 +#opt/lampp/man/man3/ldap_simple_bind.3 +#opt/lampp/man/man3/set_max_field.3form.gz +#opt/lampp/man/man3/EVP_PKEY_get1_RSA.3 +#opt/lampp/man/man3/I18N::LangTags::List.3 +#opt/lampp/man/man3/Archive::Tar.3 +#opt/lampp/man/man3/OPENSSL_config.3 +#opt/lampp/man/man3/OpenSSL_add_all_ciphers.3 +#opt/lampp/man/man3/lber-memory.3 +#opt/lampp/man/man3/SSL_CTX_set_cipher_list.3 +#opt/lampp/man/man3/d2i_RSA_PUBKEY.3 +#opt/lampp/man/man3/BN_ucmp.3 +#opt/lampp/man/man3/ldap_count_values.3 +#opt/lampp/man/man3/bn_sqr_words.3 +#opt/lampp/man/man3/clrtoeol.3ncurses.gz +#opt/lampp/man/man3/wborder.3ncurses.gz +#opt/lampp/man/man3/in_wchstr.3ncurses.gz +#opt/lampp/man/man3/File::Spec::Cygwin.3 +#opt/lampp/man/man3/ldap_search.3 +#opt/lampp/man/man3/set_menu_opts.3menu.gz +#opt/lampp/man/man3/APR::OS.3 +#opt/lampp/man/man3/SSL_SESSION_get_timeout.3 +#opt/lampp/man/man3/SSL_set_tmp_dh.3 +#opt/lampp/man/man3/RAND_add.3 +#opt/lampp/man/man3/wattroff.3ncurses.gz +#opt/lampp/man/man3/BIO_ctrl_pending.3 +#opt/lampp/man/man3/vidattr.3ncurses.gz +#opt/lampp/man/man3/scr_set.3ncurses.gz +#opt/lampp/man/man3/PKCS7_verify.3 +#opt/lampp/man/man3/DES_pcbc_encrypt.3 +#opt/lampp/man/man3/inchstr.3ncurses.gz +#opt/lampp/man/man3/i2d_X509_REQ_fp.3 +#opt/lampp/man/man3/ldap_syntax2str.3 +#opt/lampp/man/man3/slk.3ncurses.gz +#opt/lampp/man/man3/ber_bvarray_add.3 +#opt/lampp/man/man3/DH_set_method.3 +#opt/lampp/man/man3/mhash.3 +#opt/lampp/man/man3/termattrs.3ncurses.gz +#opt/lampp/man/man3/RAND_egd.3 +#opt/lampp/man/man3/SSL_remove_session.3 +#opt/lampp/man/man3/form_opts_on.3form.gz +#opt/lampp/man/man3/ModPerl::PerlRunPrefork.3 +#opt/lampp/man/man3/SSL_get_max_cert_list.3 +#opt/lampp/man/man3/RSA_null_method.3 +#opt/lampp/man/man3/i2d_DSA_SIG.3 +#opt/lampp/man/man3/LWP::ConnCache.3 +#opt/lampp/man/man3/ber_get_stringa.3 +#opt/lampp/man/man3/ber_get_stringb.3 +#opt/lampp/man/man3/d2i_X509_bio.3 +#opt/lampp/man/man3/MD5_Init.3 +#opt/lampp/man/man3/SHA1_Update.3 +#opt/lampp/man/man3/APR::PerlIO.3 +#opt/lampp/man/man3/TIFFsize.3t +#opt/lampp/man/man3/BIO_get_info_callback.3 +#opt/lampp/man/man3/BN_MONT_CTX_new.3 +#opt/lampp/man/man3/TIFFVTileSize.3t +#opt/lampp/man/man3/ber_put_null.3 +#opt/lampp/man/man3/attributes.3 +#opt/lampp/man/man3/SSL_CTX_set_msg_callback_arg.3 +#opt/lampp/man/man3/EVP_CIPHER_CTX_mode.3 +#opt/lampp/man/man3/_traceattr.3ncurses.gz +#opt/lampp/man/man3/SSL_CTX_get_quiet_shutdown.3 +#opt/lampp/man/man3/RSA_check_key.3 +#opt/lampp/man/man3/box_set.3ncurses.gz +#opt/lampp/man/man3/DBI::ProfileDumper.3 +#opt/lampp/man/man3/APR::BucketAlloc.3 +#opt/lampp/man/man3/ldap_translate_from_t61.3 +#opt/lampp/man/man3/BN_MONT_CTX_set.3 +#opt/lampp/man/man3/ins_wstr.3ncurses.gz +#opt/lampp/man/man3/mvdelch.3ncurses.gz +#opt/lampp/man/man3/BN_BLINDING_set_flags.3 +#opt/lampp/man/man3/BIO_get_mem_ptr.3 +#opt/lampp/man/man3/wget_wstr.3ncurses.gz +#opt/lampp/man/man3/APR::Util.3 +#opt/lampp/man/man3/BN_mul_word.3 +#opt/lampp/man/man3/bn_sqr_recursive.3 +#opt/lampp/man/man3/_traceattr2.3ncurses.gz +#opt/lampp/man/man3/ExtUtils::Constant::XS.3 +#opt/lampp/man/man3/BIO_get_retry_BIO.3 +#opt/lampp/man/man3/B::Lint.3 +#opt/lampp/man/man3/EVP_dss1.3 +#opt/lampp/man/man3/bn_wexpand.3 +#opt/lampp/man/man3/lh_doall.3 +#opt/lampp/man/man3/wstandend.3ncurses.gz +#opt/lampp/man/man3/ExtUtils::MakeMaker::vmsish.3 +#opt/lampp/man/man3/i2d_DSA_PUBKEY.3 +#opt/lampp/man/man3/SSL_use_certificate.3 +#opt/lampp/man/man3/Test::Simple.3 +#opt/lampp/man/man3/DBI::DBD.3 +#opt/lampp/man/man3/new.3menu.gz +#opt/lampp/man/man3/EVP_ripemd160.3 +#opt/lampp/man/man3/ldap_errlist.3 +#opt/lampp/man/man3/List::Util.3 +#opt/lampp/man/man3/mvaddstr.3ncurses.gz +#opt/lampp/man/man3/DBI::FAQ.3 +#opt/lampp/man/man3/set_form_fields.3form.gz +#opt/lampp/man/man3/mvinstr.3ncurses.gz +#opt/lampp/man/man3/Pod::Text.3 +#opt/lampp/man/man3/set_item_value.3menu.gz +#opt/lampp/man/man3/Pod::PlainText.3 +#opt/lampp/man/man3/curl_version.3 +#opt/lampp/man/man3/ldap_objectclass_free.3 +#opt/lampp/man/man3/ldap_set_string_translators.3 +#opt/lampp/man/man3/Test::Builder.3 +#opt/lampp/man/man3/HTML::PullParser.3 +#opt/lampp/man/man3/File::Basename.3 +#opt/lampp/man/man3/mvgetnstr.3ncurses.gz +#opt/lampp/man/man3/wattrset.3ncurses.gz +#opt/lampp/man/man3/ExtUtils::Miniperl.3 +#opt/lampp/man/man3/MIME::Base64.3 +#opt/lampp/man/man3/form_data.3form.gz +#opt/lampp/man/man3/d2i_X509.3 +#opt/lampp/man/man3/CRYPTO_set_dynlock_lock_callback.3 +#opt/lampp/man/man3/RAND_status.3 +#opt/lampp/man/man3/menu_current.3menu.gz +#opt/lampp/man/man3/ModPerl::Registry.3 +#opt/lampp/man/man3/EVP_CIPHER_type.3 +#opt/lampp/man/man3/EVP_CIPHER_iv_length.3 +#opt/lampp/man/man3/SSL_CTX_sess_get_get_cb.3 +#opt/lampp/man/man3/EVP_CIPHER_flags.3 +#opt/lampp/man/man3/EVP_SealUpdate.3 +#opt/lampp/man/man3/EVP_PKEY_set1_DSA.3 +#opt/lampp/man/man3/wtouchln.3ncurses.gz +#opt/lampp/man/man3/mvwhline.3ncurses.gz +#opt/lampp/man/man3/BIO_set_close.3 +#opt/lampp/man/man3/pechochar.3ncurses.gz +#opt/lampp/man/man3/DSA_free.3 +#opt/lampp/man/man3/TIFFbuffer.3t +#opt/lampp/man/man3/ExtUtils::Installed.3 +#opt/lampp/man/man3/curl_escape.3 +#opt/lampp/man/man3/SSL_set_generate_session_id.3 +#opt/lampp/man/man3/ber_first_element.3 +#opt/lampp/man/man3/B::Stackobj.3 +#opt/lampp/man/man3/ngettext.3 +#opt/lampp/man/man3/base.3 +#opt/lampp/man/man3/DBD::DBM.3 +#opt/lampp/man/man3/winch.3ncurses.gz +#opt/lampp/man/man3/RIPEMD160_Update.3 +#opt/lampp/man/man3/SSL_CTX_check_private_key.3 +#opt/lampp/man/man3/SSL_CTX_use_RSAPrivateKey.3 +#opt/lampp/man/man3/SSL_CTX_sess_accept_good.3 +#opt/lampp/man/man3/getbkgrnd.3ncurses.gz +#opt/lampp/man/man3/ldap_disptmpl.3 +#opt/lampp/man/man3/Apache::ServerUtil.3 +#opt/lampp/man/man3/SSL_set_client_CA_list.3 +#opt/lampp/man/man3/addnstr.3ncurses.gz +#opt/lampp/man/man3/TIFFReadTile.3t +#opt/lampp/man/man3/TIFFReadRGBATile.3t +#opt/lampp/man/man3/pair_content.3ncurses.gz +#opt/lampp/man/man3/engine.3 +#opt/lampp/man/man3/Text::ParseWords.3 +#opt/lampp/man/man3/SSL_alert_type_string_long.3 +#opt/lampp/man/man3/refresh.3ncurses.gz +#opt/lampp/man/man3/Memoize::NDBM_File.3 +#opt/lampp/man/man3/is_linetouched.3ncurses.gz +#opt/lampp/man/man3/ldap_sort_strcasecmp.3 +#opt/lampp/man/man3/SSL_add_session.3 +#opt/lampp/man/man3/BN_is_word.3 +#opt/lampp/man/man3/EVP_EncryptFinal_ex.3 +#opt/lampp/man/man3/BN_value_one.3 +#opt/lampp/man/man3/Encode::Guess.3 +#opt/lampp/man/man3/charnames.3 +#opt/lampp/man/man3/Bundle::DBD::mysql.3 +#opt/lampp/man/man3/BIO_get_md_ctx.3 +#opt/lampp/man/man3/ldap_simple_bind_s.3 +#opt/lampp/man/man3/cldap_setretryinfo.3 +#opt/lampp/man/man3/scale_form.3form.gz +#opt/lampp/man/man3/BN_CTX_start.3 +#opt/lampp/man/man3/form_field_just.3form.gz +#opt/lampp/man/man3/EVP_PKEY_set1_RSA.3 +#opt/lampp/man/man3/menu_visible.3menu.gz +#opt/lampp/man/man3/blib.3 +#opt/lampp/man/man3/APR::Socket.3 +#opt/lampp/man/man3/curl_multi_perform.3 +#opt/lampp/man/man3/curl_multi_add_handle.3 +#opt/lampp/man/man3/mvaddch.3ncurses.gz +#opt/lampp/man/man3/EVP_CipherFinal_ex.3 +#opt/lampp/man/man3/TIFFSwabLong.3t +#opt/lampp/man/man3/mvwins_nwstr.3ncurses.gz +#opt/lampp/man/man3/RSA_verify_ASN1_OCTET_STRING.3 +#opt/lampp/man/man3/Apache::Build.3 +#opt/lampp/man/man3/i2d_RSA_PUBKEY.3 +#opt/lampp/man/man3/bn_check_top.3 +#opt/lampp/man/man3/UI_dup_input_string.3 +#opt/lampp/man/man3/waddchnstr.3ncurses.gz +#opt/lampp/man/man3/SSL_set_shutdown.3 +#opt/lampp/man/man3/curl_slist_free_all.3 +#opt/lampp/man/man3/BN_zero.3 +#opt/lampp/man/man3/Archive::Tar::Win32.3 +#opt/lampp/man/man3/nl.3ncurses.gz +#opt/lampp/man/man3/English.3 +#opt/lampp/man/man3/TIFFRewriteDirectory.3t +#opt/lampp/man/man3/ERR_peek_error.3 +#opt/lampp/man/man3/DES_ecb3_encrypt.3 +#opt/lampp/man/man3/free_form.3form.gz +#opt/lampp/man/man3/ASN1_STRING_length_set.3 +#opt/lampp/man/man3/SSL_CTX_sess_set_new_cb.3 +#opt/lampp/man/man3/Encode::Alias.3 +#opt/lampp/man/man3/EVP_SignInit.3 +#opt/lampp/man/man3/field_opts_off.3form.gz +#opt/lampp/man/man3/CRYPTO_set_ex_data.3 +#opt/lampp/man/man3/wclrtoeol.3ncurses.gz +#opt/lampp/man/man3/set_field_userptr.3form.gz +#opt/lampp/man/man3/ldap_next_disptmpl.3 +#opt/lampp/man/man3/File::Spec::Mac.3 +#opt/lampp/man/man3/File::Spec::OS2.3 +#opt/lampp/man/man3/mvinsstr.3ncurses.gz +#opt/lampp/man/man3/PerlIO::encoding.3 +#opt/lampp/man/man3/Thread.3 +#opt/lampp/man/man3/Memoize::Storable.3 +#opt/lampp/man/man3/SMIME_write_PKCS7.3 +#opt/lampp/man/man3/RSA_padding_check_PKCS1_type_1.3 +#opt/lampp/man/man3/RSA_padding_check_PKCS1_type_2.3 +#opt/lampp/man/man3/term_attrs.3ncurses.gz +#opt/lampp/man/man3/SSL_CTX_get_cert_store.3 +#opt/lampp/man/man3/set_fieldtype_arg.3form.gz +#opt/lampp/man/man3/pattern.3menu.gz +#opt/lampp/man/man3/Math::BigInt.3 +#opt/lampp/man/man3/SSL_set_verify.3 +#opt/lampp/man/man3/Tie::Scalar.3 +#opt/lampp/man/man3/d2i_509_CRL_fp.3 +#opt/lampp/man/man3/insdelln.3ncurses.gz +#opt/lampp/man/man3/ldap_delete.3 +#opt/lampp/man/man3/wcolor_set.3ncurses.gz +#opt/lampp/man/man3/constant.3 +#opt/lampp/man/man3/link_field.3form.gz +#opt/lampp/man/man3/HMAC_cleanup.3 +#opt/lampp/man/man3/RSA_private_encrypt.3 +#opt/lampp/man/man3/RSA_sign_ASN1_OCTET_STRING.3 +#opt/lampp/man/man3/EVP_SignFinal.3 +#opt/lampp/man/man3/mvadd_wch.3ncurses.gz +#opt/lampp/man/man3/HTTP::Headers::Util.3 +#opt/lampp/man/man3/File::Spec::VMS.3 +#opt/lampp/man/man3/TIFFNumberOfTiles.3t +#opt/lampp/man/man3/mvaddwstr.3ncurses.gz +#opt/lampp/man/man3/Locale::Maketext::TPJ13.3 +#opt/lampp/man/man3/ldap_disable_cache.3 +#opt/lampp/man/man3/menu_opts_on.3menu.gz +#opt/lampp/man/man3/Net::SSLeay::Handle.3 +#opt/lampp/man/man3/Test::Tutorial.3 +#opt/lampp/man/man3/IO::Zlib.3 +#opt/lampp/man/man3/B::CC.3 +#opt/lampp/man/man3/RAND_seed.3 +#opt/lampp/man/man3/UI_dup_verify_string.3 +#opt/lampp/man/man3/Math::BigRat.3 +#opt/lampp/man/man3/ldap_add_ext.3 +#opt/lampp/man/man3/ldap_friendly_name.3 +#opt/lampp/man/man3/BN_is_zero.3 +#opt/lampp/man/man3/SSLeay_add_ssl_algorithms.3 +#opt/lampp/man/man3/BIO_get_fd.3 +#opt/lampp/man/man3/BIO_get_fp.3 +#opt/lampp/man/man3/X509_NAME_print_ex.3 +#opt/lampp/man/man3/BIO_get_md.3 +#opt/lampp/man/man3/Apache2::Process.3 +#opt/lampp/man/man3/RC4_set_key.3 +#opt/lampp/man/man3/mvwin_wchnstr.3ncurses.gz +#opt/lampp/man/man3/ldap_modrdn2 +#opt/lampp/man/man3/overlay.3ncurses.gz +#opt/lampp/man/man3/insch.3ncurses.gz +#opt/lampp/man/man3/EVP_get_cipherbynid.3 +#opt/lampp/man/man3/EVP_get_cipherbyobj.3 +#opt/lampp/man/man3/untouchwin.3ncurses.gz +#opt/lampp/man/man3/SSL_alert_desc_string.3 +#opt/lampp/man/man3/winsch.3ncurses.gz +#opt/lampp/man/man3/BIO_ctrl.3 +#opt/lampp/man/man3/X509_NAME_ENTRY_create_by_NID.3 +#opt/lampp/man/man3/ldap_get_values.3 +#opt/lampp/man/man3/mvin_wch.3ncurses.gz +#opt/lampp/man/man3/util.3ncurses.gz +#opt/lampp/man/man3/SSL_CTX_set_ssl_version.3 +#opt/lampp/man/man3/X509_NAME_ENTRY_create_by_OBJ.3 +#opt/lampp/man/man3/BIO_get_conn_port.3 +#opt/lampp/man/man3/Apache2::SubRequest.3 +#opt/lampp/man/man3/SSL_CTX_sess_accept_renegotiate.3 +#opt/lampp/man/man3/mvinwstr.3ncurses.gz +#opt/lampp/man/man3/slk_noutrefresh.3ncurses.gz +#opt/lampp/man/man3/wins_wstr.3ncurses.gz +#opt/lampp/man/man3/SSL_set_info_callback.3 +#opt/lampp/man/man3/BIO_callback_ctrl.3 +#opt/lampp/man/man3/win_wchnstr.3ncurses.gz +#opt/lampp/man/man3/lwpcook.3 +#opt/lampp/man/man3/des_read_password.3 +#opt/lampp/man/man3/mvwinnstr.3ncurses.gz +#opt/lampp/man/man3/ldap_err2string.3 +#opt/lampp/man/man3/DES_ede2_ofb64_encrypt.3 +#opt/lampp/man/man3/SSL_get_SSL_CTX.3 +#opt/lampp/man/man3/CGI::Cookie.3 +#opt/lampp/man/man3/SSL_use_certificate_ASN1.3 +#opt/lampp/man/man3/bn_mul_high.3 +#opt/lampp/man/man3/URI::data.3 +#opt/lampp/man/man3/innwstr.3ncurses.gz +#opt/lampp/man/man3/SSL_get_peer_certificate.3 +#opt/lampp/man/man3/winchstr.3ncurses.gz +#opt/lampp/man/man3/move_panel.3curses.gz +#opt/lampp/man/man3/vidputs.3ncurses.gz +#opt/lampp/man/man3/DSA_verify.3 +#opt/lampp/man/man3/def_prog_mode.3ncurses.gz +#opt/lampp/man/man3/ERR_func_error_string.3 +#opt/lampp/man/man3/BIO_f_md.3 +#opt/lampp/man/man3/SSL_SESSION_get_ex_new_index.3 +#opt/lampp/man/man3/LWP::Protocol.3 +#opt/lampp/man/man3/wsyncup.3ncurses.gz +#opt/lampp/man/man3/APR::Request.3 +#opt/lampp/man/man3/EVP_DigestFinal_ex.3 +#opt/lampp/man/man3/BN_set_bit.3 +#opt/lampp/man/man3/mvwinsnstr.3ncurses.gz +#opt/lampp/man/man3/Locale::Script.3 +#opt/lampp/man/man3/ldap_ufn_setfilter.3 +#opt/lampp/man/man3/set_menu_init.3menu.gz +#opt/lampp/man/man3/EVP_dss.3 +#opt/lampp/man/man3/noecho.3ncurses.gz +#opt/lampp/man/man3/EVP_PKEY_set1_DH.3 +#opt/lampp/man/man3/DES_cbc_cksum.3 +#opt/lampp/man/man3/i2d_X509_CRL.3 +#opt/lampp/man/man3/ERR_get_error_line_data.3 +#opt/lampp/man/man3/DSA_set_ex_data.3 +#opt/lampp/man/man3/setsyx.3ncurses.gz +#opt/lampp/man/man3/gdbm.3 +#opt/lampp/man/man3/SSL_CTX_sess_hits.3 +#opt/lampp/man/man3/subpad.3ncurses.gz +#opt/lampp/man/man3/set_form_term.3form.gz +#opt/lampp/man/man3/SSL_CTX_set_msg_callback.3 +#opt/lampp/man/man3/define_key.3ncurses.gz +#opt/lampp/man/man3/CPAN::WAIT.3 +#opt/lampp/man/man3/RSA_padding_add_SSLv23.3 +#opt/lampp/man/man3/EVP_md2.3 +#opt/lampp/man/man3/EVP_md5.3 +#opt/lampp/man/man3/Tie::Memoize.3 +#opt/lampp/man/man3/menu_items.3menu.gz +#opt/lampp/man/man3/tgetstr.3ncurses.gz +#opt/lampp/man/man3/d2i_X509_CRL_bio.3 +#opt/lampp/man/man3/d2i_DSAPublicKey.3 +#opt/lampp/man/man3/Class::ISA.3 +#opt/lampp/man/man3/SSLeay_version.3 +#opt/lampp/man/man3/BIO_set_conn_int_port.3 +#opt/lampp/man/man3/killwchar.3ncurses.gz +#opt/lampp/man/man3/ldap_value_free_len.3 +#opt/lampp/man/man3/TIFFWriteBufferSetup.3t +#opt/lampp/man/man3/EVP_CIPHER_CTX_type.3 +#opt/lampp/man/man3/BIO_set_callback.3 +#opt/lampp/man/man3/attron.3ncurses.gz +#opt/lampp/man/man3/Apache2::Status.3 +#opt/lampp/man/man3/set_field_opts.3form.gz +#opt/lampp/man/man3/wscrl.3ncurses.gz +#opt/lampp/man/man3/new_item.3menu.gz +#opt/lampp/man/man3/blowfish.3 +#opt/lampp/man/man3/Apache2::CmdParms.3 +#opt/lampp/man/man3/BIO_gets.3 +#opt/lampp/man/man3/EVP_sha.3 +#opt/lampp/man/man3/BIO_free.3 +#opt/lampp/man/man3/EVP_CIPHER_CTX_set_key_length.3 +#opt/lampp/man/man3/Test::Harness::Iterator.3 +#opt/lampp/man/man3/bn_cmp_words.3 +#opt/lampp/man/man3/EVP_mdc2.3 +#opt/lampp/man/man3/i2d_X509_REQ.3 +#opt/lampp/man/man3/slk_restore.3ncurses.gz +#opt/lampp/man/man3/i2d_X509_SIG.3 +#opt/lampp/man/man3/EVP_EncryptInit_ex.3 +#opt/lampp/man/man3/BIO_write_filename.3 +#opt/lampp/man/man3/win.3menu.gz +#opt/lampp/man/man3/form_sub.3form.gz +#opt/lampp/man/man3/wattron.3ncurses.gz +#opt/lampp/man/man3/DBI::Const::GetInfo::ANSI.3 +#opt/lampp/man/man3/immedok.3ncurses.gz +#opt/lampp/man/man3/menu_format.3menu.gz +#opt/lampp/man/man3/Text::Soundex.3 +#opt/lampp/man/man3/BIO_set_accept_bios.3 +#opt/lampp/man/man3/RSA_private_decrypt.3 +#opt/lampp/man/man3/curl_unescape.3 +#opt/lampp/man/man3/RAND_get_rand_method.3 +#opt/lampp/man/man3/free_field.3form.gz +#opt/lampp/man/man3/URI::file.3 +#opt/lampp/man/man3/new_fieldtype.3form.gz +#opt/lampp/man/man3/reset_prog_mode.3ncurses.gz +#opt/lampp/man/man3/field_attributes.3form.gz +#opt/lampp/man/man3/RSA_verify.3 +#opt/lampp/man/man3/hmac.3 +#opt/lampp/man/man3/SSL_CTX_set_tmp_rsa_callback.3 +#opt/lampp/man/man3/set_current_field.3form.gz +#opt/lampp/man/man3/TIFFReadBufferSetup.3t +#opt/lampp/man/man3/mvwchgat.3ncurses.gz +#opt/lampp/man/man3/delay_output.3ncurses.gz +#opt/lampp/man/man3/SSL_add_client_CA.3 +#opt/lampp/man/man3/TIFFtile.3t +#opt/lampp/man/man3/d2i_PKCS8PrivateKey_bio.3 +#opt/lampp/man/man3/set_item_opts.3menu.gz +#opt/lampp/man/man3/SSL_want_x509_lookup.3 +#opt/lampp/man/man3/X509_NAME_ENTRY_create_by_txt.3 +#opt/lampp/man/man3/SSL_CTX_callback_ctrl.3 +#opt/lampp/man/man3/BIO_pending.3 +#opt/lampp/man/man3/B::Showlex.3 +#opt/lampp/man/man3/ldap_url_search.3 +#opt/lampp/man/man3/Encode::CN.3 +#opt/lampp/man/man3/set_menu_back.3menu.gz +#opt/lampp/man/man3/winsdelln.3ncurses.gz +#opt/lampp/man/man3/beep.3ncurses.gz +#opt/lampp/man/man3/Encode::JP.3 +#opt/lampp/man/man3/Encode::KR.3 +#opt/lampp/man/man3/DES_set_odd_parity.3 +#opt/lampp/man/man3/ldap_msgid.3 +#opt/lampp/man/man3/CRYPTO_destroy_dynlockid.3 +#opt/lampp/man/man3/mvscanw.3ncurses.gz +#opt/lampp/man/man3/Encode::TW.3 +#opt/lampp/man/man3/requestname.3menu.gz +#opt/lampp/man/man3/mvinchnstr.3ncurses.gz +#opt/lampp/man/man3/field_info.3form.gz +#opt/lampp/man/man3/waddnstr.3ncurses.gz +#opt/lampp/man/man3/SSL_set_bio.3 +#opt/lampp/man/man3/curl_easy_cleanup.3 +#opt/lampp/man/man3/Memoize.3 +#opt/lampp/man/man3/EVP_EncryptFinal.3 +#opt/lampp/man/man3/del_curterm.3ncurses.gz +#opt/lampp/man/man3/ASN1_generate_nconf.3 +#opt/lampp/man/man3/is_term_resized.3ncurses.gz +#opt/lampp/man/man3/ERR_clear_error.3 +#opt/lampp/man/man3/curl_share_cleanup.3 +#opt/lampp/man/man3/wrefresh.3ncurses.gz +#opt/lampp/man/man3/Pod::ParseUtils.3 +#opt/lampp/man/man3/i2d_X509_bio.3 +#opt/lampp/man/man3/new.3form.gz +#opt/lampp/man/man3/mvinch.3ncurses.gz +#opt/lampp/man/man3/TIFFFindCODEC.3t +#opt/lampp/man/man3/show_panel.3curses.gz +#opt/lampp/man/man3/BIO_set_nbio.3 +#opt/lampp/man/man3/set_form_sub.3form.gz +#opt/lampp/man/man3/DSAparams_print.3 +#opt/lampp/man/man3/current_item.3menu.gz +#opt/lampp/man/man3/curl_share_setopt.3 +#opt/lampp/man/man3/mvwaddchnstr.3ncurses.gz +#opt/lampp/man/man3/Storable.3 +#opt/lampp/man/man3/BIO_flush.3 +#opt/lampp/man/man3/SSL_get_ex_data_X509_STORE_CTX_idx.3 +#opt/lampp/man/man3/ldap_init_templates.3 +#opt/lampp/man/man3/SSL_CTX_sess_connect_renegotiate.3 +#opt/lampp/man/man3/bn_mul_add_words.3 +#opt/lampp/man/man3/SSL_CTX_set_max_cert_list.3 +#opt/lampp/man/man3/use_env.3ncurses.gz +#opt/lampp/man/man3/UI_dup_info_string.3 +#opt/lampp/man/man3/addchstr.3ncurses.gz +#opt/lampp/man/man3/set_menu_fore.3menu.gz +#opt/lampp/man/man3/SelfLoader.3 +#opt/lampp/man/man3/APR::Request::Param.3 +#opt/lampp/man/man3/ldap_setfilteraffixes.3 +#opt/lampp/man/man3/keypad.3ncurses.gz +#opt/lampp/man/man3/EVP_DecryptFinal.3 +#opt/lampp/man/man3/Math::Complex.3 +#opt/lampp/man/man3/ldap_tmplattrs.3 +#opt/lampp/man/man3/ber_get_bitstring.3 +#opt/lampp/man/man3/vw_scanw.3ncurses.gz +#opt/lampp/man/man3/ber_printf.3 +#opt/lampp/man/man3/getbegx.3ncurses.gz +#opt/lampp/man/man3/ldap_getfirstfilter.3 +#opt/lampp/man/man3/tgetnum.3ncurses.gz +#opt/lampp/man/man3/TIFFReadRGBAImage.3t +#opt/lampp/man/man3/ldap_objectclass2str.3 +#opt/lampp/man/man3/TIFFswab.3t +#opt/lampp/man/man3/BIO_ctrl_reset_read_request.3 +#opt/lampp/man/man3/ExtUtils::MM_Win32.3 +#opt/lampp/man/man3/SSL_CTX_load_verify_locations.3 +#opt/lampp/man/man3/ldap_first_entry.3 +#opt/lampp/man/man3/ExtUtils::MM_Win95.3 +#opt/lampp/man/man3/getnstr.3ncurses.gz +#opt/lampp/man/man3/TIFFCurrentTile.3t +#opt/lampp/man/man3/Term::ANSIColor.3 +#opt/lampp/man/man3/TIFFrealloc.3t +#opt/lampp/man/man3/BIO_new_ssl.3 +#opt/lampp/man/man3/ModPerl::MM.3 +#opt/lampp/man/man3/curl_strequal.3 +#opt/lampp/man/man3/Roadmap.3 +#opt/lampp/man/man3/pnoutrefresh.3ncurses.gz +#opt/lampp/man/man3/i2d_X509_NAME.3 +#opt/lampp/man/man3/Pod::Parser.3 +#opt/lampp/man/man3/BN_add.3 +#opt/lampp/man/man3/Pod::InputObjects.3 +#opt/lampp/man/man3/BN_cmp.3 +#opt/lampp/man/man3/EVP_CIPHER_CTX_iv_length.3 +#opt/lampp/man/man3/filter.3ncurses.gz +#opt/lampp/man/man3/BN_div.3 +#opt/lampp/man/man3/echo.3ncurses.gz +#opt/lampp/man/man3/new_panel.3curses.gz +#opt/lampp/man/man3/CONF_modules_unload.3 +#opt/lampp/man/man3/ModPerl::MethodLookup.3 +#opt/lampp/man/man3/form_driver.3form.gz +#opt/lampp/man/man3/BN_dup.3 +#opt/lampp/man/man3/link_fieldtype.3form.gz +#opt/lampp/man/man3/ldap.3 +#opt/lampp/man/man3/BN_gcd.3 +#opt/lampp/man/man3/BN_exp.3 +#opt/lampp/man/man3/TIFFFlush.3t +#opt/lampp/man/man3/DES_ede2_cfb64_encrypt.3 +#opt/lampp/man/man3/ERR_peek_error_line_data.3 +#opt/lampp/man/man3/less.3 +#opt/lampp/man/man3/filetest.3 +#opt/lampp/man/man3/ldap_scherr2str.3 +#opt/lampp/man/man3/CRYPTO_get_ex_data.3 +#opt/lampp/man/man3/SHA1_Init.3 +#opt/lampp/man/man3/TIFFGetMode.3t +#opt/lampp/man/man3/Apache::TestMB.3 +#opt/lampp/man/man3/Apache::TestMM.3 +#opt/lampp/man/man3/BIO_set_mem_eof_return.3 +#opt/lampp/man/man3/BN_mod.3 +#opt/lampp/man/man3/mvin_wchstr.3ncurses.gz +#opt/lampp/man/man3/BN_new.3 +#opt/lampp/man/man3/BN_mul.3 +#opt/lampp/man/man3/getcurx.3ncurses.gz +#opt/lampp/man/man3/BN_one.3 +#opt/lampp/man/man3/RSA_PKCS1_SSLeay.3 +#opt/lampp/man/man3/Net::Telnet.3 +#opt/lampp/man/man3/Pod::Man.3 +#opt/lampp/man/man3/halfdelay.3ncurses.gz +#opt/lampp/man/man3/pos_form_cursor.3form.gz +#opt/lampp/man/man3/mdc2.3 +#opt/lampp/man/man3/slk_label.3ncurses.gz +#opt/lampp/man/man3/ldap_uncache_request.3 +#opt/lampp/man/man3/Apache2::compat.3 +#opt/lampp/man/man3/ins_nwstr.3ncurses.gz +#opt/lampp/man/man3/SSL_get_verify_mode.3 +#opt/lampp/man/man3/EVP_PKEY_get1_DH.3 +#opt/lampp/man/man3/mvget_wch.3ncurses.gz +#opt/lampp/man/man3/mcprint.3ncurses.gz +#opt/lampp/man/man3/EVP_CIPHER_CTX_set_padding.3 +#opt/lampp/man/man3/BN_sqr.3 +#opt/lampp/man/man3/SSL_CTX_set_tmp_rsa.3 +#opt/lampp/man/man3/BN_sub.3 +#opt/lampp/man/man3/mvwaddstr.3ncurses.gz +#opt/lampp/man/man3/EVP_CIPHER_key_length.3 +#opt/lampp/man/man3/B::Xref.3 +#opt/lampp/man/man3/DSAparams_print_fp.3 +#opt/lampp/man/man3/TIFFFileName.3t +#opt/lampp/man/man3/winnwstr.3ncurses.gz +#opt/lampp/man/man3/HTTP::Daemon.3 +#opt/lampp/man/man3/getparyx.3ncurses.gz +#opt/lampp/man/man3/ber_start_set.3 +#opt/lampp/man/man3/X509_NAME_ENTRY_get_data.3 +#opt/lampp/man/man3/ldap_add_s.3 +#opt/lampp/man/man3/EVP_VerifyInit.3 +#opt/lampp/man/man3/TIFFLastDirectory.3t +#opt/lampp/man/man3/UI_add_input_string.3 +#opt/lampp/man/man3/Apache::TestRequest.3 +#opt/lampp/man/man3/gettext.3 +#opt/lampp/man/man3/bn_mul_words.3 +#opt/lampp/man/man3/AnyDBM_File.3 +#opt/lampp/man/man3/mvwinch.3ncurses.gz +#opt/lampp/man/man3/prefresh.3ncurses.gz +#opt/lampp/man/man3/ldap_parse_reference.3 +#opt/lampp/man/man3/curl_easy_reset.3 +#opt/lampp/man/man3/SSL_set_cipher_list.3 +#opt/lampp/man/man3/DSA_sign.3 +#opt/lampp/man/man3/SSL_set_session.3 +#opt/lampp/man/man3/OBJ_obj2nid.3 +#opt/lampp/man/man3/User::pwent.3 +#opt/lampp/man/man3/ldap_str2objectclass.3 +#opt/lampp/man/man3/B::Bytecode.3 +#opt/lampp/man/man3/DSA_size.3 +#opt/lampp/man/man3/ldap_next_attribute.3 +#opt/lampp/man/man3/add_wch.3ncurses.gz +#opt/lampp/man/man3/URI::ldap.3 +#opt/lampp/man/man3/addwstr.3ncurses.gz +#opt/lampp/man/man3/Test::Harness::Straps.3 +#opt/lampp/man/man3/set_menu_format.3menu.gz +#opt/lampp/man/man3/TIFFfree.3t +#opt/lampp/man/man3/BN_CTX_free.3 +#opt/lampp/man/man3/Apache2::FilterRec.3 +#opt/lampp/man/man3/PKCS12_parse.3 +#opt/lampp/man/man3/libcurl-easy.3 +#opt/lampp/man/man3/SSL_set_fd.3 +#opt/lampp/man/man3/SSL_CTX_set_quiet_shutdown.3 +#opt/lampp/man/man3/EVP_sha1.3 +#opt/lampp/man/man3/TIFFmalloc.3t +#opt/lampp/man/man3/dup_field.3form.gz +#opt/lampp/man/man3/Carp::Heavy.3 +#opt/lampp/man/man3/form_new_page.3form.gz +#opt/lampp/man/man3/OBJ_obj2txt.3 +#opt/lampp/man/man3/BN_CTX_end.3 +#opt/lampp/man/man3/mvwget_wstr.3ncurses.gz +#opt/lampp/man/man3/Net::HTTP.3 +#opt/lampp/man/man3/File::Listing.3 +#opt/lampp/man/man3/BF_set_key.3 +#opt/lampp/man/man3/BN_CTX_get.3 +#opt/lampp/man/man3/lh_insert.3 +#opt/lampp/man/man3/i2d_ASN1_OBJECT.3 +#opt/lampp/man/man3/innstr.3ncurses.gz +#opt/lampp/man/man3/BIO_next.3 +#opt/lampp/man/man3/SSL_need_tmp_rsa.3 +#opt/lampp/man/man3/field_type.3form.gz +#opt/lampp/man/man3/MD2_Init.3 +#opt/lampp/man/man3/HTTP::Cookies.3 +#opt/lampp/man/man3/SSL_set_ssl_method.3 +#opt/lampp/man/man3/dcgettext.3 +#opt/lampp/man/man3/menu_attributes.3menu.gz +#opt/lampp/man/man3/UI_set_method.3 +#opt/lampp/man/man3/Apache2::Resource.3 +#opt/lampp/man/man3/BN_get_word.3 +#opt/lampp/man/man3/menu_opts_off.3menu.gz +#opt/lampp/man/man3/set_item_userptr.3menu.gz +#opt/lampp/man/man3/EVP_MD_block_size.3 +#opt/lampp/man/man3/ExtUtils::MakeMaker::FAQ.3 +#opt/lampp/man/man3/URI::WithBase.3 +#opt/lampp/man/man3/form_field_opts.3form.gz +#opt/lampp/man/man3/OpenSSL_add_all_digests.3 +#opt/lampp/man/man3/form_opts_off.3form.gz +#opt/lampp/man/man3/BN_CTX_new.3 +#opt/lampp/man/man3/Shell.3 +#opt/lampp/man/man3/BIO_set_ssl_renegotiate_timeout.3 +#opt/lampp/man/man3/ldap_next_reference.3 +#opt/lampp/man/man3/mvgetstr.3ncurses.gz +#opt/lampp/man/man3/lh_node_usage_stats_bio.3 +#opt/lampp/man/man3/winnstr.3ncurses.gz +#opt/lampp/man/man3/TIFFSetWarningHandler.3t +#opt/lampp/man/man3/field_arg.3form.gz +#opt/lampp/man/man3/waddchstr.3ncurses.gz +#opt/lampp/man/man3/ber_bvecadd.3 +#opt/lampp/man/man3/DSA_get_ex_data.3 +#opt/lampp/man/man3/field_pad.3form.gz +#opt/lampp/man/man3/EVP_CIPHER_CTX_cipher.3 +#opt/lampp/man/man3/mvwinsstr.3ncurses.gz +#opt/lampp/man/man3/ldap_getfilter_free.3 +#opt/lampp/man/man3/libpngpf.3 +#opt/lampp/man/man3/border_set.3ncurses.gz +#opt/lampp/man/man3/set_field_init.3form.gz +#opt/lampp/man/man3/open.3 +#opt/lampp/man/man3/ldap_count_references.3 +#opt/lampp/man/man3/Test::Harness::Assert.3 +#opt/lampp/man/man3/HTML::Entities.3 +#opt/lampp/man/man3/lh_error.3 +#opt/lampp/man/man3/EVP_CIPHER_CTX_block_size.3 +#opt/lampp/man/man3/BIO_destroy_bio_pair.3 +#opt/lampp/man/man3/BN_mod_add.3 +#opt/lampp/man/man3/SSL_CTX_get_client_cert_cb.3 +#opt/lampp/man/man3/TIFFTileSize.3t +#opt/lampp/man/man3/BN_pseudo_rand.3 +#opt/lampp/man/man3/ExtUtils::Constant::Utils.3 +#opt/lampp/man/man3/Apache2::porting.3 +#opt/lampp/man/man3/getmaxx.3ncurses.gz +#opt/lampp/man/man3/EVP_CIPHER_CTX_set_app_data.3 +#opt/lampp/man/man3/dcngettext.3 +#opt/lampp/man/man3/BN_mod_exp.3 +#opt/lampp/man/man3/DES_is_weak_key.3 +#opt/lampp/man/man3/ldap_compare_ext.3 +#opt/lampp/man/man3/DBM_Filter.3 +#opt/lampp/man/man3/Pod::Perldoc::ToText.3 +#opt/lampp/man/man3/BN_CTX_init.3 +#opt/lampp/man/man3/mvinsch.3ncurses.gz +#opt/lampp/man/man3/BIO_s_socket.3 +#opt/lampp/man/man3/EVP_OpenUpdate.3 +#opt/lampp/man/man3/ldap_syntax_free.3 +#opt/lampp/man/man3/getbkgd.3ncurses.gz +#opt/lampp/man/man3/i2d_RSAPrivateKey.3 +#opt/lampp/man/man3/SSL_SESSION_set_ex_data.3 +#opt/lampp/man/man3/Locale::Language.3 +#opt/lampp/man/man3/wecho_wchar.3ncurses.gz +#opt/lampp/man/man3/wbkgd.3ncurses.gz +#opt/lampp/man/man3/ber_bvfree.3 +#opt/lampp/man/man3/win.3form.gz +#opt/lampp/man/man3/set_item_init.3menu.gz +#opt/lampp/man/man3/SSL_CTX_get_verify_depth.3 +#opt/lampp/man/man3/Thread::Queue.3 +#opt/lampp/man/man3/PerlIO.3 +#opt/lampp/man/man3/EVP_BytesToKey.3 +#opt/lampp/man/man3/Time::localtime.3 +#opt/lampp/man/man3/TIFFReadRawTile.3t +#opt/lampp/man/man3/SSL_connect.3 +#opt/lampp/man/man3/i2d_DSAPrivateKey.3 +#opt/lampp/man/man3/BN_mod_mul.3 +#opt/lampp/man/man3/mvwin_wch.3ncurses.gz +#opt/lampp/man/man3/d2i_X509_REQ_fp.3 +#opt/lampp/man/man3/Fatal.3 +#opt/lampp/man/man3/I18N::Langinfo.3 +#opt/lampp/man/man3/mvwinwstr.3ncurses.gz +#opt/lampp/man/man3/ldap_first_message.3 +#opt/lampp/man/man3/addnwstr.3ncurses.gz +#opt/lampp/man/man3/BN_BLINDING_set_thread_id.3 +#opt/lampp/man/man3/BN_print.3 +#opt/lampp/man/man3/Devel::SelfStubber.3 +#opt/lampp/man/man3/X509_NAME_get_entry.3 +#opt/lampp/man/man3/BIO_get_cipher_status.3 +#opt/lampp/man/man3/rand.3 +#opt/lampp/man/man3/OBJ_cleanup.3 +#opt/lampp/man/man3/bn_mul_low_normal.3 +#opt/lampp/man/man3/B::Terse.3 +#opt/lampp/man/man3/lh_new.3 +#opt/lampp/man/man3/SSL_CTX_sess_get_new_cb.3 +#opt/lampp/man/man3/free_item.3menu.gz +#opt/lampp/man/man3/BN_mod_sqr.3 +#opt/lampp/man/man3/wgetn_wstr.3ncurses.gz +#opt/lampp/man/man3/TIFFquery.3t +#opt/lampp/man/man3/BN_mod_sub.3 +#opt/lampp/man/man3/attr_on.3ncurses.gz +#opt/lampp/man/man3/ldap_explode_dn.3 +#opt/lampp/man/man3/IO::Socket::INET.3 +#opt/lampp/man/man3/SSL_load_error_strings.3 +#opt/lampp/man/man3/libcurl-share.3 +#opt/lampp/man/man3/X509_NAME_ENTRY_set_data.3 +#opt/lampp/man/man3/APR::Request::CGI.3 +#opt/lampp/man/man3/BIO_push.3 +#opt/lampp/man/man3/scroll.3ncurses.gz +#opt/lampp/man/man3/BIO_puts.3 +#opt/lampp/man/man3/mvwins_wch.3ncurses.gz +#opt/lampp/man/man3/field_opts_on.3form.gz +#opt/lampp/man/man3/wgetnstr.3ncurses.gz +#opt/lampp/man/man3/SSL_CTX_new.3 +#opt/lampp/man/man3/requestname.3form.gz +#opt/lampp/man/man3/SSL_CIPHER_get_version.3 +#opt/lampp/man/man3/Math::BigInt::CalcEmu.3 +#opt/lampp/man/man3/ldap_kerberos_bind1.3 +#opt/lampp/man/man3/ldap_kerberos_bind2.3 +#opt/lampp/man/man3/set_term.3ncurses.gz +#opt/lampp/man/man3/BIO_ctrl_get_write_guarantee.3 +#opt/lampp/man/man3/buffer.3 +#opt/lampp/man/man3/BIO_read.3 +#opt/lampp/man/man3/BIO_get_callback_arg.3 +#opt/lampp/man/man3/set_field_back.3form.gz +#opt/lampp/man/man3/getmaxyx.3ncurses.gz +#opt/lampp/man/man3/ExtUtils::Command::MM.3 +#opt/lampp/man/man3/Encode::Config.3 +#opt/lampp/man/man3/IPC::Open2.3 +#opt/lampp/man/man3/IPC::Open3.3 +#opt/lampp/man/man3/BUF_MEM_free.3 +#opt/lampp/man/man3/BN_clear.3 +#opt/lampp/man/man3/SSL_CTX_sess_set_remove_cb.3 +#opt/lampp/man/man3/ERR_load_strings.3 +#opt/lampp/man/man3/Fcntl.3 +#opt/lampp/man/man3/TIFFStripSize.3t +#opt/lampp/man/man3/TIFFScanlineSize.3t +#opt/lampp/man/man3/BIO_s_fd.3 +#opt/lampp/man/man3/TIFFDefaultStripSize.3t +#opt/lampp/man/man3/CRYPTO_num_locks.3 +#opt/lampp/man/man3/x509.3 +#opt/lampp/man/man3/getcchar.3ncurses.gz +#opt/lampp/man/man3/Math::BigFloat.3 +#opt/lampp/man/man3/Bundle::ApacheTest.3 +#opt/lampp/man/man3/BN_lshift.3 +#opt/lampp/man/man3/ldap_dcedn2dn.3 +#opt/lampp/man/man3/bn_div_words.3 +#opt/lampp/man/man3/Tie::Handle.3 +#opt/lampp/man/man3/DBD::mysql.3 +#opt/lampp/man/man3/Apache2::SubProcess.3 +#opt/lampp/man/man3/ldap_value_free.3 +#opt/lampp/man/man3/SSL_check_private_key.3 +#opt/lampp/man/man3/LWP::MemberMixin.3 +#opt/lampp/man/man3/SSL_use_RSAPrivateKey.3 +#opt/lampp/man/man3/print.3ncurses.gz +#opt/lampp/man/man3/DynaLoader.3 +#opt/lampp/man/man3/data_ahead.3form.gz +#opt/lampp/man/man3/mvwins_wstr.3ncurses.gz +#opt/lampp/man/man3/Getopt::Std.3 +#opt/lampp/man/man3/EVP_DigestUpdate.3 +#opt/lampp/man/man3/BIO_seek.3 +#opt/lampp/man/man3/SSL_CTX_set_session_cache_mode.3 +#opt/lampp/man/man3/ERR_set_mark.3 +#opt/lampp/man/man3/lh_stats.3 +#opt/lampp/man/man3/UI_dup_input_boolean.3 +#opt/lampp/man/man3/set_panel_userptr.3curses.gz +#opt/lampp/man/man3/ldap_attributetype2str.3 +#opt/lampp/man/man3/form_field_new.3form.gz +#opt/lampp/man/man3/TIFFReadScanline.3t +#opt/lampp/man/man3/CGI::Pretty.3 +#opt/lampp/man/man3/set_field_fore.3form.gz +#opt/lampp/man/man3/mvwadd_wchstr.3ncurses.gz +#opt/lampp/man/man3/slk_init.3ncurses.gz +#opt/lampp/man/man3/addchnstr.3ncurses.gz +#opt/lampp/man/man3/BN_set_word.3 +#opt/lampp/man/man3/setupterm.3ncurses.gz +#opt/lampp/man/man3/BUF_MEM_grow.3 +#opt/lampp/man/man3/Apache::TestReport.3 +#opt/lampp/man/man3/IPC::SysV.3 +#opt/lampp/man/man3/Net::NNTP.3 +#opt/lampp/man/man3/sort.3 +#opt/lampp/man/man3/X509_NAME_entry_count.3 +#opt/lampp/man/man3/mitem_new.3menu.gz +#opt/lampp/man/man3/getmouse.3ncurses.gz +#opt/lampp/man/man3/UNIVERSAL.3 +#opt/lampp/man/man3/ExtUtils::MM_BeOS.3 +#opt/lampp/man/man3/ldap_str2syntax.3 +#opt/lampp/man/man3/EVP_PKEY_set1_EC_KEY.3 +#opt/lampp/man/man3/ldap_enable_cache.3 +#opt/lampp/man/man3/ber_str2bv.3 +#opt/lampp/man/man3/mvderwin.3ncurses.gz +#opt/lampp/man/man3/wadd_wchstr.3ncurses.gz +#opt/lampp/man/man3/B::Stash.3 +#opt/lampp/man/man3/Apache2::Response.3 +#opt/lampp/man/man3/SSL_rstate_string.3 +#opt/lampp/man/man3/subs.3 +#opt/lampp/man/man3/ERR_get_error.3 +#opt/lampp/man/man3/BIO_s_file.3 +#opt/lampp/man/man3/UI_get0_result.3 +#opt/lampp/man/man3/HTTP::Request.3 +#opt/lampp/man/man3/color_set.3ncurses.gz +#opt/lampp/man/man3/BIO_tell.3 +#opt/lampp/man/man3/ASN1_STRING_print_ex.3 +#opt/lampp/man/man3/i2d_X509.3 +#opt/lampp/man/man3/SSL_use_RSAPrivateKey_file.3 +#opt/lampp/man/man3/bn_mul_low_recursive.3 +#opt/lampp/man/man3/Socket.3 +#opt/lampp/man/man3/RAND_pseudo_bytes.3 +#opt/lampp/man/man3/SSL_CTX_get_client_CA_list.3 +#opt/lampp/man/man3/Encode::EBCDIC.3 +#opt/lampp/man/man3/d2i_RSAPublicKey.3 +#opt/lampp/man/man3/Pod::Perldoc::ToMan.3 +#opt/lampp/man/man3/Pod::Text::Overstrike.3 +#opt/lampp/man/man3/_tracechtype2.3ncurses.gz +#opt/lampp/man/man3/BIO_new_fd.3 +#opt/lampp/man/man3/BIO_new_fp.3 +#opt/lampp/man/man3/curl_slist_append.3 +#opt/lampp/man/man3/userptr.3menu.gz +#opt/lampp/man/man3/ripemd.3 +#opt/lampp/man/man3/DBI::Const::GetInfo::ODBC.3 +#opt/lampp/man/man3/Data::Dumper.3 +#opt/lampp/man/man3/SSL_CTX_set_tmp_dh.3 +#opt/lampp/man/man3/wadd_wch.3ncurses.gz +#opt/lampp/man/man3/SSL_CTX_sess_cache_full.3 +#opt/lampp/man/man3/Class::Struct.3 +#opt/lampp/man/man3/getwin.3ncurses.gz +#opt/lampp/man/man3/waddwstr.3ncurses.gz +#opt/lampp/man/man3/dynamic_field_info.3form.gz +#opt/lampp/man/man3/HMAC_Init.3 +#opt/lampp/man/man3/Pod::Perldoc::ToPod.3 +#opt/lampp/man/man3/def_shell_mode.3ncurses.gz +#opt/lampp/man/man3/idlok.3ncurses.gz +#opt/lampp/man/man3/d2i_Netscape_RSA.3 +#opt/lampp/man/man3/ber_bvdup.3 +#opt/lampp/man/man3/DH_check.3 +#opt/lampp/man/man3/bkgdset.3ncurses.gz +#opt/lampp/man/man3/Pod::Perldoc::ToRtf.3 +#opt/lampp/man/man3/TIFFClose.3t +#opt/lampp/man/man3/File::stat.3 +#opt/lampp/man/man3/TIFFUnRegisterCODEC.3t +#opt/lampp/man/man3/resizeterm.3ncurses.gz +#opt/lampp/man/man3/curl_strnequal.3 +#opt/lampp/man/man3/FileCache.3 +#opt/lampp/man/man3/vars.3 +#opt/lampp/man/man3/BIO_set_ssl_renegotiate_bytes.3 +#opt/lampp/man/man3/driver.3menu.gz +#opt/lampp/man/man3/File::Spec::Functions.3 +#opt/lampp/man/man3/B::Bblock.3 +#opt/lampp/man/man3/DES_random_key.3 +#opt/lampp/man/man3/BN_BLINDING_get_flags.3 +#opt/lampp/man/man3/EVP_CipherInit_ex.3 +#opt/lampp/man/man3/data.3form.gz +#opt/lampp/man/man3/ldap_compare.3 +#opt/lampp/man/man3/locale.3 +#opt/lampp/man/man3/ldap_kerberos_bind1_s.3 +#opt/lampp/man/man3/mvwin.3ncurses.gz +#opt/lampp/man/man3/Net::POP3.3 +#opt/lampp/man/man3/ldap_kerberos_bind2_s.3 +#opt/lampp/man/man3/field_new.3form.gz +#opt/lampp/man/man3/X509_NAME_print_ex_fp.3 +#opt/lampp/man/man3/Pod::Perldoc::ToXml.3 +#opt/lampp/man/man3/ldap_matchingrule2name.3 +#opt/lampp/man/man3/mvinsnstr.3ncurses.gz +#opt/lampp/man/man3/DBI::DBD::Metadata.3 +#opt/lampp/man/man3/putp.3ncurses.gz +#opt/lampp/man/man3/vmsish.3 +#opt/lampp/man/man3/BIO_get_cipher_ctx.3 +#opt/lampp/man/man3/addstr.3ncurses.gz +#opt/lampp/man/man3/DSA_OpenSSL.3 +#opt/lampp/man/man3/utf8.3 +#opt/lampp/man/man3/HTML::Form.3 +#opt/lampp/man/man3/SSL_CTX_use_PrivateKey_ASN1.3 +#opt/lampp/man/man3/mouse.3ncurses.gz +#opt/lampp/man/man3/set_menu_pattern.3menu.gz +#opt/lampp/man/man3/ber_peek_tag.3 +#opt/lampp/man/man3/color_content.3ncurses.gz +#opt/lampp/man/man3/whline_set.3ncurses.gz +#opt/lampp/man/man3/PerlIO::via::QuotedPrint.3 +#opt/lampp/man/man3/ldap_flush_cache.3 +#opt/lampp/man/man3/Pod::Checker.3 +#opt/lampp/man/man3/SSL_get_session.3 +#opt/lampp/man/man3/hline.3ncurses.gz +#opt/lampp/man/man3/Test::More.3 +#opt/lampp/man/man3/doupdate.3ncurses.gz +#opt/lampp/man/man3/whline.3ncurses.gz +#opt/lampp/man/man3/get_wch.3ncurses.gz +#opt/lampp/man/man3/DSA_get_default_method.3 +#opt/lampp/man/man3/BN_dec2bn.3 +#opt/lampp/man/man3/waddnwstr.3ncurses.gz +#opt/lampp/man/man3/ldap_bind.3 +#opt/lampp/man/man3/ber_bvstr.3 +#opt/lampp/man/man3/curl_free.3 +#opt/lampp/man/man3/waddstr.3ncurses.gz +#opt/lampp/man/man3/BIO_set_accept_port.3 +#opt/lampp/man/man3/SSL_get_verify_result.3 +#opt/lampp/man/man3/DES_ecb2_encrypt.3 +#opt/lampp/man/man3/Compress::Zlib.3 +#opt/lampp/man/man3/ldap_attributetype_free.3 +#opt/lampp/man/man3/Digest::base.3 +#opt/lampp/man/man3/BIO_get_close.3 +#opt/lampp/man/man3/TIFFWriteRawStrip.3t +#opt/lampp/man/man3/BF_encrypt.3 +#opt/lampp/man/man3/bn_sqr_normal.3 +#opt/lampp/man/man3/Errno.3 +#opt/lampp/man/man3/mvwvline.3ncurses.gz +#opt/lampp/man/man3/DBM_Filter::null.3 +#opt/lampp/man/man3/Encode::Supported.3 +#opt/lampp/man/man3/ldap_str2dn.3 +#opt/lampp/man/man3/panel_userptr.3curses.gz +#opt/lampp/man/man3/OPENSSL_Applink.3 +#opt/lampp/man/man3/EVP_MD_pkey_type.3 +#opt/lampp/man/man3/BIO_new_bio_pair.3 +#opt/lampp/man/man3/curl_formparse.3 +#opt/lampp/man/man3/SSL_set_connect_state.3 +#opt/lampp/man/man3/item_count.3menu.gz +#opt/lampp/man/man3/EVP_get_digestbynid.3 +#opt/lampp/man/man3/EVP_MD_size.3 +#opt/lampp/man/man3/item_description.3menu.gz +#opt/lampp/man/man3/EVP_get_digestbyobj.3 +#opt/lampp/man/man3/BIO_get_read_request.3 +#opt/lampp/man/man3/TIFFRGBAImageBegin.3t +#opt/lampp/man/man3/attributes.3menu.gz +#opt/lampp/man/man3/ERR_error_string.3 +#opt/lampp/man/man3/LWP::Debug.3 +#opt/lampp/man/man3/Net::Netrc.3 +#opt/lampp/man/man3/LWP::Authen::Ntlm.3 +#opt/lampp/man/man3/SSL_do_handshake.3 +#opt/lampp/man/man3/TIFFVSetField.3t +#opt/lampp/man/man3/BIO_set_fd.3 +#opt/lampp/man/man3/BIO_set_fp.3 +#opt/lampp/man/man3/EVP_DecryptInit.3 +#opt/lampp/man/man3/BIO_set_md.3 +#opt/lampp/man/man3/CRYPTO_set_dynlock_create_callback.3 +#opt/lampp/man/man3/mvwgetn_wstr.3ncurses.gz +#opt/lampp/man/man3/Net::Ping.3 +#opt/lampp/man/man3/DB_File.3 +#opt/lampp/man/man3/warnings::register.3 +#opt/lampp/man/man3/form_field_attributes.3form.gz +#opt/lampp/man/man3/UI_add_info_string.3 +#opt/lampp/man/man3/BIO_ctrl_get_read_request.3 +#opt/lampp/man/man3/ERR_lib_error_string.3 +#opt/lampp/man/man3/Net::SMTP.3 +#opt/lampp/man/man3/UI_get_default_method.3 +#opt/lampp/man/man3/ldap_unbind_ext.3 +#opt/lampp/man/man3/ExtUtils::Mkbootstrap.3 +#opt/lampp/man/man3/insstr.3ncurses.gz +#opt/lampp/man/man3/HTTP::Request::Common.3 +#opt/lampp/man/man3/ldap_url_search_s.3 +#opt/lampp/man/man3/TIFFIsUpSampled.3t +#opt/lampp/man/man3/ldap_free_urldesc.3 +#opt/lampp/man/man3/mouse_trafo.3ncurses.gz +#opt/lampp/man/man3/wattr_on.3ncurses.gz +#opt/lampp/man/man3/Encode::Unicode::UTF7.3 +#opt/lampp/man/man3/WWW::RobotRules::AnyDBM_File.3 +#opt/lampp/man/man3/IO::Dir.3 +#opt/lampp/man/man3/bn_set_high.3 +#opt/lampp/man/man3/ExtUtils::Manifest.3 +#opt/lampp/man/man3/Unicode::Normalize.3 +#opt/lampp/man/man3/bn_expand.3 +#opt/lampp/man/man3/BIO_should_read.3 +#opt/lampp/man/man3/Apache2::ServerRec.3 +#opt/lampp/man/man3/lh_node_stats_bio.3 +#opt/lampp/man/man3/winsstr.3ncurses.gz +#opt/lampp/man/man3/TIFFRGBAImage.3t +#opt/lampp/man/man3/ExtUtils::Embed.3 +#opt/lampp/man/man3/Exporter.3 +#opt/lampp/man/man3/SSL_SESSION_get_ex_data.3 +#opt/lampp/man/man3/Locale::Currency.3 +#opt/lampp/man/man3/OpenSSL_add_ssl_algorithms.3 +#opt/lampp/man/man3/curl_mprintf.3 +#opt/lampp/man/man3/SSL_get_shutdown.3 +#opt/lampp/man/man3/SSL_CTX_use_certificate_file.3 +#opt/lampp/man/man3/DH_free.3 +#opt/lampp/man/man3/Encode::Symbol.3 +#opt/lampp/man/man3/wmove.3ncurses.gz +#opt/lampp/man/man3/mitem_userptr.3menu.gz +#opt/lampp/man/man3/curl_multi_info_read.3 +#opt/lampp/man/man3/bkgrnd.3ncurses.gz +#opt/lampp/man/man3/EVP_CIPHER_asn1_to_param.3 +#opt/lampp/man/man3/EVP_MD_type.3 +#opt/lampp/man/man3/i2d_X509_CRL_bio.3 +#opt/lampp/man/man3/i2d_DSAPublicKey.3 +#opt/lampp/man/man3/BN_is_odd.3 +#opt/lampp/man/man3/SSL_get_cipher.3 +#opt/lampp/man/man3/DirHandle.3 +#opt/lampp/man/man3/FileHandle.3 +#opt/lampp/man/man3/EVP_CIPHER_nid.3 +#opt/lampp/man/man3/MDC2_Final.3 +#opt/lampp/man/man3/BN_is_one.3 +#opt/lampp/man/man3/in_wch.3ncurses.gz +#opt/lampp/man/man3/APR::BucketType.3 +#opt/lampp/man/man3/SSL_CTX_set_verify.3 +#opt/lampp/man/man3/TIFFCurrentRow.3t +#opt/lampp/man/man3/inwstr.3ncurses.gz +#opt/lampp/man/man3/tgetent.3ncurses.gz +#opt/lampp/man/man3/spacing.3menu.gz +#opt/lampp/man/man3/i2d_PKCS8PrivateKey_bio.3 +#opt/lampp/man/man3/ldap_entry2html.3 +#opt/lampp/man/man3/noraw.3ncurses.gz +#opt/lampp/man/man3/slk_attroff.3ncurses.gz +#opt/lampp/man/man3/wbkgrnd.3ncurses.gz +#opt/lampp/man/man3/SSL_CTX_add_extra_chain_cert.3 +#opt/lampp/man/man3/Apache::TestSmoke.3 +#opt/lampp/man/man3/slk_color.3ncurses.gz +#opt/lampp/man/man3/ber_get_enum.3 +#opt/lampp/man/man3/win_wch.3ncurses.gz +#opt/lampp/man/man3/Filter::Simple.3 +#opt/lampp/man/man3/CPAN::Nox.3 +#opt/lampp/man/man3/ldap_delete_ext.3 +#opt/lampp/man/man3/mvins_nwstr.3ncurses.gz +#opt/lampp/man/man3/BN_rshift1.3 +#opt/lampp/man/man3/SHA1_Final.3 +#opt/lampp/man/man3/HTML::LinkExtor.3 +#opt/lampp/man/man3/winwstr.3ncurses.gz +#opt/lampp/man/man3/BN_mpi2bn.3 +#opt/lampp/man/man3/LWP::UserAgent.3 +#opt/lampp/man/man3/top_panel.3curses.gz +#opt/lampp/man/man3/set_field_buffer.3form.gz +#opt/lampp/man/man3/ldap_ufn_setprefix.3 +#opt/lampp/man/man3/SSL_ctrl.3 +#opt/lampp/man/man3/LWP::Simple.3 +#opt/lampp/man/man3/napms.3ncurses.gz +#opt/lampp/man/man3/SSL_set_tmp_rsa_callback.3 +#opt/lampp/man/man3/BIO_eof.3 +#opt/lampp/man/man3/mvwgetstr.3ncurses.gz +#opt/lampp/man/man3/SSL_set_max_cert_list.3 +#opt/lampp/man/man3/Apache2::Build.3 +#opt/lampp/man/man3/item_userptr.3menu.gz +#opt/lampp/man/man3/echochar.3ncurses.gz +#opt/lampp/man/man3/BF_decrypt.3 +#opt/lampp/man/man3/SSL_CTX_add_session.3 +#opt/lampp/man/man3/lber-encode.3 +#opt/lampp/man/man3/Digest::file.3 +#opt/lampp/man/man3/i2d_X509_fp.3 +#opt/lampp/man/man3/BN_generate_prime.3 +#opt/lampp/man/man3/BIO_set_info_callback.3 +#opt/lampp/man/man3/PerlIO::via.3 +#opt/lampp/man/man3/color.3ncurses.gz +#opt/lampp/man/man3/BN_BLINDING_convert_ex.3 +#opt/lampp/man/man3/X509_NAME_add_entry.3 +#opt/lampp/man/man3/Scalar::Util.3 +#opt/lampp/man/man3/set_menu_term.3menu.gz +#opt/lampp/man/man3/wbkgrndset.3ncurses.gz +#opt/lampp/man/man3/putwin.3ncurses.gz +#opt/lampp/man/man3/MD4_Update.3 +#opt/lampp/man/man3/Attribute::Handlers::demo::MyClass.3 +#opt/lampp/man/man3/mcrypt.3 +#opt/lampp/man/man3/autouse.3 +#opt/lampp/man/man3/ldap_next_message.3 +#opt/lampp/man/man3/BIO_new.3 +#opt/lampp/man/man3/notimeout.3ncurses.gz +#opt/lampp/man/man3/ERR_load_UI_strings.3 +#opt/lampp/man/man3/SSL_get_cipher_bits.3 +#opt/lampp/man/man3/SSL_CTX_use_RSAPrivateKey_ASN1.3 +#opt/lampp/man/man3/wcursyncup.3ncurses.gz +#opt/lampp/man/man3/Time::tm.3 +#opt/lampp/man/man3/BIO_pop.3 +#opt/lampp/man/man3/clrtobot.3ncurses.gz +#opt/lampp/man/man3/BIO_vfree.3 +#opt/lampp/man/man3/Net::Time.3 +#opt/lampp/man/man3/RSA_set_ex_data.3 +#opt/lampp/man/man3/RSA_flags.3 +#opt/lampp/man/man3/curl_multi_init.3 +#opt/lampp/man/man3/Encode::CJKConstants.3 +#opt/lampp/man/man3/BIO_set.3 +#opt/lampp/man/man3/field_just.3form.gz +#opt/lampp/man/man3/TIFFSetDirectory.3t +#opt/lampp/man/man3/redrawwin.3ncurses.gz +#opt/lampp/man/man3/IO::Seekable.3 +#opt/lampp/man/man3/DES_ede3_ofb64_encrypt.3 +#opt/lampp/man/man3/CPAN::Admin.3 +#opt/lampp/man/man3/wbkgdset.3ncurses.gz +#opt/lampp/man/man3/mvprintw.3ncurses.gz +#opt/lampp/man/man3/form_fieldtype.3form.gz +#opt/lampp/man/man3/SSL_set_msg_callback.3 +#opt/lampp/man/man3/Locale::Maketext.3 +#opt/lampp/man/man3/ldap_count_messages.3 +#opt/lampp/man/man3/Net::Config.3 +#opt/lampp/man/man3/EVP_PKEY_get1_EC_KEY.3 +#opt/lampp/man/man3/ldap_count_values_len.3 +#opt/lampp/man/man3/threads::shared.3 +#opt/lampp/man/man3/attr_off.3ncurses.gz +#opt/lampp/man/man3/mvwhline_set.3ncurses.gz +#opt/lampp/man/man3/restartterm.3ncurses.gz +#opt/lampp/man/man3/UI_get_method.3 +#opt/lampp/man/man3/getbegyx.3ncurses.gz +#opt/lampp/man/man3/MD4_Init.3 +#opt/lampp/man/man3/form_cursor.3form.gz +#opt/lampp/man/man3/DBD::File.3 +#opt/lampp/man/man3/SSL_CTX_sess_set_cache_size.3 +#opt/lampp/man/man3/i2d_PKCS8PrivateKey_fp.3 +#opt/lampp/man/man3/SSL_flush_sessions.3 +#opt/lampp/man/man3/getbegy.3ncurses.gz +#opt/lampp/man/man3/EVP_EncryptUpdate.3 +#opt/lampp/man/man3/newwin.3ncurses.gz +#opt/lampp/man/man3/curl_easy_perform.3 +#opt/lampp/man/man3/BIO_s_null.3 +#opt/lampp/man/man3/ERR_GET_REASON.3 +#opt/lampp/man/man3/Encode::Byte.3 +#opt/lampp/man/man3/ExtUtils::XSBuilder::PODTemplate.3 +#opt/lampp/man/man3/slk_attrset.3ncurses.gz +#opt/lampp/man/man3/tgetflag.3ncurses.gz +#opt/lampp/man/man3/cldap_open.3 +#opt/lampp/man/man3/Attribute::Handlers::demo::Descriptions.3 +#opt/lampp/man/man3/form_field.3form.gz +#opt/lampp/man/man3/Encode::Encoding.3 +#opt/lampp/man/man3/slk_attr.3ncurses.gz +#opt/lampp/man/man3/APR::Brigade.3 +#opt/lampp/man/man3/getparx.3ncurses.gz +#opt/lampp/man/man3/X509_NAME_get_text_by_NID.3 +#opt/lampp/man/man3/Digest.3 +#opt/lampp/man/man3/mvwaddchstr.3ncurses.gz +#opt/lampp/man/man3/X509_NAME_get_text_by_OBJ.3 +#opt/lampp/man/man3/BN_BLINDING_invert.3 +#opt/lampp/man/man3/IO::Handle.3 +#opt/lampp/man/man3/TIFFError.3t +#opt/lampp/man/man3/clearok.3ncurses.gz +#opt/lampp/man/man3/standout.3ncurses.gz +#opt/lampp/man/man3/chgat.3ncurses.gz +#opt/lampp/man/man3/ldap_init_getfilter.3 +#opt/lampp/man/man3/IO::Socket::UNIX.3 +#opt/lampp/man/man3/SSL_free.3 +#opt/lampp/man/man3/userptr.3form.gz +#opt/lampp/man/man3/wchgat.3ncurses.gz +#opt/lampp/man/man3/wget_wch.3ncurses.gz +#opt/lampp/man/man3/DBM_Filter::utf8.3 +#opt/lampp/man/man3/ldap_init.3 +#opt/lampp/man/man3/BIO_get_callback.3 +#opt/lampp/man/man3/curl_getenv.3 +#opt/lampp/man/man3/RSA_blinding_off.3 +#opt/lampp/man/man3/ldap_sort_values.3 +#opt/lampp/man/man3/ldap_entry2text_search.3 +#opt/lampp/man/man3/DSA_sign_setup.3 +#opt/lampp/man/man3/APR::Const.3 +#opt/lampp/man/man3/UI_dup_error_string.3 +#opt/lampp/man/man3/driver.3form.gz +#opt/lampp/man/man3/Devel::Peek.3 +#opt/lampp/man/man3/X509_NAME_oneline.3 +#opt/lampp/man/man3/PKCS7_encrypt.3 +#opt/lampp/man/man3/POSIX.3 +#opt/lampp/man/man3/BIO_debug_callback.3 +#opt/lampp/man/man3/SSL_use_PrivateKey_ASN1.3 +#opt/lampp/man/man3/SSL_CTX_set_client_cert_cb.3 +#opt/lampp/man/man3/ldap_perror.3 +#opt/lampp/man/man3/Parse::RecDescent.3 +#opt/lampp/man/man3/ldap_first_searchobj.3 +#opt/lampp/man/man3/X509_NAME_ENTRY_set_object.3 +#opt/lampp/man/man3/field_count.3form.gz +#opt/lampp/man/man3/DBI::W32ODBC.3 +#opt/lampp/man/man3/ldap_charset.3 +#opt/lampp/man/man3/wvline_set.3ncurses.gz +#opt/lampp/man/man3/ERR_add_error_data.3 +#opt/lampp/man/man3/getcury.3ncurses.gz +#opt/lampp/man/man3/form_requestname.3form.gz +#opt/lampp/man/man3/fieldtype.3form.gz +#opt/lampp/man/man3/SSL_CTX_set_timeout.3 +#opt/lampp/man/man3/field.3form.gz +#opt/lampp/man/man3/BIO_ssl_copy_session_id.3 +#opt/lampp/man/man3/TIFFSetSubDirectory.3t +#opt/lampp/man/man3/ldap_str2matchingrule.3 +#opt/lampp/man/man3/SSL_CTX_remove_session.3 +#opt/lampp/man/man3/MD5_Final.3 +#opt/lampp/man/man3/SSL_CTX_sess_accept.3 +#opt/lampp/man/man3/ldap_modify_s.3 +#opt/lampp/man/man3/CONF_modules_free.3 +#opt/lampp/man/man3/ber_bvecfree.3 +#opt/lampp/man/man3/curl_easy_duphandle.3 +#opt/lampp/man/man3/RSA_new_method.3 +#opt/lampp/man/man3/ldap_init_getfilter_buf.3 +#opt/lampp/man/man3/BN_is_prime.3 +#opt/lampp/man/man3/attrs.3 +#opt/lampp/man/man3/SSL_get_cipher_version.3 +#opt/lampp/man/man3/insnstr.3ncurses.gz +#opt/lampp/man/man3/Pod::Select.3 +#opt/lampp/man/man3/attr_set.3ncurses.gz +#opt/lampp/man/man3/SSL_load_client_CA_file.3 +#opt/lampp/man/man3/libpng.3 +#opt/lampp/man/man3/ldap_free_friendlymap.3 +#opt/lampp/man/man3/ldap_cache.3 +#opt/lampp/man/man3/mark.3menu.gz +#opt/lampp/man/man3/d2i_DSA_SIG.3 +#opt/lampp/man/man3/X509_NAME_delete_entry.3 +#opt/lampp/man/man3/terminfo.3ncurses.gz +#opt/lampp/man/man3/outopts.3ncurses.gz +#opt/lampp/man/man3/ldap_delete_ext_s.3 +#opt/lampp/man/man3/Apache::SubProcess.3 +#opt/lampp/man/man3/scr_init.3ncurses.gz +#opt/lampp/man/man3/trace.3ncurses.gz +#opt/lampp/man/man3/BN_is_prime_fasttest.3 +#opt/lampp/man/man3/ui_compat.3 +#opt/lampp/man/man3/field_validation.3form.gz +#opt/lampp/man/man3/libxml.3 +#opt/lampp/man/man3/bn_fix_top.3 +#opt/lampp/man/man3/ldap_is_ldap_url.3 +#opt/lampp/man/man3/ASN1_STRING_data.3 +#opt/lampp/man/man3/Apache2::RequestRec.3 +#opt/lampp/man/man3/wechochar.3ncurses.gz +#opt/lampp/man/man3/DBI::Const::GetInfoType.3 +#opt/lampp/man/man3/unpost_menu.3menu.gz +#opt/lampp/man/man3/d2i_RSAPrivateKey.3 +#opt/lampp/man/man3/DH_get_ex_new_index.3 +#opt/lampp/man/man3/Apache2::Const.3 +#opt/lampp/man/man3/form_field_buffer.3form.gz +#opt/lampp/man/man3/Pod::Perldoc::ToChecker.3 +#opt/lampp/man/man3/SSL_session_reused.3 +#opt/lampp/man/man3/set_field_pad.3form.gz +#opt/lampp/man/man3/ldap_search_ext.3 +#opt/lampp/man/man3/des_read_pw_string.3 +#opt/lampp/man/man3/OBJ_create.3 +#opt/lampp/man/man3/ExtUtils::Constant.3 +#opt/lampp/man/man3/HTTP::Date.3 +#opt/lampp/man/man3/Data::ShowTable.3 +#opt/lampp/man/man3/d2i_ASN1_OBJECT.3 +#opt/lampp/man/man3/SSL_callback_ctrl.3 +#opt/lampp/man/man3/TIFFFdOpen.3t +#opt/lampp/man/man3/d2i_DSAPrivateKey.3 +#opt/lampp/man/man3/window.3ncurses.gz +#opt/lampp/man/man3/form_page.3form.gz +#opt/lampp/man/man3/Net::hostent.3 +#opt/lampp/man/man3/SSL_set_ex_data.3 +#opt/lampp/man/man3/ldap_getfilter.3 +#opt/lampp/man/man3/Memoize::AnyDBM_File.3 +#opt/lampp/man/man3/bind_textdomain_codeset.3 +#opt/lampp/man/man3/TIFFstrip.3t +#opt/lampp/man/man3/mitem_opts.3menu.gz +#opt/lampp/man/man3/setcchar.3ncurses.gz +#opt/lampp/man/man3/noqiflush.3ncurses.gz +#opt/lampp/man/man3/wclrtobot.3ncurses.gz +#opt/lampp/man/man3/mvins_wch.3ncurses.gz +#opt/lampp/man/man3/bn_dump.3 +#opt/lampp/man/man3/TIFFIsTiled.3t +#opt/lampp/man/man3/Term::ReadLine.3 +#opt/lampp/man/man3/DBD::mysql::INSTALL.3 +#opt/lampp/man/man3/intrflush.3ncurses.gz +#opt/lampp/man/man3/BIO_set_nbio_accept.3 +#opt/lampp/man/man3/ModPerl::RegistryCooker.3 +#opt/lampp/man/man3/mvaddchnstr.3ncurses.gz +#opt/lampp/man/man3/Apache2::Reload.3 +#opt/lampp/man/man3/X509_free.3 +#opt/lampp/man/man3/EVP_SealFinal.3 +#opt/lampp/man/man3/set_form_userptr.3form.gz +#opt/lampp/man/man3/RIPEMD160_Final.3 +#opt/lampp/man/man3/SSL_CTX_get_info_callback.3 +#opt/lampp/man/man3/mvhline.3ncurses.gz +#opt/lampp/man/man3/Net::protoent.3 +#opt/lampp/man/man3/getn_wstr.3ncurses.gz +#opt/lampp/man/man3/wattr_off.3ncurses.gz +#opt/lampp/man/man3/BN_print_fp.3 +#opt/lampp/man/man3/ldap_get_values_len.3 +#opt/lampp/man/man3/ldap_bind_s.3 +#opt/lampp/man/man3/item_value.3menu.gz +#opt/lampp/man/man3/BIO_get_conn_hostname.3 +#opt/lampp/man/man3/EVP_CIPHER_CTX_cleanup.3 +#opt/lampp/man/man3/Apache2::Connection.3 +#opt/lampp/man/man3/form_opts.3form.gz +#opt/lampp/man/man3/typeahead.3ncurses.gz +#opt/lampp/man/man3/scr_restore.3ncurses.gz +#opt/lampp/man/man3/ldap_first_disptmpl.3 +#opt/lampp/man/man3/menu_pattern.3menu.gz +#opt/lampp/man/man3/DH_generate_key.3 +#opt/lampp/man/man3/lber-decode.3 +#opt/lampp/man/man3/mitem_name.3menu.gz +#opt/lampp/man/man3/ERR_error_string_n.3 +#opt/lampp/man/man3/PKCS7_decrypt.3 +#opt/lampp/man/man3/BN_to_montgomery.3 +#opt/lampp/man/man3/DES_ede3_cfb64_encrypt.3 +#opt/lampp/man/man3/ber_get_next.3 +#opt/lampp/man/man3/TIFFReadRGBAStrip.3t +#opt/lampp/man/man3/BN_clear_free.3 +#opt/lampp/man/man3/wstandout.3ncurses.gz +#opt/lampp/man/man3/getmaxy.3ncurses.gz +#opt/lampp/man/man3/SSL_CTX_set_client_CA_list.3 +#opt/lampp/man/man3/Locale::Country.3 +#opt/lampp/man/man3/form_request_name.3form.gz +#opt/lampp/man/man3/BN_mod_mul_montgomery.3 +#opt/lampp/man/man3/ExtUtils::xsbuilder.osc2002.3 +#opt/lampp/man/man3/DBI::Shell.3 +#opt/lampp/man/man3/BN_BLINDING_free.3 +#opt/lampp/man/man3/SSL_CTX_set_cert_store.3 +#opt/lampp/man/man3/bn_add_words.3 +#opt/lampp/man/man3/ldap_msgfree.3 +#opt/lampp/man/man3/BN_num_bytes.3 +#opt/lampp/man/man3/curl_getdate.3 +#opt/lampp/man/man3/inch.3ncurses.gz +#opt/lampp/man/man3/SSL_use_PrivateKey.3 +#opt/lampp/man/man3/BIO_wpending.3 +#opt/lampp/man/man3/LWP::RobotUA.3 +#opt/lampp/man/man3/UI_process.3 +#opt/lampp/man/man3/TIFFCurrentDirectory.3t +#opt/lampp/man/man3/ldap_unbind.3 +#opt/lampp/man/man3/menu_pad.3menu.gz +#opt/lampp/man/man3/HMAC_Update.3 +#opt/lampp/man/man3/File::Spec::Epoc.3 +#opt/lampp/man/man3/SSL_CTX_set_session_id_context.3 +#opt/lampp/man/man3/ASN1_STRING_free.3 +#opt/lampp/man/man3/ExtUtils::Install.3 +#opt/lampp/man/man3/ldap_open.3 +#opt/lampp/man/man3/ldap_matchingrule2str.3 +#opt/lampp/man/man3/Pod::Text::Color.3 +#opt/lampp/man/man3/BN_add_word.3 +#opt/lampp/man/man3/DSA_new_method.3 +#opt/lampp/man/man3/SSL_state_string.3 +#opt/lampp/man/man3/ber_get_null.3 +#opt/lampp/man/man3/RSA_blinding_on.3 +#opt/lampp/man/man3/APR::SockAddr.3 +#opt/lampp/man/man3/Apache2::RequestIO.3 +#opt/lampp/man/man3/getstr.3ncurses.gz +#opt/lampp/man/man3/FindBin.3 +#opt/lampp/man/man3/SSL_CTX_use_certificate_chain_file.3 +#opt/lampp/man/man3/DH_new.3 +#opt/lampp/man/man3/top_row.3menu.gz +#opt/lampp/man/man3/Tie::RefHash.3 +#opt/lampp/man/man3/integer.3 +#opt/lampp/man/man3/RAND_cleanup.3 +#opt/lampp/man/man3/AutoLoader.3 +#opt/lampp/man/man3/slk_touch.3ncurses.gz +#opt/lampp/man/man3/ldap_parse_sasl_bind_result.3 +#opt/lampp/man/man3/ldap_mods_free.3 +#opt/lampp/man/man3/DES_set_key.3 +#opt/lampp/man/man3/mvwaddnwstr.3ncurses.gz +#opt/lampp/man/man3/DSA_generate_key.3 +#opt/lampp/man/man3/keyok.3ncurses.gz +#opt/lampp/man/man3/erase.3ncurses.gz +#opt/lampp/man/man3/Encode::KR::2022_KR.3 +#opt/lampp/man/man3/OPENSSL_VERSION_NUMBER.3 +#opt/lampp/man/man3/ldap_modify_ext.3 +#opt/lampp/man/man3/werase.3ncurses.gz +#opt/lampp/man/man3/mvget_wstr.3ncurses.gz +#opt/lampp/man/man3/BIO_set_conn_ip.3 +#opt/lampp/man/man3/CONF_modules_load.3 +#opt/lampp/man/man3/wattr_set.3ncurses.gz +#opt/lampp/man/man3/Pod::Usage.3 +#opt/lampp/man/man3/URI::QueryParam.3 +#opt/lampp/man/man3/wgetstr.3ncurses.gz +#opt/lampp/man/man3/DSA_set_default_method.3 +#opt/lampp/man/man3/ldap_entry2text.3 +#opt/lampp/man/man3/set_field_term.3form.gz +#opt/lampp/man/man3/EVP_CipherUpdate.3 +#opt/lampp/man/man3/RSA_get_ex_data.3 +#opt/lampp/man/man3/SSL_set_options.3 +#opt/lampp/man/man3/item_index.3menu.gz +#opt/lampp/man/man3/BIO_set_bind_mode.3 +#opt/lampp/man/man3/scr_dump.3ncurses.gz +#opt/lampp/man/man3/TIFFWarning.3t +#opt/lampp/man/man3/BIO_new_file.3 +#opt/lampp/man/man3/ber_bvstrdup.3 +#opt/lampp/man/man3/ExtUtils::MM_UWIN.3 +#opt/lampp/man/man3/set_menu_pad.3menu.gz +#opt/lampp/man/man3/lh_node_usage_stats.3 +#opt/lampp/man/man3/overload.3 +#opt/lampp/man/man3/touch.3ncurses.gz +#opt/lampp/man/man3/ERR_peek_error_line.3 +#opt/lampp/man/man3/OPENSSL_ia32cap.3 +#opt/lampp/man/man3/ldap_getnextfilter.3 +#opt/lampp/man/man3/mvwvline_set.3ncurses.gz +#opt/lampp/man/man3/slk_refresh.3ncurses.gz +#opt/lampp/man/man3/EVP_VerifyFinal.3 +#opt/lampp/man/man3/ber_scanf.3 +#opt/lampp/man/man3/DBI::ProfileData.3 +#opt/lampp/man/man3/in_wchnstr.3ncurses.gz +#opt/lampp/man/man3/curl_easy_getinfo.3 +#opt/lampp/man/man3/OpenSSL_add_all_algorithms.3 +#opt/lampp/man/man3/SSL_get_cipher_list.3 +#opt/lampp/man/man3/DH_size.3 +#opt/lampp/man/man3/vwscanw.3ncurses.gz +#opt/lampp/man/man3/SDBM_File.3 +#opt/lampp/man/man3/ldap_ufn_search_ct.3 +#opt/lampp/man/man3/slk_set.3ncurses.gz +#opt/lampp/man/man3/UI_add_user_data.3 +#opt/lampp/man/man3/mouseinterval.3ncurses.gz +#opt/lampp/man/man3/RSA_padding_check_none.3 +#opt/lampp/man/man3/set_curterm.3ncurses.gz +#opt/lampp/man/man3/bigint.3 +#opt/lampp/man/man3/CONF_modules_load_file.3 +#opt/lampp/man/man3/Net::SSLeay.3 +#opt/lampp/man/man3/strict.3 +#opt/lampp/man/man3/set_item_term.3menu.gz +#opt/lampp/man/man3/RAND_bytes.3 +#opt/lampp/man/man3/SSL_get_mode.3 +#opt/lampp/man/man3/i2d_SSL_SESSION.3 +#opt/lampp/man/man3/Locale::Constants.3 +#opt/lampp/man/man3/ERR_peek_last_error.3 +#opt/lampp/man/man3/bignum.3 +#opt/lampp/man/man3/hline_set.3ncurses.gz +#opt/lampp/man/man3/winsnstr.3ncurses.gz +#opt/lampp/man/man3/DSA_dup_DH.3 +#opt/lampp/man/man3/bigrat.3 +#opt/lampp/man/man3/TIFFTileRowSize.3t +#opt/lampp/man/man3/SSL_get_verify_depth.3 +#opt/lampp/man/man3/BIO_get_num_renegotiates.3 +#opt/lampp/man/man3/TIFFFileno.3t +#opt/lampp/man/man3/EVP_CIPHER_CTX_get_app_data.3 +#opt/lampp/man/man3/cursor.3menu.gz +#opt/lampp/man/man3/ExtUtils::Mksymlists.3 +#opt/lampp/man/man3/d2i_DHparams.3 +#opt/lampp/man/man3/ber_free.3 +#opt/lampp/man/man3/HTTP::Negotiate.3 +#opt/lampp/man/man3/mvwgetch.3ncurses.gz +#opt/lampp/man/man3/Apache2::Command.3 +#opt/lampp/man/man3/SSL_get_cipher_name.3 +#opt/lampp/man/man3/UI_set_default_method.3 +#opt/lampp/man/man3/wmouse_trafo.3ncurses.gz +#opt/lampp/man/man3/URI::URL.3 +#opt/lampp/man/man3/Apache::TestRunPHP.3 +#opt/lampp/man/man3/OPENSSL_load_builtin_modules.3 +#opt/lampp/man/man3/ldap_vals2html.3 +#opt/lampp/man/man3/set_menu_userptr.3menu.gz +#opt/lampp/man/man3/DES_fcrypt.3 +#opt/lampp/man/man3/DBI::SQL::Nano.3 +#opt/lampp/man/man3/BIO_f_null.3 +#opt/lampp/man/man3/field_buffer.3form.gz +#opt/lampp/man/man3/EVP_MD_CTX_destroy.3 +#opt/lampp/man/man3/i2d_RSAPublicKey.3 +#opt/lampp/man/man3/TIFFWriteDirectory.3t +#opt/lampp/man/man3/UI_get0_user_data.3 +#opt/lampp/man/man3/SSL_CTX_get_ex_new_index.3 +#opt/lampp/man/man3/ExtUtils::MM_Unix.3 +#opt/lampp/man/man3/ldap_searchprefs.3 +#opt/lampp/man/man3/SSL_CTX_get_mode.3 +#opt/lampp/man/man3/dgettext.3 +#opt/lampp/man/man3/ModPerl::Code.3 +#opt/lampp/man/man3/SSL_CTX_get_timeout.3 +#opt/lampp/man/man3/RIPEMD160_Init.3 +#opt/lampp/man/man3/Switch.3 +#opt/lampp/man/man3/timeout.3ncurses.gz +#opt/lampp/man/man3/ldap_sort.3 +#opt/lampp/man/man3/Math::BigFloat::Trace.3 +#opt/lampp/man/man3/ldap_modify_ext_s.3 +#opt/lampp/man/man3/Math::BigInt::Calc.3 +#opt/lampp/man/man3/curl_easy_init.3 +#opt/lampp/man/man3/i2d_Netscape_RSA.3 +#opt/lampp/man/man3/DES_string_to_key.3 +#opt/lampp/man/man3/EVP_MD_CTX_copy_ex.3 +#opt/lampp/man/man3/PKCS12_create.3 +#opt/lampp/man/man3/ldap_enable_translation.3 +#opt/lampp/man/man3/Devel::DProf.3 +#opt/lampp/man/man3/mvadd_wchnstr.3ncurses.gz +#opt/lampp/man/man3/DSA_SIG_new.3 +#opt/lampp/man/man3/Math::Trig.3 +#opt/lampp/man/man3/Net::FTP::dataconn.3 +#opt/lampp/man/man3/DES_key_sched.3 +#opt/lampp/man/man3/SSL_read.3 +#opt/lampp/man/man3/CPAN::FirstTime.3 +#opt/lampp/man/man3/EVP_get_digestbyname.3 +#opt/lampp/man/man3/Memoize::Expire.3 +#opt/lampp/man/man3/DES_enc_write.3 +#opt/lampp/man/man3/UI_add_error_string.3 +#opt/lampp/man/man3/form_hook.3form.gz +#opt/lampp/man/man3/raw.3ncurses.gz +#opt/lampp/man/man3/start_color.3ncurses.gz +#opt/lampp/man/man3/ModPerl::Global.3 +#opt/lampp/man/man3/B::C.3 +#opt/lampp/man/man3/libcurl-multi.3 +#opt/lampp/man/man3/ERR_peek_last_error_line.3 +#opt/lampp/man/man3/add_wchnstr.3ncurses.gz +#opt/lampp/man/man3/XS::APItest.3 +#opt/lampp/man/man3/mvwprintw.3ncurses.gz +#opt/lampp/man/man3/ldap_objectclass2name.3 +#opt/lampp/man/man3/CRYPTO_set_dynlock_destroy_callback.3 +#opt/lampp/man/man3/menu_grey.3menu.gz +#opt/lampp/man/man3/TIFFSetField.3t +#opt/lampp/man/man3/field_opts.3form.gz +#opt/lampp/man/man3/SSL_get_quiet_shutdown.3 +#opt/lampp/man/man3/Unicode::Collate.3 +#opt/lampp/man/man3/DSA_new.3 +#opt/lampp/man/man3/APR::Request::Apache2.3 +#opt/lampp/man/man3/BIO_retry_type.3 +#opt/lampp/man/man3/BIO_int_ctrl.3 +#opt/lampp/man/man3/RAND_load_file.3 +#opt/lampp/man/man3/Apache::TestTrace.3 +#opt/lampp/man/man3/BIO_f_cipher.3 +#opt/lampp/man/man3/menu_mark.3menu.gz +#opt/lampp/man/man3/derwin.3ncurses.gz +#opt/lampp/man/man3/Net::Cmd.3 +#opt/lampp/man/man3/mvchgat.3ncurses.gz +#opt/lampp/man/man3/Net::FTP.3 +#opt/lampp/man/man3/ExtUtils::Liblist::Kid.3 +#opt/lampp/man/man3/form_post.3form.gz +#opt/lampp/man/man3/EVP_DecryptUpdate.3 +#opt/lampp/man/man3/scrl.3ncurses.gz +#opt/lampp/man/man3/ldap_compare_ext_s.3 +#opt/lampp/man/man3/Dumpvalue.3 +#opt/lampp/man/man3/UI_add_verify_string.3 +#opt/lampp/man/man3/BN_BLINDING_get_thread_id.3 +#opt/lampp/man/man3/ldap_destroy_cache.3 +#opt/lampp/man/man3/ldap_first_tmplcol.3 +#opt/lampp/man/man3/vid_attr.3ncurses.gz +#opt/lampp/man/man3/SSL_CTX_set_cert_verify_callback.3 +#opt/lampp/man/man3/mvwdelch.3ncurses.gz +#opt/lampp/man/man3/TIFFWriteRawTile.3t +#opt/lampp/man/man3/resize_term.3ncurses.gz +#opt/lampp/man/man3/inchnstr.3ncurses.gz +#opt/lampp/man/man3/mvins_wstr.3ncurses.gz +#opt/lampp/man/man3/BIO_new_ssl_connect.3 +#opt/lampp/man/man3/TIFFIsByteSwapped.3t +#opt/lampp/man/man3/Filter::Util::Call.3 +#opt/lampp/man/man3/bn_mul_normal.3 +#opt/lampp/man/man3/CRYPTO_set_locking_callback.3 +#opt/lampp/man/man3/BN_num_bits.3 +#opt/lampp/man/man3/SSL_get_ex_data.3 +#opt/lampp/man/man3/copywin.3ncurses.gz +#opt/lampp/man/man3/OBJ_ln2nid.3 +#opt/lampp/man/man3/Mysql.3 +#opt/lampp/man/man3/menu_new.3menu.gz +#opt/lampp/man/man3/ldap_add.3 +#opt/lampp/man/man3/Pod::Perldoc::ToTk.3 +#opt/lampp/man/man3/SSL_get_rbio.3 +#opt/lampp/man/man3/RSA_get_default_method.3 +#opt/lampp/man/man3/ExtUtils::MM_MacOS.3 +#opt/lampp/man/man3/RIPEMD160.3 +#opt/lampp/man/man3/TIFFSetErrorHandler.3t +#opt/lampp/man/man3/Text::Abbrev.3 +#opt/lampp/man/man3/curl_global_cleanup.3 +#opt/lampp/man/man3/ldap_sasl_bind.3 +#opt/lampp/man/man3/HTML::Parser.3 +#opt/lampp/man/man3/nonl.3ncurses.gz +#opt/lampp/man/man3/lh_free.3 +#opt/lampp/man/man3/BIO_should_io_special.3 +#opt/lampp/man/man3/DSA_generate_parameters.3 +#opt/lampp/man/man3/mvwinstr.3ncurses.gz +#opt/lampp/man/man3/BIO_f_buffer.3 +#opt/lampp/man/man3/ModPerl::CScan.3 +#opt/lampp/man/man3/PAIR_NUMBER.3ncurses.gz +#opt/lampp/man/man3/B::Assembler.3 +#opt/lampp/man/man3/unctrl.3ncurses.gz +#opt/lampp/man/man3/DES_set_key_checked.3 +#opt/lampp/man/man3/SSL_CTX_sess_get_remove_cb.3 +#opt/lampp/man/man3/ber_dupbv.3 +#opt/lampp/man/man3/ldap_first_tmplrow.3 +#opt/lampp/man/man3/textdomain.3 +#opt/lampp/man/man3/RAND_file_name.3 +#opt/lampp/man/man3/Time::Local.3 +#opt/lampp/man/man3/ber_skip_tag.3 +#opt/lampp/man/man3/insertln.3ncurses.gz +#opt/lampp/man/man3/EVP_PKEY_assign_DSA.3 +#opt/lampp/man/man3/Tie::SubstrHash.3 +#opt/lampp/man/man3/Memoize::SDBM_File.3 +#opt/lampp/man/man3/libcurl.3 +#opt/lampp/man/man3/SSL_set_mode.3 +#opt/lampp/man/man3/Thread::Semaphore.3 +#opt/lampp/man/man3/ins_wch.3ncurses.gz +#opt/lampp/man/man3/ldap_search_st.3 +#opt/lampp/man/man3/B::Deparse.3 +#opt/lampp/man/man3/wunctrl.3ncurses.gz +#opt/lampp/man/man3/EVP_VerifyUpdate.3 +#opt/lampp/man/man3/HTML::Filter.3 +#opt/lampp/man/man3/RSA_free.3 +#opt/lampp/man/man3/post_menu.3menu.gz +#opt/lampp/man/man3/isendwin.3ncurses.gz +#opt/lampp/man/man3/ldap_uncache_entry.3 +#opt/lampp/man/man3/ModPerl::Config.3 +#opt/lampp/man/man3/cldap.3 +#opt/lampp/man/man3/CPAN.3 +#opt/lampp/man/man3/BN_num_bits_word.3 +#opt/lampp/man/man3/item_opts_off.3menu.gz +#opt/lampp/man/man3/d2i_X509_REQ_bio.3 +#opt/lampp/man/man3/DBI::Format.3 +#opt/lampp/man/man3/ldap_ufn.3 +#opt/lampp/man/man3/slk_clear.3ncurses.gz +#opt/lampp/man/man3/Apache::compat.3 +#opt/lampp/man/man3/SSL_CTX_sess_connect_good.3 +#opt/lampp/man/man3/ldap_url.3 +#opt/lampp/man/man3/LWP::DebugFile.3 +#opt/lampp/man/man3/HTTP::Message.3 +#opt/lampp/man/man3/EVP_PKEY_assign_DH.3 +#opt/lampp/man/man3/data_behind.3form.gz +#opt/lampp/man/man3/key_name.3ncurses.gz +#opt/lampp/man/man3/DH_get_default_method.3 +#opt/lampp/man/man3/vline.3ncurses.gz +#opt/lampp/man/man5/ +#opt/lampp/man/man5/slapo-retcode.5 +#opt/lampp/man/man5/ldapfilter.conf.5 +#opt/lampp/man/man5/slapd.plugin.5 +#opt/lampp/man/man5/slapd-monitor.5 +#opt/lampp/man/man5/png.5 +#opt/lampp/man/man5/slapo-syncprov.5 +#opt/lampp/man/man5/slapo-lastmod.5 +#opt/lampp/man/man5/slapo-dynlist.5 +#opt/lampp/man/man5/slapd.replog.5 +#opt/lampp/man/man5/slapo-refint.5 +#opt/lampp/man/man5/slapo-auditlog.5 +#opt/lampp/man/man5/slapd-ldap.5 +#opt/lampp/man/man5/slapd-ldbm.5 +#opt/lampp/man/man5/slapd-ldif.5 +#opt/lampp/man/man5/slapd-meta.5 +#opt/lampp/man/man5/slapo-rwm.5 +#opt/lampp/man/man5/ldapfriendly.5 +#opt/lampp/man/man5/slapd.conf.5 +#opt/lampp/man/man5/slapd-null.5 +#opt/lampp/man/man5/slapd-perl.5 +#opt/lampp/man/man5/slapo-unique.5 +#opt/lampp/man/man5/ldaptemplates.conf.5 +#opt/lampp/man/man5/config.5 +#opt/lampp/man/man5/slapd-relay.5 +#opt/lampp/man/man5/x509v3_config.5 +#opt/lampp/man/man5/slapd.access.5 +#opt/lampp/man/man5/ldif.5 +#opt/lampp/man/man5/slapd-dnssrv.5 +#opt/lampp/man/man5/ldap.conf.5 +#opt/lampp/man/man5/slapo-chain.5 +#opt/lampp/man/man5/term.5.gz +#opt/lampp/man/man5/ud.conf.5 +#opt/lampp/man/man5/slapo-translucent.5 +#opt/lampp/man/man5/slapd-shell.5 +#opt/lampp/man/man5/slapo-pcache.5 +#opt/lampp/man/man5/slapo-accesslog.5 +#opt/lampp/man/man5/xferlog.5 +#opt/lampp/man/man5/slapd-bdb.5 +#opt/lampp/man/man5/slapd-hdb.5 +#opt/lampp/man/man5/slapd-tcl.5 +#opt/lampp/man/man5/slapd-sql.5 +#opt/lampp/man/man5/ldapsearchprefs.conf.5 +#opt/lampp/man/man5/terminfo.5.gz +#opt/lampp/man/man5/slapo-ppolicy.5 +#opt/lampp/man/man5/slapo-valsort.5 +#opt/lampp/man/man5/slapd-passwd.5 +#opt/lampp/man/man7/ +#opt/lampp/man/man7/of.7 +#opt/lampp/man/man7/DES.7 +#opt/lampp/man/man7/des_modes.7 +#opt/lampp/man/man7/term.7.gz +#opt/lampp/man/man7/Modes_of_DES.7 +#opt/lampp/man/man7/Modes of DES.7 +#opt/lampp/man/man7/Modes.7 +#opt/lampp/man/man8/ +#opt/lampp/man/man8/ab.8 +#opt/lampp/man/man8/ldif2index.8 +#opt/lampp/man/man8/in.xfingerd.8 +#opt/lampp/man/man8/rcpt500.8 +#opt/lampp/man/man8/ldbmcat.8 +#opt/lampp/man/man8/apachectl.8 +#opt/lampp/man/man8/ldapd.8 +#opt/lampp/man/man8/ftpdctl.8 +#opt/lampp/man/man8/slappasswd.8 +#opt/lampp/man/man8/fax500.8 +#opt/lampp/man/man8/slapd.8 +#opt/lampp/man/man8/slapindex.8 +#opt/lampp/man/man8/chlog2replog.8 +#opt/lampp/man/man8/slapauth.8 +#opt/lampp/man/man8/go500gw.8 +#opt/lampp/man/man8/apxs.8 +#opt/lampp/man/man8/rotatelogs.8 +#opt/lampp/man/man8/ldif2id2entry.8 +#opt/lampp/man/man8/ftpshut.8 +#opt/lampp/man/man8/slapdn.8 +#opt/lampp/man/man8/go500.8 +#opt/lampp/man/man8/ldif.8 +#opt/lampp/man/man8/slaptest.8 +#opt/lampp/man/man8/centipede.8 +#opt/lampp/man/man8/proftpd.8 +#opt/lampp/man/man8/ldif2ldbm.8 +#opt/lampp/man/man8/ldif2id2children.8 +#opt/lampp/man/man8/logresolve.8 +#opt/lampp/man/man8/slurpd.8 +#opt/lampp/man/man8/mail500.8 +#opt/lampp/man/man8/httpd.8 +#opt/lampp/man/man8/slapacl.8 +#opt/lampp/man/man8/slapadd.8 +#opt/lampp/man/man8/slapcat.8 +#opt/lampp/man/man8/suexec.8 +#opt/lampp/man/man8/edb2ldif.8 +#opt/lampp/info/ +#opt/lampp/info/mysql.info +#opt/lampp/build/ +#opt/lampp/build/apr_rules.mk +#opt/lampp/build/libtool +#opt/lampp/build/make_var_export.awk +#opt/lampp/build/config_vars.mk +#opt/lampp/build/special.mk +#opt/lampp/build/rules.mk +#opt/lampp/build/program.mk +#opt/lampp/build/instdso.sh +#opt/lampp/build/ltlib.mk +#opt/lampp/build/config.nice +#opt/lampp/build/mkdir.sh +#opt/lampp/build/library.mk +#opt/lampp/build/make_exports.awk +#opt/lampp/share/ +#opt/lampp/share/doc/ +#opt/lampp/share/doc/freetds-0.63/ +#opt/lampp/share/doc/freetds-0.63/images/ +#opt/lampp/share/doc/freetds-0.63/images/note.gif +#opt/lampp/share/doc/freetds-0.63/images/important.gif +#opt/lampp/share/doc/freetds-0.63/images/tip.gif +#opt/lampp/share/doc/freetds-0.63/reference/ +#opt/lampp/share/doc/freetds-0.63/reference/a00377.html +#opt/lampp/share/doc/freetds-0.63/reference/a00378.html +#opt/lampp/share/doc/freetds-0.63/reference/a00064.html +#opt/lampp/share/doc/freetds-0.63/reference/a00379.html +#opt/lampp/share/doc/freetds-0.63/reference/a00310.html +#opt/lampp/share/doc/freetds-0.63/reference/a00380.html +#opt/lampp/share/doc/freetds-0.63/reference/a00194.html +#opt/lampp/share/doc/freetds-0.63/reference/a00381.html +#opt/lampp/share/doc/freetds-0.63/reference/a00382.html +#opt/lampp/share/doc/freetds-0.63/reference/a00255.html +#opt/lampp/share/doc/freetds-0.63/reference/a00383.html +#opt/lampp/share/doc/freetds-0.63/reference/a00197.html +#opt/lampp/share/doc/freetds-0.63/reference/a00384.html +#opt/lampp/share/doc/freetds-0.63/reference/a00198.html +#opt/lampp/share/doc/freetds-0.63/reference/a00385.html +#opt/lampp/share/doc/freetds-0.63/reference/a00386.html +#opt/lampp/share/doc/freetds-0.63/reference/a00387.html +#opt/lampp/share/doc/freetds-0.63/reference/a00388.html +#opt/lampp/share/doc/freetds-0.63/reference/a00389.html +#opt/lampp/share/doc/freetds-0.63/reference/a00075.html +#opt/lampp/share/doc/freetds-0.63/reference/a00391.html +#opt/lampp/share/doc/freetds-0.63/reference/a00393.html +#opt/lampp/share/doc/freetds-0.63/reference/a00394.html +#opt/lampp/share/doc/freetds-0.63/reference/a00395.html +#opt/lampp/share/doc/freetds-0.63/reference/a00081.html +#opt/lampp/share/doc/freetds-0.63/reference/a00396.html +#opt/lampp/share/doc/freetds-0.63/reference/a00082.html +#opt/lampp/share/doc/freetds-0.63/reference/a00397.html +#opt/lampp/share/doc/freetds-0.63/reference/doxygen.css +#opt/lampp/share/doc/freetds-0.63/reference/doxygen.png +#opt/lampp/share/doc/freetds-0.63/reference/a00083.html +#opt/lampp/share/doc/freetds-0.63/reference/a00398.html +#opt/lampp/share/doc/freetds-0.63/reference/functions.html +#opt/lampp/share/doc/freetds-0.63/reference/a00399.html +#opt/lampp/share/doc/freetds-0.63/reference/a00085.html +#opt/lampp/share/doc/freetds-0.63/reference/a00087.html +#opt/lampp/share/doc/freetds-0.63/reference/index.html +#opt/lampp/share/doc/freetds-0.63/reference/globals.html +#opt/lampp/share/doc/freetds-0.63/reference/a00336.html +#opt/lampp/share/doc/freetds-0.63/reference/a00337.html +#opt/lampp/share/doc/freetds-0.63/reference/a00338.html +#opt/lampp/share/doc/freetds-0.63/reference/a00339.html +#opt/lampp/share/doc/freetds-0.63/reference/a00340.html +#opt/lampp/share/doc/freetds-0.63/reference/a00213.html +#opt/lampp/share/doc/freetds-0.63/reference/files.html +#opt/lampp/share/doc/freetds-0.63/reference/a00341.html +#opt/lampp/share/doc/freetds-0.63/reference/a00342.html +#opt/lampp/share/doc/freetds-0.63/reference/a00156.html +#opt/lampp/share/doc/freetds-0.63/reference/a00343.html +#opt/lampp/share/doc/freetds-0.63/reference/pages.html +#opt/lampp/share/doc/freetds-0.63/reference/a00344.html +#opt/lampp/share/doc/freetds-0.63/reference/a00217.html +#opt/lampp/share/doc/freetds-0.63/reference/a00345.html +#opt/lampp/share/doc/freetds-0.63/reference/a00159.html +#opt/lampp/share/doc/freetds-0.63/reference/a00346.html +#opt/lampp/share/doc/freetds-0.63/reference/a00347.html +#opt/lampp/share/doc/freetds-0.63/reference/todo.html +#opt/lampp/share/doc/freetds-0.63/reference/a00348.html +#opt/lampp/share/doc/freetds-0.63/reference/a00349.html +#opt/lampp/share/doc/freetds-0.63/reference/bug.html +#opt/lampp/share/doc/freetds-0.63/reference/a00350.html +#opt/lampp/share/doc/freetds-0.63/reference/a00351.html +#opt/lampp/share/doc/freetds-0.63/reference/a00352.html +#opt/lampp/share/doc/freetds-0.63/reference/a00353.html +#opt/lampp/share/doc/freetds-0.63/reference/a00354.html +#opt/lampp/share/doc/freetds-0.63/reference/a00356.html +#opt/lampp/share/doc/freetds-0.63/reference/a00358.html +#opt/lampp/share/doc/freetds-0.63/reference/a00359.html +#opt/lampp/share/doc/freetds-0.63/reference/a00232.html +#opt/lampp/share/doc/freetds-0.63/reference/a00360.html +#opt/lampp/share/doc/freetds-0.63/reference/a00361.html +#opt/lampp/share/doc/freetds-0.63/reference/a00362.html +#opt/lampp/share/doc/freetds-0.63/reference/a00363.html +#opt/lampp/share/doc/freetds-0.63/reference/a00364.html +#opt/lampp/share/doc/freetds-0.63/reference/a00365.html +#opt/lampp/share/doc/freetds-0.63/reference/a00366.html +#opt/lampp/share/doc/freetds-0.63/reference/a00367.html +#opt/lampp/share/doc/freetds-0.63/reference/annotated.html +#opt/lampp/share/doc/freetds-0.63/reference/a00368.html +#opt/lampp/share/doc/freetds-0.63/reference/a00369.html +#opt/lampp/share/doc/freetds-0.63/reference/a00370.html +#opt/lampp/share/doc/freetds-0.63/reference/a00371.html +#opt/lampp/share/doc/freetds-0.63/reference/a00372.html +#opt/lampp/share/doc/freetds-0.63/reference/a00373.html +#opt/lampp/share/doc/freetds-0.63/reference/a00374.html +#opt/lampp/share/doc/freetds-0.63/reference/modules.html +#opt/lampp/share/doc/freetds-0.63/reference/a00375.html +#opt/lampp/share/doc/freetds-0.63/reference/a00307.html +#opt/lampp/share/doc/freetds-0.63/reference/a00376.html +#opt/lampp/share/doc/freetds-0.63/userguide/ +#opt/lampp/share/doc/freetds-0.63/userguide/unicodeutf.htm +#opt/lampp/share/doc/freetds-0.63/userguide/packages.htm +#opt/lampp/share/doc/freetds-0.63/userguide/freetdshistory.htm +#opt/lampp/share/doc/freetds-0.63/userguide/freetdsconf.htm +#opt/lampp/share/doc/freetds-0.63/userguide/confirminstall.htm +#opt/lampp/share/doc/freetds-0.63/userguide/odbcombo.htm +#opt/lampp/share/doc/freetds-0.63/userguide/odbcinionly.htm +#opt/lampp/share/doc/freetds-0.63/userguide/iso8859.htm +#opt/lampp/share/doc/freetds-0.63/userguide/acknowledgments.htm +#opt/lampp/share/doc/freetds-0.63/userguide/sybsql.htm +#opt/lampp/share/doc/freetds-0.63/userguide/install.htm +#opt/lampp/share/doc/freetds-0.63/userguide/aboutunicode.htm +#opt/lampp/share/doc/freetds-0.63/userguide/interfacesfile.htm +#opt/lampp/share/doc/freetds-0.63/userguide/software.htm +#opt/lampp/share/doc/freetds-0.63/userguide/stunnel.htm +#opt/lampp/share/doc/freetds-0.63/userguide/contributors.htm +#opt/lampp/share/doc/freetds-0.63/userguide/unicodegoodbad.htm +#opt/lampp/share/doc/freetds-0.63/userguide/interfacesformat.htm +#opt/lampp/share/doc/freetds-0.63/userguide/nonwestern.htm +#opt/lampp/share/doc/freetds-0.63/userguide/tdspool.htm +#opt/lampp/share/doc/freetds-0.63/userguide/choosingtdsprotocol.htm +#opt/lampp/share/doc/freetds-0.63/userguide/interfacespurpose.htm +#opt/lampp/share/doc/freetds-0.63/userguide/tdshistory.htm +#opt/lampp/share/doc/freetds-0.63/userguide/what.htm +#opt/lampp/share/doc/freetds-0.63/userguide/gfdl-1.htm +#opt/lampp/share/doc/freetds-0.63/userguide/gfdl-2.htm +#opt/lampp/share/doc/freetds-0.63/userguide/gfdl-3.htm +#opt/lampp/share/doc/freetds-0.63/userguide/gfdl-4.htm +#opt/lampp/share/doc/freetds-0.63/userguide/gfdl-5.htm +#opt/lampp/share/doc/freetds-0.63/userguide/gfdl-6.htm +#opt/lampp/share/doc/freetds-0.63/userguide/gfdl-7.htm +#opt/lampp/share/doc/freetds-0.63/userguide/gfdl-8.htm +#opt/lampp/share/doc/freetds-0.63/userguide/gfdl-9.htm +#opt/lampp/share/doc/freetds-0.63/userguide/index.html +#opt/lampp/share/doc/freetds-0.63/userguide/config.htm +#opt/lampp/share/doc/freetds-0.63/userguide/gfdl.htm +#opt/lampp/share/doc/freetds-0.63/userguide/odbc.api.summary.htm +#opt/lampp/share/doc/freetds-0.63/userguide/contrib.htm +#opt/lampp/share/doc/freetds-0.63/userguide/dblib.api.summary.htm +#opt/lampp/share/doc/freetds-0.63/userguide/odbcdiagnose.htm +#opt/lampp/share/doc/freetds-0.63/userguide/envvar.htm +#opt/lampp/share/doc/freetds-0.63/userguide/advocacy.htm +#opt/lampp/share/doc/freetds-0.63/userguide/locales.htm +#opt/lampp/share/doc/freetds-0.63/userguide/programming.htm +#opt/lampp/share/doc/freetds-0.63/userguide/askingforhelp.htm +#opt/lampp/share/doc/freetds-0.63/userguide/python.htm +#opt/lampp/share/doc/freetds-0.63/userguide/index.htm +#opt/lampp/share/doc/freetds-0.63/userguide/osissues.htm +#opt/lampp/share/doc/freetds-0.63/userguide/dsnless.htm +#opt/lampp/share/doc/freetds-0.63/userguide/configs.htm +#opt/lampp/share/doc/freetds-0.63/userguide/about.htm +#opt/lampp/share/doc/freetds-0.63/userguide/build.htm +#opt/lampp/share/doc/freetds-0.63/userguide/samplecode.htm +#opt/lampp/share/doc/freetds-0.63/userguide/prepodbc.htm +#opt/lampp/share/doc/freetds-0.63/userguide/interfaceslocation.htm +#opt/lampp/share/doc/freetds-0.63/userguide/gfdl-10.htm +#opt/lampp/share/doc/freetds-0.63/userguide/unicode.htm +#opt/lampp/share/doc/freetds-0.63/userguide/gfdl-11.htm +#opt/lampp/share/doc/freetds-0.63/userguide/mailinglist.htm +#opt/lampp/share/doc/freetds-0.63/userguide/serverthere.htm +#opt/lampp/share/doc/freetds-0.63/userguide/pagenodata.htm +#opt/lampp/share/doc/freetds-0.63/userguide/troubleshooting.htm +#opt/lampp/share/doc/freetds-0.63/userguide/projects.htm +#opt/lampp/share/doc/freetds-0.63/userguide/php.htm +#opt/lampp/share/doc/freetds-0.63/userguide/apireference.htm +#opt/lampp/share/doc/freetds-0.63/userguide/unicodefreetds.htm +#opt/lampp/share/doc/freetds-0.63/userguide/appendmode.htm +#opt/lampp/share/doc/freetds-0.63/userguide/domains.htm +#opt/lampp/share/doc/freetds-0.63/userguide/perl.htm +#opt/lampp/share/doc/freetds-0.63/userguide/seemtooslow.htm +#opt/lampp/share/doc/freetds-0.63/userguide/ctlib.api.summary.htm +#opt/lampp/share/doc/freetds-0.63/userguide/odbcconnattr.htm +#opt/lampp/share/doc/freetds-0.63/userguide/help.htm +#opt/lampp/share/doc/freetds-0.63/userguide/logging.htm +#opt/lampp/share/doc/freetds-0.63/userguide/configurations.htm +#opt/lampp/share/doc/freetds-0.62.4/ +#opt/lampp/share/doc/freetds-0.62.4/images/ +#opt/lampp/share/doc/freetds-0.62.4/images/note.gif +#opt/lampp/share/doc/freetds-0.62.4/images/important.gif +#opt/lampp/share/doc/freetds-0.62.4/images/tip.gif +#opt/lampp/share/doc/freetds-0.62.4/reference/ +#opt/lampp/share/doc/freetds-0.62.4/reference/a00309.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00310.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00065.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00311.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00066.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00312.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00067.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00313.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00068.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00314.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00315.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00129.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00317.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00072.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00319.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00132.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00320.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00321.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00322.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00323.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00324.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00325.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00326.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00327.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00328.html +#opt/lampp/share/doc/freetds-0.62.4/reference/doxygen.css +#opt/lampp/share/doc/freetds-0.62.4/reference/doxygen.png +#opt/lampp/share/doc/freetds-0.62.4/reference/a00200.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00329.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00270.html +#opt/lampp/share/doc/freetds-0.62.4/reference/functions.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00330.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00331.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00273.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00332.html +#opt/lampp/share/doc/freetds-0.62.4/reference/index.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00333.html +#opt/lampp/share/doc/freetds-0.62.4/reference/globals.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00334.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00335.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00336.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00337.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00338.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00339.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00340.html +#opt/lampp/share/doc/freetds-0.62.4/reference/files.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00341.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00342.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00343.html +#opt/lampp/share/doc/freetds-0.62.4/reference/pages.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00344.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00345.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00346.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00347.html +#opt/lampp/share/doc/freetds-0.62.4/reference/todo.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00348.html +#opt/lampp/share/doc/freetds-0.62.4/reference/bug.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00350.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00164.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00223.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00352.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00353.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00167.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00354.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00168.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00355.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00297.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00356.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00298.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00357.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00299.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00358.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00048.html +#opt/lampp/share/doc/freetds-0.62.4/reference/annotated.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00181.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00300.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00301.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00302.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00185.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00303.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00304.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00059.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00305.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00306.html +#opt/lampp/share/doc/freetds-0.62.4/reference/modules.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00307.html +#opt/lampp/share/doc/freetds-0.62.4/reference/a00308.html +#opt/lampp/share/doc/freetds-0.62.4/userguide/ +#opt/lampp/share/doc/freetds-0.62.4/userguide/unicodeutf.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/packages.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/freetdshistory.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/freetdsconf.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/confirminstall.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/odbcombo.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/odbcinionly.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/iso8859.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/acknowledgments.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/sybsql.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/install.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/aboutunicode.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/interfacesfile.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/software.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/stunnel.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/contributors.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/unicodegoodbad.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/interfacesformat.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/nonwestern.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/tdspool.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/choosingtdsprotocol.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/interfacespurpose.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/tdshistory.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/what.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/gfdl-1.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/gfdl-2.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/gfdl-3.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/gfdl-4.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/gfdl-5.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/gfdl-6.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/gfdl-7.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/gfdl-8.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/gfdl-9.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/index.html +#opt/lampp/share/doc/freetds-0.62.4/userguide/config.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/gfdl.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/odbc.api.summary.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/contrib.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/dblib.api.summary.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/odbcdiagnose.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/envvar.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/advocacy.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/locales.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/programming.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/askingforhelp.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/python.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/index.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/osissues.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/dsnless.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/configs.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/about.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/build.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/samplecode.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/prepodbc.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/interfaceslocation.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/gfdl-10.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/unicode.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/gfdl-11.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/mailinglist.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/serverthere.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/pagenodata.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/troubleshooting.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/projects.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/php.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/apireference.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/unicodefreetds.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/appendmode.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/domains.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/perl.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/seemtooslow.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/ctlib.api.summary.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/odbcconnattr.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/help.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/logging.htm +#opt/lampp/share/doc/freetds-0.62.4/userguide/configurations.htm +#opt/lampp/share/doc/libxslt-1.1.8/ +#opt/lampp/share/doc/libxslt-1.1.8/html/ +#opt/lampp/share/doc/libxslt-1.1.8/html/html/ +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-transform.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-extensions.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-attributes.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-templates.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/right.png +#opt/lampp/share/doc/libxslt-1.1.8/html/html/left.png +#opt/lampp/share/doc/libxslt-1.1.8/html/html/index.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/home.png +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-functions.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-preproc.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-lib.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-numbersInternals.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-extra.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-documents.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-variables.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/book1.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/up.png +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-keys.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-xsltexports.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-xslt.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-imports.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-namespaces.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-pattern.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-security.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-xsltInternals.html +#opt/lampp/share/doc/libxslt-1.1.8/html/html/libxslt-xsltutils.html +#opt/lampp/share/doc/libxslt-1.1.8/html/EXSLT/ +#opt/lampp/share/doc/libxslt-1.1.8/html/EXSLT/exslt.html +#opt/lampp/share/doc/libxslt-1.1.8/html/templates.gif +#opt/lampp/share/doc/libxslt-1.1.8/html/APIchunk0.html +#opt/lampp/share/doc/libxslt-1.1.8/html/APIchunk1.html +#opt/lampp/share/doc/libxslt-1.1.8/html/APIchunk2.html +#opt/lampp/share/doc/libxslt-1.1.8/html/APIchunk3.html +#opt/lampp/share/doc/libxslt-1.1.8/html/APIchunk4.html +#opt/lampp/share/doc/libxslt-1.1.8/html/xsltproc.html +#opt/lampp/share/doc/libxslt-1.1.8/html/APIchunk5.html +#opt/lampp/share/doc/libxslt-1.1.8/html/APIchunk6.html +#opt/lampp/share/doc/libxslt-1.1.8/html/APIfunctions.html +#opt/lampp/share/doc/libxslt-1.1.8/html/internals.html +#opt/lampp/share/doc/libxslt-1.1.8/html/APIchunk7.html +#opt/lampp/share/doc/libxslt-1.1.8/html/stylesheet.gif +#opt/lampp/share/doc/libxslt-1.1.8/html/APIchunk8.html +#opt/lampp/share/doc/libxslt-1.1.8/html/APIchunk9.html +#opt/lampp/share/doc/libxslt-1.1.8/html/python.html +#opt/lampp/share/doc/libxslt-1.1.8/html/Libxslt-Logo-90x34.gif +#opt/lampp/share/doc/libxslt-1.1.8/html/docs.html +#opt/lampp/share/doc/libxslt-1.1.8/html/index.html +#opt/lampp/share/doc/libxslt-1.1.8/html/bugs.html +#opt/lampp/share/doc/libxslt-1.1.8/html/object.gif +#opt/lampp/share/doc/libxslt-1.1.8/html/smallfootonly.gif +#opt/lampp/share/doc/libxslt-1.1.8/html/contexts.gif +#opt/lampp/share/doc/libxslt-1.1.8/html/downloads.html +#opt/lampp/share/doc/libxslt-1.1.8/html/xslt.html +#opt/lampp/share/doc/libxslt-1.1.8/html/contribs.html +#opt/lampp/share/doc/libxslt-1.1.8/html/processing.gif +#opt/lampp/share/doc/libxslt-1.1.8/html/tutorial/ +#opt/lampp/share/doc/libxslt-1.1.8/html/tutorial/libxslt_tutorial.c +#opt/lampp/share/doc/libxslt-1.1.8/html/tutorial/libxslttutorial.html +#opt/lampp/share/doc/libxslt-1.1.8/html/tutorial/libxslttutorial.xml +#opt/lampp/share/doc/libxslt-1.1.8/html/Libxslt-Logo-180x168.gif +#opt/lampp/share/doc/libxslt-1.1.8/html/extensions.html +#opt/lampp/share/doc/libxslt-1.1.8/html/APIconstructors.html +#opt/lampp/share/doc/libxslt-1.1.8/html/redhat.gif +#opt/lampp/share/doc/libxslt-1.1.8/html/intro.html +#opt/lampp/share/doc/libxslt-1.1.8/html/FAQ.html +#opt/lampp/share/doc/libxslt-1.1.8/html/APIfiles.html +#opt/lampp/share/doc/libxslt-1.1.8/html/help.html +#opt/lampp/share/doc/libxslt-1.1.8/html/xsltproc2.html +#opt/lampp/share/doc/libxslt-1.1.8/html/node.gif +#opt/lampp/share/doc/libxslt-1.1.8/html/API.html +#opt/lampp/share/doc/libxslt-1.1.8/html/news.html +#opt/lampp/share/doc/libxslt-1.1.8/html/docbook.html +#opt/lampp/share/doc/libxslt-1.1.8/html/APIsymbols.html +#opt/lampp/share/doc/libxml2-2.6.11/ +#opt/lampp/share/doc/libxml2-2.6.11/html/ +#opt/lampp/share/doc/libxml2-2.6.11/html/Libxml2-Logo-90x34.gif +#opt/lampp/share/doc/libxml2-2.6.11/html/html/ +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-HTMLtree.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xmlwriter.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xpathInternals.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-chvalid.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-parser.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-valid.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-uri.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xmlautomata.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/right.png +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-hash.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-nanoftp.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-SAX2.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/left.png +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xmlstring.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-globals.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-HTMLparser.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/index.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-tree.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xmlunicode.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xmlerror.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-lib.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-c14n.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-catalog.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xmlexports.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-SAX.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xpath.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-parserInternals.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xinclude.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/home.png +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xmlschemas.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xmlversion.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-list.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-relaxng.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xmlIO.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-pattern.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-DOCBparser.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xmlregexp.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-dict.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xmlmemory.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/book1.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/up.png +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-threads.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-nanohttp.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-schemasInternals.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xpointer.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-debugXML.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xmlsave.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xmlschemastypes.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-entities.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xmlreader.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-encoding.html +#opt/lampp/share/doc/libxml2-2.6.11/html/html/libxml-xlink.html +#opt/lampp/share/doc/libxml2-2.6.11/html/DOM.gif +#opt/lampp/share/doc/libxml2-2.6.11/html/encoding.html +#opt/lampp/share/doc/libxml2-2.6.11/html/xpath1.c +#opt/lampp/share/doc/libxml2-2.6.11/html/xpath2.c +#opt/lampp/share/doc/libxml2-2.6.11/html/io1.c +#opt/lampp/share/doc/libxml2-2.6.11/html/io2.c +#opt/lampp/share/doc/libxml2-2.6.11/html/w3c.png +#opt/lampp/share/doc/libxml2-2.6.11/html/testWriter.c +#opt/lampp/share/doc/libxml2-2.6.11/html/writer.xml +#opt/lampp/share/doc/libxml2-2.6.11/html/parse1.c +#opt/lampp/share/doc/libxml2-2.6.11/html/parse2.c +#opt/lampp/share/doc/libxml2-2.6.11/html/parse3.c +#opt/lampp/share/doc/libxml2-2.6.11/html/parse4.c +#opt/lampp/share/doc/libxml2-2.6.11/html/structure.gif +#opt/lampp/share/doc/libxml2-2.6.11/html/Libxml2-Logo-180x168.gif +#opt/lampp/share/doc/libxml2-2.6.11/html/smallfootonly.gif +#opt/lampp/share/doc/libxml2-2.6.11/html/tree1.res +#opt/lampp/share/doc/libxml2-2.6.11/html/tree2.res +#opt/lampp/share/doc/libxml2-2.6.11/html/tree1.c +#opt/lampp/share/doc/libxml2-2.6.11/html/tree2.c +#opt/lampp/share/doc/libxml2-2.6.11/html/examples.xml +#opt/lampp/share/doc/libxml2-2.6.11/html/examples.xsl +#opt/lampp/share/doc/libxml2-2.6.11/html/tst.xml +#opt/lampp/share/doc/libxml2-2.6.11/html/xpath1.res +#opt/lampp/share/doc/libxml2-2.6.11/html/xpath2.res +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/ +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/ar01s02.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/ar01s03.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/apa.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/ar01s04.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/apb.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/includexpath.c +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/ar01s05.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/apc.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/ar01s06.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/apd.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/ar01s07.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/ape.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/ar01s08.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/apf.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/ar01s09.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/apg.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/aph.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/ix01.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/api.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/index.html +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/includeconvert.c +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/xmltutorial.pdf +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/ +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/warning.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/toc-blank.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/blank.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/note.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/toc-plus.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/callouts/ +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/callouts/1.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/callouts/2.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/callouts/3.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/callouts/4.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/callouts/5.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/callouts/6.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/callouts/7.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/callouts/8.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/callouts/9.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/callouts/10.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/important.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/tip.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/home.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/toc-minus.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/prev.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/up.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/next.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/draft.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/images/caution.png +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/includekeyword.c +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/includegetattribute.c +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/includeaddkeyword.c +#opt/lampp/share/doc/libxml2-2.6.11/html/tutorial/includeaddattribute.c +#opt/lampp/share/doc/libxml2-2.6.11/html/xml.html +#opt/lampp/share/doc/libxml2-2.6.11/html/libxml.gif +#opt/lampp/share/doc/libxml2-2.6.11/html/redhat.gif +#opt/lampp/share/doc/libxml2-2.6.11/html/FAQ.html +#opt/lampp/share/doc/libxml2-2.6.11/html/io1.res +#opt/lampp/share/doc/libxml2-2.6.11/html/io2.res +#opt/lampp/share/doc/libxml2-2.6.11/html/test1.xml +#opt/lampp/share/doc/libxml2-2.6.11/html/test2.xml +#opt/lampp/share/doc/libxml2-2.6.11/html/test3.xml +#opt/lampp/share/doc/libxml2-2.6.11/html/reader1.c +#opt/lampp/share/doc/libxml2-2.6.11/html/reader2.c +#opt/lampp/share/doc/libxml2-2.6.11/html/reader3.c +#opt/lampp/share/doc/libxml2-2.6.11/html/reader1.res +#opt/lampp/share/doc/libxml2-2.6.11/html/reader3.res +#opt/lampp/share/doc/libxml2-2.6.11/Copyright +#opt/lampp/share/doc/libxml2-2.6.11/examples/ +#opt/lampp/share/doc/libxml2-2.6.11/examples/testXPath.c +#opt/lampp/share/doc/libxml2-2.6.11/examples/testHTML.c +#opt/lampp/share/doc/libxml2-2.6.11/examples/xmllint.c +#opt/lampp/share/doc/libxml2-2.6.11/examples/testSAX.c +#opt/lampp/modules/ +#opt/lampp/modules/mod_file_cache.la +#opt/lampp/modules/mod_setenvif.la +#opt/lampp/modules/mod_cern_meta.la +#opt/lampp/modules/mod_case_filter.la +#opt/lampp/modules/mod_expires.la +#opt/lampp/modules/mod_authn_default.a +#opt/lampp/modules/mod_authn_file.la +#opt/lampp/modules/mod_disk_cache.la +#opt/lampp/modules/mod_dav_fs.a +#opt/lampp/modules/mod_ident.a +#opt/lampp/modules/mod_authz_user.a +#opt/lampp/modules/mod_deflate.la +#opt/lampp/modules/mod_proxy_ftp.la +#opt/lampp/modules/mod_proxy_http.a +#opt/lampp/modules/mod_autoindex.a +#opt/lampp/modules/mod_asis.la +#opt/lampp/modules/mod_authz_groupfile.a +#opt/lampp/modules/mod_rewrite.a +#opt/lampp/modules/mod_negotiation.la +#opt/lampp/modules/mod_mem_cache.a +#opt/lampp/modules/mod_apreq2.la +#opt/lampp/modules/mod_file_cache.a +#opt/lampp/modules/mod_disk_cache.a +#opt/lampp/modules/mod_usertrack.a +#opt/lampp/modules/mod_proxy_balancer.a +#opt/lampp/modules/mod_cache.a +#opt/lampp/modules/mod_authn_default.la +#opt/lampp/modules/mod_usertrack.la +#opt/lampp/modules/mod_imagemap.a +#opt/lampp/modules/mod_info.la +#opt/lampp/modules/mod_bucketeer.a +#opt/lampp/modules/mod_authz_dbm.a +#opt/lampp/modules/mod_proxy_balancer.la +#opt/lampp/modules/mod_cache.la +#opt/lampp/modules/mod_dumpio.la +#opt/lampp/modules/mod_cgid.la +#opt/lampp/modules/mod_dav_fs.la +#opt/lampp/modules/mod_ident.la +#opt/lampp/modules/mod_authz_user.la +#opt/lampp/modules/mod_proxy.a +#opt/lampp/modules/mod_include.a +#opt/lampp/modules/mod_case_filter_in.a +#opt/lampp/modules/mod_filter.a +#opt/lampp/modules/mod_proxy_connect.la +#opt/lampp/modules/mod_cern_meta.a +#opt/lampp/modules/mod_negotiation.a +#opt/lampp/modules/mod_vhost_alias.a +#opt/lampp/modules/mod_authz_host.la +#opt/lampp/modules/mod_vhost_alias.la +#opt/lampp/modules/mod_actions.la +#opt/lampp/modules/mod_cgi.a +#opt/lampp/modules/mod_dbd.a +#opt/lampp/modules/mod_dav.a +#opt/lampp/modules/mod_dir.a +#opt/lampp/modules/mod_env.a +#opt/lampp/modules/mod_authn_anon.la +#opt/lampp/modules/mod_apreq2.a +#opt/lampp/modules/mod_log_config.la +#opt/lampp/modules/mod_authn_dbd.a +#opt/lampp/modules/mod_authn_dbm.a +#opt/lampp/modules/mod_authz_owner.a +#opt/lampp/modules/mod_unique_id.a +#opt/lampp/modules/mod_echo.la +#opt/lampp/modules/mod_charset_lite.la +#opt/lampp/modules/mod_ldap.la +#opt/lampp/modules/mod_setenvif.a +#opt/lampp/modules/mod_case_filter.a +#opt/lampp/modules/mod_deflate.a +#opt/lampp/modules/mod_authn_anon.a +#opt/lampp/modules/mod_authn_dbd.la +#opt/lampp/modules/mod_mime_magic.la +#opt/lampp/modules/mod_authn_dbm.la +#opt/lampp/modules/mod_example.la +#opt/lampp/modules/mod_status.la +#opt/lampp/modules/libphp4.la +#opt/lampp/modules/libphp5.la +#opt/lampp/modules/mod_authn_file.a +#opt/lampp/modules/mod_ext_filter.la +#opt/lampp/modules/mod_actions.a +#opt/lampp/modules/mod_mime_magic.a +#opt/lampp/modules/mod_status.a +#opt/lampp/modules/mod_logio.a +#opt/lampp/modules/mod_proxy_http.la +#opt/lampp/modules/mod_speling.a +#opt/lampp/modules/mod_userdir.a +#opt/lampp/modules/mod_imagemap.la +#opt/lampp/modules/mod_authz_owner.la +#opt/lampp/modules/mod_logio.la +#opt/lampp/modules/mod_alias.la +#opt/lampp/modules/mod_mime.la +#opt/lampp/modules/mod_auth_digest.la +#opt/lampp/modules/mod_speling.la +#opt/lampp/modules/mod_auth_basic.la +#opt/lampp/modules/mod_autoindex.la +#opt/lampp/modules/mod_userdir.la +#opt/lampp/modules/mod_unique_id.la +#opt/lampp/modules/mod_proxy.la +#opt/lampp/modules/mod_authz_groupfile.la +#opt/lampp/modules/mod_authz_default.a +#opt/lampp/modules/mod_bucketeer.la +#opt/lampp/modules/mod_suexec.la +#opt/lampp/modules/mod_proxy_connect.a +#opt/lampp/modules/mod_example.a +#opt/lampp/modules/mod_authz_dbm.la +#opt/lampp/modules/mod_ext_filter.a +#opt/lampp/modules/mod_suexec.a +#opt/lampp/modules/mod_asis.a +#opt/lampp/modules/mod_rewrite.la +#opt/lampp/modules/mod_cgi.la +#opt/lampp/modules/mod_dumpio.a +#opt/lampp/modules/mod_cgid.a +#opt/lampp/modules/mod_include.la +#opt/lampp/modules/mod_dbd.la +#opt/lampp/modules/mod_dav.la +#opt/lampp/modules/mod_authz_host.a +#opt/lampp/modules/mod_dir.la +#opt/lampp/modules/mod_log_config.a +#opt/lampp/modules/mod_echo.a +#opt/lampp/modules/mod_env.la +#opt/lampp/modules/mod_auth_digest.a +#opt/lampp/modules/mod_auth_basic.a +#opt/lampp/modules/mod_headers.a +#opt/lampp/modules/mod_proxy_ajp.a +#opt/lampp/modules/mod_mem_cache.la +#opt/lampp/modules/mod_expires.a +#opt/lampp/modules/mod_proxy_ftp.a +#opt/lampp/modules/mod_info.a +#opt/lampp/modules/mod_headers.la +#opt/lampp/modules/mod_authz_default.la +#opt/lampp/modules/mod_case_filter_in.la +#opt/lampp/modules/mod_charset_lite.a +#opt/lampp/modules/mod_proxy_ajp.la +#opt/lampp/modules/mod_ldap.a +#opt/lampp/modules/mod_filter.la +#opt/lampp/modules/mod_alias.a +#opt/lampp/modules/mod_mime.a +#opt/lampp/manual/ +#opt/lampp/manual/faq/ +#opt/lampp/manual/faq/support.html.en +#opt/lampp/manual/faq/all_in_one.html.ko.euc-kr +#opt/lampp/manual/faq/all_in_one.html.ja.euc-jp +#opt/lampp/manual/faq/all_in_one.html.en +#opt/lampp/manual/faq/support.html +#opt/lampp/manual/faq/error.html.ko.euc-kr +#opt/lampp/manual/faq/index.html +#opt/lampp/manual/faq/error.html.ja.euc-jp +#opt/lampp/manual/faq/all_in_one.html +#opt/lampp/manual/faq/background.html +#opt/lampp/manual/faq/index.html.ko.euc-kr +#opt/lampp/manual/faq/background.html.en +#opt/lampp/manual/faq/support.html.ko.euc-kr +#opt/lampp/manual/faq/index.html.ja.euc-jp +#opt/lampp/manual/faq/index.html.en +#opt/lampp/manual/faq/support.html.ja.euc-jp +#opt/lampp/manual/faq/error.html +#opt/lampp/manual/faq/error.html.en +#opt/lampp/manual/mod/ +#opt/lampp/manual/mod/mod_autoindex.html.ko.euc-kr +#opt/lampp/manual/mod/mod_authn_file.html.en +#opt/lampp/manual/mod/mod_isapi.html.en +#opt/lampp/manual/mod/mod_dbd.html.en +#opt/lampp/manual/mod/module-dict.html.ko.euc-kr +#opt/lampp/manual/mod/mod_authz_host.html +#opt/lampp/manual/mod/mod_authn_default.html.ja.euc-jp +#opt/lampp/manual/mod/mod_authn_alias.html +#opt/lampp/manual/mod/mod_proxy.html.en +#opt/lampp/manual/mod/prefork.html +#opt/lampp/manual/mod/mod_auth_basic.html +#opt/lampp/manual/mod/mod_ext_filter.html.ja.euc-jp +#opt/lampp/manual/mod/beos.html.de +#opt/lampp/manual/mod/beos.html.en +#opt/lampp/manual/mod/beos.html.es +#opt/lampp/manual/mod/mod_suexec.html.en +#opt/lampp/manual/mod/mod_so.html.ko.euc-kr +#opt/lampp/manual/mod/mod_cgi.html +#opt/lampp/manual/mod/mod_env.html.en +#opt/lampp/manual/mod/mod_authnz_ldap.html +#opt/lampp/manual/mod/mod_dir.html +#opt/lampp/manual/mod/mod_authn_anon.html +#opt/lampp/manual/mod/mod_autoindex.html.ja.euc-jp +#opt/lampp/manual/mod/mod_authz_dbm.html.ko.euc-kr +#opt/lampp/manual/mod/mod_log_config.html.en +#opt/lampp/manual/mod/mod_proxy_balancer.html.ja.euc-jp +#opt/lampp/manual/mod/mod_autoindex.html.en +#opt/lampp/manual/mod/mod_cern_meta.html.en +#opt/lampp/manual/mod/mod_imagemap.html.ko.euc-kr +#opt/lampp/manual/mod/mod_dav.html.ko.euc-kr +#opt/lampp/manual/mod/mod_dav.html.en +#opt/lampp/manual/mod/mod_echo.html +#opt/lampp/manual/mod/module-dict.html.ja.euc-jp +#opt/lampp/manual/mod/mod_cache.html +#opt/lampp/manual/mod/mod_headers.html +#opt/lampp/manual/mod/worker.html +#opt/lampp/manual/mod/mod_log_forensic.html.ja.euc-jp +#opt/lampp/manual/mod/mod_actions.html.ko.euc-kr +#opt/lampp/manual/mod/mod_ldap.html.en +#opt/lampp/manual/mod/mod_dumpio.html.ja.euc-jp +#opt/lampp/manual/mod/mod_setenvif.html.ko.euc-kr +#opt/lampp/manual/mod/mod_authz_groupfile.html.ko.euc-kr +#opt/lampp/manual/mod/mpmt_os2.html +#opt/lampp/manual/mod/mod_so.html.ja.euc-jp +#opt/lampp/manual/mod/mod_negotiation.html.en +#opt/lampp/manual/mod/mod_deflate.html +#opt/lampp/manual/mod/mod_authz_default.html +#opt/lampp/manual/mod/mod_dav.html.ja.euc-jp +#opt/lampp/manual/mod/mod_cache.html.en +#opt/lampp/manual/mod/mod_imagemap.html +#opt/lampp/manual/mod/mod_actions.html.ja.euc-jp +#opt/lampp/manual/mod/mod_filter.html.en +#opt/lampp/manual/mod/mod_proxy_balancer.html.en +#opt/lampp/manual/mod/mod_unique_id.html.en +#opt/lampp/manual/mod/mod_setenvif.html.ja.euc-jp +#opt/lampp/manual/mod/mod_authz_groupfile.html.ja.euc-jp +#opt/lampp/manual/mod/mod_ext_filter.html.en +#opt/lampp/manual/mod/mod_cern_meta.html.ko.euc-kr +#opt/lampp/manual/mod/mod_authz_default.html.en +#opt/lampp/manual/mod/mod_authz_owner.html +#opt/lampp/manual/mod/mod_dav_lock.html +#opt/lampp/manual/mod/mod_example.html.ko.euc-kr +#opt/lampp/manual/mod/mod_disk_cache.html.en +#opt/lampp/manual/mod/mod_expires.html +#opt/lampp/manual/mod/mod_dav_fs.html.ko.euc-kr +#opt/lampp/manual/mod/mod_suexec.html +#opt/lampp/manual/mod/directives.html +#opt/lampp/manual/mod/mod_dav_fs.html +#opt/lampp/manual/mod/mod_expires.html.en +#opt/lampp/manual/mod/mpm_common.html +#opt/lampp/manual/mod/mod_authn_file.html.ko.euc-kr +#opt/lampp/manual/mod/mod_file_cache.html.ko.euc-kr +#opt/lampp/manual/mod/prefork.html.ja.euc-jp +#opt/lampp/manual/mod/core.html.de +#opt/lampp/manual/mod/core.html.en +#opt/lampp/manual/mod/mod_example.html.en +#opt/lampp/manual/mod/mod_include.html +#opt/lampp/manual/mod/mod_dav_fs.html.ja.euc-jp +#opt/lampp/manual/mod/mod_userdir.html +#opt/lampp/manual/mod/mod_userdir.html.ko.euc-kr +#opt/lampp/manual/mod/directive-dict.html +#opt/lampp/manual/mod/mod_deflate.html.ko.euc-kr +#opt/lampp/manual/mod/mod_so.html.en +#opt/lampp/manual/mod/worker.html.ja.euc-jp +#opt/lampp/manual/mod/mod_cgid.html +#opt/lampp/manual/mod/mod_example.html +#opt/lampp/manual/mod/mod_headers.html.ko.euc-kr +#opt/lampp/manual/mod/mod_cache.html.ko.euc-kr +#opt/lampp/manual/mod/mod_authn_file.html.ja.euc-jp +#opt/lampp/manual/mod/index.html +#opt/lampp/manual/mod/mod_cgi.html.ko.euc-kr +#opt/lampp/manual/mod/mod_proxy_ftp.html +#opt/lampp/manual/mod/mod_cgi.html.en +#opt/lampp/manual/mod/mod_authz_owner.html.ko.euc-kr +#opt/lampp/manual/mod/mod_authn_file.html +#opt/lampp/manual/mod/mod_authz_default.html.ko.euc-kr +#opt/lampp/manual/mod/mod_cgid.html.ko.euc-kr +#opt/lampp/manual/mod/mod_cgid.html.en +#opt/lampp/manual/mod/mod_disk_cache.html +#opt/lampp/manual/mod/mod_file_cache.html +#opt/lampp/manual/mod/mod_charset_lite.html +#opt/lampp/manual/mod/mod_userdir.html.ja.euc-jp +#opt/lampp/manual/mod/mod_info.html.ko.euc-kr +#opt/lampp/manual/mod/quickreference.html.de +#opt/lampp/manual/mod/quickreference.html.en +#opt/lampp/manual/mod/quickreference.html.es +#opt/lampp/manual/mod/mod_deflate.html.ja.euc-jp +#opt/lampp/manual/mod/mod_log_forensic.html +#opt/lampp/manual/mod/directive-dict.html.ko.euc-kr +#opt/lampp/manual/mod/mod_alias.html.ko.euc-kr +#opt/lampp/manual/mod/mod_headers.html.ja.euc-jp +#opt/lampp/manual/mod/mod_cache.html.ja.euc-jp +#opt/lampp/manual/mod/index.html.ko.euc-kr +#opt/lampp/manual/mod/mod_cgi.html.ja.euc-jp +#opt/lampp/manual/mod/mod_actions.html.de +#opt/lampp/manual/mod/mod_actions.html.en +#opt/lampp/manual/mod/mod_proxy_http.html.en +#opt/lampp/manual/mod/mod_authz_owner.html.ja.euc-jp +#opt/lampp/manual/mod/mpm_netware.html.en +#opt/lampp/manual/mod/mod_env.html +#opt/lampp/manual/mod/mod_authz_default.html.ja.euc-jp +#opt/lampp/manual/mod/directives.html.de +#opt/lampp/manual/mod/directives.html.en +#opt/lampp/manual/mod/directives.html.es +#opt/lampp/manual/mod/mod_cgid.html.ja.euc-jp +#opt/lampp/manual/mod/mod_speling.html.ko.euc-kr +#opt/lampp/manual/mod/mod_file_cache.html.en +#opt/lampp/manual/mod/mod_authn_default.html +#opt/lampp/manual/mod/mod_auth_basic.html.ko.euc-kr +#opt/lampp/manual/mod/core.html.ja.euc-jp +#opt/lampp/manual/mod/mod_info.html.ja.euc-jp +#opt/lampp/manual/mod/directive-dict.html.ja.euc-jp +#opt/lampp/manual/mod/mod_asis.html.en +#opt/lampp/manual/mod/mod_alias.html.ja.euc-jp +#opt/lampp/manual/mod/mpm_winnt.html +#opt/lampp/manual/mod/mod_auth_basic.html.en +#opt/lampp/manual/mod/mpm_netware.html +#opt/lampp/manual/mod/index.html.ja.euc-jp +#opt/lampp/manual/mod/mod_ssl.html +#opt/lampp/manual/mod/mod_proxy_http.html +#opt/lampp/manual/mod/mod_env.html.ko.euc-kr +#opt/lampp/manual/mod/mod_speling.html.ja.euc-jp +#opt/lampp/manual/mod/mod_authz_groupfile.html.en +#opt/lampp/manual/mod/mod_filter.html +#opt/lampp/manual/mod/mod_asis.html.ko.euc-kr +#opt/lampp/manual/mod/mod_headers.html.en +#opt/lampp/manual/mod/mod_authn_default.html.en +#opt/lampp/manual/mod/worker.html.de +#opt/lampp/manual/mod/worker.html.en +#opt/lampp/manual/mod/mod_dav_lock.html.en +#opt/lampp/manual/mod/mod_auth_basic.html.ja.euc-jp +#opt/lampp/manual/mod/mod_dir.html.ko.euc-kr +#opt/lampp/manual/mod/index.html.de +#opt/lampp/manual/mod/index.html.en +#opt/lampp/manual/mod/index.html.es +#opt/lampp/manual/mod/mod_deflate.html.en +#opt/lampp/manual/mod/mod_proxy_ajp.html.en +#opt/lampp/manual/mod/mod_expires.html.ko.euc-kr +#opt/lampp/manual/mod/mod_unique_id.html.ko.euc-kr +#opt/lampp/manual/mod/mod_so.html +#opt/lampp/manual/mod/quickreference.html.ko.euc-kr +#opt/lampp/manual/mod/mod_ident.html +#opt/lampp/manual/mod/mod_mime.html.en +#opt/lampp/manual/mod/mod_log_config.html +#opt/lampp/manual/mod/mod_ident.html.en +#opt/lampp/manual/mod/mod_env.html.ja.euc-jp +#opt/lampp/manual/mod/mod_logio.html.ko.euc-kr +#opt/lampp/manual/mod/mod_negotiation.html.ja.euc-jp +#opt/lampp/manual/mod/mod_status.html.ko.euc-kr +#opt/lampp/manual/mod/mod_alias.html +#opt/lampp/manual/mod/event.html.en +#opt/lampp/manual/mod/mod_asis.html.ja.euc-jp +#opt/lampp/manual/mod/mod_mime_magic.html.en +#opt/lampp/manual/mod/mod_authz_host.html.ko.euc-kr +#opt/lampp/manual/mod/mod_vhost_alias.html.en +#opt/lampp/manual/mod/mod_dir.html.ja.euc-jp +#opt/lampp/manual/mod/mod_expires.html.ja.euc-jp +#opt/lampp/manual/mod/mod_unique_id.html.ja.euc-jp +#opt/lampp/manual/mod/mod_setenvif.html +#opt/lampp/manual/mod/quickreference.html.ja.euc-jp +#opt/lampp/manual/mod/mod_info.html +#opt/lampp/manual/mod/mod_status.html.en +#opt/lampp/manual/mod/mod_alias.html.en +#opt/lampp/manual/mod/mpm_common.html.ja.euc-jp +#opt/lampp/manual/mod/mod_ext_filter.html +#opt/lampp/manual/mod/mod_ldap.html +#opt/lampp/manual/mod/mod_echo.html.en +#opt/lampp/manual/mod/mod_logio.html.ja.euc-jp +#opt/lampp/manual/mod/mod_status.html.ja.euc-jp +#opt/lampp/manual/mod/mod_setenvif.html.en +#opt/lampp/manual/mod/mod_asis.html +#opt/lampp/manual/mod/mod_vhost_alias.html +#opt/lampp/manual/mod/mod_authz_host.html.ja.euc-jp +#opt/lampp/manual/mod/mod_echo.html.ko.euc-kr +#opt/lampp/manual/mod/module-dict.html.en +#opt/lampp/manual/mod/mod_rewrite.html.en +#opt/lampp/manual/mod/mod_authn_anon.html.ko.euc-kr +#opt/lampp/manual/mod/mod_proxy.html.ja.euc-jp +#opt/lampp/manual/mod/core.html +#opt/lampp/manual/mod/mpm_winnt.html.de +#opt/lampp/manual/mod/mpm_winnt.html.en +#opt/lampp/manual/mod/mod_dav_lock.html.ja.euc-jp +#opt/lampp/manual/mod/mod_info.html.en +#opt/lampp/manual/mod/mpm_common.html.de +#opt/lampp/manual/mod/mpm_common.html.en +#opt/lampp/manual/mod/mod_authn_dbd.html +#opt/lampp/manual/mod/mod_mime_magic.html +#opt/lampp/manual/mod/mod_proxy_balancer.html +#opt/lampp/manual/mod/mod_echo.html.ja.euc-jp +#opt/lampp/manual/mod/mod_log_forensic.html.en +#opt/lampp/manual/mod/quickreference.html +#opt/lampp/manual/mod/mod_authz_dbm.html.en +#opt/lampp/manual/mod/mod_authz_groupfile.html +#opt/lampp/manual/mod/mod_authn_anon.html.ja.euc-jp +#opt/lampp/manual/mod/mod_rewrite.html +#opt/lampp/manual/mod/mod_disk_cache.html.ko.euc-kr +#opt/lampp/manual/mod/module-dict.html +#opt/lampp/manual/mod/mod_authn_dbd.html.en +#opt/lampp/manual/mod/mod_ssl.html.en +#opt/lampp/manual/mod/mod_authz_host.html.en +#opt/lampp/manual/mod/mod_authnz_ldap.html.en +#opt/lampp/manual/mod/mod_charset_lite.html.ko.euc-kr +#opt/lampp/manual/mod/mod_unique_id.html +#opt/lampp/manual/mod/mod_authz_user.html.ko.euc-kr +#opt/lampp/manual/mod/mod_dir.html.en +#opt/lampp/manual/mod/mod_proxy_ftp.html.en +#opt/lampp/manual/mod/mod_charset_lite.html.en +#opt/lampp/manual/mod/mod_mem_cache.html +#opt/lampp/manual/mod/mod_mime.html +#opt/lampp/manual/mod/mod_negotiation.html +#opt/lampp/manual/mod/mpm_winnt.html.ja.euc-jp +#opt/lampp/manual/mod/mod_authz_user.html.en +#opt/lampp/manual/mod/mod_include.html.en +#opt/lampp/manual/mod/mod_auth_digest.html +#opt/lampp/manual/mod/mod_log_config.html.ko.euc-kr +#opt/lampp/manual/mod/mod_proxy_connect.html.en +#opt/lampp/manual/mod/mod_dumpio.html +#opt/lampp/manual/mod/mod_disk_cache.html.ja.euc-jp +#opt/lampp/manual/mod/event.html +#opt/lampp/manual/mod/mod_actions.html +#opt/lampp/manual/mod/directives.html.ko.euc-kr +#opt/lampp/manual/mod/mod_authn_dbm.html +#opt/lampp/manual/mod/mod_dbd.html +#opt/lampp/manual/mod/mod_suexec.html.ko.euc-kr +#opt/lampp/manual/mod/mpmt_os2.html.en +#opt/lampp/manual/mod/mod_logio.html.en +#opt/lampp/manual/mod/mod_speling.html.en +#opt/lampp/manual/mod/mod_authn_dbm.html.ko.euc-kr +#opt/lampp/manual/mod/mod_authz_user.html.ja.euc-jp +#opt/lampp/manual/mod/mod_nw_ssl.html +#opt/lampp/manual/mod/mod_version.html.ko.euc-kr +#opt/lampp/manual/mod/mod_status.html +#opt/lampp/manual/mod/mod_authn_dbm.html.en +#opt/lampp/manual/mod/mod_auth_digest.html.en +#opt/lampp/manual/mod/mod_nw_ssl.html.en +#opt/lampp/manual/mod/mod_log_config.html.ja.euc-jp +#opt/lampp/manual/mod/mod_dav_fs.html.en +#opt/lampp/manual/mod/prefork.html.de +#opt/lampp/manual/mod/prefork.html.en +#opt/lampp/manual/mod/mod_imagemap.html.en +#opt/lampp/manual/mod/mod_proxy_ajp.html +#opt/lampp/manual/mod/mod_mem_cache.html.ko.euc-kr +#opt/lampp/manual/mod/beos.html.ko.euc-kr +#opt/lampp/manual/mod/beos.html +#opt/lampp/manual/mod/mod_ident.html.ko.euc-kr +#opt/lampp/manual/mod/mod_authz_user.html +#opt/lampp/manual/mod/mod_mime.html.ja.euc-jp +#opt/lampp/manual/mod/mod_authz_owner.html.en +#opt/lampp/manual/mod/mod_authz_dbm.html +#opt/lampp/manual/mod/mod_proxy.html +#opt/lampp/manual/mod/mod_usertrack.html.en +#opt/lampp/manual/mod/directives.html.ja.euc-jp +#opt/lampp/manual/mod/mod_suexec.html.ja.euc-jp +#opt/lampp/manual/mod/mod_version.html +#opt/lampp/manual/mod/mod_isapi.html +#opt/lampp/manual/mod/directive-dict.html.en +#opt/lampp/manual/mod/mod_speling.html +#opt/lampp/manual/mod/mod_authn_dbm.html.ja.euc-jp +#opt/lampp/manual/mod/mod_dumpio.html.en +#opt/lampp/manual/mod/mod_authn_default.html.ko.euc-kr +#opt/lampp/manual/mod/mod_authn_alias.html.en +#opt/lampp/manual/mod/mod_proxy_connect.html +#opt/lampp/manual/mod/mod_logio.html +#opt/lampp/manual/mod/mod_mem_cache.html.en +#opt/lampp/manual/mod/mod_dav.html +#opt/lampp/manual/mod/mod_userdir.html.en +#opt/lampp/manual/mod/mod_version.html.ja.euc-jp +#opt/lampp/manual/mod/mod_ext_filter.html.ko.euc-kr +#opt/lampp/manual/mod/mod_cern_meta.html +#opt/lampp/manual/mod/mod_usertrack.html +#opt/lampp/manual/mod/mod_proxy_ajp.html.ja.euc-jp +#opt/lampp/manual/mod/mod_auth_digest.html.ko.euc-kr +#opt/lampp/manual/mod/mod_authn_anon.html.en +#opt/lampp/manual/mod/mod_autoindex.html +#opt/lampp/manual/mod/mod_isapi.html.ko.euc-kr +#opt/lampp/manual/mod/mod_include.html.ja.euc-jp +#opt/lampp/manual/mod/mod_mem_cache.html.ja.euc-jp +#opt/lampp/manual/mod/mod_version.html.en +#opt/lampp/manual/ssl/ +#opt/lampp/manual/ssl/ssl_faq.html +#opt/lampp/manual/ssl/ssl_faq.html.en +#opt/lampp/manual/ssl/ssl_intro.html.en +#opt/lampp/manual/ssl/ssl_howto.html +#opt/lampp/manual/ssl/index.html +#opt/lampp/manual/ssl/ssl_intro.html.ja.euc-jp +#opt/lampp/manual/ssl/index.html.ja.euc-jp +#opt/lampp/manual/ssl/index.html.en +#opt/lampp/manual/ssl/ssl_howto.html.en +#opt/lampp/manual/ssl/ssl_intro.html +#opt/lampp/manual/ssl/ssl_compat.html +#opt/lampp/manual/ssl/ssl_compat.html.en +#opt/lampp/manual/server-wide.html +#opt/lampp/manual/upgrading.html.ko.euc-kr +#opt/lampp/manual/filter.html.en +#opt/lampp/manual/filter.html.es +#opt/lampp/manual/filter.html.fr +#opt/lampp/manual/misc/ +#opt/lampp/manual/misc/perf-tuning.html.en +#opt/lampp/manual/misc/rewriteguide.html.en +#opt/lampp/manual/misc/security_tips.html.ko.euc-kr +#opt/lampp/manual/misc/perf-tuning.html.ko.euc-kr +#opt/lampp/manual/misc/relevant_standards.html.ko.euc-kr +#opt/lampp/manual/misc/security_tips.html +#opt/lampp/manual/misc/index.html +#opt/lampp/manual/misc/index.html.ko.euc-kr +#opt/lampp/manual/misc/index.html.en +#opt/lampp/manual/misc/relevant_standards.html +#opt/lampp/manual/misc/perf-tuning.html +#opt/lampp/manual/misc/relevant_standards.html.en +#opt/lampp/manual/misc/rewriteguide.html +#opt/lampp/manual/misc/security_tips.html.en +#opt/lampp/manual/misc/rewriteguide.html.ko.euc-kr +#opt/lampp/manual/new_features_2_2.html.pt-br +#opt/lampp/manual/handler.html.en +#opt/lampp/manual/handler.html.es +#opt/lampp/manual/suexec.html.ja.euc-jp +#opt/lampp/manual/upgrading.html.pt-br +#opt/lampp/manual/new_features_2_0.html.ko.euc-kr +#opt/lampp/manual/license.html +#opt/lampp/manual/stopping.html.ko.euc-kr +#opt/lampp/manual/upgrading.html.ja.euc-jp +#opt/lampp/manual/rewrite/ +#opt/lampp/manual/rewrite/rewrite_intro.html +#opt/lampp/manual/rewrite/rewrite_guide.html.en +#opt/lampp/manual/rewrite/rewrite_guide_advanced.html.en +#opt/lampp/manual/rewrite/index.html +#opt/lampp/manual/rewrite/rewrite_guide_advanced.html +#opt/lampp/manual/rewrite/rewrite_intro.html.en +#opt/lampp/manual/rewrite/index.html.en +#opt/lampp/manual/rewrite/rewrite_tech.html.en +#opt/lampp/manual/rewrite/rewrite_tech.html +#opt/lampp/manual/rewrite/rewrite_guide.html +#opt/lampp/manual/new_features_2_0.html.ja.euc-jp +#opt/lampp/manual/mpm.html.ko.euc-kr +#opt/lampp/manual/custom-error.html +#opt/lampp/manual/LICENSE +#opt/lampp/manual/stopping.html.ja.euc-jp +#opt/lampp/manual/configuring.html.de +#opt/lampp/manual/configuring.html.en +#opt/lampp/manual/new_features_2_2.html.en +#opt/lampp/manual/caching.html +#opt/lampp/manual/bind.html.de +#opt/lampp/manual/bind.html.en +#opt/lampp/manual/bind.html.fr +#opt/lampp/manual/howto/ +#opt/lampp/manual/howto/cgi.html.en +#opt/lampp/manual/howto/ssi.html.ja.euc-jp +#opt/lampp/manual/howto/cgi.html +#opt/lampp/manual/howto/cgi.html.ko.euc-kr +#opt/lampp/manual/howto/auth.html.ko.euc-kr +#opt/lampp/manual/howto/index.html +#opt/lampp/manual/howto/cgi.html.ja.euc-jp +#opt/lampp/manual/howto/auth.html.ja.euc-jp +#opt/lampp/manual/howto/public_html.html.ko.euc-kr +#opt/lampp/manual/howto/index.html.ko.euc-kr +#opt/lampp/manual/howto/htaccess.html +#opt/lampp/manual/howto/public_html.html.ja.euc-jp +#opt/lampp/manual/howto/htaccess.html.ko.euc-kr +#opt/lampp/manual/howto/index.html.ja.euc-jp +#opt/lampp/manual/howto/public_html.html.en +#opt/lampp/manual/howto/htaccess.html.en +#opt/lampp/manual/howto/index.html.en +#opt/lampp/manual/howto/htaccess.html.ja.euc-jp +#opt/lampp/manual/howto/auth.html.en +#opt/lampp/manual/howto/ssi.html +#opt/lampp/manual/howto/auth.html +#opt/lampp/manual/howto/htaccess.html.pt-br +#opt/lampp/manual/howto/public_html.html +#opt/lampp/manual/howto/ssi.html.en +#opt/lampp/manual/howto/ssi.html.ko.euc-kr +#opt/lampp/manual/style/ +#opt/lampp/manual/style/css/ +#opt/lampp/manual/style/css/manual.css +#opt/lampp/manual/style/css/manual-print.css +#opt/lampp/manual/style/css/manual-chm.css +#opt/lampp/manual/style/css/manual-zip.css +#opt/lampp/manual/style/css/manual-loose-100pc.css +#opt/lampp/manual/style/css/manual-zip-100pc.css +#opt/lampp/manual/style/xsl/ +#opt/lampp/manual/style/xsl/util/ +#opt/lampp/manual/style/xsl/util/modtrans.xsl +#opt/lampp/manual/style/xsl/quickreference.xsl +#opt/lampp/manual/style/xsl/sitemap.xsl +#opt/lampp/manual/style/xsl/indexpage.xsl +#opt/lampp/manual/style/xsl/faq.xsl +#opt/lampp/manual/style/xsl/maf.xsl +#opt/lampp/manual/style/xsl/manualpage.xsl +#opt/lampp/manual/style/xsl/nroff.xsl +#opt/lampp/manual/style/xsl/directiveindex.xsl +#opt/lampp/manual/style/xsl/hhc.xsl +#opt/lampp/manual/style/xsl/hhp.xsl +#opt/lampp/manual/style/xsl/moduleindex.xsl +#opt/lampp/manual/style/xsl/typemap.xsl +#opt/lampp/manual/style/xsl/language.xsl +#opt/lampp/manual/style/xsl/synopsis.xsl +#opt/lampp/manual/style/xsl/convmap.xsl +#opt/lampp/manual/style/xsl/common.xsl +#opt/lampp/manual/style/lang/ +#opt/lampp/manual/style/manual.de.xsl +#opt/lampp/manual/style/manual.en.xsl +#opt/lampp/manual/style/manual.es.xsl +#opt/lampp/manual/style/manual.fr.xsl +#opt/lampp/manual/style/latex/ +#opt/lampp/manual/style/latex/quickreference.xsl +#opt/lampp/manual/style/latex/html.xsl +#opt/lampp/manual/style/latex/atbeginend.sty +#opt/lampp/manual/style/latex/faq.xsl +#opt/lampp/manual/style/latex/manualpage.xsl +#opt/lampp/manual/style/latex/directiveindex.xsl +#opt/lampp/manual/style/latex/moduleindex.xsl +#opt/lampp/manual/style/latex/synopsis.xsl +#opt/lampp/manual/style/latex/latex.xsl +#opt/lampp/manual/style/latex/common.xsl +#opt/lampp/manual/style/manual.ja.xsl +#opt/lampp/manual/style/manual.ko.xsl +#opt/lampp/manual/style/sitemap.dtd +#opt/lampp/manual/style/manual.ru.xsl +#opt/lampp/manual/style/faq.dtd +#opt/lampp/manual/style/build.properties +#opt/lampp/manual/style/version.ent +#opt/lampp/manual/style/manualpage.dtd +#opt/lampp/manual/style/modulesynopsis.dtd +#opt/lampp/manual/style/manual.pt-br.xsl +#opt/lampp/manual/style/lang.dtd +#opt/lampp/manual/style/common.dtd +#opt/lampp/manual/logs.html.ko.euc-kr +#opt/lampp/manual/filter.html +#opt/lampp/manual/dns-caveats.html +#opt/lampp/manual/mpm.html.ja.euc-jp +#opt/lampp/manual/dso.html.en +#opt/lampp/manual/content-negotiation.html +#opt/lampp/manual/logs.html.ja.euc-jp +#opt/lampp/manual/handler.html.ko.euc-kr +#opt/lampp/manual/install.html.ko.euc-kr +#opt/lampp/manual/sections.html +#opt/lampp/manual/install.html.de +#opt/lampp/manual/install.html.en +#opt/lampp/manual/install.html.es +#opt/lampp/manual/install.html.fr +#opt/lampp/manual/index.html +#opt/lampp/manual/stopping.html.de +#opt/lampp/manual/stopping.html.en +#opt/lampp/manual/stopping.html.es +#opt/lampp/manual/install.html +#opt/lampp/manual/handler.html.ja.euc-jp +#opt/lampp/manual/sections.html.en +#opt/lampp/manual/logs.html +#opt/lampp/manual/install.html.ja.euc-jp +#opt/lampp/manual/index.html.ko.euc-kr +#opt/lampp/manual/urlmapping.html.ko.euc-kr +#opt/lampp/manual/env.html.ko.euc-kr +#opt/lampp/manual/dns-caveats.html.ko.euc-kr +#opt/lampp/manual/filter.html.ko.euc-kr +#opt/lampp/manual/glossary.html.de +#opt/lampp/manual/glossary.html.en +#opt/lampp/manual/glossary.html.es +#opt/lampp/manual/index.html.ja.euc-jp +#opt/lampp/manual/urlmapping.html.ja.euc-jp +#opt/lampp/manual/mpm.html +#opt/lampp/manual/sitemap.html +#opt/lampp/manual/env.html.ja.euc-jp +#opt/lampp/manual/images/ +#opt/lampp/manual/images/favicon.ico +#opt/lampp/manual/images/caching_fig1.gif +#opt/lampp/manual/images/caching_fig1.png +#opt/lampp/manual/images/down.gif +#opt/lampp/manual/images/right.gif +#opt/lampp/manual/images/feather.gif +#opt/lampp/manual/images/feather.png +#opt/lampp/manual/images/left.gif +#opt/lampp/manual/images/mod_filter_new.gif +#opt/lampp/manual/images/mod_filter_new.png +#opt/lampp/manual/images/sub.gif +#opt/lampp/manual/images/home.gif +#opt/lampp/manual/images/custom_errordocs.png +#opt/lampp/manual/images/pixel.gif +#opt/lampp/manual/images/index.gif +#opt/lampp/manual/images/mod_filter_old.gif +#opt/lampp/manual/images/filter_arch.png +#opt/lampp/manual/images/up.gif +#opt/lampp/manual/images/apache_header.gif +#opt/lampp/manual/images/mod_rewrite_fig1.gif +#opt/lampp/manual/images/mod_rewrite_fig1.png +#opt/lampp/manual/images/mod_rewrite_fig2.gif +#opt/lampp/manual/images/mod_rewrite_fig2.png +#opt/lampp/manual/images/ssl_intro_fig1.gif +#opt/lampp/manual/images/ssl_intro_fig1.png +#opt/lampp/manual/images/ssl_intro_fig2.gif +#opt/lampp/manual/images/ssl_intro_fig2.png +#opt/lampp/manual/images/ssl_intro_fig3.gif +#opt/lampp/manual/images/ssl_intro_fig3.png +#opt/lampp/manual/license.html.en +#opt/lampp/manual/custom-error.html.en +#opt/lampp/manual/custom-error.html.es +#opt/lampp/manual/dns-caveats.html.ja.euc-jp +#opt/lampp/manual/index.html.de +#opt/lampp/manual/index.html.en +#opt/lampp/manual/index.html.es +#opt/lampp/manual/index.html.fr +#opt/lampp/manual/bind.html.ko.euc-kr +#opt/lampp/manual/filter.html.ja.euc-jp +#opt/lampp/manual/new_features_2_2.html.ko.euc-kr +#opt/lampp/manual/index.html.pt-br +#opt/lampp/manual/env.html +#opt/lampp/manual/new_features_2_0.html +#opt/lampp/manual/invoking.html.de +#opt/lampp/manual/invoking.html.en +#opt/lampp/manual/invoking.html.es +#opt/lampp/manual/logs.html.en +#opt/lampp/manual/new_features_2_2.html +#opt/lampp/manual/sitemap.html.de +#opt/lampp/manual/sitemap.html.en +#opt/lampp/manual/sitemap.html.es +#opt/lampp/manual/configuring.html.ko.euc-kr +#opt/lampp/manual/dso.html +#opt/lampp/manual/content-negotiation.html.ko.euc-kr +#opt/lampp/manual/urlmapping.html +#opt/lampp/manual/bind.html.ja.euc-jp +#opt/lampp/manual/caching.html.en +#opt/lampp/manual/urlmapping.html.en +#opt/lampp/manual/content-negotiation.html.en +#opt/lampp/manual/configuring.html.ja.euc-jp +#opt/lampp/manual/content-negotiation.html.ja.euc-jp +#opt/lampp/manual/stopping.html +#opt/lampp/manual/vhosts/ +#opt/lampp/manual/vhosts/examples.html +#opt/lampp/manual/vhosts/ip-based.html +#opt/lampp/manual/vhosts/name-based.html.ko.euc-kr +#opt/lampp/manual/vhosts/fd-limits.html.ko.euc-kr +#opt/lampp/manual/vhosts/index.html +#opt/lampp/manual/vhosts/mass.html +#opt/lampp/manual/vhosts/name-based.html.ja.euc-jp +#opt/lampp/manual/vhosts/fd-limits.html.ja.euc-jp +#opt/lampp/manual/vhosts/details.html +#opt/lampp/manual/vhosts/fd-limits.html +#opt/lampp/manual/vhosts/mass.html.en +#opt/lampp/manual/vhosts/name-based.html +#opt/lampp/manual/vhosts/ip-based.html.en +#opt/lampp/manual/vhosts/ip-based.html.fr +#opt/lampp/manual/vhosts/index.html.ko.euc-kr +#opt/lampp/manual/vhosts/examples.html.ko.euc-kr +#opt/lampp/manual/vhosts/details.html.ko.euc-kr +#opt/lampp/manual/vhosts/index.html.ja.euc-jp +#opt/lampp/manual/vhosts/details.html.en +#opt/lampp/manual/vhosts/details.html.fr +#opt/lampp/manual/vhosts/name-based.html.de +#opt/lampp/manual/vhosts/name-based.html.en +#opt/lampp/manual/vhosts/name-based.html.fr +#opt/lampp/manual/vhosts/examples.html.ja.euc-jp +#opt/lampp/manual/vhosts/index.html.de +#opt/lampp/manual/vhosts/index.html.en +#opt/lampp/manual/vhosts/index.html.fr +#opt/lampp/manual/vhosts/mass.html.ko.euc-kr +#opt/lampp/manual/vhosts/fd-limits.html.en +#opt/lampp/manual/vhosts/fd-limits.html.fr +#opt/lampp/manual/vhosts/ip-based.html.ko.euc-kr +#opt/lampp/manual/vhosts/ip-based.html.ja.euc-jp +#opt/lampp/manual/vhosts/examples.html.en +#opt/lampp/manual/vhosts/examples.html.fr +#opt/lampp/manual/dns-caveats.html.en +#opt/lampp/manual/env.html.en +#opt/lampp/manual/upgrading.html +#opt/lampp/manual/platform/ +#opt/lampp/manual/platform/netware.html +#opt/lampp/manual/platform/perf-hp.html.ko.euc-kr +#opt/lampp/manual/platform/ebcdic.html.en +#opt/lampp/manual/platform/windows.html +#opt/lampp/manual/platform/ebcdic.html +#opt/lampp/manual/platform/index.html +#opt/lampp/manual/platform/ebcdic.html.ko.euc-kr +#opt/lampp/manual/platform/windows.html.ko.euc-kr +#opt/lampp/manual/platform/index.html.ko.euc-kr +#opt/lampp/manual/platform/win_compiling.html.en +#opt/lampp/manual/platform/windows.html.en +#opt/lampp/manual/platform/win_compiling.html.ko.euc-kr +#opt/lampp/manual/platform/index.html.en +#opt/lampp/manual/platform/win_compiling.html +#opt/lampp/manual/platform/netware.html.en +#opt/lampp/manual/platform/perf-hp.html +#opt/lampp/manual/platform/perf-hp.html.en +#opt/lampp/manual/platform/netware.html.ko.euc-kr +#opt/lampp/manual/glossary.html.ko.euc-kr +#opt/lampp/manual/upgrading.html.de +#opt/lampp/manual/upgrading.html.en +#opt/lampp/manual/upgrading.html.fr +#opt/lampp/manual/new_features_2_0.html.pt-br +#opt/lampp/manual/server-wide.html.ko.euc-kr +#opt/lampp/manual/programs/ +#opt/lampp/manual/programs/htdbm.html +#opt/lampp/manual/programs/configure.html +#opt/lampp/manual/programs/rotatelogs.html +#opt/lampp/manual/programs/configure.html.ko.euc-kr +#opt/lampp/manual/programs/httxt2dbm.html +#opt/lampp/manual/programs/dbmmanage.html.ko.euc-kr +#opt/lampp/manual/programs/logresolve.html +#opt/lampp/manual/programs/apachectl.html +#opt/lampp/manual/programs/apxs.html.ko.euc-kr +#opt/lampp/manual/programs/apxs.html.en +#opt/lampp/manual/programs/htdigest.html.en +#opt/lampp/manual/programs/htdbm.html.en +#opt/lampp/manual/programs/apxs.html +#opt/lampp/manual/programs/index.html +#opt/lampp/manual/programs/ab.html.en +#opt/lampp/manual/programs/htdigest.html.ko.euc-kr +#opt/lampp/manual/programs/dbmmanage.html.en +#opt/lampp/manual/programs/htdigest.html +#opt/lampp/manual/programs/index.html.ko.euc-kr +#opt/lampp/manual/programs/httpd.html.en +#opt/lampp/manual/programs/httxt2dbm.html.en +#opt/lampp/manual/programs/ab.html +#opt/lampp/manual/programs/configure.html.en +#opt/lampp/manual/programs/index.html.en +#opt/lampp/manual/programs/index.html.es +#opt/lampp/manual/programs/apachectl.html.en +#opt/lampp/manual/programs/httpd.html +#opt/lampp/manual/programs/rotatelogs.html.ko.euc-kr +#opt/lampp/manual/programs/logresolve.html.en +#opt/lampp/manual/programs/other.html +#opt/lampp/manual/programs/other.html.en +#opt/lampp/manual/programs/htpasswd.html.en +#opt/lampp/manual/programs/ab.html.ko.euc-kr +#opt/lampp/manual/programs/httpd.html.ko.euc-kr +#opt/lampp/manual/programs/htcacheclean.html.en +#opt/lampp/manual/programs/htpasswd.html.ko.euc-kr +#opt/lampp/manual/programs/logresolve.html.ko.euc-kr +#opt/lampp/manual/programs/suexec.html.en +#opt/lampp/manual/programs/htpasswd.html +#opt/lampp/manual/programs/suexec.html +#opt/lampp/manual/programs/other.html.ko.euc-kr +#opt/lampp/manual/programs/dbmmanage.html +#opt/lampp/manual/programs/htcacheclean.html +#opt/lampp/manual/programs/apachectl.html.ko.euc-kr +#opt/lampp/manual/programs/suexec.html.ko.euc-kr +#opt/lampp/manual/programs/rotatelogs.html.en +#opt/lampp/manual/programs/htcacheclean.html.ko.euc-kr +#opt/lampp/manual/handler.html +#opt/lampp/manual/server-wide.html.en +#opt/lampp/manual/upgrading.html.ru.koi8-r +#opt/lampp/manual/invoking.html.ko.euc-kr +#opt/lampp/manual/convenience.map +#opt/lampp/manual/server-wide.html.ja.euc-jp +#opt/lampp/manual/suexec.html.en +#opt/lampp/manual/new_features_2_0.html.ru.koi8-r +#opt/lampp/manual/custom-error.html.ko.euc-kr +#opt/lampp/manual/sections.html.ko.euc-kr +#opt/lampp/manual/dso.html.ko.euc-kr +#opt/lampp/manual/suexec.html +#opt/lampp/manual/sitemap.html.ko.euc-kr +#opt/lampp/manual/invoking.html.ja.euc-jp +#opt/lampp/manual/invoking.html +#opt/lampp/manual/configuring.html +#opt/lampp/manual/custom-error.html.ja.euc-jp +#opt/lampp/manual/glossary.html +#opt/lampp/manual/suexec.html.ko.euc-kr +#opt/lampp/manual/sections.html.ja.euc-jp +#opt/lampp/manual/bind.html +#opt/lampp/manual/developer/ +#opt/lampp/manual/developer/thread_safety.html.en +#opt/lampp/manual/developer/API.html.en +#opt/lampp/manual/developer/hooks.html +#opt/lampp/manual/developer/filters.html.en +#opt/lampp/manual/developer/debugging.html.en +#opt/lampp/manual/developer/hooks.html.en +#opt/lampp/manual/developer/modules.html.ja.euc-jp +#opt/lampp/manual/developer/index.html +#opt/lampp/manual/developer/documenting.html +#opt/lampp/manual/developer/thread_safety.html +#opt/lampp/manual/developer/debugging.html +#opt/lampp/manual/developer/index.html.en +#opt/lampp/manual/developer/documenting.html.en +#opt/lampp/manual/developer/modules.html.en +#opt/lampp/manual/developer/request.html +#opt/lampp/manual/developer/filters.html +#opt/lampp/manual/developer/API.html +#opt/lampp/manual/developer/request.html.en +#opt/lampp/manual/developer/modules.html +#opt/lampp/manual/mpm.html.de +#opt/lampp/manual/mpm.html.en +#opt/lampp/manual/mpm.html.es +#opt/lampp/manual/dso.html.ja.euc-jp +#opt/lampp/manual/sitemap.html.ja.euc-jp +#opt/lampp/manual/new_features_2_0.html.de +#opt/lampp/manual/new_features_2_0.html.en +#opt/lampp/manual/new_features_2_0.html.fr +#opt/lampp/include/ +#opt/lampp/include/apr_general.h +#opt/lampp/include/php/ +#opt/lampp/include/php/ext/ +#opt/lampp/include/php/ext/gd/ +#opt/lampp/include/php/ext/gd/libgd/ +#opt/lampp/include/php/ext/gd/libgd/gd.h +#opt/lampp/include/php/ext/gd/libgd/gdcache.h +#opt/lampp/include/php/ext/gd/libgd/gdhelpers.h +#opt/lampp/include/php/ext/gd/libgd/gd_io.h +#opt/lampp/include/php/ext/gd/libgd/jisx0208.h +#opt/lampp/include/php/ext/gd/libgd/wbmp.h +#opt/lampp/include/php/ext/gd/libgd/gdfontmb.h +#opt/lampp/include/php/ext/gd/libgd/gdfontg.h +#opt/lampp/include/php/ext/gd/libgd/gdfontl.h +#opt/lampp/include/php/ext/gd/libgd/gdfonts.h +#opt/lampp/include/php/ext/gd/libgd/gdfontt.h +#opt/lampp/include/php/ext/gd/gdcache.h +#opt/lampp/include/php/ext/gd/php_gd.h +#opt/lampp/include/php/ext/gd/gdttf.h +#opt/lampp/include/php/ext/dom/ +#opt/lampp/include/php/ext/dom/xml_common.h +#opt/lampp/include/php/ext/pdo/ +#opt/lampp/include/php/ext/pdo/php_pdo.h +#opt/lampp/include/php/ext/pdo/php_pdo_driver.h +#opt/lampp/include/php/ext/xml/ +#opt/lampp/include/php/ext/xml/expat_compat.h +#opt/lampp/include/php/ext/xml/php_xml.h +#opt/lampp/include/php/ext/date/ +#opt/lampp/include/php/ext/date/lib/ +#opt/lampp/include/php/ext/date/lib/timelib.h +#opt/lampp/include/php/ext/date/lib/timelib_structs.h +#opt/lampp/include/php/ext/date/lib/timelib_config.h +#opt/lampp/include/php/ext/date/php_date.h +#opt/lampp/include/php/ext/pcre/ +#opt/lampp/include/php/ext/pcre/php_pcre.h +#opt/lampp/include/php/ext/pcre/pcrelib/ +#opt/lampp/include/php/ext/pcre/pcrelib/internal.h +#opt/lampp/include/php/ext/pcre/pcrelib/pcreposix.h +#opt/lampp/include/php/ext/pcre/pcrelib/pcrecpp.h +#opt/lampp/include/php/ext/pcre/pcrelib/ucp.h +#opt/lampp/include/php/ext/pcre/pcrelib/pcre_stringpiece.h +#opt/lampp/include/php/ext/pcre/pcrelib/pcre_internal.h +#opt/lampp/include/php/ext/pcre/pcrelib/pcre.h +#opt/lampp/include/php/ext/pcre/pcrelib/pcre_scanner.h +#opt/lampp/include/php/ext/pcre/pcrelib/ucpinternal.h +#opt/lampp/include/php/ext/iconv/ +#opt/lampp/include/php/ext/iconv/php_have_iconv.h +#opt/lampp/include/php/ext/iconv/php_have_bsd_iconv.h +#opt/lampp/include/php/ext/iconv/php_have_glibc_iconv.h +#opt/lampp/include/php/ext/iconv/php_iconv.h +#opt/lampp/include/php/ext/iconv/php_php_iconv_impl.h +#opt/lampp/include/php/ext/iconv/php_have_libiconv.h +#opt/lampp/include/php/ext/iconv/php_iconv_supports_errno.h +#opt/lampp/include/php/ext/iconv/php_php_iconv_h_path.h +#opt/lampp/include/php/ext/session/ +#opt/lampp/include/php/ext/session/mod_user.h +#opt/lampp/include/php/ext/session/php_session.h +#opt/lampp/include/php/ext/session/mod_files.h +#opt/lampp/include/php/ext/libxml/ +#opt/lampp/include/php/ext/libxml/php_libxml.h +#opt/lampp/include/php/ext/mbstring/ +#opt/lampp/include/php/ext/mbstring/libmbfl/ +#opt/lampp/include/php/ext/mbstring/libmbfl/config.h +#opt/lampp/include/php/ext/sqlite/ +#opt/lampp/include/php/ext/sqlite/libsqlite/ +#opt/lampp/include/php/ext/sqlite/libsqlite/src/ +#opt/lampp/include/php/ext/sqlite/libsqlite/src/sqlite.h +#opt/lampp/include/php/ext/standard/ +#opt/lampp/include/php/ext/standard/php_ftok.h +#opt/lampp/include/php/ext/standard/dl.h +#opt/lampp/include/php/ext/standard/php_http.h +#opt/lampp/include/php/ext/standard/php_iptc.h +#opt/lampp/include/php/ext/standard/crc32.h +#opt/lampp/include/php/ext/standard/php_link.h +#opt/lampp/include/php/ext/standard/php_mail.h +#opt/lampp/include/php/ext/standard/php_math.h +#opt/lampp/include/php/ext/standard/url_scanner_ex.h +#opt/lampp/include/php/ext/standard/uniqid.h +#opt/lampp/include/php/ext/standard/quot_print.h +#opt/lampp/include/php/ext/standard/css.h +#opt/lampp/include/php/ext/standard/dns.h +#opt/lampp/include/php/ext/standard/php_rand.h +#opt/lampp/include/php/ext/standard/md5.h +#opt/lampp/include/php/ext/standard/reg.h +#opt/lampp/include/php/ext/standard/url.h +#opt/lampp/include/php/ext/standard/basic_functions.h +#opt/lampp/include/php/ext/standard/flock_compat.h +#opt/lampp/include/php/ext/standard/php_type.h +#opt/lampp/include/php/ext/standard/scanf.h +#opt/lampp/include/php/ext/standard/php_versioning.h +#opt/lampp/include/php/ext/standard/php_ext_syslog.h +#opt/lampp/include/php/ext/standard/php_sunfuncs.h +#opt/lampp/include/php/ext/standard/php_browscap.h +#opt/lampp/include/php/ext/standard/php_array.h +#opt/lampp/include/php/ext/standard/php_uuencode.h +#opt/lampp/include/php/ext/standard/proc_open.h +#opt/lampp/include/php/ext/standard/php_image.h +#opt/lampp/include/php/ext/standard/php_metaphone.h +#opt/lampp/include/php/ext/standard/datetime.h +#opt/lampp/include/php/ext/standard/cyr_convert.h +#opt/lampp/include/php/ext/standard/credits_ext.h +#opt/lampp/include/php/ext/standard/pageinfo.h +#opt/lampp/include/php/ext/standard/php_smart_str.h +#opt/lampp/include/php/ext/standard/file.h +#opt/lampp/include/php/ext/standard/php_string.h +#opt/lampp/include/php/ext/standard/exec.h +#opt/lampp/include/php/ext/standard/php_assert.h +#opt/lampp/include/php/ext/standard/head.h +#opt/lampp/include/php/ext/standard/html.h +#opt/lampp/include/php/ext/standard/fsock.h +#opt/lampp/include/php/ext/standard/info.h +#opt/lampp/include/php/ext/standard/microtime.h +#opt/lampp/include/php/ext/standard/php_crypt.h +#opt/lampp/include/php/ext/standard/pack.h +#opt/lampp/include/php/ext/standard/sha1.h +#opt/lampp/include/php/ext/standard/php_filestat.h +#opt/lampp/include/php/ext/standard/php_dir.h +#opt/lampp/include/php/ext/standard/php_lcg.h +#opt/lampp/include/php/ext/standard/php_var.h +#opt/lampp/include/php/ext/standard/url_scanner.h +#opt/lampp/include/php/ext/standard/streamsfuncs.h +#opt/lampp/include/php/ext/standard/credits.h +#opt/lampp/include/php/ext/standard/php_smart_str_public.h +#opt/lampp/include/php/ext/standard/php_incomplete_class.h +#opt/lampp/include/php/ext/standard/php_standard.h +#opt/lampp/include/php/ext/standard/base64.h +#opt/lampp/include/php/ext/standard/credits_sapi.h +#opt/lampp/include/php/ext/standard/php_fopen_wrappers.h +#opt/lampp/include/php/TSRM/ +#opt/lampp/include/php/TSRM/tsrm_nw.h +#opt/lampp/include/php/TSRM/TSRM.h +#opt/lampp/include/php/TSRM/tsrm_win32.h +#opt/lampp/include/php/TSRM/tsrm_config.w32.h +#opt/lampp/include/php/TSRM/tsrm_virtual_cwd.h +#opt/lampp/include/php/TSRM/tsrm_strtok_r.h +#opt/lampp/include/php/TSRM/acconfig.h +#opt/lampp/include/php/TSRM/tsrm_config.h +#opt/lampp/include/php/TSRM/readdir.h +#opt/lampp/include/php/TSRM/tsrm_config_common.h +#opt/lampp/include/php/Zend/ +#opt/lampp/include/php/Zend/zend_operators.h +#opt/lampp/include/php/Zend/zend_constants.h +#opt/lampp/include/php/Zend/zend_errors.h +#opt/lampp/include/php/Zend/zend_API.h +#opt/lampp/include/php/Zend/zend_objects_API.h +#opt/lampp/include/php/Zend/zend_static_allocator.h +#opt/lampp/include/php/Zend/zend_ini.h +#opt/lampp/include/php/Zend/zend_ptr_stack.h +#opt/lampp/include/php/Zend/zend_execute.h +#opt/lampp/include/php/Zend/zend_qsort.h +#opt/lampp/include/php/Zend/zend_ini_scanner.h +#opt/lampp/include/php/Zend/FlexLexer.h +#opt/lampp/include/php/Zend/zend_vm_def.h +#opt/lampp/include/php/Zend/zend_language_parser.h +#opt/lampp/include/php/Zend/zend_hash.h +#opt/lampp/include/php/Zend/zend_modules.h +#opt/lampp/include/php/Zend/zend_config.h +#opt/lampp/include/php/Zend/zend_objects.h +#opt/lampp/include/php/Zend/zend_object_handlers.h +#opt/lampp/include/php/Zend/zend_mm.h +#opt/lampp/include/php/Zend/zend_vm.h +#opt/lampp/include/php/Zend/zend_llist.h +#opt/lampp/include/php/Zend/zend_list.h +#opt/lampp/include/php/Zend/zend_interfaces.h +#opt/lampp/include/php/Zend/zend_ini_parser.h +#opt/lampp/include/php/Zend/zend_vm_opcodes.h +#opt/lampp/include/php/Zend/zend_globals.h +#opt/lampp/include/php/Zend/zend_stack.h +#opt/lampp/include/php/Zend/zend_config.w32.h +#opt/lampp/include/php/Zend/zend_highlight.h +#opt/lampp/include/php/Zend/zend_iterators.h +#opt/lampp/include/php/Zend/zend_config.nw.h +#opt/lampp/include/php/Zend/zend_indent.h +#opt/lampp/include/php/Zend/zend_globals_macros.h +#opt/lampp/include/php/Zend/zend_dynamic_array.h +#opt/lampp/include/php/Zend/zend_vm_execute.h +#opt/lampp/include/php/Zend/zend_types.h +#opt/lampp/include/php/Zend/zend_extensions.h +#opt/lampp/include/php/Zend/zend.h +#opt/lampp/include/php/Zend/zend_alloc.h +#opt/lampp/include/php/Zend/zend_stream.h +#opt/lampp/include/php/Zend/zend_builtin_functions.h +#opt/lampp/include/php/Zend/zend_strtod.h +#opt/lampp/include/php/Zend/zend_language_scanner.h +#opt/lampp/include/php/Zend/zend_exceptions.h +#opt/lampp/include/php/Zend/zend_reflection_api.h +#opt/lampp/include/php/Zend/zend_multibyte.h +#opt/lampp/include/php/Zend/zend_fast_cache.h +#opt/lampp/include/php/Zend/zend_compile.h +#opt/lampp/include/php/Zend/acconfig.h +#opt/lampp/include/php/Zend/zend_multiply.h +#opt/lampp/include/php/Zend/zend_istdiostream.h +#opt/lampp/include/php/Zend/zend_variables.h +#opt/lampp/include/php/Zend/zend_ts_hash.h +#opt/lampp/include/php/main/ +#opt/lampp/include/php/main/php_compat.h +#opt/lampp/include/php/main/php_config.h +#opt/lampp/include/php/main/php_open_temporary_file.h +#opt/lampp/include/php/main/php_globals.h +#opt/lampp/include/php/main/php_main.h +#opt/lampp/include/php/main/rfc1867.h +#opt/lampp/include/php/main/php3_compat.h +#opt/lampp/include/php/main/php.h +#opt/lampp/include/php/main/php_output.h +#opt/lampp/include/php/main/php_version.h +#opt/lampp/include/php/main/SAPI.h +#opt/lampp/include/php/main/spprintf.h +#opt/lampp/include/php/main/php_syslog.h +#opt/lampp/include/php/main/fopen_wrappers.h +#opt/lampp/include/php/main/php_variables.h +#opt/lampp/include/php/main/safe_mode.h +#opt/lampp/include/php/main/logos.h +#opt/lampp/include/php/main/php_streams.h +#opt/lampp/include/php/main/config.w32.h +#opt/lampp/include/php/main/win95nt.h +#opt/lampp/include/php/main/streams/ +#opt/lampp/include/php/main/streams/php_streams_int.h +#opt/lampp/include/php/main/streams/php_stream_userspace.h +#opt/lampp/include/php/main/streams/php_stream_context.h +#opt/lampp/include/php/main/streams/php_stream_filter_api.h +#opt/lampp/include/php/main/streams/php_stream_mmap.h +#opt/lampp/include/php/main/streams/php_stream_transport.h +#opt/lampp/include/php/main/streams/php_stream_plain_wrapper.h +#opt/lampp/include/php/main/php_reentrancy.h +#opt/lampp/include/php/main/php_content_types.h +#opt/lampp/include/php/main/php_regex.h +#opt/lampp/include/php/main/php_ini.h +#opt/lampp/include/php/main/php_scandir.h +#opt/lampp/include/php/main/php_logos.h +#opt/lampp/include/php/main/php_network.h +#opt/lampp/include/php/main/php_ticks.h +#opt/lampp/include/php/main/build-defs.h +#opt/lampp/include/php/main/php_memory_streams.h +#opt/lampp/include/php/main/snprintf.h +#opt/lampp/include/php/regex/ +#opt/lampp/include/php/regex/cname.h +#opt/lampp/include/php/regex/regex_extra.h +#opt/lampp/include/php/regex/regex.h +#opt/lampp/include/php/regex/cclass.h +#opt/lampp/include/php/regex/utils.h +#opt/lampp/include/php/regex/regex2.h +#opt/lampp/include/php/include/ +#opt/lampp/include/mod_perl.h +#opt/lampp/include/curl/ +#opt/lampp/include/curl/mprintf.h +#opt/lampp/include/curl/stdcheaders.h +#opt/lampp/include/curl/curl.h +#opt/lampp/include/curl/easy.h +#opt/lampp/include/curl/multi.h +#opt/lampp/include/curl/curlver.h +#opt/lampp/include/curl/types.h +#opt/lampp/include/gd.h +#opt/lampp/include/apr_support.h +#opt/lampp/include/os.h +#opt/lampp/include/dblib.h +#opt/lampp/include/zzip/ +#opt/lampp/include/zzip/lib.h +#opt/lampp/include/zzip/format.h +#opt/lampp/include/zzip/_msvc.h +#opt/lampp/include/zzip/conf.h +#opt/lampp/include/zzip/file.h +#opt/lampp/include/zzip/wrap.h +#opt/lampp/include/zzip/stdint.h +#opt/lampp/include/zzip/zzip.h +#opt/lampp/include/zzip/_config.h +#opt/lampp/include/zzip/plugin.h +#opt/lampp/include/apu_want.h +#opt/lampp/include/apr_global_mutex.h +#opt/lampp/include/pcreposix.h +#opt/lampp/include/apr_hash.h +#opt/lampp/include/modperl_xs_typedefs.h +#opt/lampp/include/bzlib.h +#opt/lampp/include/ap_compat.h +#opt/lampp/include/ap_config.h +#opt/lampp/include/libintl.h +#opt/lampp/include/pngconf.h +#opt/lampp/include/apr_allocator.h +#opt/lampp/include/syberror.h +#opt/lampp/include/apr_ldap.h +#opt/lampp/include/ap_config_layout.h +#opt/lampp/include/ctlib.h +#opt/lampp/include/modperl_callback.h +#opt/lampp/include/apr_mmap.h +#opt/lampp/include/srchpref.h +#opt/lampp/include/modperl_io_apache.h +#opt/lampp/include/ap_config_auto.h +#opt/lampp/include/apr.h +#opt/lampp/include/apu.h +#opt/lampp/include/apr_strmatch.h +#opt/lampp/include/modperl_common_log.h +#opt/lampp/include/cxx_except.h +#opt/lampp/include/mpm.h +#opt/lampp/include/mysql/ +#opt/lampp/include/mysql/sql_state.h +#opt/lampp/include/mysql/my_global.h +#opt/lampp/include/mysql/my_config.h +#opt/lampp/include/mysql/my_getopt.h +#opt/lampp/include/mysql/errmsg.h +#opt/lampp/include/mysql/sslopt-case.h +#opt/lampp/include/mysql/mysql_embed.h +#opt/lampp/include/mysql/typelib.h +#opt/lampp/include/mysql/my_semaphore.h +#opt/lampp/include/mysql/my_pthread.h +#opt/lampp/include/mysql/sslopt-vars.h +#opt/lampp/include/mysql/mysql_com.h +#opt/lampp/include/mysql/readline.h +#opt/lampp/include/mysql/mysql.h +#opt/lampp/include/mysql/raid.h +#opt/lampp/include/mysql/my_dir.h +#opt/lampp/include/mysql/my_no_pthread.h +#opt/lampp/include/mysql/my_net.h +#opt/lampp/include/mysql/my_sys.h +#opt/lampp/include/mysql/my_xml.h +#opt/lampp/include/mysql/my_dbug.h +#opt/lampp/include/mysql/sql_common.h +#opt/lampp/include/mysql/sslopt-longopts.h +#opt/lampp/include/mysql/keycache.h +#opt/lampp/include/mysql/m_ctype.h +#opt/lampp/include/mysql/mysqld_ername.h +#opt/lampp/include/mysql/my_list.h +#opt/lampp/include/mysql/mysql_version.h +#opt/lampp/include/mysql/mysqld_error.h +#opt/lampp/include/mysql/mysql_time.h +#opt/lampp/include/mysql/my_alloc.h +#opt/lampp/include/mysql/m_string.h +#opt/lampp/include/png.h +#opt/lampp/include/tds.h +#opt/lampp/include/apr_poll.h +#opt/lampp/include/apr_ldap_init.h +#opt/lampp/include/apr_reslist.h +#opt/lampp/include/apr_errno.h +#opt/lampp/include/ldap_schema.h +#opt/lampp/include/apr_ring.h +#opt/lampp/include/apr_random.h +#opt/lampp/include/ap_provider.h +#opt/lampp/include/apr_sdbm.h +#opt/lampp/include/apr_getopt.h +#opt/lampp/include/apr_sha1.h +#opt/lampp/include/cspublic.h +#opt/lampp/include/mpm_common.h +#opt/lampp/include/apr_time.h +#opt/lampp/include/modperl_svptr_table.h +#opt/lampp/include/tdssrv.h +#opt/lampp/include/tdsver.h +#opt/lampp/include/apr_tables.h +#opt/lampp/include/sybfront.h +#opt/lampp/include/apr_user.h +#opt/lampp/include/modperl_perl_unembed.h +#opt/lampp/include/apr_uuid.h +#opt/lampp/include/apr_want.h +#opt/lampp/include/ap_regex.h +#opt/lampp/include/modperl_apache_compat.h +#opt/lampp/include/zconf.h +#opt/lampp/include/ap_mmn.h +#opt/lampp/include/ap_mpm.h +#opt/lampp/include/mod_proxy.h +#opt/lampp/include/modperl_module.h +#opt/lampp/include/gdcache.h +#opt/lampp/include/tdsodbc.h +#opt/lampp/include/mod_include.h +#opt/lampp/include/libxml2/ +#opt/lampp/include/libxml2/libxml/ +#opt/lampp/include/libxml2/libxml/encoding.h +#opt/lampp/include/libxml2/libxml/xmlregexp.h +#opt/lampp/include/libxml2/libxml/xmlmemory.h +#opt/lampp/include/libxml2/libxml/xlink.h +#opt/lampp/include/libxml2/libxml/xmlIO.h +#opt/lampp/include/libxml2/libxml/xpath.h +#opt/lampp/include/libxml2/libxml/SAX.h +#opt/lampp/include/libxml2/libxml/chvalid.h +#opt/lampp/include/libxml2/libxml/uri.h +#opt/lampp/include/libxml2/libxml/SAX2.h +#opt/lampp/include/libxml2/libxml/nanoftp.h +#opt/lampp/include/libxml2/libxml/schemasInternals.h +#opt/lampp/include/libxml2/libxml/threads.h +#opt/lampp/include/libxml2/libxml/parser.h +#opt/lampp/include/libxml2/libxml/c14n.h +#opt/lampp/include/libxml2/libxml/xmlerror.h +#opt/lampp/include/libxml2/libxml/pattern.h +#opt/lampp/include/libxml2/libxml/xmlwin32version.h +#opt/lampp/include/libxml2/libxml/DOCBparser.h +#opt/lampp/include/libxml2/libxml/dict.h +#opt/lampp/include/libxml2/libxml/xmlautomata.h +#opt/lampp/include/libxml2/libxml/xmlschemastypes.h +#opt/lampp/include/libxml2/libxml/xpointer.h +#opt/lampp/include/libxml2/libxml/hash.h +#opt/lampp/include/libxml2/libxml/nanohttp.h +#opt/lampp/include/libxml2/libxml/relaxng.h +#opt/lampp/include/libxml2/libxml/xpathInternals.h +#opt/lampp/include/libxml2/libxml/xmlversion.h +#opt/lampp/include/libxml2/libxml/list.h +#opt/lampp/include/libxml2/libxml/HTMLtree.h +#opt/lampp/include/libxml2/libxml/parserInternals.h +#opt/lampp/include/libxml2/libxml/entities.h +#opt/lampp/include/libxml2/libxml/HTMLparser.h +#opt/lampp/include/libxml2/libxml/valid.h +#opt/lampp/include/libxml2/libxml/catalog.h +#opt/lampp/include/libxml2/libxml/tree.h +#opt/lampp/include/libxml2/libxml/globals.h +#opt/lampp/include/libxml2/libxml/xmlunicode.h +#opt/lampp/include/libxml2/libxml/xmlexports.h +#opt/lampp/include/libxml2/libxml/xmlsave.h +#opt/lampp/include/libxml2/libxml/xinclude.h +#opt/lampp/include/libxml2/libxml/xmlreader.h +#opt/lampp/include/libxml2/libxml/debugXML.h +#opt/lampp/include/libxml2/libxml/xmlwriter.h +#opt/lampp/include/libxml2/libxml/xmlstring.h +#opt/lampp/include/libxml2/libxml/xmlschemas.h +#opt/lampp/include/libxslt/ +#opt/lampp/include/libxslt/functions.h +#opt/lampp/include/libxslt/xsltutils.h +#opt/lampp/include/libxslt/attributes.h +#opt/lampp/include/libxslt/pattern.h +#opt/lampp/include/libxslt/templates.h +#opt/lampp/include/libxslt/preproc.h +#opt/lampp/include/libxslt/extra.h +#opt/lampp/include/libxslt/namespaces.h +#opt/lampp/include/libxslt/security.h +#opt/lampp/include/libxslt/keys.h +#opt/lampp/include/libxslt/extensions.h +#opt/lampp/include/libxslt/xsltInternals.h +#opt/lampp/include/libxslt/transform.h +#opt/lampp/include/libxslt/xslt.h +#opt/lampp/include/libxslt/documents.h +#opt/lampp/include/libxslt/numbersInternals.h +#opt/lampp/include/libxslt/xsltexports.h +#opt/lampp/include/libxslt/imports.h +#opt/lampp/include/libxslt/variables.h +#opt/lampp/include/libxslt/xsltconfig.h +#opt/lampp/include/tds_configs.h +#opt/lampp/include/apr_dbd.h +#opt/lampp/include/apr_dbm.h +#opt/lampp/include/jerror.h +#opt/lampp/include/util_charset.h +#opt/lampp/include/apr_dso.h +#opt/lampp/include/apr_env.h +#opt/lampp/include/jconfig.h +#opt/lampp/include/apr_lib.h +#opt/lampp/include/modperl_error.h +#opt/lampp/include/apr_md4.h +#opt/lampp/include/apr_md5.h +#opt/lampp/include/apr_buckets.h +#opt/lampp/include/apr_rmm.h +#opt/lampp/include/apr_shm.h +#opt/lampp/include/apr_uri.h +#opt/lampp/include/bkpublic.h +#opt/lampp/include/apr_xml.h +#opt/lampp/include/modperl_common_types.h +#opt/lampp/include/lber_types.h +#opt/lampp/include/apr_ldap_url.h +#opt/lampp/include/modperl_filter.h +#opt/lampp/include/jmorecfg.h +#opt/lampp/include/modperl_flags.h +#opt/lampp/include/mod_cgi.h +#opt/lampp/include/mod_dbd.h +#opt/lampp/include/mod_dav.h +#opt/lampp/include/modperl_global.h +#opt/lampp/include/tdsutil.h +#opt/lampp/include/modperl_perl_includes.h +#opt/lampp/include/mod_ssl.h +#opt/lampp/include/http_protocol.h +#opt/lampp/include/apr_version.h +#opt/lampp/include/zzip-io.h +#opt/lampp/include/mhash.h +#opt/lampp/include/modperl_perl_global.h +#opt/lampp/include/modperl_config.h +#opt/lampp/include/sqldb.h +#opt/lampp/include/sqlite.h +#opt/lampp/include/ldap_features.h +#opt/lampp/include/apr_thread_rwlock.h +#opt/lampp/include/modperl_apr_perlio.h +#opt/lampp/include/apreq2/ +#opt/lampp/include/apreq2/apreq_module.h +#opt/lampp/include/apreq2/apreq_params.h +#opt/lampp/include/apreq2/apreq_parser.h +#opt/lampp/include/apreq2/apreq_cookie.h +#opt/lampp/include/apreq2/apreq_env.h +#opt/lampp/include/apreq2/apreq_error.h +#opt/lampp/include/apreq2/apreq.h +#opt/lampp/include/apreq2/apreq_version.h +#opt/lampp/include/apreq2/apreq_module_apache2.h +#opt/lampp/include/apreq2/apreq_util.h +#opt/lampp/include/apreq2/apreq_param.h +#opt/lampp/include/modperl_common_includes.h +#opt/lampp/include/apr_network_io.h +#opt/lampp/include/modperl_trace.h +#opt/lampp/include/util_ldap.h +#opt/lampp/include/expat.h +#opt/lampp/include/apr_portable.h +#opt/lampp/include/gd_io.h +#opt/lampp/include/zziplib.h +#opt/lampp/include/modperl_directives.h +#opt/lampp/include/sxpath.h +#opt/lampp/include/common.h +#opt/lampp/include/util_filter.h +#opt/lampp/include/http_config.h +#opt/lampp/include/zutil.h +#opt/lampp/include/freebcp.h +#opt/lampp/include/modperl_perl_pp.h +#opt/lampp/include/apr_thread_cond.h +#opt/lampp/include/ncurses/ +#opt/lampp/include/ncurses/cursesapp.h +#opt/lampp/include/ncurses/unctrl.h +#opt/lampp/include/ncurses/eti.h +#opt/lampp/include/ncurses/curses.h +#opt/lampp/include/ncurses/etip.h +#opt/lampp/include/ncurses/form.h +#opt/lampp/include/ncurses/ncurses.h +#opt/lampp/include/ncurses/menu.h +#opt/lampp/include/ncurses/cursesf.h +#opt/lampp/include/ncurses/cursesm.h +#opt/lampp/include/ncurses/cursesp.h +#opt/lampp/include/ncurses/cursesw.h +#opt/lampp/include/ncurses/term.h +#opt/lampp/include/ncurses/cursslk.h +#opt/lampp/include/ncurses/termcap.h +#opt/lampp/include/ncurses/panel.h +#opt/lampp/include/ncurses/ncurses_dll.h +#opt/lampp/include/sybdb.h +#opt/lampp/include/gdbm.h +#opt/lampp/include/apr_file_io.h +#opt/lampp/include/freetype2/ +#opt/lampp/include/freetype2/freetype/ +#opt/lampp/include/freetype2/freetype/ftsynth.h +#opt/lampp/include/freetype2/freetype/ftsysio.h +#opt/lampp/include/freetype2/freetype/ftwinfnt.h +#opt/lampp/include/freetype2/freetype/t1tables.h +#opt/lampp/include/freetype2/freetype/ftglyph.h +#opt/lampp/include/freetype2/freetype/ftsysmem.h +#opt/lampp/include/freetype2/freetype/ftsystem.h +#opt/lampp/include/freetype2/freetype/ftchapters.h +#opt/lampp/include/freetype2/freetype/ftxf86.h +#opt/lampp/include/freetype2/freetype/cache/ +#opt/lampp/include/freetype2/freetype/cache/ftcimage.h +#opt/lampp/include/freetype2/freetype/cache/ftcsbits.h +#opt/lampp/include/freetype2/freetype/cache/ftccmap.h +#opt/lampp/include/freetype2/freetype/cache/ftcmanag.h +#opt/lampp/include/freetype2/freetype/cache/ftlru.h +#opt/lampp/include/freetype2/freetype/cache/ftcglyph.h +#opt/lampp/include/freetype2/freetype/cache/ftccache.h +#opt/lampp/include/freetype2/freetype/fttypes.h +#opt/lampp/include/freetype2/freetype/ttunpat.h +#opt/lampp/include/freetype2/freetype/ftincrem.h +#opt/lampp/include/freetype2/freetype/ftsnames.h +#opt/lampp/include/freetype2/freetype/ftcache.h +#opt/lampp/include/freetype2/freetype/ftstroke.h +#opt/lampp/include/freetype2/freetype/ftimage.h +#opt/lampp/include/freetype2/freetype/ftoutln.h +#opt/lampp/include/freetype2/freetype/config/ +#opt/lampp/include/freetype2/freetype/config/ftstdlib.h +#opt/lampp/include/freetype2/freetype/config/ftheader.h +#opt/lampp/include/freetype2/freetype/config/ftoption.h +#opt/lampp/include/freetype2/freetype/config/ftmodule.h +#opt/lampp/include/freetype2/freetype/config/ftconfig.h +#opt/lampp/include/freetype2/freetype/ftmm.h +#opt/lampp/include/freetype2/freetype/ftrender.h +#opt/lampp/include/freetype2/freetype/ftbdf.h +#opt/lampp/include/freetype2/freetype/tttags.h +#opt/lampp/include/freetype2/freetype/tttables.h +#opt/lampp/include/freetype2/freetype/fttrigon.h +#opt/lampp/include/freetype2/freetype/ftmac.h +#opt/lampp/include/freetype2/freetype/ftpfr.h +#opt/lampp/include/freetype2/freetype/fterrdef.h +#opt/lampp/include/freetype2/freetype/fterrors.h +#opt/lampp/include/freetype2/freetype/freetype.h +#opt/lampp/include/freetype2/freetype/ftmodapi.h +#opt/lampp/include/freetype2/freetype/ftmoderr.h +#opt/lampp/include/freetype2/freetype/ftmodule.h +#opt/lampp/include/freetype2/freetype/ftsizes.h +#opt/lampp/include/freetype2/freetype/ftbbox.h +#opt/lampp/include/freetype2/freetype/ftgzip.h +#opt/lampp/include/freetype2/freetype/ftlist.h +#opt/lampp/include/freetype2/freetype/internal/ +#opt/lampp/include/freetype2/freetype/internal/ftobjs.h +#opt/lampp/include/freetype2/freetype/internal/internal.h +#opt/lampp/include/freetype2/freetype/internal/fttrace.h +#opt/lampp/include/freetype2/freetype/internal/ftserv.h +#opt/lampp/include/freetype2/freetype/internal/psnames.h +#opt/lampp/include/freetype2/freetype/internal/svgldict.h +#opt/lampp/include/freetype2/freetype/internal/tttypes.h +#opt/lampp/include/freetype2/freetype/internal/svsfnt.h +#opt/lampp/include/freetype2/freetype/internal/svpostnm.h +#opt/lampp/include/freetype2/freetype/internal/ftstream.h +#opt/lampp/include/freetype2/freetype/internal/pshints.h +#opt/lampp/include/freetype2/freetype/internal/pcftypes.h +#opt/lampp/include/freetype2/freetype/internal/autohint.h +#opt/lampp/include/freetype2/freetype/internal/ftmemory.h +#opt/lampp/include/freetype2/freetype/internal/svbdf.h +#opt/lampp/include/freetype2/freetype/internal/svpfr.h +#opt/lampp/include/freetype2/freetype/internal/ftextend.h +#opt/lampp/include/freetype2/freetype/internal/svwinfnt.h +#opt/lampp/include/freetype2/freetype/internal/ftdebug.h +#opt/lampp/include/freetype2/freetype/internal/fnttypes.h +#opt/lampp/include/freetype2/freetype/internal/sfnt.h +#opt/lampp/include/freetype2/freetype/internal/svpscmap.h +#opt/lampp/include/freetype2/freetype/internal/svmm.h +#opt/lampp/include/freetype2/freetype/internal/svpsinfo.h +#opt/lampp/include/freetype2/freetype/internal/t1types.h +#opt/lampp/include/freetype2/freetype/internal/cfftypes.h +#opt/lampp/include/freetype2/freetype/internal/ftcalc.h +#opt/lampp/include/freetype2/freetype/internal/psglobal.h +#opt/lampp/include/freetype2/freetype/internal/ftgloadr.h +#opt/lampp/include/freetype2/freetype/internal/ftdriver.h +#opt/lampp/include/freetype2/freetype/internal/svxf86nm.h +#opt/lampp/include/freetype2/freetype/internal/psaux.h +#opt/lampp/include/freetype2/freetype/ttnameid.h +#opt/lampp/include/http_request.h +#opt/lampp/include/util_script.h +#opt/lampp/include/mpm_default.h +#opt/lampp/include/modperl_bucket.h +#opt/lampp/include/modperl_apr_includes.h +#opt/lampp/include/apr_proc_mutex.h +#opt/lampp/include/modperl_types.h +#opt/lampp/include/apr_hooks.h +#opt/lampp/include/lber.h +#opt/lampp/include/apr_file_info.h +#opt/lampp/include/util_time.h +#opt/lampp/include/ldap.h +#opt/lampp/include/ft2build.h +#opt/lampp/include/ap_regkey.h +#opt/lampp/include/libpng +#opt/lampp/include/http_connection.h +#opt/lampp/include/mingpp.h +#opt/lampp/include/ming.h +#opt/lampp/include/apr_base64.h +#opt/lampp/include/apr_optional.h +#opt/lampp/include/proto-lber.h +#opt/lampp/include/mod_status.h +#opt/lampp/include/apu_version.h +#opt/lampp/include/jpeglib.h +#opt/lampp/include/apr_ldap_option.h +#opt/lampp/include/apr_strings.h +#opt/lampp/include/apr_fnmatch.h +#opt/lampp/include/pcre.h +#opt/lampp/include/http_log.h +#opt/lampp/include/ap_listen.h +#opt/lampp/include/jisx0208.h +#opt/lampp/include/apr_inherit.h +#opt/lampp/include/unixd.h +#opt/lampp/include/sqlfront.h +#opt/lampp/include/sdom.h +#opt/lampp/include/apr_anylock.h +#opt/lampp/include/apr_thread_proc.h +#opt/lampp/include/modperl_common_util.h +#opt/lampp/include/modperl_hooks.h +#opt/lampp/include/scoreboard.h +#opt/lampp/include/util_md5.h +#opt/lampp/include/util_xml.h +#opt/lampp/include/wbmp.h +#opt/lampp/include/apr_atomic.h +#opt/lampp/include/c-client/ +#opt/lampp/include/c-client/fs.h +#opt/lampp/include/c-client/nl.h +#opt/lampp/include/c-client/rfc822.h +#opt/lampp/include/c-client/env.h +#opt/lampp/include/c-client/ftl.h +#opt/lampp/include/c-client/tcp.h +#opt/lampp/include/c-client/env_unix.h +#opt/lampp/include/c-client/mail.h +#opt/lampp/include/c-client/misc.h +#opt/lampp/include/c-client/nntp.h +#opt/lampp/include/c-client/imap4r1.h +#opt/lampp/include/c-client/smtp.h +#opt/lampp/include/c-client/linkage.h +#opt/lampp/include/c-client/osdep.h +#opt/lampp/include/c-client/c-client.h +#opt/lampp/include/util_ebcdic.h +#opt/lampp/include/http_vhost.h +#opt/lampp/include/apr_pools.h +#opt/lampp/include/http_core.h +#opt/lampp/include/modperl_largefiles.h +#opt/lampp/include/modperl_constants.h +#opt/lampp/include/tds_sysdep_public.h +#opt/lampp/include/ctpublic.h +#opt/lampp/include/zlib.h +#opt/lampp/include/modperl_options.h +#opt/lampp/include/cxx_common.h +#opt/lampp/include/modperl_handler.h +#opt/lampp/include/zzip.h +#opt/lampp/include/mcrypt.h +#opt/lampp/include/gdfontmb.h +#opt/lampp/include/modperl_gtop.h +#opt/lampp/include/openssl/ +#opt/lampp/include/openssl/opensslv.h +#opt/lampp/include/openssl/bn.h +#opt/lampp/include/openssl/dh.h +#opt/lampp/include/openssl/ec.h +#opt/lampp/include/openssl/ui.h +#opt/lampp/include/openssl/crypto.h +#opt/lampp/include/openssl/txt_db.h +#opt/lampp/include/openssl/e_os2.h +#opt/lampp/include/openssl/aes.h +#opt/lampp/include/openssl/bio.h +#opt/lampp/include/openssl/des.h +#opt/lampp/include/openssl/dsa.h +#opt/lampp/include/openssl/dso.h +#opt/lampp/include/openssl/err.h +#opt/lampp/include/openssl/evp.h +#opt/lampp/include/openssl/fips_rand.h +#opt/lampp/include/openssl/md2.h +#opt/lampp/include/openssl/md4.h +#opt/lampp/include/openssl/md5.h +#opt/lampp/include/openssl/pem.h +#opt/lampp/include/openssl/rc2.h +#opt/lampp/include/openssl/rc4.h +#opt/lampp/include/openssl/rc5.h +#opt/lampp/include/openssl/sha.h +#opt/lampp/include/openssl/rsa.h +#opt/lampp/include/openssl/ssl.h +#opt/lampp/include/openssl/ecdsa.h +#opt/lampp/include/openssl/pq_compat.h +#opt/lampp/include/openssl/lhash.h +#opt/lampp/include/openssl/dtls1.h +#opt/lampp/include/openssl/conf_api.h +#opt/lampp/include/openssl/tmdiff.h +#opt/lampp/include/openssl/safestack.h +#opt/lampp/include/openssl/ssl23.h +#opt/lampp/include/openssl/stack.h +#opt/lampp/include/openssl/engine.h +#opt/lampp/include/openssl/asn1.h +#opt/lampp/include/openssl/cast.h +#opt/lampp/include/openssl/store.h +#opt/lampp/include/openssl/asn1_mac.h +#opt/lampp/include/openssl/comp.h +#opt/lampp/include/openssl/conf.h +#opt/lampp/include/openssl/e_os.h +#opt/lampp/include/openssl/des_old.h +#opt/lampp/include/openssl/ecdh.h +#opt/lampp/include/openssl/x509_vfy.h +#opt/lampp/include/openssl/fips.h +#opt/lampp/include/openssl/blowfish.h +#opt/lampp/include/openssl/hmac.h +#opt/lampp/include/openssl/idea.h +#opt/lampp/include/openssl/kssl.h +#opt/lampp/include/openssl/mdc2.h +#opt/lampp/include/openssl/ocsp.h +#opt/lampp/include/openssl/obj_mac.h +#opt/lampp/include/openssl/pem2.h +#opt/lampp/include/openssl/pkcs12.h +#opt/lampp/include/openssl/ossl_typ.h +#opt/lampp/include/openssl/ebcdic.h +#opt/lampp/include/openssl/rand.h +#opt/lampp/include/openssl/buffer.h +#opt/lampp/include/openssl/x509.h +#opt/lampp/include/openssl/ssl2.h +#opt/lampp/include/openssl/ssl3.h +#opt/lampp/include/openssl/objects.h +#opt/lampp/include/openssl/tls1.h +#opt/lampp/include/openssl/ripemd.h +#opt/lampp/include/openssl/pqueue.h +#opt/lampp/include/openssl/krb5_asn.h +#opt/lampp/include/openssl/x509v3.h +#opt/lampp/include/openssl/asn1t.h +#opt/lampp/include/openssl/ui_compat.h +#opt/lampp/include/openssl/symhacks.h +#opt/lampp/include/openssl/pkcs7.h +#opt/lampp/include/openssl/opensslconf.h +#opt/lampp/include/tdsconvert.h +#opt/lampp/include/slapi-plugin.h +#opt/lampp/include/modperl_tipool.h +#opt/lampp/include/modperl_io.h +#opt/lampp/include/libexslt/ +#opt/lampp/include/libexslt/exslt.h +#opt/lampp/include/libexslt/exsltconfig.h +#opt/lampp/include/libexslt/exsltexports.h +#opt/lampp/include/mod_auth.h +#opt/lampp/include/libpng12/ +#opt/lampp/include/libpng12/pngconf.h +#opt/lampp/include/libpng12/png.h +#opt/lampp/include/modperl_apache_includes.h +#opt/lampp/include/apr_xlate.h +#opt/lampp/include/httpd.h +#opt/lampp/include/shandler.h +#opt/lampp/include/http_main.h +#opt/lampp/include/mod_core.h +#opt/lampp/include/cstypes.h +#opt/lampp/include/mod_log_config.h +#opt/lampp/include/apr_signal.h +#opt/lampp/include/modperl_xs_util.h +#opt/lampp/include/modperl_xs_sv_convert.h +#opt/lampp/include/ldap_cdefs.h +#opt/lampp/include/modperl_perl.h +#opt/lampp/include/gdfontg.h +#opt/lampp/include/gdfontl.h +#opt/lampp/include/gdfonts.h +#opt/lampp/include/gdfontt.h +#opt/lampp/include/ap_release.h +#opt/lampp/include/apr_optional_hooks.h +#opt/lampp/include/modperl_interp.h +#opt/lampp/include/apr_thread_mutex.h +#opt/lampp/include/sabcfg.h +#opt/lampp/include/sabdbg.h +#opt/lampp/include/modperl_time.h +#opt/lampp/include/apr_queue.h +#opt/lampp/include/sablot.h +#opt/lampp/include/modperl_debug.h +#opt/lampp/include/modperl_const.h +#opt/lampp/include/modperl_apr_compat.h +#opt/lampp/include/disptmpl.h +#opt/lampp/include/modperl_util.h +#opt/lampp/include/ldap_utf8.h +#opt/lampp/include/modperl_cgi.h +#opt/lampp/include/util_cfgtree.h +#opt/lampp/include/modperl_cmd.h +#opt/lampp/include/modperl_env.h +#opt/lampp/include/apr_date.h +#opt/lampp/include/modperl_log.h +#opt/lampp/include/modperl_mgv.h +#opt/lampp/include/modperl_pcw.h +#opt/lampp/include/modperl_sys.h ## ## PARPORT & PRINTER modules ## diff --git a/src/patches/ipac-ng-1.31-fetchcounter.patch b/src/patches/ipac-ng-1.31-fetchcounter.patch new file mode 100644 index 000000000..eb6c0738a --- /dev/null +++ b/src/patches/ipac-ng-1.31-fetchcounter.patch @@ -0,0 +1,11 @@ +diff -ruw ipac-ng-1.31_iptables-1.3.1/agents/iptables/iptables.c ipac-ng-1.31/agents/iptables/iptables.c +--- ipac-ng-1.31_iptables-1.3.1/agents/iptables/iptables.c 2005-05-02 12:00:48.000000000 +0200 ++++ ipac-ng-1.31/agents/iptables/iptables.c 2005-05-11 22:15:59.558139120 +0200 +@@ -1144,6 +1144,7 @@ + rule = new_rule(); + + chain = new_rule(); ++ chain->pkts = 1; + + strncpy(rule->name, cp+1, MAX_RULE_NAME_LENGTH); + strncpy(chain->name, nextline->line, cp-nextline->line); diff --git a/src/patches/ipac-ng-1.31-iptables-1.3.1.patch b/src/patches/ipac-ng-1.31-iptables-1.3.1.patch new file mode 100644 index 000000000..a0225dd63 --- /dev/null +++ b/src/patches/ipac-ng-1.31-iptables-1.3.1.patch @@ -0,0 +1,4826 @@ +diff -Nur ipac-ng-1.31.orig/agents/iptables/iptables.c ipac-ng-1.31/agents/iptables/iptables.c +--- ipac-ng-1.31.orig/agents/iptables/iptables.c 2004-06-27 22:08:54.000000000 +0000 ++++ ipac-ng-1.31/agents/iptables/iptables.c 2006-01-11 21:49:40.000000000 +0000 +@@ -62,10 +62,6 @@ + #define FALSE 0 + #endif + +-#ifndef IPT_LIB_DIR +-#define IPT_LIB_DIR "/lib/iptables" +-#endif +- + #define FMT_NUMERIC 0x0001 + #define FMT_NOCOUNTS 0x0002 + #define FMT_KILOMEGAGIGA 0x0004 +@@ -91,7 +87,6 @@ + static struct option *opts = original_opts; + static unsigned int global_option_offset = 0; + +-extern char *authhost; + + /* - T.Mohan 5/7/2001 + * interface structure to pass to append rule +@@ -106,6 +101,14 @@ + typedef struct iface_struct s_iface; + + ++struct iptables_rule_match ++{ ++ struct iptables_rule_match *next; ++ ++ struct iptables_match *match; ++}; ++ ++ + /* Include file for additions: new matches and targets. */ + struct iptables_match + { +@@ -113,6 +116,9 @@ + + ipt_chainlabel name; + ++ /* Revision of match (0 by default). */ ++ u_int8_t revision; ++ + const char *version; + + /* Size of match data. */ +@@ -152,7 +158,6 @@ + unsigned int option_offset; + struct ipt_entry_match *m; + unsigned int mflags; +- unsigned int used; + }; + + struct iptables_target +@@ -161,6 +166,9 @@ + + ipt_chainlabel name; + ++ /* Revision of target (0 by default). */ ++ u_int8_t revision; ++ + const char *version; + + /* Size of target data. */ +@@ -202,6 +210,7 @@ + unsigned int used; + }; + ++ + enum ipt_tryload { + DONT_LOAD, + TRY_LOAD, +@@ -246,6 +255,9 @@ + * compiler warning. + */ + ++char *lib_dir = "/lib/iptables"; ++ ++ + void + exit_error(enum exittype status, char *msg, ...) + { +@@ -367,7 +379,7 @@ + * iptables-1.2.2 file:iptables.c + */ + +-void ++static void + parse_interface(const char *arg, char *vianame, unsigned char *mask) + { + int vialen = strlen(arg); +@@ -382,23 +394,25 @@ + " (%i)", arg, IFNAMSIZ-1); + + strcpy(vianame, arg); +- if (vialen == 0) ++ if ((vialen == 0) || (vialen == 1 && vianame[0] == '+')) + memset(mask, 0, IFNAMSIZ); + else if (vianame[vialen - 1] == '+') { + memset(mask, 0xFF, vialen - 1); + memset(mask + vialen - 1, 0, IFNAMSIZ - vialen + 1); ++ /* Don't remove `+' here! -HW */ + } else { + /* Include nul-terminator in match */ + memset(mask, 0xFF, vialen + 1); + memset(mask + vialen + 1, 0, IFNAMSIZ - vialen - 1); +- } + for (i = 0; vianame[i]; i++) { + if (!isalnum(vianame[i]) + && vianame[i] != '_' +- && vianame[i] != '+' + && vianame[i] != '.') { +- exit_error(PARAMETER_PROBLEM, "Warning: weird character in interface" +- " `%s' (No aliases, :, ! or *).\n", vianame); ++ printf("Warning: wierd character in interface" ++ " `%s' (No aliases, :, ! or *).\n", ++ vianame); ++ break; ++ } + } + } + } +@@ -429,20 +443,27 @@ + } + + int +-check_inverse(const char option[], int *invert) ++check_inverse(const char option[], int *invert, int *optind, int argc) + { + if (option && strcmp(option, "!") == 0) { + if (*invert) + exit_error(PARAMETER_PROBLEM, + "Multiple `!' flags not allowed"); +- + *invert = TRUE; ++ if (optind) { ++ *optind = *optind+1; ++ if (argc && *optind > argc) ++ exit_error(PARAMETER_PROBLEM, ++ "no argument following `!'"); ++ } ++ + return TRUE; + } + return FALSE; + } + + // --------------------------------------------------------------------- ++/* code copied from iptables 1.3.1 */ + // --------------------------------------------------------------------- + + static char * +@@ -509,7 +530,7 @@ + return addr_to_dotted(addr); + } + +-static char * ++char * + mask_to_dotted(const struct in_addr *mask) + { + int i; +@@ -535,22 +556,19 @@ + return buf; + } + ++ + static struct ipt_entry * + generate_entry(const struct ipt_entry *fw, +- struct iptables_match *matches, ++ struct iptables_rule_match *matches, + struct ipt_entry_target *target) + { + unsigned int size; +- struct iptables_match *m; ++ struct iptables_rule_match *matchp; + struct ipt_entry *e; + + size = sizeof(struct ipt_entry); +- for (m = matches; m; m = m->next) { +- if (!m->used) +- continue; +- +- size += m->m->u.match_size; +- } ++ for (matchp = matches; matchp; matchp = matchp->next) ++ size += matchp->match->m->u.match_size; + + e = xmalloc(size + target->u.target_size); + *e = *fw; +@@ -558,12 +576,9 @@ + e->next_offset = size + target->u.target_size; + + size = 0; +- for (m = matches; m; m = m->next) { +- if (!m->used) +- continue; +- +- memcpy(e->elems + size, m->m, m->m->u.match_size); +- size += m->m->u.match_size; ++ for (matchp = matches; matchp; matchp = matchp->next) { ++ memcpy(e->elems + size, matchp->match->m, matchp->match->m->u.match_size); ++ size += matchp->match->m->u.match_size; + } + memcpy(e->elems + size, target, target->u.target_size); + +@@ -575,15 +590,17 @@ + int procfile; + char *ret; + ++#define PROCFILE_BUFSIZ 1024 + procfile = open(PROC_SYS_MODPROBE, O_RDONLY); + if (procfile < 0) + return NULL; + +- ret = malloc(1024); ++ ret = (char *) malloc(PROCFILE_BUFSIZ); + if (ret) { +- switch (read(procfile, ret, 1024)) { ++ memset(ret, 0, PROCFILE_BUFSIZ); ++ switch (read(procfile, ret, PROCFILE_BUFSIZ)) { + case -1: goto fail; +- case 1024: goto fail; /* Partial read. Wierd */ ++ case PROCFILE_BUFSIZ: goto fail; /* Partial read. Wierd */ + } + if (ret[strlen(ret)-1]=='\n') + ret[strlen(ret)-1]=0; +@@ -618,22 +635,22 @@ + } + + if (!ptr && tryload != DONT_LOAD) { +- char path[sizeof(IPT_LIB_DIR) + sizeof("/libipt_.so") ++ char path[strlen(lib_dir) + sizeof("/libipt_.so") + + strlen(name)]; +- sprintf(path, IPT_LIB_DIR "/libipt_%s.so", name); ++ sprintf(path, "%s/libipt_%s.so", lib_dir, name); + if (dlopen(path, RTLD_NOW)) { + /* Found library. If it didn't register itself, + maybe they specified match as a target. */ + ptr = find_target(name, DONT_LOAD); + if (!ptr) { +- fprintf(stderr, "Couldn't load target `%s'\n", ++ exit_error(PARAMETER_PROBLEM, ++ "Couldn't load target `%s'\n", + name); +- exit(1); + } + } else if (tryload == LOAD_MUST_SUCCEED) { +- fprintf(stderr, "Couldn't load target `%s':%s\n", ++ exit_error(PARAMETER_PROBLEM, ++ "Couldn't load target `%s':%s\n", + name, dlerror()); +- exit(1); + } + } + +@@ -647,8 +664,9 @@ + { + char *buf = NULL; + char *argv[3]; ++ int status; + +-// If they don't explicitly set it, read out of kernel ++ /* If they don't explicitly set it, read out of kernel */ + if (!modprobe) { + buf = get_modprobe(); + if (!buf) +@@ -664,16 +682,18 @@ + execv(argv[0], argv); + + // not usually reached +- exit(0); ++ exit(1); + case -1: + return -1; + + default: // parent +- wait(NULL); ++ wait(&status); + } + + free(buf); ++ if (WIFEXITED(status) && WEXITSTATUS(status) == 0) + return 0; ++ return -1; + } + + void +@@ -687,7 +707,7 @@ + + if (me->size != IPT_ALIGN(me->size)) { + fprintf(stderr, "%s: target `%s' has invalid size %u.\n", +- "fddfgdsse", me->name, me->size); ++ "fddfgdsse", me->name, (unsigned int)me->size); + exit(1); + } + +@@ -698,20 +718,17 @@ + me->tflags = 0; + } + +-unsigned char * make_delete_mask(struct ipt_entry *fw) ++static unsigned char * ++make_delete_mask(struct ipt_entry *fw, struct iptables_rule_match *matches) + { + /* Establish mask for comparison */ + unsigned int size; +- struct iptables_match *m; ++ struct iptables_rule_match *matchp; + unsigned char *mask, *mptr; + + size = sizeof(struct ipt_entry); +- for (m = iptables_matches; m; m = m->next) { +- if (!m->used) +- continue; +- +- size += IPT_ALIGN(sizeof(struct ipt_entry_match)) + m->size; +- } ++ for (matchp = matches; matchp; matchp = matchp->next) ++ size += IPT_ALIGN(sizeof(struct ipt_entry_match)) + matchp->match->size; + + mask = xcalloc(1, size + + IPT_ALIGN(sizeof(struct ipt_entry_target)) +@@ -720,14 +737,11 @@ + memset(mask, 0xFF, sizeof(struct ipt_entry)); + mptr = mask + sizeof(struct ipt_entry); + +- for (m = iptables_matches; m; m = m->next) { +- if (!m->used) +- continue; +- ++ for (matchp = matches; matchp; matchp = matchp->next) { + memset(mptr, 0xFF, + IPT_ALIGN(sizeof(struct ipt_entry_match)) +- + m->userspacesize); +- mptr += IPT_ALIGN(sizeof(struct ipt_entry_match)) + m->size; ++ + matchp->match->userspacesize); ++ mptr += IPT_ALIGN(sizeof(struct ipt_entry_match)) + matchp->match->size; + } + + memset(mptr, 0xFF, +@@ -738,7 +752,7 @@ + } + + struct iptables_match * +-find_match(const char *name, enum ipt_tryload tryload) ++find_match(const char *name, enum ipt_tryload tryload, struct iptables_rule_match **matches) + { + struct iptables_match *ptr; + +@@ -748,28 +762,37 @@ + } + + if (!ptr && tryload != DONT_LOAD) { +- char path[sizeof(IPT_LIB_DIR) + sizeof("/libipt_.so") ++ char path[strlen(lib_dir) + sizeof("/libipt_.so") + + strlen(name)]; +- sprintf(path, IPT_LIB_DIR "/libipt_%s.so", name); ++ sprintf(path, "%s/libipt_%s.so", lib_dir, name); + if (dlopen(path, RTLD_NOW)) { + /* Found library. If it didn't register itself, + maybe they specified target as match. */ +- ptr = find_match(name, DONT_LOAD); ++ ptr = find_match(name, DONT_LOAD, NULL); + + if (!ptr) { +- fprintf(stderr, "Couldn't load match `%s'\n", ++ exit_error(PARAMETER_PROBLEM, ++ "Couldn't load match `%s'\n", + name); +- exit(1); + } + } else if (tryload == LOAD_MUST_SUCCEED) { +- fprintf(stderr, "Couldn't load match `%s':%s\n", ++ exit_error(PARAMETER_PROBLEM, ++ "Couldn't load match `%s':%s\n", + name, dlerror()); +- exit(1); + } + } + +- if (ptr) +- ptr->used = 1; ++ if (ptr && matches) { ++ struct iptables_rule_match **i; ++ struct iptables_rule_match *newentry; ++ ++ newentry = xmalloc(sizeof(struct iptables_rule_match)); ++ ++ for (i = matches; *i; i = &(*i)->next); ++ newentry->match = ptr; ++ newentry->next = NULL; ++ *i = newentry; ++ } + + return ptr; + } +@@ -779,7 +802,7 @@ + { + struct iptables_match **i; + +- if (find_match(me->name, DONT_LOAD)) { ++ if (find_match(me->name, DONT_LOAD, NULL)) { + fprintf(stderr, "%s: match `%s' already registered.\n", + "fetchipac??", me->name); + exit(1); +@@ -787,7 +810,7 @@ + + if (me->size != IPT_ALIGN(me->size)) { + fprintf(stderr, "%s: match `%s' has invalid size %u.\n", +- "fetchipac??", me->name, me->size); ++ "fetchipac??", me->name, (unsigned int)me->size); + exit(1); + } + +@@ -801,16 +824,21 @@ + } + + ++/* Christophe Burki wants `-p 6' to imply `-m tcp'. */ + static struct iptables_match * +-find_proto(const char *pname, enum ipt_tryload tryload, int nolookup) ++find_proto(const char *pname, enum ipt_tryload tryload, int nolookup, struct iptables_rule_match **matches) + { +- int proto; ++ unsigned int proto; + +- proto = string_to_number(pname, 0, 255); +- if (proto != -1) +- return find_match(proto_to_name(proto, nolookup), tryload); ++ if ((proto = string_to_number(pname, 0, 255)) != -1) { ++ char *protoname = proto_to_name(proto, nolookup); + +- return find_match(pname, tryload); ++ if (protoname) ++ return find_match(protoname, tryload, matches); ++ } else ++ return find_match(pname, tryload, matches); ++ ++ return NULL; + } + + static void +@@ -823,15 +851,19 @@ + number = (number + 500) / 1000; + if (number > 9999) { + number = (number + 500) / 1000; +- printf(FMT("%4lluG ","%lluG "),number); ++ if (number > 9999) { ++ number = (number + 500) / 1000; ++ printf(FMT("%4lluT ","%lluT "), (unsigned long long)number); + } +- else printf(FMT("%4lluM ","%lluM "), number); ++ else printf(FMT("%4lluG ","%lluG "), (unsigned long long)number); ++ } ++ else printf(FMT("%4lluM ","%lluM "), (unsigned long long)number); + } else +- printf(FMT("%4lluK ","%lluK "), number); ++ printf(FMT("%4lluK ","%lluK "), (unsigned long long)number); + } else +- printf(FMT("%5llu ","%llu "), number); ++ printf(FMT("%5llu ","%llu "), (unsigned long long)number); + } else +- printf(FMT("%8llu ","%llu "), number); ++ printf(FMT("%8llu ","%llu "), (unsigned long long)number); + } + + static int +@@ -839,7 +871,7 @@ + const struct ipt_ip *ip, + int numeric) + { +- struct iptables_match *match = find_match(m->u.user.name, TRY_LOAD); ++ struct iptables_match *match = find_match(m->u.user.name, TRY_LOAD, NULL); + + if (match) { + if (match->print) +@@ -867,9 +899,6 @@ + u_int8_t flags; + char buf[BUFSIZ]; + +- /* User creates a chain called "REJECT": this overrides the +- `REJECT' target module. Keep feeding them rope until the +- revolution... Bwahahahahah */ + if (!iptc_is_chain(targname, handle)) + target = find_target(targname, TRY_LOAD); + else +@@ -917,10 +946,6 @@ + + if (fw->ip.iniface[0] != '\0') { + strcat(iface, fw->ip.iniface); +- /* If it doesn't compare the nul-term, it's a +- wildcard. */ +- if (fw->ip.iniface_mask[strlen(fw->ip.iniface)] == 0) +- strcat(iface, "+"); + } + else if (format & FMT_NUMERIC) strcat(iface, "*"); + else strcat(iface, "any"); +@@ -934,10 +959,6 @@ + + if (fw->ip.outiface[0] != '\0') { + strcat(iface, fw->ip.outiface); +- /* If it doesn't compare the nul-term, it's a +- wildcard. */ +- if (fw->ip.outiface_mask[strlen(fw->ip.outiface)] == 0) +- strcat(iface, "+"); + } + else if (format & FMT_NUMERIC) strcat(iface, "*"); + else strcat(iface, "any"); +@@ -979,7 +1000,7 @@ + target->print(&fw->ip, t, format & FMT_NUMERIC); + } else if (t->u.target_size != sizeof(*t)) + printf("[%u bytes of unknown target data] ", +- t->u.target_size - sizeof(*t)); ++ (unsigned int)(t->u.target_size - sizeof(*t))); + + if (!(format & FMT_NONEWLINE)) + fputc('\n', stdout); +@@ -996,6 +1017,15 @@ + } + + ++static void set_revision(char *name, u_int8_t revision) ++{ ++ /* Old kernel sources don't have ".revision" field, ++ but we stole a byte from name. */ ++ name[IPT_FUNCTION_MAXNAMELEN - 2] = '\0'; ++ name[IPT_FUNCTION_MAXNAMELEN - 1] = revision; ++} ++ ++ + // --------------------------------------------------------------------- + + +@@ -1129,8 +1159,7 @@ + chain->pkts++; + continue; + } +- +- counters = iptc_read_counter(chain->name, chain->pkts, &handle); ++ counters = iptc_read_counter(chain->name, chain->pkts, &handle); // ???? why chain->pkts + if (counters) { + iptc_zero_counter(chain->name, chain->pkts, &handle); + chain->pkts++; +@@ -1192,7 +1221,7 @@ + * + */ + static int +-prepare_entry (raw_rule_type *d, struct ipt_entry **e) ++prepare_entry (raw_rule_type *d, struct ipt_entry **e, struct iptables_rule_match **matches) + { + struct ipt_entry fw; + unsigned int naddrs = 0; +@@ -1200,10 +1229,14 @@ + struct iptables_match *m; + struct iptables_target *target = NULL; + struct iptables_target *t; ++ ++ struct iptables_rule_match *matchp; ++ + size_t size; + int inverse; + int c,argc; + int invert = 0; ++ int proto_used = 0; + + bzero(&fw, sizeof(fw)); + +@@ -1233,7 +1266,6 @@ + + for (m = iptables_matches; m; m = m->next) { + m->mflags = 0; +- m->used = 0; + } + + for (t = iptables_targets; t; t = t->next) { +@@ -1279,6 +1311,8 @@ + target->t = xcalloc(1, size); + target->t->u.target_size = size; + strcpy(target->t->u.user.name, d->target); ++ set_revision(target->t->u.user.name, target->revision); ++ if (target->init != NULL) + target->init(target->t, &fw.nfcache); + + if(check_inverse_type(d->protocol)) +@@ -1290,7 +1324,7 @@ + } + + if (d->protocol[0] != '\0' && d->protocol[0] != 'i') { +- m = find_proto(d->protocol, LOAD_MUST_SUCCEED, 0); ++ m = find_proto(d->protocol, LOAD_MUST_SUCCEED, 0, matches); + size = IPT_ALIGN(sizeof(struct ipt_entry_match)) + m->size; + m->m = xcalloc(size, 1); + m->m->u.match_size = size; +@@ -1338,7 +1372,7 @@ + while ((c = getopt_long(argc, d->extension,"-m:", opts, NULL))!= -1) { + switch (c) { + case 'm': +- m = find_match(optarg, LOAD_MUST_SUCCEED); ++ m = find_match(optarg, LOAD_MUST_SUCCEED, matches); + size = IPT_ALIGN(sizeof(struct ipt_entry_match)) + m->size; + m->m = xcalloc(1, size); + m->m->u.match_size = size; +@@ -1361,32 +1395,80 @@ + exit(1); + + default: +- for (m = iptables_matches; m; m = m->next) { +- if (!m->used) +- continue; +- if (m->parse(c - m->option_offset, ++ ++ /* FIXME: This scheme doesn't allow two of the same ++ matches --RR */ ++ if (!target ++ || !(target->parse(c - target->option_offset, ++ d->extension, invert, ++ &target->tflags, ++ &fw, &target->t))) { ++ for (matchp = *matches; matchp; matchp = matchp->next) { ++ if (matchp->match->parse(c - matchp->match->option_offset, + d->extension, invert, +- &m->mflags, +- &fw, &fw.nfcache, &m->m)) ++ &matchp->match->mflags, ++ &fw, ++ &fw.nfcache, ++ &matchp->match->m)) + break; + } +- break; ++ ++ if (m == NULL ++ && d->protocol ++ && (!find_proto(d->protocol, DONT_LOAD, ++ 0, NULL) ++ || (find_proto(d->protocol, DONT_LOAD, ++ 0, NULL) ++ && (proto_used == 0)) ++ ) ++ && (m = find_proto(d->protocol, TRY_LOAD, ++ 0, matches))) { ++ /* Try loading protocol */ ++ size_t size; ++ ++ proto_used = 1; ++ ++ size = IPT_ALIGN(sizeof(struct ipt_entry_match)) ++ + m->size; ++ ++ m->m = xcalloc(1, size); ++ m->m->u.match_size = size; ++ strcpy(m->m->u.user.name, m->name); ++ set_revision(m->m->u.user.name, ++ m->revision); ++ if (m->init != NULL) ++ m->init(m->m, &fw.nfcache); ++ ++ opts = merge_options(opts, ++ m->extra_opts, &m->option_offset); ++ ++ optind--; ++ continue; ++ } ++ ++ m = matchp ? matchp->match : NULL; ++ if (!m) ++ exit_error(PARAMETER_PROBLEM, ++ "Unknown arg `%s'", ++ d->extension); + } + } + } +- for (m = iptables_matches; m; m = m->next) { +- if (!m->used) +- continue; +- m->final_check(m->mflags); + } + ++ for (matchp = *matches; matchp; matchp = matchp->next) ++ matchp->match->final_check(matchp->match->mflags); ++ ++ if (target) + target->final_check(target->tflags); +- *e = generate_entry(&fw, iptables_matches, target->t); ++ ++ *e = generate_entry(&fw, *matches, target->t); ++ free(target->t); ++ + + if (!handle) if (!(handle = iptc_init("filter"))) + exit_error(PARAMETER_PROBLEM, + "iptables: %s\n", iptc_strerror(errno)); +- + return 0; + } + +@@ -1399,9 +1481,11 @@ + insert_rule(raw_rule_type *d, int rule_num) + { + struct ipt_entry *e = NULL; ++ struct iptables_rule_match *matches = NULL; ++ + int ret=1; + +- if (prepare_entry(d, &e)!=0) ++ if (prepare_entry(d, &e, &matches)!=0) + return (1); + if (verbose>1) { + printf("Inserting rule\n"); +@@ -1412,28 +1496,6 @@ + return ret; + } + +-/* +- * Try to atomically replace rule in kernel return 0 in case all right, 1 otherwice +- */ +-static int +-//replace_rule (char *chain, char *saddr, char *sport, char *daddr, char *dport, +-// char *proto, char *targ, int rule_num, char *iface) +-replace_rule (raw_rule_type *d, int rule_num) +-{ +- struct ipt_entry *e = NULL; +- int ret=1; +- +- if (prepare_entry(d, &e)!=0) +- return (1); +- +- if (verbose>1) { +- printf("Replacing rule %d in '%s'\n", rule_num, d->dest); +- print_firewall_line(e, handle); +- } +- ret &= iptc_replace_entry(d->dest, e, rule_num, &handle); +- free(e); +- return ret; +-} + + /* + * Try to append rule into kernel return 0 in case all right, 1 otherwice +@@ -1449,8 +1511,9 @@ + append_rule (raw_rule_type *d) + { + struct ipt_entry *e = NULL; ++ struct iptables_rule_match *matches = NULL; + +- if (prepare_entry(d, &e)!=0) ++ if (prepare_entry(d, &e, &matches)!=0) + return (1); + + if (verbose>1) { +@@ -1472,9 +1535,11 @@ + { + struct ipt_entry *e = NULL; + unsigned char *mask = NULL; ++ struct iptables_rule_match *matches = NULL; ++ + int ret=1; + +- if (prepare_entry(d, &e)!=0) ++ if (prepare_entry(d, &e, &matches)!=0) + return (1); + + if (verbose>1) { +@@ -1482,26 +1547,12 @@ + print_firewall_line(e, handle); + } + +- mask = make_delete_mask(e); ++ mask = make_delete_mask(e, matches); + ret &= iptc_delete_entry(d->dest, e, mask, &handle); + free(e); + return ret; + } + +-static int +-delete_num_rule (char *chain, int num) +-{ +- struct ipt_entry *e = NULL; +- unsigned char *mask = NULL; +- int ret = 1; +- +- mask = make_delete_mask(e); +- ret &= iptc_delete_num_entry(chain, num, &handle); +- free(e); +- return ret; +-} +- +- + + /** Setup chains if they doesn't exist + * +@@ -1588,11 +1639,9 @@ + if (!handle) + handle = iptc_init("filter"); + +- if (!handle) { +-// try to insmod the module if iptc_init failed +- iptables_insmod("ip_tables", modprobe); ++ /* try to insmod the module if iptc_init failed */ ++ if (!handle && iptables_insmod("ip_tables", modprobe) != -1) + handle = iptc_init("filter"); +- } + + if (!handle) { + fprintf(stderr, "ipac-ng: can't initialize iptables table `filter'\n" +@@ -1617,7 +1666,6 @@ + setup_rules(void) + { + raw_rule_type *d, *d1; +- char targ[MAX_RULE_NAME_LENGTH+2]; + char chain[MAX_RULE_NAME_LENGTH+2]; + FILE *frunfile; + +diff -Nur ipac-ng-1.31.orig/agents/iptables/libip4tc.c ipac-ng-1.31/agents/iptables/libip4tc.c +--- ipac-ng-1.31.orig/agents/iptables/libip4tc.c 2003-07-06 10:33:23.000000000 +0000 ++++ ipac-ng-1.31/agents/iptables/libip4tc.c 2006-01-11 21:51:46.000000000 +0000 +@@ -16,6 +16,7 @@ + #include + #include + #include ++#include + + #ifdef DEBUG_CONNTRACK + #define inline +@@ -90,6 +91,7 @@ + #define TC_SET_POLICY iptc_set_policy + #define TC_GET_RAW_SOCKET iptc_get_raw_socket + #define TC_INIT iptc_init ++#define TC_FREE iptc_free + #define TC_COMMIT iptc_commit + #define TC_STRERROR iptc_strerror + +@@ -121,121 +123,49 @@ + + #define IP_PARTS(n) IP_PARTS_NATIVE(ntohl(n)) + +-int +-dump_entry(STRUCT_ENTRY *e, const TC_HANDLE_T handle) +-{ +- size_t i; +- STRUCT_ENTRY_TARGET *t; +- +- printf("Entry %u (%lu):\n", entry2index(handle, e), +- entry2offset(handle, e)); +- printf("SRC IP: %u.%u.%u.%u/%u.%u.%u.%u\n", +- IP_PARTS(e->ip.src.s_addr),IP_PARTS(e->ip.smsk.s_addr)); +- printf("DST IP: %u.%u.%u.%u/%u.%u.%u.%u\n", +- IP_PARTS(e->ip.dst.s_addr),IP_PARTS(e->ip.dmsk.s_addr)); +- printf("Interface: `%s'/", e->ip.iniface); +- for (i = 0; i < IFNAMSIZ; i++) +- printf("%c", e->ip.iniface_mask[i] ? 'X' : '.'); +- printf("to `%s'/", e->ip.outiface); +- for (i = 0; i < IFNAMSIZ; i++) +- printf("%c", e->ip.outiface_mask[i] ? 'X' : '.'); +- printf("\nProtocol: %u\n", e->ip.proto); +- printf("Flags: %02X\n", e->ip.flags); +- printf("Invflags: %02X\n", e->ip.invflags); +- printf("Counters: %llu packets, %llu bytes\n", +- e->counters.pcnt, e->counters.bcnt); +- printf("Cache: %08X ", e->nfcache); +- if (e->nfcache & NFC_ALTERED) printf("ALTERED "); +- if (e->nfcache & NFC_UNKNOWN) printf("UNKNOWN "); +- if (e->nfcache & NFC_IP_SRC) printf("IP_SRC "); +- if (e->nfcache & NFC_IP_DST) printf("IP_DST "); +- if (e->nfcache & NFC_IP_IF_IN) printf("IP_IF_IN "); +- if (e->nfcache & NFC_IP_IF_OUT) printf("IP_IF_OUT "); +- if (e->nfcache & NFC_IP_TOS) printf("IP_TOS "); +- if (e->nfcache & NFC_IP_PROTO) printf("IP_PROTO "); +- if (e->nfcache & NFC_IP_OPTIONS) printf("IP_OPTIONS "); +- if (e->nfcache & NFC_IP_TCPFLAGS) printf("IP_TCPFLAGS "); +- if (e->nfcache & NFC_IP_SRC_PT) printf("IP_SRC_PT "); +- if (e->nfcache & NFC_IP_DST_PT) printf("IP_DST_PT "); +- if (e->nfcache & NFC_IP_PROTO_UNKNOWN) printf("IP_PROTO_UNKNOWN "); +- printf("\n"); +- +- IPT_MATCH_ITERATE(e, print_match); +- +- t = GET_TARGET(e); +- printf("Target name: `%s' [%u]\n", t->u.user.name, t->u.target_size); +- if (strcmp(t->u.user.name, STANDARD_TARGET) == 0) { +- int pos = *(int *)t->data; +- if (pos < 0) +- printf("verdict=%s\n", +- pos == -NF_ACCEPT-1 ? "NF_ACCEPT" +- : pos == -NF_DROP-1 ? "NF_DROP" +- : pos == -NF_QUEUE-1 ? "NF_QUEUE" +- : pos == RETURN ? "RETURN" +- : "UNKNOWN"); +- else +- printf("verdict=%u\n", pos); +- } else if (strcmp(t->u.user.name, IPT_ERROR_TARGET) == 0) +- printf("error=`%s'\n", t->data); +- +- printf("\n"); +- return 0; +-} + +-static int ++static unsigned char * + is_same(const STRUCT_ENTRY *a, const STRUCT_ENTRY *b, unsigned char *matchmask) + { + unsigned int i; +- STRUCT_ENTRY_TARGET *ta, *tb; + unsigned char *mptr; + + /* Always compare head structures: ignore mask here. */ + if (a->ip.src.s_addr != b->ip.src.s_addr + || a->ip.dst.s_addr != b->ip.dst.s_addr + || a->ip.smsk.s_addr != b->ip.smsk.s_addr +- || a->ip.smsk.s_addr != b->ip.smsk.s_addr ++ || a->ip.dmsk.s_addr != b->ip.dmsk.s_addr + || a->ip.proto != b->ip.proto + || a->ip.flags != b->ip.flags + || a->ip.invflags != b->ip.invflags) +- return 0; ++ return NULL; + + for (i = 0; i < IFNAMSIZ; i++) { + if (a->ip.iniface_mask[i] != b->ip.iniface_mask[i]) +- return 0; ++ return NULL; + if ((a->ip.iniface[i] & a->ip.iniface_mask[i]) + != (b->ip.iniface[i] & b->ip.iniface_mask[i])) +- return 0; ++ return NULL; + if (a->ip.outiface_mask[i] != b->ip.outiface_mask[i]) +- return 0; ++ return NULL; + if ((a->ip.outiface[i] & a->ip.outiface_mask[i]) + != (b->ip.outiface[i] & b->ip.outiface_mask[i])) +- return 0; ++ return NULL; + } + + if (a->nfcache != b->nfcache + || a->target_offset != b->target_offset + || a->next_offset != b->next_offset) +- return 0; ++ return NULL; + + mptr = matchmask + sizeof(STRUCT_ENTRY); + if (IPT_MATCH_ITERATE(a, match_different, a->elems, b->elems, &mptr)) +- return 0; ++ return NULL; + +- ta = GET_TARGET((STRUCT_ENTRY *)a); +- tb = GET_TARGET((STRUCT_ENTRY *)b); +- if (ta->u.target_size != tb->u.target_size) +- return 0; +- if (strcmp(ta->u.user.name, tb->u.user.name) != 0) +- return 0; +- +- mptr += sizeof(*ta); +- if (target_different(ta->data, tb->data, +- ta->u.target_size - sizeof(*ta), mptr)) +- return 0; +- +- return 1; ++ return mptr; + } + ++#if 0 + /***************************** DEBUGGING ********************************/ + static inline int + unconditional(const struct ipt_ip *ip) +@@ -290,20 +220,20 @@ + assert(t->verdict == -NF_DROP-1 + || t->verdict == -NF_ACCEPT-1 + || t->verdict == RETURN +- || t->verdict < (int)h->entries.size); ++ || t->verdict < (int)h->entries->size); + + if (t->verdict >= 0) { + STRUCT_ENTRY *te = get_entry(h, t->verdict); + int idx; + +- idx = entry2index(h, te); ++ idx = iptcb_entry2index(h, te); + assert(strcmp(GET_TARGET(te)->u.user.name, + IPT_ERROR_TARGET) + != 0); + assert(te != e); + + /* Prior node must be error node, or this node. */ +- assert(t->verdict == entry2offset(h, e)+e->next_offset ++ assert(t->verdict == iptcb_entry2offset(h, e)+e->next_offset + || strcmp(GET_TARGET(index2entry(h, idx-1)) + ->u.user.name, IPT_ERROR_TARGET) + == 0); +@@ -335,7 +265,7 @@ + return 0; + } + +-#ifndef NDEBUG ++#ifdef IPTC_DEBUG + /* Do every conceivable sanity check on the handle */ + static void + do_check(TC_HANDLE_T h, unsigned int line) +@@ -364,35 +294,90 @@ + + user_offset = h->info.hook_entry[NF_IP_LOCAL_OUT]; + } else if (strcmp(h->info.name, "nat") == 0) { +- assert(h->info.valid_hooks ++ assert((h->info.valid_hooks + == (1 << NF_IP_PRE_ROUTING + | 1 << NF_IP_POST_ROUTING +- | 1 << NF_IP_LOCAL_OUT)); ++ | 1 << NF_IP_LOCAL_OUT)) || ++ (h->info.valid_hooks ++ == (1 << NF_IP_PRE_ROUTING ++ | 1 << NF_IP_LOCAL_IN ++ | 1 << NF_IP_POST_ROUTING ++ | 1 << NF_IP_LOCAL_OUT))); + + assert(h->info.hook_entry[NF_IP_PRE_ROUTING] == 0); + + n = get_chain_end(h, 0); ++ + n += get_entry(h, n)->next_offset; + assert(h->info.hook_entry[NF_IP_POST_ROUTING] == n); +- + n = get_chain_end(h, n); ++ + n += get_entry(h, n)->next_offset; + assert(h->info.hook_entry[NF_IP_LOCAL_OUT] == n); +- + user_offset = h->info.hook_entry[NF_IP_LOCAL_OUT]; ++ ++ if (h->info.valid_hooks & (1 << NF_IP_LOCAL_IN)) { ++ n = get_chain_end(h, n); ++ n += get_entry(h, n)->next_offset; ++ assert(h->info.hook_entry[NF_IP_LOCAL_IN] == n); ++ user_offset = h->info.hook_entry[NF_IP_LOCAL_IN]; ++ } ++ + } else if (strcmp(h->info.name, "mangle") == 0) { ++ /* This code is getting ugly because linux < 2.4.18-pre6 had ++ * two mangle hooks, linux >= 2.4.18-pre6 has five mangle hooks ++ * */ ++ assert((h->info.valid_hooks ++ == (1 << NF_IP_PRE_ROUTING ++ | 1 << NF_IP_LOCAL_OUT)) || ++ (h->info.valid_hooks ++ == (1 << NF_IP_PRE_ROUTING ++ | 1 << NF_IP_LOCAL_IN ++ | 1 << NF_IP_FORWARD ++ | 1 << NF_IP_LOCAL_OUT ++ | 1 << NF_IP_POST_ROUTING))); ++ ++ /* Hooks should be first five */ ++ assert(h->info.hook_entry[NF_IP_PRE_ROUTING] == 0); ++ ++ n = get_chain_end(h, 0); ++ ++ if (h->info.valid_hooks & (1 << NF_IP_LOCAL_IN)) { ++ n += get_entry(h, n)->next_offset; ++ assert(h->info.hook_entry[NF_IP_LOCAL_IN] == n); ++ n = get_chain_end(h, n); ++ } ++ ++ if (h->info.valid_hooks & (1 << NF_IP_FORWARD)) { ++ n += get_entry(h, n)->next_offset; ++ assert(h->info.hook_entry[NF_IP_FORWARD] == n); ++ n = get_chain_end(h, n); ++ } ++ ++ n += get_entry(h, n)->next_offset; ++ assert(h->info.hook_entry[NF_IP_LOCAL_OUT] == n); ++ user_offset = h->info.hook_entry[NF_IP_LOCAL_OUT]; ++ ++ if (h->info.valid_hooks & (1 << NF_IP_POST_ROUTING)) { ++ n = get_chain_end(h, n); ++ n += get_entry(h, n)->next_offset; ++ assert(h->info.hook_entry[NF_IP_POST_ROUTING] == n); ++ user_offset = h->info.hook_entry[NF_IP_POST_ROUTING]; ++ } ++ } else if (strcmp(h->info.name, "raw") == 0) { + assert(h->info.valid_hooks + == (1 << NF_IP_PRE_ROUTING + | 1 << NF_IP_LOCAL_OUT)); + +- /* Hooks should be first two */ ++ /* Hooks should be first three */ + assert(h->info.hook_entry[NF_IP_PRE_ROUTING] == 0); + +- n = get_chain_end(h, 0); ++ n = get_chain_end(h, n); + n += get_entry(h, n)->next_offset; + assert(h->info.hook_entry[NF_IP_LOCAL_OUT] == n); + + user_offset = h->info.hook_entry[NF_IP_LOCAL_OUT]; ++ + #ifdef NF_IP_DROPPING + } else if (strcmp(h->info.name, "drop") == 0) { + assert(h->info.valid_hooks == (1 << NF_IP_DROPPING)); +@@ -425,8 +410,8 @@ + assert(unconditional(&e->ip)); + assert(e->target_offset == sizeof(*e)); + t = (STRUCT_STANDARD_TARGET *)GET_TARGET(e); +- assert(t->target.u.target_size == IPT_ALIGN(sizeof(*t))); +- assert(e->next_offset == sizeof(*e) + IPT_ALIGN(sizeof(*t))); ++ assert(t->target.u.target_size == ALIGN(sizeof(*t))); ++ assert(e->next_offset == sizeof(*e) + ALIGN(sizeof(*t))); + + assert(strcmp(t->target.u.user.name, STANDARD_TARGET)==0); + assert(t->verdict == -NF_DROP-1 || t->verdict == -NF_ACCEPT-1); +@@ -458,6 +443,8 @@ + /* Final entry must be error node */ + assert(strcmp(GET_TARGET(index2entry(h, h->new_number-1)) + ->u.user.name, +- IPT_ERROR_TARGET) == 0); ++ ERROR_TARGET) == 0); + } +-#endif /*NDEBUG*/ ++#endif /*IPTC_DEBUG*/ ++ ++#endif +diff -Nur ipac-ng-1.31.orig/agents/iptables/libiptc.c ipac-ng-1.31/agents/iptables/libiptc.c +--- ipac-ng-1.31.orig/agents/iptables/libiptc.c 2003-07-06 11:34:52.000000000 +0000 ++++ ipac-ng-1.31/agents/iptables/libiptc.c 2006-01-10 21:01:39.000000000 +0000 +@@ -9,21 +9,43 @@ + */ + + /* (C)1999 Paul ``Rusty'' Russell - Placed under the GNU GPL (See +- COPYING for details). */ ++ * COPYING for details). ++ * (C) 2000-2004 by the Netfilter Core Team ++ * ++ * 2003-Jun-20: Harald Welte : ++ * - Reimplementation of chain cache to use offsets instead of entries ++ * 2003-Jun-23: Harald Welte : ++ * - performance optimization, sponsored by Astaro AG (http://www.astaro.com/) ++ * don't rebuild the chain cache after every operation, instead fix it ++ * up after a ruleset change. ++ * 2004-Aug-18: Harald Welte : ++ * - futher performance work: total reimplementation of libiptc. ++ * - libiptc now has a real internal (linked-list) represntation of the ++ * ruleset and a parser/compiler from/to this internal representation ++ * - again sponsored by Astaro AG (http://www.astaro.com/) ++ */ ++#include ++#include + +-#ifndef IPT_LIB_DIR +-#define IPT_LIB_DIR "/lib/iptables" ++#include "linux_list.h" ++ ++//#define IPTC_DEBUG2 1 ++ ++#ifdef IPTC_DEBUG2 ++#include ++#define DEBUGP(x, args...) fprintf(stderr, "%s: " x, __FUNCTION__, ## args) ++#define DEBUGP_C(x, args...) fprintf(stderr, x, ## args) ++#else ++#define DEBUGP(x, args...) ++#define DEBUGP_C(x, args...) + #endif + +-#ifndef __OPTIMIZE__ +-STRUCT_ENTRY_TARGET * +-GET_TARGET(STRUCT_ENTRY *e) +-{ +- return (void *)e + e->target_offset; +-} ++#ifndef IPT_LIB_DIR ++#define IPT_LIB_DIR "/usr/local/lib/iptables" + #endif + + static int sockfd = -1; ++static int sockfd_use = 0; + static void *iptc_fn = NULL; + + static const char *hooknames[] +@@ -37,6 +59,16 @@ + #endif + }; + ++/* Convenience structures */ ++struct ipt_error_target ++{ ++ STRUCT_ENTRY_TARGET t; ++ char error[TABLE_MAXNAMELEN]; ++}; ++ ++struct chain_head; ++struct rule_head; ++ + struct counter_map + { + enum { +@@ -48,59 +80,95 @@ + unsigned int mappos; + }; + +-/* Convenience structures */ +-struct ipt_error_target ++enum iptcc_rule_type { ++ IPTCC_R_STANDARD, /* standard target (ACCEPT, ...) */ ++ IPTCC_R_MODULE, /* extension module (SNAT, ...) */ ++ IPTCC_R_FALLTHROUGH, /* fallthrough rule */ ++ IPTCC_R_JUMP, /* jump to other chain */ ++}; ++ ++struct rule_head + { +- STRUCT_ENTRY_TARGET t; +- char error[TABLE_MAXNAMELEN]; ++ struct list_head list; ++ struct chain_head *chain; ++ struct counter_map counter_map; ++ ++ unsigned int index; /* index (needed for counter_map) */ ++ unsigned int offset; /* offset in rule blob */ ++ ++ enum iptcc_rule_type type; ++ struct chain_head *jump; /* jump target, if IPTCC_R_JUMP */ ++ ++ unsigned int size; /* size of entry data */ ++ STRUCT_ENTRY entry[0]; + }; + +-struct chain_cache ++struct chain_head + { ++ struct list_head list; + char name[TABLE_MAXNAMELEN]; +- /* This is the first rule in chain. */ +- STRUCT_ENTRY *start; +- /* Last rule in chain */ +- STRUCT_ENTRY *end; ++ unsigned int hooknum; /* hook number+1 if builtin */ ++ unsigned int references; /* how many jumps reference us */ ++ int verdict; /* verdict if builtin */ ++ ++ STRUCT_COUNTERS counters; /* per-chain counters */ ++ struct counter_map counter_map; ++ ++ unsigned int num_rules; /* number of rules in list */ ++ struct list_head rules; /* list of rules */ ++ ++ unsigned int index; /* index (needed for jump resolval) */ ++ unsigned int head_offset; /* offset in rule blob */ ++ unsigned int foot_index; /* index (needed for counter_map) */ ++ unsigned int foot_offset; /* offset in rule blob */ + }; + + STRUCT_TC_HANDLE + { +- /* Have changes been made? */ +- int changed; +- /* Size in here reflects original state. */ +- STRUCT_GETINFO info; ++ int changed; /* Have changes been made? */ ++ ++ struct list_head chains; ++ ++ struct chain_head *chain_iterator_cur; ++ struct rule_head *rule_iterator_cur; + +- struct counter_map *counter_map; +- /* Array of hook names */ +- const char **hooknames; +- +- /* Cached position of chain heads (NULL = no cache). */ +- unsigned int cache_num_chains; +- unsigned int cache_num_builtins; +- struct chain_cache *cache_chain_heads; +- +- /* Chain iterator: current chain cache entry. */ +- struct chain_cache *cache_chain_iteration; +- +- /* Rule iterator: terminal rule */ +- STRUCT_ENTRY *cache_rule_end; +- +- /* Number in here reflects current state. */ +- unsigned int new_number; +- STRUCT_GET_ENTRIES entries; ++ STRUCT_GETINFO info; ++ STRUCT_GET_ENTRIES *entries; + }; + ++/* allocate a new chain head for the cache */ ++static struct chain_head *iptcc_alloc_chain_head(const char *name, int hooknum) ++{ ++ struct chain_head *c = malloc(sizeof(*c)); ++ if (!c) ++ return NULL; ++ memset(c, 0, sizeof(*c)); ++ ++ strncpy(c->name, name, TABLE_MAXNAMELEN); ++ c->hooknum = hooknum; ++ INIT_LIST_HEAD(&c->rules); ++ ++ return c; ++} ++ ++/* allocate and initialize a new rule for the cache */ ++static struct rule_head *iptcc_alloc_rule(struct chain_head *c, unsigned int size) ++{ ++ struct rule_head *r = malloc(sizeof(*r)+size); ++ if (!r) ++ return NULL; ++ memset(r, 0, sizeof(*r)); ++ ++ r->chain = c; ++ r->size = size; ++ ++ return r; ++} ++ ++/* notify us that the ruleset has been modified by the user */ + static void + set_changed(TC_HANDLE_T h) + { +- if (h->cache_chain_heads) { +- free(h->cache_chain_heads); +- h->cache_chain_heads = NULL; +- h->cache_num_chains = 0; +- h->cache_chain_iteration = NULL; +- h->cache_rule_end = NULL; +- } + h->changed = 1; + } + +@@ -111,8 +179,13 @@ + #define CHECK(h) + #endif + ++ ++/********************************************************************** ++ * iptc blob utility functions (iptcb_*) ++ **********************************************************************/ ++ + static inline int +-get_number(const STRUCT_ENTRY *i, ++iptcb_get_number(const STRUCT_ENTRY *i, + const STRUCT_ENTRY *seek, + unsigned int *pos) + { +@@ -122,22 +195,8 @@ + return 0; + } + +-static unsigned int +-entry2index(const TC_HANDLE_T h, const STRUCT_ENTRY *seek) +-{ +- unsigned int pos = 0; +- +- if (ENTRY_ITERATE(h->entries.entrytable, h->entries.size, +- get_number, seek, &pos) == 0) { +- fprintf(stderr, "ERROR: offset %i not an entry!\n", +- (char *)seek - (char *)h->entries.entrytable); +- abort(); +- } +- return pos; +-} +- + static inline int +-get_entry_n(STRUCT_ENTRY *i, ++iptcb_get_entry_n(STRUCT_ENTRY *i, + unsigned int number, + unsigned int *pos, + STRUCT_ENTRY **pe) +@@ -150,51 +209,556 @@ + return 0; + } + +-static STRUCT_ENTRY * +-index2entry(TC_HANDLE_T h, unsigned int index) ++static inline STRUCT_ENTRY * ++iptcb_get_entry(TC_HANDLE_T h, unsigned int offset) + { +- unsigned int pos = 0; +- STRUCT_ENTRY *ret = NULL; ++ return (STRUCT_ENTRY *)((char *)h->entries->entrytable + offset); ++} + +- ENTRY_ITERATE(h->entries.entrytable, h->entries.size, +- get_entry_n, index, &pos, &ret); ++static unsigned int ++iptcb_entry2index(const TC_HANDLE_T h, const STRUCT_ENTRY *seek) ++{ ++ unsigned int pos = 0; + +- return ret; ++ if (ENTRY_ITERATE(h->entries->entrytable, h->entries->size, ++ iptcb_get_number, seek, &pos) == 0) { ++ fprintf(stderr, "ERROR: offset %u not an entry!\n", ++ (unsigned int)((char *)seek - (char *)h->entries->entrytable)); ++ abort(); ++ } ++ return pos; + } + + static inline STRUCT_ENTRY * +-get_entry(TC_HANDLE_T h, unsigned int offset) ++iptcb_offset2entry(TC_HANDLE_T h, unsigned int offset) + { +- return (STRUCT_ENTRY *)((char *)h->entries.entrytable + offset); ++ return (STRUCT_ENTRY *) ((void *)h->entries->entrytable+offset); + } + ++ + static inline unsigned long +-entry2offset(const TC_HANDLE_T h, const STRUCT_ENTRY *e) ++iptcb_entry2offset(const TC_HANDLE_T h, const STRUCT_ENTRY *e) + { +- return (char *)e - (char *)h->entries.entrytable; ++ return (void *)e - (void *)h->entries->entrytable; + } + +-static unsigned long +-index2offset(TC_HANDLE_T h, unsigned int index) ++static inline unsigned int ++iptcb_offset2index(const TC_HANDLE_T h, unsigned int offset) + { +- return entry2offset(h, index2entry(h, index)); ++ return iptcb_entry2index(h, iptcb_offset2entry(h, offset)); + } + +-static const char * +-get_errorlabel(TC_HANDLE_T h, unsigned int offset) ++/* Returns 0 if not hook entry, else hooknumber + 1 */ ++static inline unsigned int ++iptcb_ent_is_hook_entry(STRUCT_ENTRY *e, TC_HANDLE_T h) + { +- STRUCT_ENTRY *e; ++ unsigned int i; + +- e = get_entry(h, offset); +- if (strcmp(GET_TARGET(e)->u.user.name, ERROR_TARGET) != 0) { +- fprintf(stderr, "ERROR: offset %u not an error node!\n", +- offset); +- abort(); ++ for (i = 0; i < NUMHOOKS; i++) { ++ if ((h->info.valid_hooks & (1 << i)) ++ && iptcb_get_entry(h, h->info.hook_entry[i]) == e) ++ return i+1; ++ } ++ return 0; ++} ++ ++ ++/********************************************************************** ++ * iptc cache utility functions (iptcc_*) ++ **********************************************************************/ ++ ++/* Is the given chain builtin (1) or user-defined (0) */ ++static unsigned int iptcc_is_builtin(struct chain_head *c) ++{ ++ return (c->hooknum ? 1 : 0); ++} ++ ++/* Get a specific rule within a chain */ ++static struct rule_head *iptcc_get_rule_num(struct chain_head *c, ++ unsigned int rulenum) ++{ ++ struct rule_head *r; ++ unsigned int num = 0; ++ ++ list_for_each_entry(r, &c->rules, list) { ++ num++; ++ if (num == rulenum) ++ return r; ++ } ++ return NULL; ++} ++ ++/* Get a specific rule within a chain backwards */ ++static struct rule_head *iptcc_get_rule_num_reverse(struct chain_head *c, ++ unsigned int rulenum) ++{ ++ struct rule_head *r; ++ unsigned int num = 0; ++ ++ list_for_each_entry_reverse(r, &c->rules, list) { ++ num++; ++ if (num == rulenum) ++ return r; ++ } ++ return NULL; ++} ++ ++/* Returns chain head if found, otherwise NULL. */ ++static struct chain_head * ++iptcc_find_chain_by_offset(TC_HANDLE_T handle, unsigned int offset) ++{ ++ struct list_head *pos; ++ ++ if (list_empty(&handle->chains)) ++ return NULL; ++ ++ list_for_each(pos, &handle->chains) { ++ struct chain_head *c = list_entry(pos, struct chain_head, list); ++ if (offset >= c->head_offset && offset <= c->foot_offset) ++ return c; ++ } ++ ++ return NULL; ++} ++/* Returns chain head if found, otherwise NULL. */ ++static struct chain_head * ++iptcc_find_label(const char *name, TC_HANDLE_T handle) ++{ ++ struct list_head *pos; ++ ++ if (list_empty(&handle->chains)) ++ return NULL; ++ ++ list_for_each(pos, &handle->chains) { ++ struct chain_head *c = list_entry(pos, struct chain_head, list); ++ if (!strcmp(c->name, name)) ++ return c; ++ } ++ ++ return NULL; ++} ++ ++/* called when rule is to be removed from cache */ ++static void iptcc_delete_rule(struct rule_head *r) ++{ ++ DEBUGP("deleting rule %p (offset %u)\n", r, r->offset); ++ /* clean up reference count of called chain */ ++ if (r->type == IPTCC_R_JUMP ++ && r->jump) ++ r->jump->references--; ++ ++ list_del(&r->list); ++ free(r); ++} ++ ++ ++/********************************************************************** ++ * RULESET PARSER (blob -> cache) ++ **********************************************************************/ ++ ++/* Delete policy rule of previous chain, since cache doesn't contain ++ * chain policy rules. ++ * WARNING: This function has ugly design and relies on a lot of context, only ++ * to be called from specific places within the parser */ ++static int __iptcc_p_del_policy(TC_HANDLE_T h, unsigned int num) ++{ ++ if (h->chain_iterator_cur) { ++ /* policy rule is last rule */ ++ struct rule_head *pr = (struct rule_head *) ++ h->chain_iterator_cur->rules.prev; ++ ++ /* save verdict */ ++ h->chain_iterator_cur->verdict = ++ *(int *)GET_TARGET(pr->entry)->data; ++ ++ /* save counter and counter_map information */ ++ h->chain_iterator_cur->counter_map.maptype = ++ COUNTER_MAP_NORMAL_MAP; ++ h->chain_iterator_cur->counter_map.mappos = num-1; ++ memcpy(&h->chain_iterator_cur->counters, &pr->entry->counters, ++ sizeof(h->chain_iterator_cur->counters)); ++ ++ /* foot_offset points to verdict rule */ ++ h->chain_iterator_cur->foot_index = num; ++ h->chain_iterator_cur->foot_offset = pr->offset; ++ ++ /* delete rule from cache */ ++ iptcc_delete_rule(pr); ++ h->chain_iterator_cur->num_rules--; ++ ++ return 1; ++ } ++ return 0; ++} ++ ++/* alphabetically insert a chain into the list */ ++static inline void iptc_insert_chain(TC_HANDLE_T h, struct chain_head *c) ++{ ++ struct chain_head *tmp; ++ ++ /* sort only user defined chains */ ++ if (!c->hooknum) { ++ list_for_each_entry(tmp, &h->chains, list) { ++ if (strcmp(c->name, tmp->name) <= 0) { ++ list_add(&c->list, tmp->list.prev); ++ return; ++ } ++ } ++ } ++ ++ /* survived till end of list: add at tail */ ++ list_add_tail(&c->list, &h->chains); ++} ++ ++/* Another ugly helper function split out of cache_add_entry to make it less ++ * spaghetti code */ ++static void __iptcc_p_add_chain(TC_HANDLE_T h, struct chain_head *c, ++ unsigned int offset, unsigned int *num) ++{ ++ __iptcc_p_del_policy(h, *num); ++ ++ c->head_offset = offset; ++ c->index = *num; ++ ++ iptc_insert_chain(h, c); ++ ++ h->chain_iterator_cur = c; ++} ++ ++/* main parser function: add an entry from the blob to the cache */ ++static int cache_add_entry(STRUCT_ENTRY *e, ++ TC_HANDLE_T h, ++ STRUCT_ENTRY **prev, ++ unsigned int *num) ++{ ++ unsigned int builtin; ++ unsigned int offset = (char *)e - (char *)h->entries->entrytable; ++ ++ DEBUGP("entering..."); ++ ++ /* Last entry ("policy rule"). End it.*/ ++ if (iptcb_entry2offset(h,e) + e->next_offset == h->entries->size) { ++ /* This is the ERROR node at the end of the chain */ ++ DEBUGP_C("%u:%u: end of table:\n", *num, offset); ++ ++ __iptcc_p_del_policy(h, *num); ++ ++ h->chain_iterator_cur = NULL; ++ goto out_inc; ++ } ++ ++ /* We know this is the start of a new chain if it's an ERROR ++ * target, or a hook entry point */ ++ ++ if (strcmp(GET_TARGET(e)->u.user.name, ERROR_TARGET) == 0) { ++ struct chain_head *c = ++ iptcc_alloc_chain_head((const char *)GET_TARGET(e)->data, 0); ++ DEBUGP_C("%u:%u:new userdefined chain %s: %p\n", *num, offset, ++ (char *)c->name, c); ++ if (!c) { ++ errno = -ENOMEM; ++ return -1; ++ } ++ ++ __iptcc_p_add_chain(h, c, offset, num); ++ ++ } else if ((builtin = iptcb_ent_is_hook_entry(e, h)) != 0) { ++ struct chain_head *c = ++ iptcc_alloc_chain_head((char *)hooknames[builtin-1], ++ builtin); ++ DEBUGP_C("%u:%u new builtin chain: %p (rules=%p)\n", ++ *num, offset, c, &c->rules); ++ if (!c) { ++ errno = -ENOMEM; ++ return -1; ++ } ++ ++ c->hooknum = builtin; ++ ++ __iptcc_p_add_chain(h, c, offset, num); ++ ++ /* FIXME: this is ugly. */ ++ goto new_rule; ++ } else { ++ /* has to be normal rule */ ++ struct rule_head *r; ++new_rule: ++ ++ if (!(r = iptcc_alloc_rule(h->chain_iterator_cur, ++ e->next_offset))) { ++ errno = ENOMEM; ++ return -1; ++ } ++ DEBUGP_C("%u:%u normal rule: %p: ", *num, offset, r); ++ ++ r->index = *num; ++ r->offset = offset; ++ memcpy(r->entry, e, e->next_offset); ++ r->counter_map.maptype = COUNTER_MAP_NORMAL_MAP; ++ r->counter_map.mappos = r->index; ++ ++ /* handling of jumps, etc. */ ++ if (!strcmp(GET_TARGET(e)->u.user.name, STANDARD_TARGET)) { ++ STRUCT_STANDARD_TARGET *t; ++ ++ t = (STRUCT_STANDARD_TARGET *)GET_TARGET(e); ++ if (t->target.u.target_size ++ != ALIGN(sizeof(STRUCT_STANDARD_TARGET))) { ++ errno = EINVAL; ++ return -1; ++ } ++ ++ if (t->verdict < 0) { ++ DEBUGP_C("standard, verdict=%d\n", t->verdict); ++ r->type = IPTCC_R_STANDARD; ++ } else if (t->verdict == r->offset+e->next_offset) { ++ DEBUGP_C("fallthrough\n"); ++ r->type = IPTCC_R_FALLTHROUGH; ++ } else { ++ DEBUGP_C("jump, target=%u\n", t->verdict); ++ r->type = IPTCC_R_JUMP; ++ /* Jump target fixup has to be deferred ++ * until second pass, since we migh not ++ * yet have parsed the target */ ++ } ++ } else { ++ DEBUGP_C("module, target=%s\n", GET_TARGET(e)->u.user.name); ++ r->type = IPTCC_R_MODULE; ++ } ++ ++ list_add_tail(&r->list, &h->chain_iterator_cur->rules); ++ h->chain_iterator_cur->num_rules++; ++ } ++out_inc: ++ (*num)++; ++ return 0; ++} ++ ++ ++/* parse an iptables blob into it's pieces */ ++static int parse_table(TC_HANDLE_T h) ++{ ++ STRUCT_ENTRY *prev; ++ unsigned int num = 0; ++ struct chain_head *c; ++ ++ /* First pass: over ruleset blob */ ++ ENTRY_ITERATE(h->entries->entrytable, h->entries->size, ++ cache_add_entry, h, &prev, &num); ++ ++ /* Second pass: fixup parsed data from first pass */ ++ list_for_each_entry(c, &h->chains, list) { ++ struct rule_head *r; ++ list_for_each_entry(r, &c->rules, list) { ++ struct chain_head *c; ++ STRUCT_STANDARD_TARGET *t; ++ ++ if (r->type != IPTCC_R_JUMP) ++ continue; ++ ++ t = (STRUCT_STANDARD_TARGET *)GET_TARGET(r->entry); ++ c = iptcc_find_chain_by_offset(h, t->verdict); ++ if (!c) ++ return -1; ++ r->jump = c; ++ c->references++; ++ } ++ } ++ ++ /* FIXME: sort chains */ ++ ++ return 1; ++} ++ ++ ++/********************************************************************** ++ * RULESET COMPILATION (cache -> blob) ++ **********************************************************************/ ++ ++/* Convenience structures */ ++struct iptcb_chain_start{ ++ STRUCT_ENTRY e; ++ struct ipt_error_target name; ++}; ++#define IPTCB_CHAIN_START_SIZE (sizeof(STRUCT_ENTRY) + \ ++ ALIGN(sizeof(struct ipt_error_target))) ++ ++struct iptcb_chain_foot { ++ STRUCT_ENTRY e; ++ STRUCT_STANDARD_TARGET target; ++}; ++#define IPTCB_CHAIN_FOOT_SIZE (sizeof(STRUCT_ENTRY) + \ ++ ALIGN(sizeof(STRUCT_STANDARD_TARGET))) ++ ++struct iptcb_chain_error { ++ STRUCT_ENTRY entry; ++ struct ipt_error_target target; ++}; ++#define IPTCB_CHAIN_ERROR_SIZE (sizeof(STRUCT_ENTRY) + \ ++ ALIGN(sizeof(struct ipt_error_target))) ++ ++ ++ ++/* compile rule from cache into blob */ ++static inline int iptcc_compile_rule (TC_HANDLE_T h, STRUCT_REPLACE *repl, struct rule_head *r) ++{ ++ /* handle jumps */ ++ if (r->type == IPTCC_R_JUMP) { ++ STRUCT_STANDARD_TARGET *t; ++ t = (STRUCT_STANDARD_TARGET *)GET_TARGET(r->entry); ++ /* memset for memcmp convenience on delete/replace */ ++ memset(t->target.u.user.name, 0, FUNCTION_MAXNAMELEN); ++ strcpy(t->target.u.user.name, STANDARD_TARGET); ++ /* Jumps can only happen to builtin chains, so we ++ * can safely assume that they always have a header */ ++ t->verdict = r->jump->head_offset + IPTCB_CHAIN_START_SIZE; ++ } else if (r->type == IPTCC_R_FALLTHROUGH) { ++ STRUCT_STANDARD_TARGET *t; ++ t = (STRUCT_STANDARD_TARGET *)GET_TARGET(r->entry); ++ t->verdict = r->offset + r->size; ++ } ++ ++ /* copy entry from cache to blob */ ++ memcpy((char *)repl->entries+r->offset, r->entry, r->size); ++ ++ return 1; ++} ++ ++/* compile chain from cache into blob */ ++static int iptcc_compile_chain(TC_HANDLE_T h, STRUCT_REPLACE *repl, struct chain_head *c) ++{ ++ int ret; ++ struct rule_head *r; ++ struct iptcb_chain_start *head; ++ struct iptcb_chain_foot *foot; ++ ++ /* only user-defined chains have heaer */ ++ if (!iptcc_is_builtin(c)) { ++ /* put chain header in place */ ++ head = (void *)repl->entries + c->head_offset; ++ head->e.target_offset = sizeof(STRUCT_ENTRY); ++ head->e.next_offset = IPTCB_CHAIN_START_SIZE; ++ strcpy(head->name.t.u.user.name, ERROR_TARGET); ++ head->name.t.u.target_size = ++ ALIGN(sizeof(struct ipt_error_target)); ++ strcpy(head->name.error, c->name); ++ } else { ++ repl->hook_entry[c->hooknum-1] = c->head_offset; ++ repl->underflow[c->hooknum-1] = c->foot_offset; ++ } ++ ++ /* iterate over rules */ ++ list_for_each_entry(r, &c->rules, list) { ++ ret = iptcc_compile_rule(h, repl, r); ++ if (ret < 0) ++ return ret; ++ } ++ ++ /* put chain footer in place */ ++ foot = (void *)repl->entries + c->foot_offset; ++ foot->e.target_offset = sizeof(STRUCT_ENTRY); ++ foot->e.next_offset = IPTCB_CHAIN_FOOT_SIZE; ++ strcpy(foot->target.target.u.user.name, STANDARD_TARGET); ++ foot->target.target.u.target_size = ++ ALIGN(sizeof(STRUCT_STANDARD_TARGET)); ++ /* builtin targets have verdict, others return */ ++ if (iptcc_is_builtin(c)) ++ foot->target.verdict = c->verdict; ++ else ++ foot->target.verdict = RETURN; ++ /* set policy-counters */ ++ memcpy(&foot->e.counters, &c->counters, sizeof(STRUCT_COUNTERS)); ++ ++ return 0; ++} ++ ++/* calculate offset and number for every rule in the cache */ ++static int iptcc_compile_chain_offsets(TC_HANDLE_T h, struct chain_head *c, ++ int *offset, int *num) ++{ ++ struct rule_head *r; ++ ++ c->head_offset = *offset; ++ DEBUGP("%s: chain_head %u, offset=%u\n", c->name, *num, *offset); ++ ++ if (!iptcc_is_builtin(c)) { ++ /* Chain has header */ ++ *offset += sizeof(STRUCT_ENTRY) ++ + ALIGN(sizeof(struct ipt_error_target)); ++ (*num)++; ++ } ++ ++ list_for_each_entry(r, &c->rules, list) { ++ DEBUGP("rule %u, offset=%u, index=%u\n", *num, *offset, *num); ++ r->offset = *offset; ++ r->index = *num; ++ *offset += r->size; ++ (*num)++; ++ } ++ ++ DEBUGP("%s; chain_foot %u, offset=%u, index=%u\n", c->name, *num, ++ *offset, *num); ++ c->foot_offset = *offset; ++ c->foot_index = *num; ++ *offset += sizeof(STRUCT_ENTRY) ++ + ALIGN(sizeof(STRUCT_STANDARD_TARGET)); ++ (*num)++; ++ ++ return 1; ++} ++ ++/* put the pieces back together again */ ++static int iptcc_compile_table_prep(TC_HANDLE_T h, unsigned int *size) ++{ ++ struct chain_head *c; ++ unsigned int offset = 0, num = 0; ++ int ret = 0; ++ ++ /* First pass: calculate offset for every rule */ ++ list_for_each_entry(c, &h->chains, list) { ++ ret = iptcc_compile_chain_offsets(h, c, &offset, &num); ++ if (ret < 0) ++ return ret; + } + +- return (const char *)GET_TARGET(e)->data; ++ /* Append one error rule at end of chain */ ++ num++; ++ offset += sizeof(STRUCT_ENTRY) ++ + ALIGN(sizeof(struct ipt_error_target)); ++ ++ /* ruleset size is now in offset */ ++ *size = offset; ++ return num; + } + ++static int iptcc_compile_table(TC_HANDLE_T h, STRUCT_REPLACE *repl) ++{ ++ struct chain_head *c; ++ struct iptcb_chain_error *error; ++ ++ /* Second pass: copy from cache to offsets, fill in jumps */ ++ list_for_each_entry(c, &h->chains, list) { ++ int ret = iptcc_compile_chain(h, repl, c); ++ if (ret < 0) ++ return ret; ++ } ++ ++ /* Append error rule at end of chain */ ++ error = (void *)repl->entries + repl->size - IPTCB_CHAIN_ERROR_SIZE; ++ error->entry.target_offset = sizeof(STRUCT_ENTRY); ++ error->entry.next_offset = IPTCB_CHAIN_ERROR_SIZE; ++ error->target.t.u.user.target_size = ++ ALIGN(sizeof(struct ipt_error_target)); ++ strcpy((char *)&error->target.t.u.user.name, ERROR_TARGET); ++ strcpy((char *)&error->target.error, "ERROR"); ++ ++ return 1; ++} ++ ++/********************************************************************** ++ * EXTERNAL API (operates on cache only) ++ **********************************************************************/ ++ + /* Allocate handle of given size */ + static TC_HANDLE_T + alloc_handle(const char *tablename, unsigned int size, unsigned int num_rules) +@@ -202,94 +766,139 @@ + size_t len; + TC_HANDLE_T h; + +- len = sizeof(STRUCT_TC_HANDLE) +- + size +- + num_rules * sizeof(struct counter_map); ++ len = sizeof(STRUCT_TC_HANDLE) + size; + +- if ((h = malloc(len)) == NULL) { ++ h = malloc(sizeof(STRUCT_TC_HANDLE)); ++ if (!h) { + errno = ENOMEM; + return NULL; + } +- +- h->changed = 0; +- h->cache_num_chains = 0; +- h->cache_chain_heads = NULL; +- h->counter_map = (void *)h +- + sizeof(STRUCT_TC_HANDLE) +- + size; ++ memset(h, 0, sizeof(*h)); ++ INIT_LIST_HEAD(&h->chains); + strcpy(h->info.name, tablename); +- strcpy(h->entries.name, tablename); ++ ++ h->entries = malloc(sizeof(STRUCT_GET_ENTRIES) + size); ++ if (!h->entries) ++ goto out_free_handle; ++ ++ strcpy(h->entries->name, tablename); ++ h->entries->size = size; + + return h; ++ ++out_free_handle: ++ free(h); ++ ++ return NULL; + } + ++ + TC_HANDLE_T + TC_INIT(const char *tablename) + { + TC_HANDLE_T h; + STRUCT_GETINFO info; +- unsigned int i; + int tmp; + socklen_t s; + + iptc_fn = TC_INIT; + +- if (sockfd != -1) +- close(sockfd); ++ if (strlen(tablename) >= TABLE_MAXNAMELEN) { ++ errno = EINVAL; ++ return NULL; ++ } + ++ if (sockfd_use == 0) { + sockfd = socket(TC_AF, SOCK_RAW, IPPROTO_RAW); + if (sockfd < 0) + return NULL; ++ } ++ sockfd_use++; + + s = sizeof(info); +- if (strlen(tablename) >= TABLE_MAXNAMELEN) { +- errno = EINVAL; +- return NULL; +- } ++ + strcpy(info.name, tablename); +- if (getsockopt(sockfd, TC_IPPROTO, SO_GET_INFO, &info, &s) < 0) ++ if (getsockopt(sockfd, TC_IPPROTO, SO_GET_INFO, &info, &s) < 0) { ++ if (--sockfd_use == 0) { ++ close(sockfd); ++ sockfd = -1; ++ } + return NULL; ++ } + +- if ((h = alloc_handle(info.name, info.size, info.num_entries)) +- == NULL) +- return NULL; ++ DEBUGP("valid_hooks=0x%08x, num_entries=%u, size=%u\n", ++ info.valid_hooks, info.num_entries, info.size); + +-/* Too hard --RR */ +-#if 0 +- sprintf(pathname, "%s/%s", IPT_LIB_DIR, info.name); +- dynlib = dlopen(pathname, RTLD_NOW); +- if (!dynlib) { +- errno = ENOENT; +- return NULL; ++ if ((h = alloc_handle(info.name, info.size, info.num_entries)) ++ == NULL) { ++ if (--sockfd_use == 0) { ++ close(sockfd); ++ sockfd = -1; + } +- h->hooknames = dlsym(dynlib, "hooknames"); +- if (!h->hooknames) { +- errno = ENOENT; + return NULL; + } +-#else +- h->hooknames = hooknames; +-#endif + + /* Initialize current state */ + h->info = info; +- h->new_number = h->info.num_entries; +- for (i = 0; i < h->info.num_entries; i++) +- h->counter_map[i] +- = ((struct counter_map){COUNTER_MAP_NORMAL_MAP, i}); + +- h->entries.size = h->info.size; ++ h->entries->size = h->info.size; + + tmp = sizeof(STRUCT_GET_ENTRIES) + h->info.size; + +- if (getsockopt(sockfd, TC_IPPROTO, SO_GET_ENTRIES, &h->entries, +- &tmp) < 0) { +- free(h); +- return NULL; ++ if (getsockopt(sockfd, TC_IPPROTO, SO_GET_ENTRIES, h->entries, ++ &tmp) < 0) ++ goto error; ++ ++#ifdef IPTC_DEBUG2 ++ { ++ int fd = open("/tmp/libiptc-so_get_entries.blob", ++ O_CREAT|O_WRONLY); ++ if (fd >= 0) { ++ write(fd, h->entries, tmp); ++ close(fd); ++ } + } ++#endif ++ ++ if (parse_table(h) < 0) ++ goto error; + + CHECK(h); + return h; ++error: ++ if (--sockfd_use == 0) { ++ close(sockfd); ++ sockfd = -1; ++ } ++ TC_FREE(&h); ++ return NULL; ++} ++ ++void ++TC_FREE(TC_HANDLE_T *h) ++{ ++ struct chain_head *c, *tmp; ++ ++ iptc_fn = TC_FREE; ++ if (--sockfd_use == 0) { ++ close(sockfd); ++ sockfd = -1; ++ } ++ ++ list_for_each_entry_safe(c, tmp, &(*h)->chains, list) { ++ struct rule_head *r, *rtmp; ++ ++ list_for_each_entry_safe(r, rtmp, &c->rules, list) { ++ free(r); ++ } ++ ++ free(c); ++ } ++ ++ free((*h)->entries); ++ free(*h); ++ ++ *h = NULL; + } + + static inline int +@@ -304,11 +913,11 @@ + void + TC_DUMP_ENTRIES(const TC_HANDLE_T handle) + { ++ iptc_fn = TC_DUMP_ENTRIES; + CHECK(handle); +- +- printf("libiptc v%s. %u entries, %u bytes.\n", +- NETFILTER_VERSION, +- handle->new_number, handle->entries.size); ++#if 0 ++ printf("libiptc v%s. %u bytes.\n", ++ IPTABLES_VERSION, handle->entries->size); + printf("Table `%s'\n", handle->info.name); + printf("Hooks: pre/in/fwd/out/post = %u/%u/%u/%u/%u\n", + handle->info.hook_entry[HOOK_PRE_ROUTING], +@@ -323,516 +932,277 @@ + handle->info.underflow[HOOK_LOCAL_OUT], + handle->info.underflow[HOOK_POST_ROUTING]); + +- ENTRY_ITERATE(handle->entries.entrytable, handle->entries.size, ++ ENTRY_ITERATE(handle->entries->entrytable, handle->entries->size, + dump_entry, handle); +-} +- +-/* Returns 0 if not hook entry, else hooknumber + 1 */ +-static inline unsigned int +-is_hook_entry(STRUCT_ENTRY *e, TC_HANDLE_T h) +-{ +- unsigned int i; +- +- for (i = 0; i < NUMHOOKS; i++) { +- if ((h->info.valid_hooks & (1 << i)) +- && get_entry(h, h->info.hook_entry[i]) == e) +- return i+1; +- } +- return 0; +-} +- +-static inline int +-add_chain(STRUCT_ENTRY *e, TC_HANDLE_T h, STRUCT_ENTRY **prev) +-{ +- unsigned int builtin; +- +- /* Last entry. End it. */ +- if (entry2offset(h, e) + e->next_offset == h->entries.size) { +- /* This is the ERROR node at end of the table */ +- h->cache_chain_heads[h->cache_num_chains-1].end = *prev; +- return 0; +- } +- +- /* We know this is the start of a new chain if it's an ERROR +- target, or a hook entry point */ +- if (strcmp(GET_TARGET(e)->u.user.name, ERROR_TARGET) == 0) { +- /* prev was last entry in previous chain */ +- h->cache_chain_heads[h->cache_num_chains-1].end +- = *prev; +- +- strcpy(h->cache_chain_heads[h->cache_num_chains].name, +- (const char *)GET_TARGET(e)->data); +- h->cache_chain_heads[h->cache_num_chains].start +- = (void *)e + e->next_offset; +- h->cache_num_chains++; +- } else if ((builtin = is_hook_entry(e, h)) != 0) { +- if (h->cache_num_chains > 0) +- /* prev was last entry in previous chain */ +- h->cache_chain_heads[h->cache_num_chains-1].end +- = *prev; +- +- strcpy(h->cache_chain_heads[h->cache_num_chains].name, +- h->hooknames[builtin-1]); +- h->cache_chain_heads[h->cache_num_chains].start +- = (void *)e; +- h->cache_num_chains++; +- } +- +- *prev = e; +- return 0; +-} +- +-static int alphasort(const void *a, const void *b) +-{ +- return strcmp(((struct chain_cache *)a)->name, +- ((struct chain_cache *)b)->name); +-} +- +-static int populate_cache(TC_HANDLE_T h) +-{ +- unsigned int i; +- STRUCT_ENTRY *prev; +- +- /* # chains < # rules / 2 + num builtins - 1 */ +- h->cache_chain_heads = malloc((h->new_number / 2 + 4) +- * sizeof(struct chain_cache)); +- if (!h->cache_chain_heads) { +- errno = ENOMEM; +- return 0; +- } +- +- h->cache_num_chains = 0; +- h->cache_num_builtins = 0; +- +- /* Count builtins */ +- for (i = 0; i < NUMHOOKS; i++) { +- if (h->info.valid_hooks & (1 << i)) +- h->cache_num_builtins++; +- } +- +- prev = NULL; +- ENTRY_ITERATE(h->entries.entrytable, h->entries.size, +- add_chain, h, &prev); +- +- qsort(h->cache_chain_heads + h->cache_num_builtins, +- h->cache_num_chains - h->cache_num_builtins, +- sizeof(struct chain_cache), alphasort); +- +- return 1; +-} +- +-/* Returns cache ptr if found, otherwise NULL. */ +-static struct chain_cache * +-find_label(const char *name, TC_HANDLE_T handle) +-{ +- unsigned int i; +- +- if (handle->cache_chain_heads == NULL +- && !populate_cache(handle)) +- return NULL; +- +- /* FIXME: Linear search through builtins, then binary --RR */ +- for (i = 0; i < handle->cache_num_chains; i++) { +- if (strcmp(handle->cache_chain_heads[i].name, name) == 0) +- return &handle->cache_chain_heads[i]; +- } +- +- return NULL; ++#endif + } + + /* Does this chain exist? */ + int TC_IS_CHAIN(const char *chain, const TC_HANDLE_T handle) + { +- return find_label(chain, handle) != NULL; ++ iptc_fn = TC_IS_CHAIN; ++ return iptcc_find_label(chain, handle) != NULL; + } + +-/* Returns the position of the final (ie. unconditional) element. */ +-static unsigned int +-get_chain_end(const TC_HANDLE_T handle, unsigned int start) ++static void iptcc_chain_iterator_advance(TC_HANDLE_T handle) + { +- unsigned int last_off, off; +- STRUCT_ENTRY *e; +- +- last_off = start; +- e = get_entry(handle, start); +- +- /* Terminate when we meet a error label or a hook entry. */ +- for (off = start + e->next_offset; +- off < handle->entries.size; +- last_off = off, off += e->next_offset) { +- STRUCT_ENTRY_TARGET *t; +- unsigned int i; +- +- e = get_entry(handle, off); +- +- /* We hit an entry point. */ +- for (i = 0; i < NUMHOOKS; i++) { +- if ((handle->info.valid_hooks & (1 << i)) +- && off == handle->info.hook_entry[i]) +- return last_off; +- } ++ struct chain_head *c = handle->chain_iterator_cur; + +- /* We hit a user chain label */ +- t = GET_TARGET(e); +- if (strcmp(t->u.user.name, ERROR_TARGET) == 0) +- return last_off; +- } +- /* SHOULD NEVER HAPPEN */ +- fprintf(stderr, "ERROR: Off end (%u) of chain from %u!\n", +- handle->entries.size, off); +- abort(); ++ if (c->list.next == &handle->chains) ++ handle->chain_iterator_cur = NULL; ++ else ++ handle->chain_iterator_cur = ++ list_entry(c->list.next, struct chain_head, list); + } + + /* Iterator functions to run through the chains. */ + const char * + TC_FIRST_CHAIN(TC_HANDLE_T *handle) + { +- if ((*handle)->cache_chain_heads == NULL +- && !populate_cache(*handle)) ++ struct chain_head *c = list_entry((*handle)->chains.next, ++ struct chain_head, list); ++ ++ iptc_fn = TC_FIRST_CHAIN; ++ ++ ++ if (list_empty(&(*handle)->chains)) { ++ DEBUGP(": no chains\n"); + return NULL; ++ } + +- (*handle)->cache_chain_iteration +- = &(*handle)->cache_chain_heads[0]; ++ (*handle)->chain_iterator_cur = c; ++ iptcc_chain_iterator_advance(*handle); + +- return (*handle)->cache_chain_iteration->name; ++ DEBUGP(": returning `%s'\n", c->name); ++ return c->name; + } + + /* Iterator functions to run through the chains. Returns NULL at end. */ + const char * + TC_NEXT_CHAIN(TC_HANDLE_T *handle) + { +- (*handle)->cache_chain_iteration++; ++ struct chain_head *c = (*handle)->chain_iterator_cur; + +- if ((*handle)->cache_chain_iteration - (*handle)->cache_chain_heads +- == (*handle)->cache_num_chains) ++ iptc_fn = TC_NEXT_CHAIN; ++ ++ if (!c) { ++ DEBUGP(": no more chains\n"); + return NULL; ++ } + +- return (*handle)->cache_chain_iteration->name; ++ iptcc_chain_iterator_advance(*handle); ++ ++ DEBUGP(": returning `%s'\n", c->name); ++ return c->name; + } + + /* Get first rule in the given chain: NULL for empty chain. */ + const STRUCT_ENTRY * + TC_FIRST_RULE(const char *chain, TC_HANDLE_T *handle) + { +- struct chain_cache *c; ++ struct chain_head *c; ++ struct rule_head *r; ++ ++ iptc_fn = TC_FIRST_RULE; ++ ++ DEBUGP("first rule(%s): ", chain); + +- c = find_label(chain, *handle); ++ c = iptcc_find_label(chain, *handle); + if (!c) { + errno = ENOENT; + return NULL; + } + + /* Empty chain: single return/policy rule */ +- if (c->start == c->end) ++ if (list_empty(&c->rules)) { ++ DEBUGP_C("no rules, returning NULL\n"); + return NULL; ++ } ++ ++ r = list_entry(c->rules.next, struct rule_head, list); ++ (*handle)->rule_iterator_cur = r; ++ DEBUGP_C("%p\n", r); + +- (*handle)->cache_rule_end = c->end; +- return c->start; ++ return r->entry; + } + + /* Returns NULL when rules run out. */ + const STRUCT_ENTRY * + TC_NEXT_RULE(const STRUCT_ENTRY *prev, TC_HANDLE_T *handle) + { +- if ((void *)prev + prev->next_offset +- == (void *)(*handle)->cache_rule_end) ++ struct rule_head *r; ++ ++ iptc_fn = TC_NEXT_RULE; ++ DEBUGP("rule_iterator_cur=%p...", (*handle)->rule_iterator_cur); ++ ++ if (!(*handle)->rule_iterator_cur) { ++ DEBUGP_C("returning NULL\n"); ++ return NULL; ++ } ++ ++ r = list_entry((*handle)->rule_iterator_cur->list.next, ++ struct rule_head, list); ++ ++ iptc_fn = TC_NEXT_RULE; ++ ++ DEBUGP_C("next=%p, head=%p...", &r->list, ++ &(*handle)->rule_iterator_cur->chain->rules); ++ ++ if (&r->list == &(*handle)->rule_iterator_cur->chain->rules) { ++ (*handle)->rule_iterator_cur = NULL; ++ DEBUGP_C("finished, returning NULL\n"); + return NULL; ++ } ++ ++ (*handle)->rule_iterator_cur = r; + +- return (void *)prev + prev->next_offset; ++ /* NOTE: prev is without any influence ! */ ++ DEBUGP_C("returning rule %p\n", r); ++ return r->entry; + } + +-#if 0 + /* How many rules in this chain? */ + unsigned int + TC_NUM_RULES(const char *chain, TC_HANDLE_T *handle) + { +- unsigned int off = 0; +- STRUCT_ENTRY *start, *end; +- ++ struct chain_head *c; ++ iptc_fn = TC_NUM_RULES; + CHECK(*handle); +- if (!find_label(&off, chain, *handle)) { ++ ++ c = iptcc_find_label(chain, *handle); ++ if (!c) { + errno = ENOENT; + return (unsigned int)-1; + } + +- start = get_entry(*handle, off); +- end = get_entry(*handle, get_chain_end(*handle, off)); +- +- return entry2index(*handle, end) - entry2index(*handle, start); ++ return c->num_rules; + } + +-/* Get n'th rule in this chain. */ + const STRUCT_ENTRY *TC_GET_RULE(const char *chain, + unsigned int n, + TC_HANDLE_T *handle) + { +- unsigned int pos = 0, chainindex; ++ struct chain_head *c; ++ struct rule_head *r; ++ ++ iptc_fn = TC_GET_RULE; + + CHECK(*handle); +- if (!find_label(&pos, chain, *handle)) { ++ ++ c = iptcc_find_label(chain, *handle); ++ if (!c) { + errno = ENOENT; + return NULL; + } + +- chainindex = entry2index(*handle, get_entry(*handle, pos)); +- +- return index2entry(*handle, chainindex + n); ++ r = iptcc_get_rule_num(c, n); ++ if (!r) ++ return NULL; ++ return r->entry; + } +-#endif + +-static const char * +-target_name(TC_HANDLE_T handle, const STRUCT_ENTRY *ce) ++/* Returns a pointer to the target name of this position. */ ++const char *standard_target_map(int verdict) + { +- int spos; +- unsigned int labelidx; +- STRUCT_ENTRY *jumpto; +- +- /* To avoid const warnings */ +- STRUCT_ENTRY *e = (STRUCT_ENTRY *)ce; +- +- if (strcmp(GET_TARGET(e)->u.user.name, STANDARD_TARGET) != 0) +- return GET_TARGET(e)->u.user.name; +- +- /* Standard target: evaluate */ +- spos = *(int *)GET_TARGET(e)->data; +- if (spos < 0) { +- if (spos == RETURN) ++ switch (verdict) { ++ case RETURN: + return LABEL_RETURN; +- else if (spos == -NF_ACCEPT-1) ++ break; ++ case -NF_ACCEPT-1: + return LABEL_ACCEPT; +- else if (spos == -NF_DROP-1) ++ break; ++ case -NF_DROP-1: + return LABEL_DROP; +- else if (spos == -NF_QUEUE-1) ++ break; ++ case -NF_QUEUE-1: + return LABEL_QUEUE; +- +- fprintf(stderr, "ERROR: off %lu/%u not a valid target (%i)\n", +- entry2offset(handle, e), handle->entries.size, +- spos); ++ break; ++ default: ++ fprintf(stderr, "ERROR: %d not a valid target)\n", ++ verdict); + abort(); ++ break; + } +- +- jumpto = get_entry(handle, spos); +- +- /* Fall through rule */ +- if (jumpto == (void *)e + e->next_offset) +- return ""; +- +- /* Must point to head of a chain: ie. after error rule */ +- labelidx = entry2index(handle, jumpto) - 1; +- return get_errorlabel(handle, index2offset(handle, labelidx)); ++ /* not reached */ ++ return NULL; + } + + /* Returns a pointer to the target name of this position. */ +-const char *TC_GET_TARGET(const STRUCT_ENTRY *e, ++const char *TC_GET_TARGET(const STRUCT_ENTRY *ce, + TC_HANDLE_T *handle) + { +- return target_name(*handle, e); ++ STRUCT_ENTRY *e = (STRUCT_ENTRY *)ce; ++ struct rule_head *r = container_of(e, struct rule_head, entry[0]); ++ ++ iptc_fn = TC_GET_TARGET; ++ ++ switch(r->type) { ++ int spos; ++ case IPTCC_R_FALLTHROUGH: ++ return ""; ++ break; ++ case IPTCC_R_JUMP: ++ DEBUGP("r=%p, jump=%p, name=`%s'\n", r, r->jump, r->jump->name); ++ return r->jump->name; ++ break; ++ case IPTCC_R_STANDARD: ++ spos = *(int *)GET_TARGET(e)->data; ++ DEBUGP("r=%p, spos=%d'\n", r, spos); ++ return standard_target_map(spos); ++ break; ++ case IPTCC_R_MODULE: ++ return GET_TARGET(e)->u.user.name; ++ break; ++} ++ return NULL; + } +- + /* Is this a built-in chain? Actually returns hook + 1. */ + int + TC_BUILTIN(const char *chain, const TC_HANDLE_T handle) + { +- unsigned int i; ++ struct chain_head *c; + +- for (i = 0; i < NUMHOOKS; i++) { +- if ((handle->info.valid_hooks & (1 << i)) +- && handle->hooknames[i] +- && strcmp(handle->hooknames[i], chain) == 0) +- return i+1; +- } ++ iptc_fn = TC_BUILTIN; ++ ++ c = iptcc_find_label(chain, handle); ++ if (!c) { ++ errno = ENOENT; + return 0; + } + ++ return iptcc_is_builtin(c); ++} ++ + /* Get the policy of a given built-in chain */ + const char * + TC_GET_POLICY(const char *chain, + STRUCT_COUNTERS *counters, +- TC_HANDLE_T *handle) +-{ +- unsigned int start; +- STRUCT_ENTRY *e; +- int hook; +- +- hook = TC_BUILTIN(chain, *handle); +- if (hook != 0) +- start = (*handle)->info.hook_entry[hook-1]; +- else +- return NULL; +- +- e = get_entry(*handle, get_chain_end(*handle, start)); +- *counters = e->counters; +- +- return target_name(*handle, e); +-} +- +-static int +-correct_verdict(STRUCT_ENTRY *e, +- char *base, +- unsigned int offset, int delta_offset) +-{ +- STRUCT_STANDARD_TARGET *t = (void *)GET_TARGET(e); +- unsigned int curr = (char *)e - base; +- +- /* Trap: insert of fall-through rule. Don't change fall-through +- verdict to jump-over-next-rule. */ +- if (strcmp(t->target.u.user.name, STANDARD_TARGET) == 0 +- && t->verdict > (int)offset +- && !(curr == offset && +- t->verdict == curr + e->next_offset)) { +- t->verdict += delta_offset; +- } +- +- return 0; +-} +- +-/* Adjusts standard verdict jump positions after an insertion/deletion. */ +-static int +-set_verdict(unsigned int offset, int delta_offset, TC_HANDLE_T *handle) +-{ +- ENTRY_ITERATE((*handle)->entries.entrytable, +- (*handle)->entries.size, +- correct_verdict, (char *)(*handle)->entries.entrytable, +- offset, delta_offset); +- +- set_changed(*handle); +- return 1; +-} +- +-/* If prepend is set, then we are prepending to a chain: if the +- * insertion position is an entry point, keep the entry point. */ +-static int +-insert_rules(unsigned int num_rules, unsigned int rules_size, +- const STRUCT_ENTRY *insert, +- unsigned int offset, unsigned int num_rules_offset, +- int prepend, + TC_HANDLE_T *handle) + { +- TC_HANDLE_T newh; +- STRUCT_GETINFO newinfo; +- unsigned int i; +- +- if (offset >= (*handle)->entries.size) { +- errno = EINVAL; +- return 0; +- } ++ struct chain_head *c; + +- newinfo = (*handle)->info; +- +- /* Fix up entry points. */ +- for (i = 0; i < NUMHOOKS; i++) { +- /* Entry points to START of chain, so keep same if +- inserting on at that point. */ +- if ((*handle)->info.hook_entry[i] > offset) +- newinfo.hook_entry[i] += rules_size; +- +- /* Underflow always points to END of chain (policy), +- so if something is inserted at same point, it +- should be advanced. */ +- if ((*handle)->info.underflow[i] >= offset) +- newinfo.underflow[i] += rules_size; +- } +- +- newh = alloc_handle((*handle)->info.name, +- (*handle)->entries.size + rules_size, +- (*handle)->new_number + num_rules); +- if (!newh) +- return 0; +- newh->info = newinfo; +- +- /* Copy pre... */ +- memcpy(newh->entries.entrytable, (*handle)->entries.entrytable,offset); +- /* ... Insert new ... */ +- memcpy((char *)newh->entries.entrytable + offset, insert, rules_size); +- /* ... copy post */ +- memcpy((char *)newh->entries.entrytable + offset + rules_size, +- (char *)(*handle)->entries.entrytable + offset, +- (*handle)->entries.size - offset); +- +- /* Move counter map. */ +- /* Copy pre... */ +- memcpy(newh->counter_map, (*handle)->counter_map, +- sizeof(struct counter_map) * num_rules_offset); +- /* ... copy post */ +- memcpy(newh->counter_map + num_rules_offset + num_rules, +- (*handle)->counter_map + num_rules_offset, +- sizeof(struct counter_map) * ((*handle)->new_number +- - num_rules_offset)); +- /* Set intermediates to no counter copy */ +- for (i = 0; i < num_rules; i++) +- newh->counter_map[num_rules_offset+i] +- = ((struct counter_map){ COUNTER_MAP_SET, 0 }); +- +- newh->new_number = (*handle)->new_number + num_rules; +- newh->entries.size = (*handle)->entries.size + rules_size; +- newh->hooknames = (*handle)->hooknames; +- +- if ((*handle)->cache_chain_heads) +- free((*handle)->cache_chain_heads); +- free(*handle); +- *handle = newh; +- +- return set_verdict(offset, rules_size, handle); +-} +- +-static int +-delete_rules(unsigned int num_rules, unsigned int rules_size, +- unsigned int offset, unsigned int num_rules_offset, +- TC_HANDLE_T *handle) +-{ +- unsigned int i; ++ iptc_fn = TC_GET_POLICY; + +- if (offset + rules_size > (*handle)->entries.size) { +- errno = EINVAL; +- return 0; +- } ++ DEBUGP("called for chain %s\n", chain); + +- /* Fix up entry points. */ +- for (i = 0; i < NUMHOOKS; i++) { +- /* In practice, we never delete up to a hook entry, +- since the built-in chains are always first, +- so these two are never equal */ +- if ((*handle)->info.hook_entry[i] >= offset + rules_size) +- (*handle)->info.hook_entry[i] -= rules_size; +- else if ((*handle)->info.hook_entry[i] > offset) { +- fprintf(stderr, "ERROR: Deleting entry %u %u %u\n", +- i, (*handle)->info.hook_entry[i], offset); +- abort(); ++ c = iptcc_find_label(chain, *handle); ++ if (!c) { ++ errno = ENOENT; ++ return NULL; + } + +- /* Underflow points to policy (terminal) rule in +- built-in, so sequality is valid here (when deleting +- the last rule). */ +- if ((*handle)->info.underflow[i] >= offset + rules_size) +- (*handle)->info.underflow[i] -= rules_size; +- else if ((*handle)->info.underflow[i] > offset) { +- fprintf(stderr, "ERROR: Deleting uflow %u %u %u\n", +- i, (*handle)->info.underflow[i], offset); +- abort(); +- } +- } ++ if (!iptcc_is_builtin(c)) ++ return NULL; + +- /* Move the rules down. */ +- memmove((char *)(*handle)->entries.entrytable + offset, +- (char *)(*handle)->entries.entrytable + offset + rules_size, +- (*handle)->entries.size - (offset + rules_size)); +- +- /* Move the counter map down. */ +- memmove(&(*handle)->counter_map[num_rules_offset], +- &(*handle)->counter_map[num_rules_offset + num_rules], +- sizeof(struct counter_map) +- * ((*handle)->new_number - (num_rules + num_rules_offset))); +- +- /* Fix numbers */ +- (*handle)->new_number -= num_rules; +- (*handle)->entries.size -= rules_size; ++ *counters = c->counters; + +- return set_verdict(offset, -(int)rules_size, handle); ++ return standard_target_map(c->verdict); + } + + static int +-standard_map(STRUCT_ENTRY *e, int verdict) ++iptcc_standard_map(struct rule_head *r, int verdict) + { ++ STRUCT_ENTRY *e = r->entry; + STRUCT_STANDARD_TARGET *t; + + t = (STRUCT_STANDARD_TARGET *)GET_TARGET(e); +@@ -847,64 +1217,62 @@ + strcpy(t->target.u.user.name, STANDARD_TARGET); + t->verdict = verdict; + ++ r->type = IPTCC_R_STANDARD; ++ + return 1; + } + + static int +-map_target(const TC_HANDLE_T handle, +- STRUCT_ENTRY *e, +- unsigned int offset, +- STRUCT_ENTRY_TARGET *old) ++iptcc_map_target(const TC_HANDLE_T handle, ++ struct rule_head *r) + { ++ STRUCT_ENTRY *e = r->entry; + STRUCT_ENTRY_TARGET *t = GET_TARGET(e); + +- /* Save old target (except data, which we don't change, except for +- standard case, where we don't care). */ +- *old = *t; +- + /* Maybe it's empty (=> fall through) */ +- if (strcmp(t->u.user.name, "") == 0) +- return standard_map(e, offset + e->next_offset); ++ if (strcmp(t->u.user.name, "") == 0) { ++ r->type = IPTCC_R_FALLTHROUGH; ++ return 1; ++ } + /* Maybe it's a standard target name... */ + else if (strcmp(t->u.user.name, LABEL_ACCEPT) == 0) +- return standard_map(e, -NF_ACCEPT - 1); ++ return iptcc_standard_map(r, -NF_ACCEPT - 1); + else if (strcmp(t->u.user.name, LABEL_DROP) == 0) +- return standard_map(e, -NF_DROP - 1); ++ return iptcc_standard_map(r, -NF_DROP - 1); + else if (strcmp(t->u.user.name, LABEL_QUEUE) == 0) +- return standard_map(e, -NF_QUEUE - 1); ++ return iptcc_standard_map(r, -NF_QUEUE - 1); + else if (strcmp(t->u.user.name, LABEL_RETURN) == 0) +- return standard_map(e, RETURN); ++ return iptcc_standard_map(r, RETURN); + else if (TC_BUILTIN(t->u.user.name, handle)) { + /* Can't jump to builtins. */ + errno = EINVAL; + return 0; + } else { + /* Maybe it's an existing chain name. */ +- struct chain_cache *c; ++ struct chain_head *c; ++ DEBUGP("trying to find chain `%s': ", t->u.user.name); + +- c = find_label(t->u.user.name, handle); +- if (c) +- return standard_map(e, entry2offset(handle, c->start)); ++ c = iptcc_find_label(t->u.user.name, handle); ++ if (c) { ++ DEBUGP_C("found!\n"); ++ r->type = IPTCC_R_JUMP; ++ r->jump = c; ++ c->references++; ++ return 1; ++} ++ DEBUGP_C("not found :(\n"); + } + + /* Must be a module? If not, kernel will reject... */ +- /* memset to all 0 for your memcmp convenience. */ ++ /* memset to all 0 for your memcmp convenience: don't clear version */ + memset(t->u.user.name + strlen(t->u.user.name), + 0, +- FUNCTION_MAXNAMELEN - strlen(t->u.user.name)); ++ FUNCTION_MAXNAMELEN - 1 - strlen(t->u.user.name)); ++ r->type = IPTCC_R_MODULE; ++ set_changed(handle); + return 1; + } + +-static void +-unmap_target(STRUCT_ENTRY *e, STRUCT_ENTRY_TARGET *old) +-{ +- STRUCT_ENTRY_TARGET *t = GET_TARGET(e); +- +- /* Save old target (except data, which we don't change, except for +- standard case, where we don't care). */ +- *t = *old; +-} +- + /* Insert the entry `fw' in chain `chain' into position `rulenum'. */ + int + TC_INSERT_ENTRY(const IPT_CHAINLABEL chain, +@@ -912,36 +1280,56 @@ + unsigned int rulenum, + TC_HANDLE_T *handle) + { +- unsigned int chainindex, offset; +- STRUCT_ENTRY_TARGET old; +- struct chain_cache *c; +- STRUCT_ENTRY *tmp; +- int ret; ++ struct chain_head *c; ++ struct rule_head *r; ++ struct list_head *prev; + + iptc_fn = TC_INSERT_ENTRY; +- if (!(c = find_label(chain, *handle))) { ++ ++ if (!(c = iptcc_find_label(chain, *handle))) { + errno = ENOENT; + return 0; + } + +- chainindex = entry2index(*handle, c->start); +- +- tmp = index2entry(*handle, chainindex + rulenum); +- if (!tmp || tmp > c->end) { ++ /* first rulenum index = 0 ++ first c->num_rules index = 1 */ ++ if (rulenum > c->num_rules) { + errno = E2BIG; + return 0; + } +- offset = index2offset(*handle, chainindex + rulenum); + +- /* Mapping target actually alters entry, but that's +- transparent to the caller. */ +- if (!map_target(*handle, (STRUCT_ENTRY *)e, offset, &old)) ++ /* If we are inserting at the end just take advantage of the ++ double linked list, insert will happen before the entry ++ prev points to. */ ++ if (rulenum == c->num_rules) { ++ prev = &c->rules; ++ } else if (rulenum + 1 <= c->num_rules/2) { ++ r = iptcc_get_rule_num(c, rulenum + 1); ++ prev = &r->list; ++ } else { ++ r = iptcc_get_rule_num_reverse(c, c->num_rules - rulenum); ++ prev = &r->list; ++ } ++ ++ if (!(r = iptcc_alloc_rule(c, e->next_offset))) { ++ errno = ENOMEM; ++ return 0; ++ } ++ ++ memcpy(r->entry, e, e->next_offset); ++ r->counter_map.maptype = COUNTER_MAP_SET; ++ ++ if (!iptcc_map_target(*handle, r)) { ++ free(r); + return 0; ++ } ++ ++ list_add_tail(&r->list, prev); ++ c->num_rules++; ++ ++ set_changed(*handle); + +- ret = insert_rules(1, e->next_offset, e, offset, +- chainindex + rulenum, rulenum == 0, handle); +- unmap_target((STRUCT_ENTRY *)e, &old); +- return ret; ++ return 1; + } + + /* Atomically replace rule `rulenum' in `chain' with `fw'. */ +@@ -951,40 +1339,47 @@ + unsigned int rulenum, + TC_HANDLE_T *handle) + { +- unsigned int chainindex, offset; +- STRUCT_ENTRY_TARGET old; +- struct chain_cache *c; +- STRUCT_ENTRY *tmp; +- int ret; ++ struct chain_head *c; ++ struct rule_head *r, *old; + + iptc_fn = TC_REPLACE_ENTRY; + +- if (!(c = find_label(chain, *handle))) { ++ if (!(c = iptcc_find_label(chain, *handle))) { + errno = ENOENT; + return 0; + } + +- chainindex = entry2index(*handle, c->start); +- +- tmp = index2entry(*handle, chainindex + rulenum); +- if (!tmp || tmp >= c->end) { ++ if (rulenum >= c->num_rules) { + errno = E2BIG; + return 0; + } + +- offset = index2offset(*handle, chainindex + rulenum); +- /* Replace = delete and insert. */ +- if (!delete_rules(1, get_entry(*handle, offset)->next_offset, +- offset, chainindex + rulenum, handle)) ++ /* Take advantage of the double linked list if possible. */ ++ if (rulenum + 1 <= c->num_rules/2) { ++ old = iptcc_get_rule_num(c, rulenum + 1); ++ } else { ++ old = iptcc_get_rule_num_reverse(c, c->num_rules - rulenum); ++ } ++ ++ if (!(r = iptcc_alloc_rule(c, e->next_offset))) { ++ errno = ENOMEM; + return 0; ++ } + +- if (!map_target(*handle, (STRUCT_ENTRY *)e, offset, &old)) ++ memcpy(r->entry, e, e->next_offset); ++ r->counter_map.maptype = COUNTER_MAP_SET; ++ ++ if (!iptcc_map_target(*handle, r)) { ++ free(r); + return 0; ++ } ++ ++ list_add(&r->list, &old->list); ++ iptcc_delete_rule(old); ++ ++ set_changed(*handle); + +- ret = insert_rules(1, e->next_offset, e, offset, +- chainindex + rulenum, 1, handle); +- unmap_target((STRUCT_ENTRY *)e, &old); +- return ret; ++ return 1; + } + + /* Append entry `fw' to chain `chain'. Equivalent to insert with +@@ -994,26 +1389,37 @@ + const STRUCT_ENTRY *e, + TC_HANDLE_T *handle) + { +- struct chain_cache *c; +- STRUCT_ENTRY_TARGET old; +- int ret; ++ struct chain_head *c; ++ struct rule_head *r; + + iptc_fn = TC_APPEND_ENTRY; +- if (!(c = find_label(chain, *handle))) { ++ if (!(c = iptcc_find_label(chain, *handle))) { ++ DEBUGP("unable to find chain `%s'\n", chain); + errno = ENOENT; + return 0; + } + +- if (!map_target(*handle, (STRUCT_ENTRY *)e, +- entry2offset(*handle, c->end), &old)) ++ if (!(r = iptcc_alloc_rule(c, e->next_offset))) { ++ DEBUGP("unable to allocate rule for chain `%s'\n", chain); ++ errno = ENOMEM; ++ return 0; ++ } ++ ++ memcpy(r->entry, e, e->next_offset); ++ r->counter_map.maptype = COUNTER_MAP_SET; ++ ++ if (!iptcc_map_target(*handle, r)) { ++ DEBUGP("unable to map target of rule for chain `%s'\n", chain); ++ free(r); + return 0; ++ } ++ ++ list_add_tail(&r->list, &c->rules); ++ c->num_rules++; ++ ++ set_changed(*handle); + +- ret = insert_rules(1, e->next_offset, e, +- entry2offset(*handle, c->end), +- entry2index(*handle, c->end), +- 0, handle); +- unmap_target((STRUCT_ENTRY *)e, &old); +- return ret; ++ return 1; + } + + static inline int +@@ -1044,20 +1450,42 @@ + } + + static inline int +-target_different(const unsigned char *a_targdata, +- const unsigned char *b_targdata, +- unsigned int tdatasize, +- const unsigned char *mask) ++target_same(struct rule_head *a, struct rule_head *b,const unsigned char *mask) + { + unsigned int i; +- for (i = 0; i < tdatasize; i++) +- if (((a_targdata[i] ^ b_targdata[i]) & mask[i]) != 0) ++ STRUCT_ENTRY_TARGET *ta, *tb; ++ ++ if (a->type != b->type) ++ return 0; ++ ++ ta = GET_TARGET(a->entry); ++ tb = GET_TARGET(b->entry); ++ ++ switch (a->type) { ++ case IPTCC_R_FALLTHROUGH: + return 1; ++ case IPTCC_R_JUMP: ++ return a->jump == b->jump; ++ case IPTCC_R_STANDARD: ++ return ((STRUCT_STANDARD_TARGET *)ta)->verdict ++ == ((STRUCT_STANDARD_TARGET *)tb)->verdict; ++ case IPTCC_R_MODULE: ++ if (ta->u.target_size != tb->u.target_size) ++ return 0; ++ if (strcmp(ta->u.user.name, tb->u.user.name) != 0) ++ return 0; + ++ for (i = 0; i < ta->u.target_size - sizeof(*ta); i++) ++ if (((ta->data[i] ^ tb->data[i]) & mask[i]) != 0) + return 0; ++ return 1; ++ default: ++ fprintf(stderr, "ERROR: bad type %i\n", a->type); ++ abort(); ++ } + } + +-static int ++static unsigned char * + is_same(const STRUCT_ENTRY *a, + const STRUCT_ENTRY *b, + unsigned char *matchmask); +@@ -1069,88 +1497,106 @@ + unsigned char *matchmask, + TC_HANDLE_T *handle) + { +- unsigned int offset; +- struct chain_cache *c; +- STRUCT_ENTRY *e, *fw; ++ struct chain_head *c; ++ struct rule_head *r, *i; + + iptc_fn = TC_DELETE_ENTRY; +- if (!(c = find_label(chain, *handle))) { ++ if (!(c = iptcc_find_label(chain, *handle))) { + errno = ENOENT; + return 0; + } + +- fw = malloc(origfw->next_offset); +- if (fw == NULL) { ++ /* Create a rule_head from origfw. */ ++ r = iptcc_alloc_rule(c, origfw->next_offset); ++ if (!r) { + errno = ENOMEM; + return 0; + } + +- for (offset = entry2offset(*handle, c->start); +- offset < entry2offset(*handle, c->end); +- offset += e->next_offset) { +- STRUCT_ENTRY_TARGET discard; +- +- memcpy(fw, origfw, origfw->next_offset); +- +- /* FIXME: handle this in is_same --RR */ +- if (!map_target(*handle, fw, offset, &discard)) { +- free(fw); ++ memcpy(r->entry, origfw, origfw->next_offset); ++ r->counter_map.maptype = COUNTER_MAP_NOMAP; ++ if (!iptcc_map_target(*handle, r)) { ++ DEBUGP("unable to map target of rule for chain `%s'\n", chain); ++ free(r); + return 0; + } +- e = get_entry(*handle, offset); + +-#if 0 +- printf("Deleting:\n"); +- dump_entry(newe); +-#endif +- if (is_same(e, fw, matchmask)) { +- int ret; +- ret = delete_rules(1, e->next_offset, +- offset, entry2index(*handle, e), +- handle); +- free(fw); +- return ret; ++ list_for_each_entry(i, &c->rules, list) { ++ unsigned char *mask; ++ ++ mask = is_same(r->entry, i->entry, matchmask); ++ if (!mask) ++ continue; ++ ++ if (!target_same(r, i, mask)) ++ continue; ++ ++ /* If we are about to delete the rule that is the ++ * current iterator, move rule iterator back. next ++ * pointer will then point to real next node */ ++ if (i == (*handle)->rule_iterator_cur) { ++ (*handle)->rule_iterator_cur = ++ list_entry((*handle)->rule_iterator_cur->list.prev, ++ struct rule_head, list); + } ++ ++ c->num_rules--; ++ iptcc_delete_rule(i); ++ ++ set_changed(*handle); ++ free(r); ++ return 1; + } + +- free(fw); ++ free(r); + errno = ENOENT; + return 0; + } + ++ + /* Delete the rule in position `rulenum' in `chain'. */ + int + TC_DELETE_NUM_ENTRY(const IPT_CHAINLABEL chain, + unsigned int rulenum, + TC_HANDLE_T *handle) + { +- unsigned int index; +- int ret; +- STRUCT_ENTRY *e; +- struct chain_cache *c; ++ struct chain_head *c; ++ struct rule_head *r; + + iptc_fn = TC_DELETE_NUM_ENTRY; +- if (!(c = find_label(chain, *handle))) { ++ ++ if (!(c = iptcc_find_label(chain, *handle))) { + errno = ENOENT; + return 0; + } + +- index = entry2index(*handle, c->start) + rulenum; +- +- if (index >= entry2index(*handle, c->end)) { ++ if (rulenum >= c->num_rules) { + errno = E2BIG; + return 0; + } + +- e = index2entry(*handle, index); +- if (e == NULL) { +- errno = EINVAL; +- return 0; ++ /* Take advantage of the double linked list if possible. */ ++ if (rulenum + 1 <= c->num_rules/2) { ++ r = iptcc_get_rule_num(c, rulenum + 1); ++ } else { ++ r = iptcc_get_rule_num_reverse(c, c->num_rules - rulenum); ++ } ++ ++ /* If we are about to delete the rule that is the current ++ * iterator, move rule iterator back. next pointer will then ++ * point to real next node */ ++ if (r == (*handle)->rule_iterator_cur) { ++ (*handle)->rule_iterator_cur = ++ list_entry((*handle)->rule_iterator_cur->list.prev, ++ struct rule_head, list); + } + +- ret = delete_rules(1, e->next_offset, entry2offset(*handle, e), +- index, handle); +- return ret; ++ c->num_rules--; ++ iptcc_delete_rule(r); ++ ++ set_changed(*handle); ++ ++ return 1; + } + + /* Check the packet `fw' on chain `chain'. Returns the verdict, or +@@ -1160,6 +1606,7 @@ + STRUCT_ENTRY *entry, + TC_HANDLE_T *handle) + { ++ iptc_fn = TC_CHECK_PACKET; + errno = ENOSYS; + return NULL; + } +@@ -1168,44 +1615,44 @@ + int + TC_FLUSH_ENTRIES(const IPT_CHAINLABEL chain, TC_HANDLE_T *handle) + { +- unsigned int startindex, endindex; +- struct chain_cache *c; +- int ret; ++ struct chain_head *c; ++ struct rule_head *r, *tmp; + + iptc_fn = TC_FLUSH_ENTRIES; +- if (!(c = find_label(chain, *handle))) { ++ if (!(c = iptcc_find_label(chain, *handle))) { + errno = ENOENT; + return 0; + } +- startindex = entry2index(*handle, c->start); +- endindex = entry2index(*handle, c->end); + +- ret = delete_rules(endindex - startindex, +- (char *)c->end - (char *)c->start, +- entry2offset(*handle, c->start), startindex, +- handle); +- return ret; ++ list_for_each_entry_safe(r, tmp, &c->rules, list) { ++ iptcc_delete_rule(r); ++ } ++ ++ c->num_rules = 0; ++ ++ set_changed(*handle); ++ ++ return 1; + } + + /* Zeroes the counters in a chain. */ + int + TC_ZERO_ENTRIES(const IPT_CHAINLABEL chain, TC_HANDLE_T *handle) + { +- unsigned int i, end; +- struct chain_cache *c; ++ struct chain_head *c; ++ struct rule_head *r; + +- if (!(c = find_label(chain, *handle))) { ++ iptc_fn = TC_ZERO_ENTRIES; ++ if (!(c = iptcc_find_label(chain, *handle))) { + errno = ENOENT; + return 0; + } + +- i = entry2index(*handle, c->start); +- end = entry2index(*handle, c->end); +- +- for (; i <= end; i++) { +- if ((*handle)->counter_map[i].maptype ==COUNTER_MAP_NORMAL_MAP) +- (*handle)->counter_map[i].maptype = COUNTER_MAP_ZEROED; ++ list_for_each_entry(r, &c->rules, list) { ++ if (r->counter_map.maptype == COUNTER_MAP_NORMAL_MAP) ++ r->counter_map.maptype = COUNTER_MAP_ZEROED; + } ++ + set_changed(*handle); + + return 1; +@@ -1216,29 +1663,23 @@ + unsigned int rulenum, + TC_HANDLE_T *handle) + { +- STRUCT_ENTRY *e; +- struct chain_cache *c; +- unsigned int chainindex, end; ++ struct chain_head *c; ++ struct rule_head *r; + + iptc_fn = TC_READ_COUNTER; + CHECK(*handle); + +- if (!(c = find_label(chain, *handle))) { ++ if (!(c = iptcc_find_label(chain, *handle))) { + errno = ENOENT; + return NULL; + } + +- chainindex = entry2index(*handle, c->start); +- end = entry2index(*handle, c->end); +- +- if (chainindex + rulenum > end) { ++ if (!(r = iptcc_get_rule_num(c, rulenum))) { + errno = E2BIG; + return NULL; + } + +- e = index2entry(*handle, chainindex + rulenum); +- +- return &e->counters; ++ return &r->entry[0].counters; + } + + int +@@ -1246,33 +1687,24 @@ + unsigned int rulenum, + TC_HANDLE_T *handle) + { +- STRUCT_ENTRY *e; +- struct chain_cache *c; +- unsigned int chainindex, end; ++ struct chain_head *c; ++ struct rule_head *r; + + iptc_fn = TC_ZERO_COUNTER; + CHECK(*handle); + +- if (!(c = find_label(chain, *handle))) { ++ if (!(c = iptcc_find_label(chain, *handle))) { + errno = ENOENT; + return 0; + } + +- chainindex = entry2index(*handle, c->start); +- end = entry2index(*handle, c->end); +- +- if (chainindex + rulenum > end) { ++ if (!(r = iptcc_get_rule_num(c, rulenum))) { + errno = E2BIG; + return 0; + } + +- e = index2entry(*handle, chainindex + rulenum); +- +-// if ((*handle)->counter_map[chainindex + rulenum].maptype +-// == COUNTER_MAP_NORMAL_MAP) { +- (*handle)->counter_map[chainindex + rulenum].maptype +- = COUNTER_MAP_ZEROED; +-// } ++ if (r->counter_map.maptype == COUNTER_MAP_NORMAL_MAP) ++ r->counter_map.maptype = COUNTER_MAP_ZEROED; + + set_changed(*handle); + +@@ -1285,30 +1717,25 @@ + STRUCT_COUNTERS *counters, + TC_HANDLE_T *handle) + { ++ struct chain_head *c; ++ struct rule_head *r; + STRUCT_ENTRY *e; +- struct chain_cache *c; +- unsigned int chainindex, end; + + iptc_fn = TC_SET_COUNTER; + CHECK(*handle); + +- if (!(c = find_label(chain, *handle))) { ++ if (!(c = iptcc_find_label(chain, *handle))) { + errno = ENOENT; + return 0; + } + +- chainindex = entry2index(*handle, c->start); +- end = entry2index(*handle, c->end); +- +- if (chainindex + rulenum > end) { ++ if (!(r = iptcc_get_rule_num(c, rulenum))) { + errno = E2BIG; + return 0; + } + +- e = index2entry(*handle, chainindex + rulenum); +- +- (*handle)->counter_map[chainindex + rulenum].maptype +- = COUNTER_MAP_SET; ++ e = r->entry; ++ r->counter_map.maptype = COUNTER_MAP_SET; + + memcpy(&e->counters, counters, sizeof(STRUCT_COUNTERS)); + +@@ -1323,71 +1750,42 @@ + int + TC_CREATE_CHAIN(const IPT_CHAINLABEL chain, TC_HANDLE_T *handle) + { +- int ret; +- struct { +- STRUCT_ENTRY head; +- struct ipt_error_target name; +- STRUCT_ENTRY ret; +- STRUCT_STANDARD_TARGET target; +- } newc; ++ static struct chain_head *c; + + iptc_fn = TC_CREATE_CHAIN; + + /* find_label doesn't cover built-in targets: DROP, ACCEPT, + QUEUE, RETURN. */ +- if (find_label(chain, *handle) ++ if (iptcc_find_label(chain, *handle) + || strcmp(chain, LABEL_DROP) == 0 + || strcmp(chain, LABEL_ACCEPT) == 0 + || strcmp(chain, LABEL_QUEUE) == 0 + || strcmp(chain, LABEL_RETURN) == 0) { ++ DEBUGP("Chain `%s' already exists\n", chain); + errno = EEXIST; + return 0; + } + + if (strlen(chain)+1 > sizeof(IPT_CHAINLABEL)) { ++ DEBUGP("Chain name `%s' too long\n", chain); + errno = EINVAL; + return 0; + } + +- memset(&newc, 0, sizeof(newc)); +- newc.head.target_offset = sizeof(STRUCT_ENTRY); +- newc.head.next_offset +- = sizeof(STRUCT_ENTRY) +- + ALIGN(sizeof(struct ipt_error_target)); +- strcpy(newc.name.t.u.user.name, ERROR_TARGET); +- newc.name.t.u.target_size = ALIGN(sizeof(struct ipt_error_target)); +- strcpy(newc.name.error, chain); +- +- newc.ret.target_offset = sizeof(STRUCT_ENTRY); +- newc.ret.next_offset +- = sizeof(STRUCT_ENTRY) +- + ALIGN(sizeof(STRUCT_STANDARD_TARGET)); +- strcpy(newc.target.target.u.user.name, STANDARD_TARGET); +- newc.target.target.u.target_size +- = ALIGN(sizeof(STRUCT_STANDARD_TARGET)); +- newc.target.verdict = RETURN; +- +- /* Add just before terminal entry */ +- ret = insert_rules(2, sizeof(newc), &newc.head, +- index2offset(*handle, (*handle)->new_number - 1), +- (*handle)->new_number - 1, +- 0, handle); +- return ret; +-} ++ c = iptcc_alloc_chain_head(chain, 0); ++ if (!c) { ++ DEBUGP("Cannot allocate memory for chain `%s'\n", chain); ++ errno = ENOMEM; ++ return 0; + +-static int +-count_ref(STRUCT_ENTRY *e, unsigned int offset, unsigned int *ref) +-{ +- STRUCT_STANDARD_TARGET *t; ++ } + +- if (strcmp(GET_TARGET(e)->u.user.name, STANDARD_TARGET) == 0) { +- t = (STRUCT_STANDARD_TARGET *)GET_TARGET(e); ++ DEBUGP("Creating chain `%s'\n", chain); ++ list_add_tail(&c->list, &(*handle)->chains); + +- if (t->verdict == offset) +- (*ref)++; +- } ++ set_changed(*handle); + +- return 0; ++ return 1; + } + + /* Get the number of references to this chain. */ +@@ -1395,17 +1793,16 @@ + TC_GET_REFERENCES(unsigned int *ref, const IPT_CHAINLABEL chain, + TC_HANDLE_T *handle) + { +- struct chain_cache *c; ++ struct chain_head *c; + +- if (!(c = find_label(chain, *handle))) { ++ iptc_fn = TC_GET_REFERENCES; ++ if (!(c = iptcc_find_label(chain, *handle))) { + errno = ENOENT; + return 0; + } + +- *ref = 0; +- ENTRY_ITERATE((*handle)->entries.entrytable, +- (*handle)->entries.size, +- count_ref, entry2offset(*handle, c->start), ref); ++ *ref = c->references; ++ + return 1; + } + +@@ -1413,45 +1810,53 @@ + int + TC_DELETE_CHAIN(const IPT_CHAINLABEL chain, TC_HANDLE_T *handle) + { +- unsigned int labelidx, labeloff; + unsigned int references; +- struct chain_cache *c; +- int ret; +- +- if (!TC_GET_REFERENCES(&references, chain, handle)) +- return 0; ++ struct chain_head *c; + + iptc_fn = TC_DELETE_CHAIN; + ++ if (!(c = iptcc_find_label(chain, *handle))) { ++ DEBUGP("cannot find chain `%s'\n", chain); ++ errno = ENOENT; ++ return 0; ++ } ++ + if (TC_BUILTIN(chain, *handle)) { ++ DEBUGP("cannot remove builtin chain `%s'\n", chain); + errno = EINVAL; + return 0; + } + +- if (references > 0) { +- errno = EMLINK; ++ if (!TC_GET_REFERENCES(&references, chain, handle)) { ++ DEBUGP("cannot get references on chain `%s'\n", chain); + return 0; + } + +- if (!(c = find_label(chain, *handle))) { +- errno = ENOENT; ++ if (references > 0) { ++ DEBUGP("chain `%s' still has references\n", chain); ++ errno = EMLINK; + return 0; + } + +- if ((void *)c->start != c->end) { ++ if (c->num_rules) { ++ DEBUGP("chain `%s' is not empty\n", chain); + errno = ENOTEMPTY; + return 0; + } + +- /* Need label index: preceeds chain start */ +- labelidx = entry2index(*handle, c->start) - 1; +- labeloff = index2offset(*handle, labelidx); +- +- ret = delete_rules(2, +- get_entry(*handle, labeloff)->next_offset +- + c->start->next_offset, +- labeloff, labelidx, handle); +- return ret; ++ /* If we are about to delete the chain that is the current ++ * iterator, move chain iterator firward. */ ++ if (c == (*handle)->chain_iterator_cur) ++ iptcc_chain_iterator_advance(*handle); ++ ++ list_del(&c->list); ++ free(c); ++ ++ DEBUGP("chain `%s' deleted\n", chain); ++ ++ set_changed(*handle); ++ ++ return 1; + } + + /* Renames a chain. */ +@@ -1459,15 +1864,12 @@ + const IPT_CHAINLABEL newname, + TC_HANDLE_T *handle) + { +- unsigned int labeloff, labelidx; +- struct chain_cache *c; +- struct ipt_error_target *t; +- ++ struct chain_head *c; + iptc_fn = TC_RENAME_CHAIN; + + /* find_label doesn't cover built-in targets: DROP, ACCEPT, + QUEUE, RETURN. */ +- if (find_label(newname, *handle) ++ if (iptcc_find_label(newname, *handle) + || strcmp(newname, LABEL_DROP) == 0 + || strcmp(newname, LABEL_ACCEPT) == 0 + || strcmp(newname, LABEL_QUEUE) == 0 +@@ -1476,7 +1878,7 @@ + return 0; + } + +- if (!(c = find_label(oldname, *handle)) ++ if (!(c = iptcc_find_label(oldname, *handle)) + || TC_BUILTIN(oldname, *handle)) { + errno = ENOENT; + return 0; +@@ -1487,15 +1889,8 @@ + return 0; + } + +- /* Need label index: preceeds chain start */ +- labelidx = entry2index(*handle, c->start) - 1; +- labeloff = index2offset(*handle, labelidx); ++ strncpy(c->name, newname, sizeof(IPT_CHAINLABEL)); + +- t = (struct ipt_error_target *) +- GET_TARGET(get_entry(*handle, labeloff)); +- +- memset(t->error, 0, sizeof(t->error)); +- strcpy(t->error, newname); + set_changed(*handle); + + return 1; +@@ -1508,51 +1903,37 @@ + STRUCT_COUNTERS *counters, + TC_HANDLE_T *handle) + { +- unsigned int hook; +- unsigned int policyoff, ctrindex; +- STRUCT_ENTRY *e; +- STRUCT_STANDARD_TARGET *t; ++ struct chain_head *c; + + iptc_fn = TC_SET_POLICY; +- /* Figure out which chain. */ +- hook = TC_BUILTIN(chain, *handle); +- if (hook == 0) { ++ ++ if (!(c = iptcc_find_label(chain, *handle))) { ++ DEBUGP("cannot find chain `%s'\n", chain); + errno = ENOENT; + return 0; +- } else +- hook--; ++ } + +- policyoff = get_chain_end(*handle, (*handle)->info.hook_entry[hook]); +- if (policyoff != (*handle)->info.underflow[hook]) { +- printf("ERROR: Policy for `%s' offset %u != underflow %u\n", +- chain, policyoff, (*handle)->info.underflow[hook]); ++ if (!iptcc_is_builtin(c)) { ++ DEBUGP("cannot set policy of userdefinedchain `%s'\n", chain); ++ errno = ENOENT; + return 0; + } + +- e = get_entry(*handle, policyoff); +- t = (STRUCT_STANDARD_TARGET *)GET_TARGET(e); +- + if (strcmp(policy, LABEL_ACCEPT) == 0) +- t->verdict = -NF_ACCEPT - 1; ++ c->verdict = -NF_ACCEPT - 1; + else if (strcmp(policy, LABEL_DROP) == 0) +- t->verdict = -NF_DROP - 1; ++ c->verdict = -NF_DROP - 1; + else { + errno = EINVAL; + return 0; + } + +- ctrindex = entry2index(*handle, e); +- + if (counters) { + /* set byte and packet counters */ +- memcpy(&e->counters, counters, sizeof(STRUCT_COUNTERS)); +- +- (*handle)->counter_map[ctrindex].maptype +- = COUNTER_MAP_SET; +- ++ memcpy(&c->counters, counters, sizeof(STRUCT_COUNTERS)); ++ c->counter_map.maptype = COUNTER_MAP_SET; + } else { +- (*handle)->counter_map[ctrindex] +- = ((struct counter_map){ COUNTER_MAP_NOMAP, 0 }); ++ c->counter_map.maptype = COUNTER_MAP_NOMAP; + } + + set_changed(*handle); +@@ -1575,31 +1956,100 @@ + answer->bcnt = a->bcnt - b->bcnt; + } + ++ ++static void counters_nomap(STRUCT_COUNTERS_INFO *newcounters, ++ unsigned int index) ++{ ++ newcounters->counters[index] = ((STRUCT_COUNTERS) { 0, 0}); ++ DEBUGP_C("NOMAP => zero\n"); ++} ++ ++static void counters_normal_map(STRUCT_COUNTERS_INFO *newcounters, ++ STRUCT_REPLACE *repl, ++ unsigned int index, ++ unsigned int mappos) ++{ ++ /* Original read: X. ++ * Atomic read on replacement: X + Y. ++ * Currently in kernel: Z. ++ * Want in kernel: X + Y + Z. ++ * => Add in X + Y ++ * => Add in replacement read. ++ */ ++ newcounters->counters[index] = repl->counters[mappos]; ++ DEBUGP_C("NORMAL_MAP => mappos %u \n", mappos); ++} ++ ++static void counters_map_zeroed(STRUCT_COUNTERS_INFO *newcounters, ++ STRUCT_REPLACE *repl, ++ unsigned int index, ++ unsigned int mappos, ++ STRUCT_COUNTERS *counters) ++{ ++ /* Original read: X. ++ * Atomic read on replacement: X + Y. ++ * Currently in kernel: Z. ++ * Want in kernel: Y + Z. ++ * => Add in Y. ++ * => Add in (replacement read - original read). ++ */ ++ subtract_counters(&newcounters->counters[index], ++ &repl->counters[mappos], ++ counters); ++ DEBUGP_C("ZEROED => mappos %u\n", mappos); ++} ++ ++static void counters_map_set(STRUCT_COUNTERS_INFO *newcounters, ++ unsigned int index, ++ STRUCT_COUNTERS *counters) ++{ ++ /* Want to set counter (iptables-restore) */ ++ ++ memcpy(&newcounters->counters[index], counters, ++ sizeof(STRUCT_COUNTERS)); ++ ++ DEBUGP_C("SET\n"); ++} ++ ++ + int + TC_COMMIT(TC_HANDLE_T *handle) + { + /* Replace, then map back the counters. */ + STRUCT_REPLACE *repl; + STRUCT_COUNTERS_INFO *newcounters; +- unsigned int i; +- size_t counterlen +- = sizeof(STRUCT_COUNTERS_INFO) +- + sizeof(STRUCT_COUNTERS) * (*handle)->new_number; ++ struct chain_head *c; ++ int ret; ++ size_t counterlen; ++ int new_number; ++ unsigned int new_size; + ++ iptc_fn = TC_COMMIT; + CHECK(*handle); +-#if 0 +- TC_DUMP_ENTRIES(*handle); +-#endif + + /* Don't commit if nothing changed. */ + if (!(*handle)->changed) + goto finished; + +- repl = malloc(sizeof(*repl) + (*handle)->entries.size); ++ new_number = iptcc_compile_table_prep(*handle, &new_size); ++ if (new_number < 0) { ++ errno = ENOMEM; ++ return 0; ++ } ++ ++ repl = malloc(sizeof(*repl) + new_size); + if (!repl) { + errno = ENOMEM; + return 0; + } ++ memset(repl, 0, sizeof(*repl) + new_size); ++ ++#if 0 ++ TC_DUMP_ENTRIES(*handle); ++#endif ++ ++ counterlen = sizeof(STRUCT_COUNTERS_INFO) ++ + sizeof(STRUCT_COUNTERS) * new_number; + + /* These are the old counters we will get from kernel */ + repl->counters = malloc(sizeof(STRUCT_COUNTERS) +@@ -1609,7 +2059,6 @@ + errno = ENOMEM; + return 0; + } +- + /* These are the counters we're going to put back, later. */ + newcounters = malloc(counterlen); + if (!newcounters) { +@@ -1618,21 +2067,40 @@ + errno = ENOMEM; + return 0; + } ++ memset(newcounters, 0, counterlen); + + strcpy(repl->name, (*handle)->info.name); +- repl->num_entries = (*handle)->new_number; +- repl->size = (*handle)->entries.size; +- memcpy(repl->hook_entry, (*handle)->info.hook_entry, +- sizeof(repl->hook_entry)); +- memcpy(repl->underflow, (*handle)->info.underflow, +- sizeof(repl->underflow)); ++ repl->num_entries = new_number; ++ repl->size = new_size; ++ + repl->num_counters = (*handle)->info.num_entries; + repl->valid_hooks = (*handle)->info.valid_hooks; +- memcpy(repl->entries, (*handle)->entries.entrytable, +- (*handle)->entries.size); ++ ++ DEBUGP("num_entries=%u, size=%u, num_counters=%u\n", ++ repl->num_entries, repl->size, repl->num_counters); ++ ++ ret = iptcc_compile_table(*handle, repl); ++ if (ret < 0) { ++ errno = ret; ++ free(repl->counters); ++ free(repl); ++ return 0; ++ } ++ ++ ++#ifdef IPTC_DEBUG2 ++ { ++ int fd = open("/tmp/libiptc-so_set_replace.blob", ++ O_CREAT|O_WRONLY); ++ if (fd >= 0) { ++ write(fd, repl, sizeof(*repl) + repl->size); ++ close(fd); ++ } ++ } ++#endif + + if (setsockopt(sockfd, TC_IPPROTO, SO_SET_REPLACE, repl, +- sizeof(*repl) + (*handle)->entries.size) < 0) { ++ sizeof(*repl) + repl->size) < 0) { + free(repl->counters); + free(repl); + free(newcounters); +@@ -1641,49 +2109,64 @@ + + /* Put counters back. */ + strcpy(newcounters->name, (*handle)->info.name); +- newcounters->num_counters = (*handle)->new_number; +- for (i = 0; i < (*handle)->new_number; i++) { +- unsigned int mappos = (*handle)->counter_map[i].mappos; +- switch ((*handle)->counter_map[i].maptype) { ++ newcounters->num_counters = new_number; ++ ++ list_for_each_entry(c, &(*handle)->chains, list) { ++ struct rule_head *r; ++ ++ /* Builtin chains have their own counters */ ++ if (iptcc_is_builtin(c)) { ++ DEBUGP("counter for chain-index %u: ", c->foot_index); ++ switch(c->counter_map.maptype) { ++ case COUNTER_MAP_NOMAP: ++ counters_nomap(newcounters, c->foot_index); ++ break; ++ case COUNTER_MAP_NORMAL_MAP: ++ counters_normal_map(newcounters, repl, ++ c->foot_index, ++ c->counter_map.mappos); ++ break; ++ case COUNTER_MAP_ZEROED: ++ counters_map_zeroed(newcounters, repl, ++ c->foot_index, ++ c->counter_map.mappos, ++ &c->counters); ++ break; ++ case COUNTER_MAP_SET: ++ counters_map_set(newcounters, c->foot_index, ++ &c->counters); ++ break; ++ } ++ } ++ ++ list_for_each_entry(r, &c->rules, list) { ++ DEBUGP("counter for index %u: ", r->index); ++ switch (r->counter_map.maptype) { + case COUNTER_MAP_NOMAP: +- newcounters->counters[i] +- = ((STRUCT_COUNTERS){ 0, 0 }); ++ counters_nomap(newcounters, r->index); + break; + + case COUNTER_MAP_NORMAL_MAP: +- /* Original read: X. +- * Atomic read on replacement: X + Y. +- * Currently in kernel: Z. +- * Want in kernel: X + Y + Z. +- * => Add in X + Y +- * => Add in replacement read. +- */ +- newcounters->counters[i] = repl->counters[mappos]; ++ counters_normal_map(newcounters, repl, ++ r->index, ++ r->counter_map.mappos); + break; + + case COUNTER_MAP_ZEROED: +- /* Original read: X. +- * Atomic read on replacement: X + Y. +- * Currently in kernel: Z. +- * Want in kernel: Y + Z. +- * => Add in Y. +- * => Add in (replacement read - original read). +- */ +- subtract_counters(&newcounters->counters[i], +- &repl->counters[mappos], +- &index2entry(*handle, i)->counters); ++ counters_map_zeroed(newcounters, repl, ++ r->index, ++ r->counter_map.mappos, ++ &r->entry->counters); + break; + + case COUNTER_MAP_SET: +- /* Want to set counter (iptables-restore) */ +- +- memcpy(&newcounters->counters[i], +- &index2entry(*handle, i)->counters, +- sizeof(STRUCT_COUNTERS)); +- ++ counters_map_set(newcounters, r->index, ++ &r->entry->counters); + break; + } + } ++ } ++ + + #ifdef KERNEL_64_USERSPACE_32 + { +@@ -1696,10 +2179,21 @@ + "counters alignment incorrect! Mail rusty!\n"); + abort(); + } +- *kernptr = &newcounters->counters; ++ *kernptr = newcounters->counters; + } + #endif /* KERNEL_64_USERSPACE_32 */ + ++#ifdef IPTC_DEBUG2 ++ { ++ int fd = open("/tmp/libiptc-so_set_add_counters.blob", ++ O_CREAT|O_WRONLY); ++ if (fd >= 0) { ++ write(fd, newcounters, counterlen); ++ close(fd); ++ } ++ } ++#endif ++ + if (setsockopt(sockfd, TC_IPPROTO, SO_SET_ADD_COUNTERS, + newcounters, counterlen) < 0) { + free(repl->counters); +@@ -1713,10 +2207,7 @@ + free(newcounters); + + finished: +- if ((*handle)->cache_chain_heads) +- free((*handle)->cache_chain_heads); +- free(*handle); +- *handle = NULL; ++ TC_FREE(handle); + return 1; + } + +diff -Nur ipac-ng-1.31.orig/agents/iptables/libiptc.h ipac-ng-1.31/agents/iptables/libiptc.h +--- ipac-ng-1.31.orig/agents/iptables/libiptc.h 2003-07-06 10:33:17.000000000 +0000 ++++ ipac-ng-1.31/agents/iptables/libiptc.h 2006-01-10 21:01:39.000000000 +0000 +@@ -1,7 +1,3 @@ +-#ifndef NETFILTER_VERSION +-#define NETFILTER_VERSION "1.2.5" +-#endif +- + #ifndef _LIBIPTC_H + #define _LIBIPTC_H + /* Library which manipulates filtering rules. */ +@@ -38,6 +34,9 @@ + /* Take a snapshot of the rules. Returns NULL on error. */ + iptc_handle_t iptc_init(const char *tablename); + ++/* Cleanup after iptc_init(). */ ++void iptc_free(iptc_handle_t *h); ++ + /* Iterator functions to run through the chains. Returns NULL at end. */ + const char *iptc_first_chain(iptc_handle_t *handle); + const char *iptc_next_chain(iptc_handle_t *handle); +diff -Nur ipac-ng-1.31.orig/agents/iptables/linux_list.h ipac-ng-1.31/agents/iptables/linux_list.h +--- ipac-ng-1.31.orig/agents/iptables/linux_list.h 1970-01-01 00:00:00.000000000 +0000 ++++ ipac-ng-1.31/agents/iptables/linux_list.h 2006-01-10 21:01:39.000000000 +0000 +@@ -0,0 +1,723 @@ ++#ifndef _LINUX_LIST_H ++#define _LINUX_LIST_H ++ ++#undef offsetof ++#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ++ ++/** ++ * container_of - cast a member of a structure out to the containing structure ++ * ++ * @ptr: the pointer to the member. ++ * @type: the type of the container struct this is embedded in. ++ * @member: the name of the member within the struct. ++ * ++ */ ++#define container_of(ptr, type, member) ({ \ ++ const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ++ (type *)( (char *)__mptr - offsetof(type,member) );}) ++ ++/* ++ * Check at compile time that something is of a particular type. ++ * Always evaluates to 1 so you may use it easily in comparisons. ++ */ ++#define typecheck(type,x) \ ++({ type __dummy; \ ++ typeof(x) __dummy2; \ ++ (void)(&__dummy == &__dummy2); \ ++ 1; \ ++}) ++ ++#define prefetch(x) 1 ++ ++/* empty define to make this work in userspace -HW */ ++#define smp_wmb() ++ ++/* ++ * These are non-NULL pointers that will result in page faults ++ * under normal circumstances, used to verify that nobody uses ++ * non-initialized list entries. ++ */ ++#define LIST_POISON1 ((void *) 0x00100100) ++#define LIST_POISON2 ((void *) 0x00200200) ++ ++/* ++ * Simple doubly linked list implementation. ++ * ++ * Some of the internal functions ("__xxx") are useful when ++ * manipulating whole lists rather than single entries, as ++ * sometimes we already know the next/prev entries and we can ++ * generate better code by using them directly rather than ++ * using the generic single-entry routines. ++ */ ++ ++struct list_head { ++ struct list_head *next, *prev; ++}; ++ ++#define LIST_HEAD_INIT(name) { &(name), &(name) } ++ ++#define LIST_HEAD(name) \ ++ struct list_head name = LIST_HEAD_INIT(name) ++ ++#define INIT_LIST_HEAD(ptr) do { \ ++ (ptr)->next = (ptr); (ptr)->prev = (ptr); \ ++} while (0) ++ ++/* ++ * Insert a new entry between two known consecutive entries. ++ * ++ * This is only for internal list manipulation where we know ++ * the prev/next entries already! ++ */ ++static inline void __list_add(struct list_head *new, ++ struct list_head *prev, ++ struct list_head *next) ++{ ++ next->prev = new; ++ new->next = next; ++ new->prev = prev; ++ prev->next = new; ++} ++ ++/** ++ * list_add - add a new entry ++ * @new: new entry to be added ++ * @head: list head to add it after ++ * ++ * Insert a new entry after the specified head. ++ * This is good for implementing stacks. ++ */ ++static inline void list_add(struct list_head *new, struct list_head *head) ++{ ++ __list_add(new, head, head->next); ++} ++ ++/** ++ * list_add_tail - add a new entry ++ * @new: new entry to be added ++ * @head: list head to add it before ++ * ++ * Insert a new entry before the specified head. ++ * This is useful for implementing queues. ++ */ ++static inline void list_add_tail(struct list_head *new, struct list_head *head) ++{ ++ __list_add(new, head->prev, head); ++} ++ ++/* ++ * Insert a new entry between two known consecutive entries. ++ * ++ * This is only for internal list manipulation where we know ++ * the prev/next entries already! ++ */ ++static inline void __list_add_rcu(struct list_head * new, ++ struct list_head * prev, struct list_head * next) ++{ ++ new->next = next; ++ new->prev = prev; ++ smp_wmb(); ++ next->prev = new; ++ prev->next = new; ++} ++ ++/** ++ * list_add_rcu - add a new entry to rcu-protected list ++ * @new: new entry to be added ++ * @head: list head to add it after ++ * ++ * Insert a new entry after the specified head. ++ * This is good for implementing stacks. ++ * ++ * The caller must take whatever precautions are necessary ++ * (such as holding appropriate locks) to avoid racing ++ * with another list-mutation primitive, such as list_add_rcu() ++ * or list_del_rcu(), running on this same list. ++ * However, it is perfectly legal to run concurrently with ++ * the _rcu list-traversal primitives, such as ++ * list_for_each_entry_rcu(). ++ */ ++static inline void list_add_rcu(struct list_head *new, struct list_head *head) ++{ ++ __list_add_rcu(new, head, head->next); ++} ++ ++/** ++ * list_add_tail_rcu - add a new entry to rcu-protected list ++ * @new: new entry to be added ++ * @head: list head to add it before ++ * ++ * Insert a new entry before the specified head. ++ * This is useful for implementing queues. ++ * ++ * The caller must take whatever precautions are necessary ++ * (such as holding appropriate locks) to avoid racing ++ * with another list-mutation primitive, such as list_add_tail_rcu() ++ * or list_del_rcu(), running on this same list. ++ * However, it is perfectly legal to run concurrently with ++ * the _rcu list-traversal primitives, such as ++ * list_for_each_entry_rcu(). ++ */ ++static inline void list_add_tail_rcu(struct list_head *new, ++ struct list_head *head) ++{ ++ __list_add_rcu(new, head->prev, head); ++} ++ ++/* ++ * Delete a list entry by making the prev/next entries ++ * point to each other. ++ * ++ * This is only for internal list manipulation where we know ++ * the prev/next entries already! ++ */ ++static inline void __list_del(struct list_head * prev, struct list_head * next) ++{ ++ next->prev = prev; ++ prev->next = next; ++} ++ ++/** ++ * list_del - deletes entry from list. ++ * @entry: the element to delete from the list. ++ * Note: list_empty on entry does not return true after this, the entry is ++ * in an undefined state. ++ */ ++static inline void list_del(struct list_head *entry) ++{ ++ __list_del(entry->prev, entry->next); ++ entry->next = LIST_POISON1; ++ entry->prev = LIST_POISON2; ++} ++ ++/** ++ * list_del_rcu - deletes entry from list without re-initialization ++ * @entry: the element to delete from the list. ++ * ++ * Note: list_empty on entry does not return true after this, ++ * the entry is in an undefined state. It is useful for RCU based ++ * lockfree traversal. ++ * ++ * In particular, it means that we can not poison the forward ++ * pointers that may still be used for walking the list. ++ * ++ * The caller must take whatever precautions are necessary ++ * (such as holding appropriate locks) to avoid racing ++ * with another list-mutation primitive, such as list_del_rcu() ++ * or list_add_rcu(), running on this same list. ++ * However, it is perfectly legal to run concurrently with ++ * the _rcu list-traversal primitives, such as ++ * list_for_each_entry_rcu(). ++ * ++ * Note that the caller is not permitted to immediately free ++ * the newly deleted entry. Instead, either synchronize_kernel() ++ * or call_rcu() must be used to defer freeing until an RCU ++ * grace period has elapsed. ++ */ ++static inline void list_del_rcu(struct list_head *entry) ++{ ++ __list_del(entry->prev, entry->next); ++ entry->prev = LIST_POISON2; ++} ++ ++/** ++ * list_del_init - deletes entry from list and reinitialize it. ++ * @entry: the element to delete from the list. ++ */ ++static inline void list_del_init(struct list_head *entry) ++{ ++ __list_del(entry->prev, entry->next); ++ INIT_LIST_HEAD(entry); ++} ++ ++/** ++ * list_move - delete from one list and add as another's head ++ * @list: the entry to move ++ * @head: the head that will precede our entry ++ */ ++static inline void list_move(struct list_head *list, struct list_head *head) ++{ ++ __list_del(list->prev, list->next); ++ list_add(list, head); ++} ++ ++/** ++ * list_move_tail - delete from one list and add as another's tail ++ * @list: the entry to move ++ * @head: the head that will follow our entry ++ */ ++static inline void list_move_tail(struct list_head *list, ++ struct list_head *head) ++{ ++ __list_del(list->prev, list->next); ++ list_add_tail(list, head); ++} ++ ++/** ++ * list_empty - tests whether a list is empty ++ * @head: the list to test. ++ */ ++static inline int list_empty(const struct list_head *head) ++{ ++ return head->next == head; ++} ++ ++/** ++ * list_empty_careful - tests whether a list is ++ * empty _and_ checks that no other CPU might be ++ * in the process of still modifying either member ++ * ++ * NOTE: using list_empty_careful() without synchronization ++ * can only be safe if the only activity that can happen ++ * to the list entry is list_del_init(). Eg. it cannot be used ++ * if another CPU could re-list_add() it. ++ * ++ * @head: the list to test. ++ */ ++static inline int list_empty_careful(const struct list_head *head) ++{ ++ struct list_head *next = head->next; ++ return (next == head) && (next == head->prev); ++} ++ ++static inline void __list_splice(struct list_head *list, ++ struct list_head *head) ++{ ++ struct list_head *first = list->next; ++ struct list_head *last = list->prev; ++ struct list_head *at = head->next; ++ ++ first->prev = head; ++ head->next = first; ++ ++ last->next = at; ++ at->prev = last; ++} ++ ++/** ++ * list_splice - join two lists ++ * @list: the new list to add. ++ * @head: the place to add it in the first list. ++ */ ++static inline void list_splice(struct list_head *list, struct list_head *head) ++{ ++ if (!list_empty(list)) ++ __list_splice(list, head); ++} ++ ++/** ++ * list_splice_init - join two lists and reinitialise the emptied list. ++ * @list: the new list to add. ++ * @head: the place to add it in the first list. ++ * ++ * The list at @list is reinitialised ++ */ ++static inline void list_splice_init(struct list_head *list, ++ struct list_head *head) ++{ ++ if (!list_empty(list)) { ++ __list_splice(list, head); ++ INIT_LIST_HEAD(list); ++ } ++} ++ ++/** ++ * list_entry - get the struct for this entry ++ * @ptr: the &struct list_head pointer. ++ * @type: the type of the struct this is embedded in. ++ * @member: the name of the list_struct within the struct. ++ */ ++#define list_entry(ptr, type, member) \ ++ container_of(ptr, type, member) ++ ++/** ++ * list_for_each - iterate over a list ++ * @pos: the &struct list_head to use as a loop counter. ++ * @head: the head for your list. ++ */ ++#define list_for_each(pos, head) \ ++ for (pos = (head)->next, prefetch(pos->next); pos != (head); \ ++ pos = pos->next, prefetch(pos->next)) ++ ++/** ++ * __list_for_each - iterate over a list ++ * @pos: the &struct list_head to use as a loop counter. ++ * @head: the head for your list. ++ * ++ * This variant differs from list_for_each() in that it's the ++ * simplest possible list iteration code, no prefetching is done. ++ * Use this for code that knows the list to be very short (empty ++ * or 1 entry) most of the time. ++ */ ++#define __list_for_each(pos, head) \ ++ for (pos = (head)->next; pos != (head); pos = pos->next) ++ ++/** ++ * list_for_each_prev - iterate over a list backwards ++ * @pos: the &struct list_head to use as a loop counter. ++ * @head: the head for your list. ++ */ ++#define list_for_each_prev(pos, head) \ ++ for (pos = (head)->prev, prefetch(pos->prev); pos != (head); \ ++ pos = pos->prev, prefetch(pos->prev)) ++ ++/** ++ * list_for_each_safe - iterate over a list safe against removal of list entry ++ * @pos: the &struct list_head to use as a loop counter. ++ * @n: another &struct list_head to use as temporary storage ++ * @head: the head for your list. ++ */ ++#define list_for_each_safe(pos, n, head) \ ++ for (pos = (head)->next, n = pos->next; pos != (head); \ ++ pos = n, n = pos->next) ++ ++/** ++ * list_for_each_entry - iterate over list of given type ++ * @pos: the type * to use as a loop counter. ++ * @head: the head for your list. ++ * @member: the name of the list_struct within the struct. ++ */ ++#define list_for_each_entry(pos, head, member) \ ++ for (pos = list_entry((head)->next, typeof(*pos), member), \ ++ prefetch(pos->member.next); \ ++ &pos->member != (head); \ ++ pos = list_entry(pos->member.next, typeof(*pos), member), \ ++ prefetch(pos->member.next)) ++ ++/** ++ * list_for_each_entry_reverse - iterate backwards over list of given type. ++ * @pos: the type * to use as a loop counter. ++ * @head: the head for your list. ++ * @member: the name of the list_struct within the struct. ++ */ ++#define list_for_each_entry_reverse(pos, head, member) \ ++ for (pos = list_entry((head)->prev, typeof(*pos), member), \ ++ prefetch(pos->member.prev); \ ++ &pos->member != (head); \ ++ pos = list_entry(pos->member.prev, typeof(*pos), member), \ ++ prefetch(pos->member.prev)) ++ ++/** ++ * list_prepare_entry - prepare a pos entry for use as a start point in ++ * list_for_each_entry_continue ++ * @pos: the type * to use as a start point ++ * @head: the head of the list ++ * @member: the name of the list_struct within the struct. ++ */ ++#define list_prepare_entry(pos, head, member) \ ++ ((pos) ? : list_entry(head, typeof(*pos), member)) ++ ++/** ++ * list_for_each_entry_continue - iterate over list of given type ++ * continuing after existing point ++ * @pos: the type * to use as a loop counter. ++ * @head: the head for your list. ++ * @member: the name of the list_struct within the struct. ++ */ ++#define list_for_each_entry_continue(pos, head, member) \ ++ for (pos = list_entry(pos->member.next, typeof(*pos), member), \ ++ prefetch(pos->member.next); \ ++ &pos->member != (head); \ ++ pos = list_entry(pos->member.next, typeof(*pos), member), \ ++ prefetch(pos->member.next)) ++ ++/** ++ * list_for_each_entry_safe - iterate over list of given type safe against removal of list entry ++ * @pos: the type * to use as a loop counter. ++ * @n: another type * to use as temporary storage ++ * @head: the head for your list. ++ * @member: the name of the list_struct within the struct. ++ */ ++#define list_for_each_entry_safe(pos, n, head, member) \ ++ for (pos = list_entry((head)->next, typeof(*pos), member), \ ++ n = list_entry(pos->member.next, typeof(*pos), member); \ ++ &pos->member != (head); \ ++ pos = n, n = list_entry(n->member.next, typeof(*n), member)) ++ ++/** ++ * list_for_each_rcu - iterate over an rcu-protected list ++ * @pos: the &struct list_head to use as a loop counter. ++ * @head: the head for your list. ++ * ++ * This list-traversal primitive may safely run concurrently with ++ * the _rcu list-mutation primitives such as list_add_rcu() ++ * as long as the traversal is guarded by rcu_read_lock(). ++ */ ++#define list_for_each_rcu(pos, head) \ ++ for (pos = (head)->next, prefetch(pos->next); pos != (head); \ ++ pos = pos->next, ({ smp_read_barrier_depends(); 0;}), prefetch(pos->next)) ++ ++#define __list_for_each_rcu(pos, head) \ ++ for (pos = (head)->next; pos != (head); \ ++ pos = pos->next, ({ smp_read_barrier_depends(); 0;})) ++ ++/** ++ * list_for_each_safe_rcu - iterate over an rcu-protected list safe ++ * against removal of list entry ++ * @pos: the &struct list_head to use as a loop counter. ++ * @n: another &struct list_head to use as temporary storage ++ * @head: the head for your list. ++ * ++ * This list-traversal primitive may safely run concurrently with ++ * the _rcu list-mutation primitives such as list_add_rcu() ++ * as long as the traversal is guarded by rcu_read_lock(). ++ */ ++#define list_for_each_safe_rcu(pos, n, head) \ ++ for (pos = (head)->next, n = pos->next; pos != (head); \ ++ pos = n, ({ smp_read_barrier_depends(); 0;}), n = pos->next) ++ ++/** ++ * list_for_each_entry_rcu - iterate over rcu list of given type ++ * @pos: the type * to use as a loop counter. ++ * @head: the head for your list. ++ * @member: the name of the list_struct within the struct. ++ * ++ * This list-traversal primitive may safely run concurrently with ++ * the _rcu list-mutation primitives such as list_add_rcu() ++ * as long as the traversal is guarded by rcu_read_lock(). ++ */ ++#define list_for_each_entry_rcu(pos, head, member) \ ++ for (pos = list_entry((head)->next, typeof(*pos), member), \ ++ prefetch(pos->member.next); \ ++ &pos->member != (head); \ ++ pos = list_entry(pos->member.next, typeof(*pos), member), \ ++ ({ smp_read_barrier_depends(); 0;}), \ ++ prefetch(pos->member.next)) ++ ++ ++/** ++ * list_for_each_continue_rcu - iterate over an rcu-protected list ++ * continuing after existing point. ++ * @pos: the &struct list_head to use as a loop counter. ++ * @head: the head for your list. ++ * ++ * This list-traversal primitive may safely run concurrently with ++ * the _rcu list-mutation primitives such as list_add_rcu() ++ * as long as the traversal is guarded by rcu_read_lock(). ++ */ ++#define list_for_each_continue_rcu(pos, head) \ ++ for ((pos) = (pos)->next, prefetch((pos)->next); (pos) != (head); \ ++ (pos) = (pos)->next, ({ smp_read_barrier_depends(); 0;}), prefetch((pos)->next)) ++ ++/* ++ * Double linked lists with a single pointer list head. ++ * Mostly useful for hash tables where the two pointer list head is ++ * too wasteful. ++ * You lose the ability to access the tail in O(1). ++ */ ++ ++struct hlist_head { ++ struct hlist_node *first; ++}; ++ ++struct hlist_node { ++ struct hlist_node *next, **pprev; ++}; ++ ++#define HLIST_HEAD_INIT { .first = NULL } ++#define HLIST_HEAD(name) struct hlist_head name = { .first = NULL } ++#define INIT_HLIST_HEAD(ptr) ((ptr)->first = NULL) ++#define INIT_HLIST_NODE(ptr) ((ptr)->next = NULL, (ptr)->pprev = NULL) ++ ++static inline int hlist_unhashed(const struct hlist_node *h) ++{ ++ return !h->pprev; ++} ++ ++static inline int hlist_empty(const struct hlist_head *h) ++{ ++ return !h->first; ++} ++ ++static inline void __hlist_del(struct hlist_node *n) ++{ ++ struct hlist_node *next = n->next; ++ struct hlist_node **pprev = n->pprev; ++ *pprev = next; ++ if (next) ++ next->pprev = pprev; ++} ++ ++static inline void hlist_del(struct hlist_node *n) ++{ ++ __hlist_del(n); ++ n->next = LIST_POISON1; ++ n->pprev = LIST_POISON2; ++} ++ ++/** ++ * hlist_del_rcu - deletes entry from hash list without re-initialization ++ * @n: the element to delete from the hash list. ++ * ++ * Note: list_unhashed() on entry does not return true after this, ++ * the entry is in an undefined state. It is useful for RCU based ++ * lockfree traversal. ++ * ++ * In particular, it means that we can not poison the forward ++ * pointers that may still be used for walking the hash list. ++ * ++ * The caller must take whatever precautions are necessary ++ * (such as holding appropriate locks) to avoid racing ++ * with another list-mutation primitive, such as hlist_add_head_rcu() ++ * or hlist_del_rcu(), running on this same list. ++ * However, it is perfectly legal to run concurrently with ++ * the _rcu list-traversal primitives, such as ++ * hlist_for_each_entry(). ++ */ ++static inline void hlist_del_rcu(struct hlist_node *n) ++{ ++ __hlist_del(n); ++ n->pprev = LIST_POISON2; ++} ++ ++static inline void hlist_del_init(struct hlist_node *n) ++{ ++ if (n->pprev) { ++ __hlist_del(n); ++ INIT_HLIST_NODE(n); ++ } ++} ++ ++#define hlist_del_rcu_init hlist_del_init ++ ++static inline void hlist_add_head(struct hlist_node *n, struct hlist_head *h) ++{ ++ struct hlist_node *first = h->first; ++ n->next = first; ++ if (first) ++ first->pprev = &n->next; ++ h->first = n; ++ n->pprev = &h->first; ++} ++ ++ ++/** ++ * hlist_add_head_rcu - adds the specified element to the specified hlist, ++ * while permitting racing traversals. ++ * @n: the element to add to the hash list. ++ * @h: the list to add to. ++ * ++ * The caller must take whatever precautions are necessary ++ * (such as holding appropriate locks) to avoid racing ++ * with another list-mutation primitive, such as hlist_add_head_rcu() ++ * or hlist_del_rcu(), running on this same list. ++ * However, it is perfectly legal to run concurrently with ++ * the _rcu list-traversal primitives, such as ++ * hlist_for_each_entry(), but only if smp_read_barrier_depends() ++ * is used to prevent memory-consistency problems on Alpha CPUs. ++ * Regardless of the type of CPU, the list-traversal primitive ++ * must be guarded by rcu_read_lock(). ++ * ++ * OK, so why don't we have an hlist_for_each_entry_rcu()??? ++ */ ++static inline void hlist_add_head_rcu(struct hlist_node *n, ++ struct hlist_head *h) ++{ ++ struct hlist_node *first = h->first; ++ n->next = first; ++ n->pprev = &h->first; ++ smp_wmb(); ++ if (first) ++ first->pprev = &n->next; ++ h->first = n; ++} ++ ++/* next must be != NULL */ ++static inline void hlist_add_before(struct hlist_node *n, ++ struct hlist_node *next) ++{ ++ n->pprev = next->pprev; ++ n->next = next; ++ next->pprev = &n->next; ++ *(n->pprev) = n; ++} ++ ++static inline void hlist_add_after(struct hlist_node *n, ++ struct hlist_node *next) ++{ ++ next->next = n->next; ++ n->next = next; ++ next->pprev = &n->next; ++ ++ if(next->next) ++ next->next->pprev = &next->next; ++} ++ ++#define hlist_entry(ptr, type, member) container_of(ptr,type,member) ++ ++#define hlist_for_each(pos, head) \ ++ for (pos = (head)->first; pos && ({ prefetch(pos->next); 1; }); \ ++ pos = pos->next) ++ ++#define hlist_for_each_safe(pos, n, head) \ ++ for (pos = (head)->first; pos && ({ n = pos->next; 1; }); \ ++ pos = n) ++ ++/** ++ * hlist_for_each_entry - iterate over list of given type ++ * @tpos: the type * to use as a loop counter. ++ * @pos: the &struct hlist_node to use as a loop counter. ++ * @head: the head for your list. ++ * @member: the name of the hlist_node within the struct. ++ */ ++#define hlist_for_each_entry(tpos, pos, head, member) \ ++ for (pos = (head)->first; \ ++ pos && ({ prefetch(pos->next); 1;}) && \ ++ ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \ ++ pos = pos->next) ++ ++/** ++ * hlist_for_each_entry_continue - iterate over a hlist continuing after existing point ++ * @tpos: the type * to use as a loop counter. ++ * @pos: the &struct hlist_node to use as a loop counter. ++ * @member: the name of the hlist_node within the struct. ++ */ ++#define hlist_for_each_entry_continue(tpos, pos, member) \ ++ for (pos = (pos)->next; \ ++ pos && ({ prefetch(pos->next); 1;}) && \ ++ ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \ ++ pos = pos->next) ++ ++/** ++ * hlist_for_each_entry_from - iterate over a hlist continuing from existing point ++ * @tpos: the type * to use as a loop counter. ++ * @pos: the &struct hlist_node to use as a loop counter. ++ * @member: the name of the hlist_node within the struct. ++ */ ++#define hlist_for_each_entry_from(tpos, pos, member) \ ++ for (; pos && ({ prefetch(pos->next); 1;}) && \ ++ ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \ ++ pos = pos->next) ++ ++/** ++ * hlist_for_each_entry_safe - iterate over list of given type safe against removal of list entry ++ * @tpos: the type * to use as a loop counter. ++ * @pos: the &struct hlist_node to use as a loop counter. ++ * @n: another &struct hlist_node to use as temporary storage ++ * @head: the head for your list. ++ * @member: the name of the hlist_node within the struct. ++ */ ++#define hlist_for_each_entry_safe(tpos, pos, n, head, member) \ ++ for (pos = (head)->first; \ ++ pos && ({ n = pos->next; 1; }) && \ ++ ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \ ++ pos = n) ++ ++/** ++ * hlist_for_each_entry_rcu - iterate over rcu list of given type ++ * @pos: the type * to use as a loop counter. ++ * @pos: the &struct hlist_node to use as a loop counter. ++ * @head: the head for your list. ++ * @member: the name of the hlist_node within the struct. ++ * ++ * This list-traversal primitive may safely run concurrently with ++ * the _rcu list-mutation primitives such as hlist_add_rcu() ++ * as long as the traversal is guarded by rcu_read_lock(). ++ */ ++#define hlist_for_each_entry_rcu(tpos, pos, head, member) \ ++ for (pos = (head)->first; \ ++ pos && ({ prefetch(pos->next); 1;}) && \ ++ ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \ ++ pos = pos->next, ({ smp_read_barrier_depends(); 0; }) ) ++ ++#endif