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 5e4e43c224..4b13b1e66c 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 65042b770d..0000000000 --- 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 36bbaf0ded..8384253505 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 + +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) -{ +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 zc-nLKbhEHbhPC6mMcI+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<#KmmaO7~26u%NB|hrZn0JFkL}%NJq;7u~#m7A+mo$#{T0EQaSj6Vri^csR zESgUyIEN)Zndlysx^RhTs7B?{$^KD{OQ(bET-(`)9H~JifJ=qvjUgR zh{|bvHY+pl;j`HV$0XIoV{#nT=a$`D`FvhY*~91a>xvj(ENBt)S|Q${w(7;A9Q`wjptO2#IL$&|_ literal 0 Hc-jL100001 diff --git a/html/html/images/boxbottom1.png b/html/html/images/boxbottom1.png index ac30c96579d7ff0492462cca7506fb5edf28b199..58d269c3064c24cc664255ef57b9ad1630c3b50a 100644 GIT binary patch literal 340 zc-rd>@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQwj^(N7X~o+>AbrhNO2Z;L>4nJ za0`JjZ|bo16_-LF!W%cT4GYYCgD0s(_TOF5@3k^m=J=wmZY}~7|0kP& f5ZuA8Q}BZ+STCsSjrxgdP~dpF`njxgN@xNAj@XD! literal 355 zc-jGD0i6DcP)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 zc-m`YtePO6EX={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 zc-rd>@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQwj^(N7X~o+>AbrhNO2Z;L>4nJ za0`Jj33c zWbEW{2t5;aFsX+@+^aR~_BXB#){z{Ib3R9lo~h<9V7qbknaz3E?7tfi?4D%#oWbvV z``VSi_UT8xo<6@~bLskB>!jUiyV=j$HZ{E^fsKd)1ewu7yRy5cV=h&)~WT-G@yGywp_(u+p` literal 294 zc-rd>@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 zc-rd>@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>^5k8L@N?(olHy`uVBq!ia0vp^JV4CI!2~2zJ8$FxDb50q$YKTtzQZ8Qcszea3Q$nZ z)5S5QVovgo%FkD)YWwTYsW13-W$tA4JX!m)@N?(olHy`uVBq!ia0vp^!a&T(!3HF4{HDeLDb50q$YP-Ubs*lrm@y?y0w~B{ z;_2(keub4sT*9F0+08(pkf^7NV@SoV@N?(olHy`uVBq!ia0vp^+(698!2~4RLl27sDb50q$YKTtzQZ8Qcszea3Q$nl z)5S5QVovgp|Ns9ht86HJd{Ov#{ydw)*I!mzKR<83qv)w7!%Gtxfx0(4f`Q5zJYD@< J);T3K0RUUwBq0C* diff --git a/html/html/images/boxtop1.png b/html/html/images/boxtop1.png index 1e41b24241b8692996abf76821db23ad852ca5a9..08ab7a3ac2a011b05d901d01d0dbe5dd5d4aaccd 100644 GIT binary patch literal 331 zc-rd>@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQwj^(N7X~o+>AbrhNO2Z;L>4nJ za0`Jj=2H%t2A+~M z<`0~6T%SDI8~$8oRoAMdFr~#?&DsSrZkHJ*-*d2AcS7}8NAbIdYbqI4A80SV^0oH= zroEMHohQoAMTUM|8#-g}g55X5G8$v2|25`u-Y&+J@o(?(DVNkT3f(W8{JoZPFQ>;a zOf)NR?V7DWZ#u5KdDF7RAy9RN literal 1307 zc-l2oYfw{16yAFiVh9N&fRccX7knXYF~J}KL_@?7p~Q$d)+xkLZH@Ry#s^?X?2QQ; z9RweY(iRko2i8t;6z_osQAWh1$EpU^#H8L&|fU0cG#M)EP z$2N=O;{Z_42LRUtFg^w6J^=P{0C30w2+IS&OL=nBZ4rc?SRECakp76*+~Eu`DnU9r z$M#6ARllM_m@I3{slOq)#t1&2QaM{5M3B(>?82}~M%7?a-FJXn$Wr?# zdUuu;(LKyzn-Xu1^as$BwCe7=?adp`Ce}?7g~IFDU{J10N|llBNT{mh2Xieu*6lv0#$#XWf-X z%?ztvLTT3!=>(oehq$FKwlrKijuTkwkCPwTOO@xA?e|c073t5oesMirH8no>a3DKE zGd@;zX<>F!_<`Z~+8&`iF950re3vT$nZR}HpSA2-vxWqz&z%IBOQv^s^3-}R95^CL1w zJvm!o)b6n$Th+wqSzY)L;|RcTCN4QN?@;U+c0qXB9Hyr!eT9asc%7-AunJqWQL_Mi zH@Uz56p`a#13j9DXV1Q&0iM^l`g6U=(`xg&@v5`|Kg*p`$uo3*kaR3QC6N9pyIJQ> z;^bPNMC_j=am?(8X}hMLwVTp2qFA3v^QkS$g{JW?)9nu#ZGwA*Oc4R%PM%W2dO9&P zCdwJ!0st?1#I5{LD>(y=}g;Kh*g9ydGdRte?0#V^2YE&(YeD+Ey`RF@;Sm~ zyTRU6z74K*l=X7i3b%j}L9#Yqji7Wv;l)mhrFVwBSQ&4J?5K~ndy)UPbG5WAQ2>by z5e`wAz0-5|LG^S2PF`BGw&OlP49UZ5FS2NKfej$nmiqR2Kipe<+71w6$a~~|HB|uY zwrR597JR2x{(Qy`1MqP%bzb-s!hO$b>3y8QgG!HQk*@XY?BWP`b8SM4RN3%ZWc)>^fk>@Vas9Gyzb@i|{$yWog+$*}qq*|5J zUq@812g@=8WW~;59yG|Aa@xF;SN;-Z2tX0h;{3!e*6>ZxVa&v~@L5I(|FgC+g;y!} otyg@`XJBB=@&Et; diff --git a/html/html/images/boxtop2.png b/html/html/images/boxtop2.png index 01ebb03de27c93349273f86eac112ac6726de18e..a1f3f8e86738011c001dfa63ce1310293ae328ee 100644 GIT binary patch delta 102 zc-m`bE}tNtAk4wUz`$@X^MfCd;w3BqTJBGGy*$mD3EK7YtOv;OXk;vd$@?2>@U} B9SZ;e literal 387 zc-rd>@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;#*zjTlh6t;kYUbx_ R_X7ig!PC{xWt~$(698c9WOD!j 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 zc-nLKbhEHb6k!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)9FxEORm98jDvu?iAr= zX`L{sLswi~v}O9tc5NLUbs>(X`3o1facF7^tC}isty;5gLyLyGx~wX{o&5HlyZ5$= z3JLAzvk*9PjQ@nd;iFoP5)!8_UcTDOBFoCDrl!bs`|kaREi(GnN(|CXFJ8TARc6wc zw3K7y`uz3#&t_!>51xib|M&xqtp6JY7Cdb4u3?b0`eMGKsh62s;>YHWz{QGkwhc!X da0ICwb+Xc#6EdMlbs>il&p{s-<3I%lYXH1VtL*>) literal 107 zc-nLKbhEHb6k!lynE0RJz<~qTuV1gNtz}?fQ2fcl2&5QvKmNmxh3A`!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 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 literal 0 Hc-jL100001 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 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 Xf|naAB^;fN^lIhC>eFB~1?&F>Re!qk literal 0 Hc-jL100001 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 zc-r05iCdC)0KoAd9z?BdQ$UUvcn=ZKLZ{i&o{kkBh{uX&nAOrGabejWD=VqxV=F2% zoutc5Q!{O8xq?(A&BR1hQZu#k=z6*oP`iB8N?H3i_I;l3pYRcif|mUtT>{A9jSc`D zumg@?#{&TD@i+&tg-G4GkeKM=nnWflT<8agt_Ml3e>l^Q5a}rtYPvJ?lnc!#2zZHr zuMixkP>xX;nI!u6p&*OG@D0bQsEpGzW}YjQ=ZfT0plpbBj*1r07#GR#876X`&Mc)M zWmM=qgq6|IOLXi43%N!`{$^m;X=pjqt%3ztu-Iw{RYTlxQLu)IX_&k^I&u}|RI%LZ z=$v{6T8*&l8Qf~bLyN)pCES?tQ+=ks+AWj49QRuy-5oH^h+(y)+jfLqk zcRl9W3iDcFemlau!{#)x7d5+c+E6bO#x`LdcilWQBO~&~>$e{YPpkp^Zh&1{u)hlI zt_8_8V2=)@Q~`w+B;B+-Pz(0eIUdy6|9%sHsBUgb{rnRR#I)Pwv_|$xJtw`1doMF1 zqnVd!@XWd6nPps@-R$?5VbK}mvQl;S*|z0f1^Kyc{sl%so+&WDLs(?`Nqys*rb>Oe zJGM)6y|QncNvpf@AW_$wSoLsM?So|PKvGMqq4UML&Q~So&iljN9iv?xmad++9lc}s zx~%v5dR~?HywUWHRE_ozJ~B5AS#CYHHas@B4~*-cSWHjGZa=rSJRk3TJ=SL)wvJea zU%u}ie*4I39y41<#?8a8KlF@R#z)@wTRsj>e3+d2G&%iw>eH9$*_n^iHk)nc^B3D^ z+l+12_Qm#p44EbQ?~aou#mV6P@kw%6B9DWGqVRQK(N_=PKO}%K3+f2aBc&h}XKzQK zz{OJkc~MQ@76hwH0=+1{2av4QdON%mZ9{67-hU2G+9coHrYSS!cw_j>-WoeXHY_L( zMpDBw#Z|&)x28F zp$rXjqW_4`qWUgfu<>G2UZKvEyE+qEA$L@-NhhmNA;Eh>llxCpr40UarSGp^PYn(U zL&M#%txlV@nULsy_7!pEzKnsuBa^2dn!=2PV1Z1ia?{Egs*+L>@VT0?iGOoao$I~L z%2)2pY0PmCxHMF;Hz1A34G9^nUeUsj>TNg9KG@nRNmX&y<~(bf2xuqrBq6>AWsoKB zUEqh))RZf$6h56I{h*5^=5RD=ZO&4NzopN)AU;rW_-VZAF*}t+5Qr&63318+r`RiO zSzNBt7mE`z=1}?NmB#g3))SK*h8W}`h@XEP&yS8*nxYe~3cry{OTP=sdeKjE``ICQBTNe0`uwGf{Y%GC~v?U1)4_VIpBS)})=_w1^DlVQ$&c)AT1OVIu zUI4&{O$(*6gye}$#Tj!$3T0UH%HaN}_>Xg;-7=*(FH$sX?5$`xMzUUSChxGSTix>$ IR)gjL0x>?+O#lD@ literal 0 Hc-jL100001 diff --git a/html/html/images/logo_ipfire.gif b/html/html/images/logo_ipfire.gif new file mode 100644 index 0000000000000000000000000000000000000000..86fdba3588deb4d76557e083c6fc9726b562e889 GIT binary patch literal 3060 zc-jH<3k&o|Nk%w1VSxZ30O$SyW1|6IrvP531!ScJV5k6QrT}570A;2IXQu#SssL!H z0A#BGX{i8ZtN?1N0A{TKY^wlgt^jSU0BElPZmj@mumo?e0&B4VajyVyuLW(g0CKPZ zaj*w&vjB6k0CKSkbg}?%wE%Fo0Cuwgakl_>v;cCr0C=_lbGZP1v;cOs5qY-&bh-k3 zvl4o^0Cu|td$|ODwibH18F;-5eY**OxEX%8C4aakf4vTZxg34G9)P(gfxZ!jybpxC z9)iCUg1ah*y%K=FA%(mkgTNJry&;Le7KObmhrT0R$1Rh@HkHLJk;Fcb#736JE|JAYmcvGt$2peBLYu}xl*me+ z$UB|LL!QY*pvpa<$5WflN1V!4pUY03%vYh!P@~RDqsv~S&r+z(QmM{Uq|sES&S9g` zTdL1grP5WY&s(O`R;|ursnTSt&v2;HYpl~=vCeU;)Ml^IY^~L2uGVO?)M&BPZm-mI zvej>}*lM-bX|dLJx7ByH)qbx7>WS+=Ic`d%fCxyV`=n*?hj+eZAa-zTSny+=am0lE2@E#odR)-HpcH zh{55A$J~>@;g7=Kl)&Gb#o&*`;FihWmB-$k$l;2{;gH7Sm&D_r$>WmA;hx9inabjy z&ElEOcZXYx7+Kz+3UmC?!MaX#oq0|+wR8U?8e{k!QJr4s0KH7Ka`}*_CX>@2HRA^-&M@dak04x9i004miAOHXe{r~|897wRB z!Gi)707$@4K!Sw|5(rQbk)eVB3jqiq$S^w}s}doY zv}qD)!lxizLe1Ks;?9jOA5Nr5x31m0ct0wDp!I-QzJD1AhOknr0tpJJ?&T}^V_UHe z{w9XN7{W)f3@CP`D3+pDs*I;ne4v?ujoVPbQQ#z(qda>|?`uIHEV+j+V8MOnmwL zqs=@JJW$O)NNy*}KK$$>pM3x1!_O8HR2hLjQZ^anKL6aKhXn38Ip20UoOq8Y39=`_ z0S(|Y9|T;Sh@?K-)tQT!HaxIhF#0gL9c2+jAVHuJR8VN3gBnUGp@t4h=%7^&+CUWd z{KHQokXHE*llw@p!8T9^ioq04q9_3d5)2}zBZ3NArJnxe%-O0A^4)`Jl^CEJ1wW4r z>ZCJBc50}h`JBiPq!1vvX{!=&z(EDMa!_RpxmLhIt{6D`0S4Q03vIL3hLA0)TyFX- z2I78z;y3E{r^+mWvBB({ zEeLlgD+LHroVZUY5_~Yi2I-*4PYe6@`Oi80nhe4QF-H&#KbEE-?GVa3a_tBF#_BPj{VAfx~Siu)4t zj|v<(!f6yO2cs+qV1IB<+I){da;_tYtFp@bo-o1*AgG|q?MP_z1=AIT@IedEJO9Bn zDDJbbzaglg>^C7~{QC$ZAEK-hEZ2hdKTWJK#1Kd*0m2DjHxm93z-z&r2oZu1RNw-k z*hdR0&;otbV_%_=Qa;vZKso(mUwe~NIDkhm46?5U>EOo%L9h=e;X_@P(gz5xak~&a zi3EN~ojzc2g80yGfBPyEk}T0UC+TAv{wxbYDY&E$FQ{N;^_Ww9_<^-(G!F!vP!<3~ zKmui9qh%Wq5(!9PkAHLkY>r6XKXecR?kOv06&OM2PGkucgx~}xDBuW^CkTBggCBz6 z0YApU4`Pf!AN2UgGtBpo6y)O_?BE9p0w#}rbl?QaY6S_5H%DB^X$T>3!<_0c1gzwBce=uX5wn*9v zqNqASlmZfOEZ6N$5R7ucQCa`~SivvhXa!6C0}uOzBMG?I$|!D%2yonn7|rp#74X9q z`*M;F?zaL|Nb#4}IFUY9;Jg#e?;j-CpFokhf`8xxNmbN`E%s4Tez@-hpU?*hR^S9n z)qw~4;DkPiv4W&os-*i^#!PKU4PQEKqbDfUKZdXZj*@^Fa?0*k{Ahk zfX{S{UvtUw=&&__B-S_>rIHJ?oa zMm~Ml2Yy)Lu1?~{3S`lW9;|>0o6^T0sOnE)KvS?t!UZ%}00U)hl&T|`DKz7X31uxo z1@{QjiNrxuetZI&Cp!Lt5|BUy7-$YjY9K)pY^Yg%!a-Sp;Am5a%h9Wmzy&J+#6L`- zk2VBBAA8V;DN0I>yHa9Pe^urRy5PxBq+qx`5Qef|kb**FwGA9q?xylNT&Dqpt?+H? zOhcj39&mLA!P={QII9VL^x*}=eL-h8Rf-do_C!fo!FT!eQxbfaxGx}qd{CiCW#~f= z|2P3J{t=3QIH3#rs6rS1f#Fh=lo9_J#|vn&E(q69S^A^~j92i2CCrJvFIa>>s}Nw~ z4p$G#N@|Avc?>P+!wF605=W8iSR2R35QT~Wz+2)^_)wv#tWcUR7~zRcpwbsG zNWq?Akc4&pbOlb@N2Si8;AQ;73{6b|2>`5wb#(&LobrS#h#+Ai?g1A>@G*cb#g7+s zVISgsMxQr|q7@{OiIC<8EDCvoApN7dR$f6Qlx2q#5Mf=uSOIb&tt@)bcnl?!PYJn% zwc)~G&vM#F7@Df(sBZd1!<}hUuOO#ctl%726Icp*z{ISc*~bBn>z+B=)E8L!1i^-P zQ{NCQL(p5_4+ii|^L+y3j#k|Igz&t{OXFC`!pE2(g&h?9VB&t)%3GYbK7+sm`40C7 z9oM(G$f3FHfoEFT@D=x-5&i-OZ`8*K7q^2g{_o8;RpTqyIDnx^Lm!v?;sUQYgui=n zRl6YH|JFCWZLV~W&-(;0$ad4GPW7r=ouf>rde%pK^{y-3vHw=qdo}L$vYY+vXiq!W zi5t22%pvV?kGtIG9_}eO6?{lSI^Flq_r9N;##Uz1KaRm!vitq;h&Q{&Q^121lG*Ty zkG$lmUh0qTgA8?_yyiFm@5r%(7?emw7wY|j6M&ubsOP-RU2VxjRjG!aR@0 zER@77j=xxyy-<_HHI}|ol*Kob#XpzEFOOOJDbB- znaVt#$UB+GQJBPJm&aJ0$V8mTOqt6?o6J6-$5WrmMxM$|pUY02%T=JvPol?YqRmO6 z%}}7uSfbBTsm@cR(Nw6;TBOcsrq5xe(p9R;bE?f~sL^An&UUNJd#lfIt<+zu)Ml>F zezDMbuGeX_)o8WRhqTvmvf6C6*>knodbrh#w%3Nb*m}3tlC{~5y4iug+kL#-gT2|0 zyV;e!-G#v0io)ECzS^X~--pHBhr`{CzTl3>--*NBpvK^k!rrII+^5Imn9Sjr$mgQY z<)Y5xtw$$dT(&n+(=cU!>tI+DK*66L&=(E-7wAJUo*Xpj;>b2YG zwb|>i*XhC6?6%$Nw%YBn+3UmJ>$u$PzTWH0-tNEL?#AHn!Qk!9-tN@o?#SZr&*Aab z_CX>@2HRA^-&M@dak04x9i002h-C;$Km{s09GAV5IC zfq?=F9!N+~004pk2oiY6kl_G|0TK>~C?I2ihY<@F47qS&#DNbb5-7l6z<>e-S{_6o z(B%LH1O^^hsd421fdv%|BtVk^gq%4A9A!XY=SBts5d=UGGXR7GJAH11V06VYd*kjX zc)%3`1OyPc{o{9!%!30E9vC%S-~oa|=+4ayaKKqQ222qQNbrD{m9q*I7)5XZ!2>G! z`2FK%7D55b2vqTlyl>yX0#+Fy$e@p(zkR2R$!&b#fdZ}!n3=8&LGwOmXw5Rv?9X3~ z2Xd%Y zWRQUe_Usc+1(#+}oHHI^04G0SSXx1-7AOJBAYT3xg9ZK~V4%cldz_j<3?5_v1}>98 zlOC>jTJd8B7*J{{29p}M!3Y>cCXWakR3L(9(B!Iwabs*C0<ZH8+2hD z9ZW)70cyyNSOK6JnEMYH8fZW%v>VvFRtC`G^Ut%fir}p>BWO^Cw`6R9fe34&=Iwa= zh%kZ(8eGc{APjE{?ppgWx-G@#@-xP^kbX=8r6i0%LOz;qYl6W4EF(e+N_aNL%Od2E z-Z&qSKu?U@evrb!{|xfM2qUNv<2xUiKu>W`oCZh?B8=j#2qus~g1l&mKms$T zl|8~V#-&g=n(=Hcd2!IBzyi^4n4tL)-WtLJ3)%f+ISRA>W60Jjv|!vOp2M<_J|tL< zhH-CfO{wKvuQhrKl(XPD3a4qKc@^oUp@Q%{^ft)ox5UW8)-)i$Pa{&tU_)`Aun>bU z#j$__3M$&)5F>4j z?qL2%gbh|WKz?X~1u8%wKUy$D7JMN_{)(Uh4raguZ>7QoEU@4|Y`{boxFJS)m_ZBF z$Bz}JP#VU;0SEq}NV zNURVTe9VCkYyiw4YVirh0fiP3_zxNgkp@rvM;vgV1IR7W20fsGG}4nud}xZB+>8-5 zv?vB|1wx28U;=71(Srl7MU>(G{2@OS(a9dH1r*k_#agte10LW3ip#_zKWNa%9zer0 zI*91g?16)D(!e;{AY(iKfd`8cGn6_&=09{$PaJIY5{)DR5R3zgM&`me_++JV{?LOS zcr%Aqc&iX)UCU>Cu!`awgB{?w1Zar> z*y3aZuygPXA&MZ>FCa&`Lg`g&?(0yD1u*~f% zXnV5_=z2>KfbGE*BtzRI{Nk*5mF+$-K?LS9!H9r;={|lyT_K>?AAbO>S^WW81}7*V zKaeU|;cJ}d{vf*lxa$w{S{&v6pclpgZ4c&P97@zytN+LZb7PU7ph{H_$SH(+VLRd< zP(vU82nG;-@Pr;P!3RNYVTQY_W59-?H z(`0Xg76=7K&Hg^>A&1Z6wZlRktRVW@gC}@qAD2jlXQ~WXGx`G)BbKsp5{nAs=;H}Q zFf5B93|MQVxW_}jq;;OF(x4Wn8}^N1eu)4I$$TqD5w`C>I#JsnB!XRc)(1VAO9<3B z0$||OJ zhAZ3yUFZ9|^6oZX^9|S}lzQF6AjA)z@dIN_;R?g}fi`}CiB6PWRXWL!ZD z5wFG%{vg2$BADX|g(wF#s1c26B!e2#phhyPL5*olqZ-M;Mlzr=4Q){487=R|&uvbP zUW1k&sQ3Yx{UL_v{(v7pumw1XuwZw@!Uz1Yvl{-e;C~PS80zSOK6KCuZ=uFIgFcRS z9>%D%7sp#|UvQ84(PgOnLk(=;hd-xmj!X6+9kEdQ+nNq_eh48K>9`~jR$+GSczVyq ziM(?p6QhTHOEQ~2#v*?3++<8a3&*&)5H8^gBBX-|uDGieo!Wb+Hp4yTH@`nD x%Ul|K7vJEgx4fC#gCuW;s_)eV36>s#GLkas`;06SwI+|d94 literal 0 Hc-jL100001 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 Hc-jL100001 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 zc-jFx2*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@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!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 Hc-jL100001 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 zc-jG=0$=@!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 Hc-jL100001 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 zc-rd>@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 Hc-jL100001 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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 # # - 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 d825ef6cc5..c72ff8c030 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 9e25ead266..4764565b57 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 0000000000..eb6c0738a4 --- /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 0000000000..a0225dd630 --- /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 -- 2.39.2